Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Брыфінг выступу:

Для многіх з нас аўтамабіль - адна з самых дарагіх пакупак, якую мы калі-небудзь здзяйснялі. У свеце, дзе ўсе рэчы ўзаемазлучаныя, суцэль натуральна жадаць выдалена кантраляваць сваю машыну: атрымліваць напамінкі, дзе мы яе прыпаркавалі, правяраць, не забыліся ці замкнуць дзверы ці дыстанцыйна запускаць рухавік, каб загадзя прагрэць ці астудзіць салон у залежнасці ад пары года.

Існуе мноства вытворцаў, якія прапануюць дадатковыя сістэмы сігналізацыі, якія забяспечваюць гэтыя выгоды і душэўны спакой. Але наколькі мы можам давяраць пастаўшчыкам гэтых сістэм, якія абараняюць доступ да нашых аўтамабіляў у лічбавым дамене? У гэтым дакладзе Jmaxxz раскажа аб тым, што ён выявіў, калі зазірнуў у адну з такіх сістэм.

Jmaxxz вядомы дзякуючы сваёй працы з сістэмамі "разумнай хаты" August Smart Lock (даклад на DEFCON 24 "Узлом з чорнага ходу" – "Backdooring The Frontdoor"). У апошнія гады ў цэнтры яго ўвагі былі прылады для Інтэрнэту рэчаў. Ён удзельнічаў у працы секцый "IoT village zero day" DEFCON 24 і DEFCON 25 і нарэшце, вырашыў, што прыйшоў час даследаваць прадукт другаснага аўтамабільнага рынку – дыстанцыйны стартар (далей ДС).

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Такім чынам, мяне клічуць Джэй-Макс, я праграміст па прафесіі і хакер па прызначэнні. Я займаюся ўсім, што звязана з замкамі, і на працягу гэтай размовы вы пачуеце шмат выказванняў, якія выказваюць выключна маё меркаванне і не маюць дачынення да меркавання маіх мінулых, сапраўдных і будучых працадаўцаў. Як вы, верагодна, зразумелі, прамова пайдзе аб аўтамабілях, а менавіта аб дыстанцыйных стартарах і сістэмах сігналізацыі. Пачнём з перадгісторыі, якая важная ў дадзеным кантэксце, таму што шматлікія лічаць падобныя сістэмы залішняй раскошай.
Так, дзе я жыву, даволі холадна, а мая сяброўка пакутуе на захворванне, якое называецца сіндромам Рэйна. Ад холаду адбываецца спазм крывяносных сасудаў пэндзляў рук, прыток крыві да пальцаў рэзка скарачаецца, узнікаюць прыкметы абмаражэння аж да некрозу тканін. На слайдзе бачна, як гэта звычайна выглядае.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

У лістападзе мінулага гады я ўсё яшчэ не вырашыў, што падару ёй на Каляды. І вось яна вяртаецца дадому з аэрапорта засмучанай, бо яе машына так і не прагрэлася па дарозе дадому. У гэты момант я зразумеў, што падару ёй сістэму дыстанцыйнага запуску рухавіка і пачаў шукаць найлепшы варыянт. Аказалася, што рынак дыстанцыйных стартараў даволі шырокі, прычым многія вытворцы не даюць дастатковай інфармацыі аб сваім прадукце.

