Bár az idei BlackHat számos kiváló kutatási témát mutatott be, egy kis hiba azért csúszott a gépezetbe: a valódi "rocksztárként" számontartott (az idei Hacktivity-re is hivatalos) Charlie Miller és Chris Valasek autóhackelésről szóló előadását valamiért nem fogadta el a programbizottság (bekerült viszont ez a hiperaktuális SQL injection előadás). Pánikra azért nincs ok, Millerék a DEFCON-on prezentálták munkájukat, a kutatási anyag pedig ma végre felkerült az IOActive oldalára.
A gyakorlatilag minden modern gépkocsiban jelenlévő vezérlőrendszerek hackelése nem teljesen új téma, a Washingtoni Egyetem kutatói már 2010-ben publikálták, hogy egyes autók szoftvere fölött Bluetooth vagy egy egyszerű CD segítségével át tudták venni az irányítást. Millerék munkája azért bír nagy jelentőséggel, mert a kutatópáros a vizsgált járművek (Ford Escape, Toyota Prius) beágyazott számítógépei által használt protokollok és algoritmusok részletes dokumentálása mellett az ezek hackelését megkönnyítő eszközkészletet is kiadták.
A különböző számítási feladatokat végző elektronikus vezérlőegységek (electronic control unit - ECU) között egy CAN busz valósít meg közel real-time kommunikációt. Az üzenetküldés broadcast módon történik, vagyis minden üzenetet minden ECU megkap, az üzenetek küldője pedig nincs azonosítva, ami jelentősen megnehezítni a protokolüzenetek visszafejtését. Ennek ellenére a kutatóknak sikerült olyan univerzális szoftvereket készítenük, melyet úgy használhatunk, akár egy Netcat-et az IP hálózaton (innen valamint a fizikai interfész nevéből az eszköz neve: Ecomcat).
A különböző kommunikációs szabványok alapján ezután elkezdhetünk játaszani a különböző ECU-kkal, melyek például az automata parkolást, sávkövetést segítik, vagy éppen az ütközéselkerüléskez nyújtanak asszisztenciát. Bár a legfontosabb hibakereső interfészek illetve funkciók használata autentikációhoz kötött, a kutatóknak a gyári diagnosztikai szoftverek visszafejtésével sikerült megszerezniük az egyszerű kihívás-válasz protokoll kulcsait, a Ford Escape esetében pedig egy olyan ECU-t is találtak, ami egy vélhetően ottfelejtett debug kódnak köszönhetően mindig azonos kihívást (seedet) generál.
Mindezek ismeretében a vezérlőknek privilegizált parancsok adhatók, sőt még a működést meghatározó szenzorok adatai is meghamisíthatók, így például fixen rögzíthető vagy teljesen ki is kapcsolható a fék, melynek eredményeként Miller sikeresen le is rombolta garázsának hátsó traktusát. De a gyárban használt felületek segítségével akár ki is olvasható, majd tetszőleges adattal felül is írható az ECU-k memóriája, így gyakorlatilag saját szoftvert írhatunk az autónkhoz.
A Forbes videója
Mivel a vezérlőegységekhez csak az utastéren belülről, néhány esetben a műszerfal burkolatának eltávolítása után lehet hozzáférni, ezek az eredmények nem jelentik azt, hogy napjaink járművei egy otthon ülő hacker által átprogramozhatók lennének, de ne felejtsük el, hogy az autók belsejéhez történő fizikai hozzáférés sokszor egyszerűbb, mint gondolnánk. A most kiadott kutatási anyag és eszközkészlet a klasszikus hacker iskola első kérdéseinek, a "Hogyan működik?" és a "Mi történik ha?" megválaszolásában fog nagy segítséget nyújtani, ezt követően pedig jó, ha felkészülünk a meglepetésekre.