Яны не паведамляюць, як усталяваць сістэму і якія прылады выкарыстоўваць для праграмавання прылады. Для мяне гэта праблема, таму што гэта мая машына, мой дыстанцыйны запуск, і я павінен мець доступ да гэтых інструментаў. Таму я пашукаў яшчэ крыху і знайшоў кампанію з Канады, Fortin, якая выпускае такія стартары і ахвотна падае ўсю неабходную дакументацыю. Я спыніўся на гэтым прадукце і прыняўся за пошук падыходнага пульта дыстанцыйнага кіравання. Справа ў тым, што калі выкарыстоўваць з дыстанцыйным стартарам штатны ПДУ, тое яго дыяпазон дзеяння будзе абмежаваны дыяпазонам штатнага пульта. На другасным рынку прапануюць пульты, якія дзейнічаюць на адлегласці ад паўмілі да паўтары міль. Па водгуках спажыўцоў, гэта рэкламны ход, таму што ў рэальнасці адлегласць нашмат менш. У гэтым і складаецца праблема, таму што маёй сяброўцы трэба запускаць рухавік аўтамабіля, які стаіць на стаянцы аэрапорта, як толькі яна выйдзе з самалёта, а гэта прыкладна паўмілі.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Таму было б выдатна, калі б яна магла проста выцягнуць свой тэлефон, адкрыць прыкладанне і націснуць "Пуск рухавіка". Я знайшоў іншы прадукт пад назвай MyCar, цалкам сумяшчальны са стартарам ад Fortin. Гэта невялікі зьвязак ключоў з сім-картай і прымачом GPS, які вы можаце пакласці ў машыну і падлучыць да дыстанцыйнага стартара. Затым з дапамогай мабільнага прыкладання вы можаце дыстанцыйна запусціць рухавік, разблакаваць замкі і да таго падобнае.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Я падумаў, што гэтую было бы выдатна: адразу пасля прызямлення самалёта мая сяброўка зможа запусціць рухавік, і пакуль яна дойдзе да машыны, у салоне ўжо будзе цеплыня.

Такім чынам, давайце крыху пагаворым аб тым, як працуюць дыстанцыйныя стартары. Для гэтага спачатку трэба зразумець, як запускаецца аўтамабільны рухавік. Прыкладна да сярэдзіны дзевяностых аўтамабільны стартар уяўляў сабой традыцыйны механічны замак у звязку ключ-выключальнік . Вы павінны былі ўставіць ключ і павярнуць яго, каб замкнуць электрычны ланцуг. Затым на тэрыторыі ЗША сталі папулярнымі замкі з паметкай "імабілайзер". Гучыць мудрагеліста, але гэта проста электронны замак. Такім чынам, у вас ёсць механічны замак, які з'яўляецца ключом да электроннага замка, які, у сваю чаргу, з'яўляецца транспондером і змяшчае ў сабе нейкую інфармацыю, якую можна прачытаць. І пакуль вы не адкрыеце электронны замак, ваш аўтамабіль не завядзецца. У правай частцы слайда вы бачыце 2 ключы: левы для иммобилайзера, а правы для звычайнага замка запальвання. Ён проста прыводзіць у дзеянне механічныя кампаненты замка, у той час як левы ключ разблакуе электронны замак, які запусціць рухавік аўтамабіля.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Чаму я пра гэта расказваю? Дыстанцыйны запуск працуе праз імабілайзер. На наступным слайдзе вы бачыце схему падлучэння прылады Fortin EVO One да иммобилайзеру - унізе злева вы бачыце пару кантактаў, пазначаных як IMO. Справа ўверсе схемы вы бачыце два радкі: CAN LOW і CAN HIGH. Гэта кантакты для падлучэння да аўтамабільнай шыны CAN. Чыннік, па якой дыстанцыйныя стартары падлучаюцца да шыны CAN, складаецца ў памяншэнні выдаткаў на ўсталёўку, таму што пры мантажы выкарыстоўваецца меншая колькасць злучэнняў. Калі дыстанцыйны стартар можа счытваць дадзеныя з шыны CAN ці пасылаць каманды праз шыну CAN, гэта скарачае час мантажу сістэмы дыстанцыйнага запуску рухавіка.

Злева уверсе схемы маецца цэлая куча GPIO, якія злучаны з кіраваннем ці чытаннем інфармацыі аб машыне. Напрыклад, вы хочаце, каб пры націску на кнопку блакавання міргалі фары або раздаваўся гудок. Падобнымі рэчамі можна кіраваць з дапамогай гэтых GPIO. Знізу злева схемы вы бачыце вялікі нязграбны раздым - гэта інтэрфейс, які забяспечвае абыход механічнага замка. Гэта значыць, вам не трэба ўстаўляць і паварочваць ключ у замак запальвання, таму што дадзены інтэрфейс забяспечвае прамое ўзаемадзеянне рэле сістэмы дыстанцыйнага стартара з электрычным замкам.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

На наступных слайдах намаляваны этапы мантажу дыстанцыйнага стартара. Галоўным чынам ён складаецца з здымання кажуха рулявой калонкі, усталёўкі і падлучэнні блока ДС. Выглядае гэта даволі жахліва, але робіцца проста.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Дыстанцыйнае кіраванне само падлучаюцца да таго, што Fortin заве каналам перадачы дадзеных. Сістэма выкарыстоўвае прапрыетарны фізічны пратакол перадачы дадзеных UART - універсальны асінхронны перадатчык, які ажыццяўляе абмен дадзенымі з хуткасцю 9600 бод. Дыстанцыйны стартар Fortin проста злучаецца праз шыну UART з двума пультамі, якія вы бачыце на слайдзе.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Усталяваўшы ДС, я задумаўся аб тым, як падобныя прылады могуць паўплываць на бяспеку аўтамабіля. Відавочна, што ДС павінен абыйсці иммобилайзер, так што наколькі гэта бяспечна ў сэнсе магчымасці згону ці перахопу кіравання машынай? Гэта дакранаецца не толькі перадачы дадзеных па сотавай сетцы, але і самога сігналу дыстанцыйнага запуску. Так што я пачаў шукаць у інтэрнэце інфармацыю вытворцы па выкарыстаным пратаколе перадачы дадзеных і патрапіў на форумы, дзе людзі пішуць, што Fortin адмаўляецца падаваць гэты пратакол. Адна з прычын: мы не распаўсюджваем такую ​​інфармацыю, таму што EVO не цацка для аматараў, ён прызначаны для выкарыстання прафесіяналамі.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Будучы ў некаторым родзе прафесіяналам, я вырашыў пабудаваць на працоўным стале сваю ўласную машыну. Я здабыў другі сістэмны блок EVO, сабраў мантажны поплатак, якая ўяўляла сабой аўтамабіль, дадаў перамыкачы, каб сімуляваць запальванне, кнопку для педалі тормазу і цэлую кучу святлодыёдаў для адлюстравання розных станаў.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Злучыўшы ўсё гэта, я падлучыў прыладу FTI для маніторынгу канала перадачы дадзеных і пачаў збіраць гэтыя дадзеныя. Спачатку гэта выглядае прыкладна так, як паказана на слайдзе, і не зусім зразумела, што тут адбываецца. Але прыгледзеўшыся, можна сказаць, што тут вызначана нейкая структура.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Звярніце ўвагу, што кожны раз, калі я націскаю кнопку на маім пульце дыстанцыйнага кіравання, паведамленне, якое адпраўляе антэна майму ДС, заўсёды пачынаецца з 0C і заканчваецца 0D. Так што калі проста падзяліць тое, што мы атрымліваем, выказаўшы здагадку, што 0C – пачатак, а 0D – канец, то ў канчатковым выніку атрымаем нешта накшталт гэтага.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Тут ужо відавочна прасочваецца нейкая структура, таму можна высветліць, што адбываецца. Выдаткаваўшы час на адсочванне таго, якое паведамленне з'яўляецца пасля націску вызначанай кнопкі, я змог скласці табліцу каманд, кожная з якіх адпавядае вызначанаму дзеянню. Гэта значыць, калі вы націскаеце кнопку на ПДУ, антэна пасылае модулю дыстанцыйнага запуску каманду, якая выглядае наступным чынам.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Вось як выглядае структура тыповай каманды.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Калі вы націскаеце кнопку на пульце, антэна адсылае дыстанцыйнаму стартара такую ​​каманду. Яго абуджэнне ажыццяўляе байт 0C, далей ідуць 2 байта, якія, як я думаю, уяўляюць сабой кірунак перадачы. Гэта цікава, бо ў UART ужо ёсць кірунак прыёму-перадачы сігналу, таму я пазначыў гэтыя байты як "смецце", проста лічыце іх канстантай. Пасля гэтага варта адзіны байт, які пазначае каманду, якую карыстач жадаў бы выканаць. Гэта можа быць блакаванне дзвярэй ці іх адкрыццё, адключэнне сігналізацыі і т.д. Увогуле, усё, што вы захочаце зрабіць выдалена, злучана з гэтай камандай. Карысная нагрузка FF FF F1 - гэта адрас, або ідэнтыфікатар, які вызначае выдаленую антэну, з якой прыйшло паведамленне. Калі блок ДС не распазнае ідэнтыфікатар, каманда ігнаруецца. Калі ДС прымае ідэнтыфікатар, пачынаецца шматэтапная працэдура, якая ўключае ў сябе праверку наяўнасці ключа ў замку запальвання, уключэнні ці выключэнні рухавіка, націскі на педаль тормазу і г.д. Фактычна гэты працэс не мае асаблівага значэння, проста прылада ў гэты момант вывучае ID.

У канцы паведамлення размешчаны байт з кантрольнай сумай і байт, які азначае канец каманды. Цяпер, калі мы разумеем, як працуе пратакол, што можна з гэтым зрабіць? У мяне ёсць пара відэа па тэме. На жаль, відэа чамусьці ідзе без гуку, таму я буду расказваць, што адбываецца на экране. Злева ад рулявой калонкі на кажусе панэлі прыбораў знаходзіцца белая скрынка, у якой знаходзіцца электроніка з прашыўкай Particle.IO, якая разумее пратакол Fortin. Провад з сінім наканечнікам - гэта антэна. Гэтая штука дазваляе мне ўзаемадзейнічаць з блокам дыстанцыйнага стартара з кабіны аўтамабіля і бачыць на экране наўтбука, што пры гэтым адбываецца.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Такім чынам, я пасылаю каманду разблакіроўкі замка ў машыну, але яна не працуе, таму што ДС не ведае аб гэтай антэне. Як я ўжо згадваў, гэта проста UART, уласцівасцю якога з'яўляецца падтрымка так званай двухбаковай сувязі 2-way communication, дзякуючы чаму можна дыстанцыйна атрымаць інфармацыю аб стане аўтамабіля. Напрыклад, калі фізічна рухавік быў запушчаны або спынены, блок ДС адправіць адпаведнае паведамленне на антэну ПДУ. Пры гэтым паведамленне будзе змяшчаць у сабе адрас гэтай самай антэны.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Праблема ў тым, што сувязь ажыццяўляецца па пратаколе UART, і любы, хто падлучаецца да шыны UART, можа ўбачыць адрас, куды адпраўляецца дадзенае паведамленне, так што ў маёй прашыўцы з'явілася магчымасць кланаваць адрас існуючай антэны, што я і раблю адпаведнай камандай.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Каб згенераваць нейкае паведамленне, дастаткова проста адкрыць дзверы аўтамабіля. Як бачыце, ДС адсылае антэне паведамленне, што дзверы былі адчыненыя, і тут жа ўключаецца сігналізацыя.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Каб адключыць сігналізацыю, я пасылаю каманду unlock , пасля чаго гук трывогі адключаецца і аўтамабіль разблакуецца. Вам давядзецца паверыць мне на слова, бо нам не ўдалося запусціць гэтае відэа з гукам. Давайце паспрабуем прайграць ролік яшчэ раз.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Ну вось, гук з'явіўся (заўв. перакладніка: на экране прайграваецца той жа відэаролік са гукавым суправаджэннем). Такім чынам, вы ўбачылі, як я паслаў каманду ДС і ўлучыў сігналізацыю, і ўсё гэта без ключа. Цяпер давайце паспрабуем сапраўды гэтак жа завесці машыну, для гэтага паглядзім наступнае відэа.

Звычайна, калі проста набраць каманду start і паспрабаваць запусціць рухавік, гэта не спрацуе. Чыннік у тым, што гэта аўтамабіль з ручной скрынкай перадач, і для такіх машын сістэмы дыстанцыйнага стартара маюць адмысловую працэдуру. У дадзеным выпадку вы павінны націснуць на кнопку дыстанцыйнага стартара, пакуль ключ знаходзіцца ў замку запальвання і рухавік запушчаны. Затым вы можаце выцягнуць ключ, выйсці з аўтамабіля, зачыніць дзверы, пасля чаго ДС выключыць рухавік і забарона дзвярэй на замак. Гэта зроблена для таго, каб аўтамабіль не рэагаваў на дыстанцыйны запуск рухавіка падчас руху, бо гэта небяспечна. Тым не менш, гэта не паўнавартасная функцыя бяспекі. Даказаць гэта даволі проста, калі зірнуць на блок EVO дыстанцыйнага стартара. Вы бачыце гэты жоўты провад у выглядзе завесы, які прызначаны для працы з механічнай трансмісіяй. Калі яго абразаць, дадзены блок можна будзе выкарыстоўваць для аўтамабіля з аўтаматычнай каробкай перадач. Такая канструкцыя блока дазваляе не прымяняць ніякіх спецыяльных налад пры мантажы ДС у аўтамабілі з рознымі тыпамі трансмісіі.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

Такім чынам, сістэма не адрэагавала на каманду "start", таму я збіраюся вярнуць гэты блок на месца і проста абрэзаць гэты провад, каб разарваць злучэнне. Зараз, калі паўтарыць каманду start , раздасца гукавы сігнал і на панэлі прыбораў засвецяцца індыкатары стану сістэм аўтамабіля, як гэта бывае пры ўстаўленым у замак ключы.

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 1

На дадзены момант у нас ёсць аўтамабіль, які мы можам завесці выдалена без ключа ў замку запальвання, аднак модуль ДС - яшчэ не ўсё, што нам трэба. У звычайных умовах вам усё роўна не атрымаецца з'ехаць на аўтамабілі, заведзеным дыстанцыйна, аднак давайце ўсё ж паспрабуем гэта зрабіць.

Каб адключыць блакаванне рулявога кола, неабходна ўставіць у замак запальвання звычайны ключ, у якім няма ніякага транспондера. Як бачыце, досыць перавесці ключ у становішча, якое папярэднічае запуску рухавіка, і руль Subaru Impreza пачынае круціцца зусім вольна.

Аднак калі ў вас няма ніякага ключа, то пры націску на педаль тормазу машына заглухне. Абысці гэтае абмежаванне досыць лёгка. Трэба высветліць, якім чынам аўтамабіль паведамляе дыстанцыйнаму стартара, што тормаз націснуты. Вы бачыце некалькі рознакаляровых партоў у тылавой частцы корпуса модуля EVO - сюды падлучацца кабель ад CAN-шыны. Досыць проста выцягнуць гэты кабель з блока ДС пасля таго, як аўтамабіль будзе дыстанцыйна запушчаны, і ён не будзе рэагаваць на націск педалі тормазу. Паколькі гэты блок знаходзіцца пад кажухом рулявой калонкі, я даю каманду start праз свой наўтбук, аўтамабіль заводзіцца, я адчыняю дзверы, выходжу з машыны і вымаю канектар CAN-шыны з блока EVO. Як бачыце, рухавік аўтамабіля працуе, пры гэтым у нас па-ранейшаму няма ніякага ключа ў замку запальвання.

Цяпер, калі націснуць на педаль тормазу, нічога не адбудзецца, таму што EVO не ведае аб тым, што яна была націснутая. Пасля гэтага я магу сесці за руль, націснуць на тормаз, перавесці ручку перадач у становішча Drive, і машына паедзе. Усё гэта праробліваецца без усялякага ключа.

21:40

Канферэнцыя DEFCON 27. Твой аўтамабіль - мой аўтамабіль. Частка 2

Крыху рэкламы 🙂

Дзякуй, што застаяцеся з намі. Вам падабаюцца нашыя артыкулы? Жадаеце бачыць больш цікавых матэрыялаў? Падтрымайце нас, аформіўшы замову ці парэкамендаваўшы знаёмым, хмарныя VPS для распрацоўшчыкаў ад $4.99, унікальны аналаг entry-level сервераў, які быў прыдуманы намі для Вас: Уся праўда аб VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ад $19 ці як правільна дзяліць сервер? (даступныя варыянты з RAID1 і RAID10, да 24 ядраў і да 40GB DDR4).

Dell R730xd у 2 разы танней у дата-цэнтры Equinix Tier IV у Амстэрдаме? Толькі ў нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТБ ад $199 у Нідэрландах! Dell R420 – 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB – ад $99! Чытайце аб тым Як пабудаваць інфраструктуру корп. класа c ужываннем сервераў Dell R730xd Е5-2650 v4 коштам 9000 еўра за капейкі?

Крыніца: habr.com

Дадаць каментар