Automotive ECU Security: A Man-in-the-Middle Testing Environment (Bosch)

Konzulens:
Dr. Kiss Bálint
Külső konzulens vagy kontakt:
Lakatos Dániel
External supervisor e-mail:
Daniel.Lakatos@hu.bosch.com
Tárgy:
Önálló laboratórium - Szoftverfejlesztés és rendszertervezés specializáció, BSc Info.
Hallgatói létszám:
1
Folytatás:
Szakdolgozat / Diplomaterv
Leírás:
Az autóiparban használt technológiák fejlődésével a kiberbiztonság egyre fontosabbá válik, nagyobb hangsúlyt kap. Az autóipari kiberbiztonság a járművek védelmére összpontosít és veszi fel a harcot a kiberfenyegetések és
a jogosulatlan hozzáférések ellen.

A projekt során egy autóipari kiberbiztonsági validációra képes tesztelési környezetet kell megtervezni és implementálni. A projekt fő célja, hogy a megalkotott rendszer alkalmas legyen Man-In-The-Middle (MITM) módon két autóipari elektronikai vezérlőegység (ECU) közé fizikailag beékelődve – az üzenetek manipulálásával – támadások szimulálására, sebezhetőségek felderítése és biztonsági mechanizmusok validálása céljából.

A rendszernek többek között a SAE J2716 szabványban definiált SENT protokoll üzeneteit kell tudni elkapni, feldolgozni, módosítani, illetve ezután tovább küldeni. A tesztrendszer alapját – a Man-In-The-Middle eszközt – egy, az autóiparban is elterjedt mikrokontroller alapú rendszer, fejlesztői kártya (továbbiakban MITM Eszköz) képezi. Ez az MITM Eszköz képes instrukciók valós idejű végrehajtására (1 mikroszekundumos pontossággal), és különféle autóiparban használt protokoll üzeneteinek feldolgozására.

Az MITM Eszközön memória hiányában kevés adat tárolható, ezért a működtetést Internet kapcsolaton keresztül, egy Python TCP kliens használatával kell megvalósítani. Az MITM eszköznek az elkapott protokoll üzeneteket a Python kliensnek el kell küldenie, amin a Python kliensnek módosításokat kell végeznie (az aktuális tesztesetnek megfelelően), majd pedig vissza kell küldenie a manipulált üzenetet az MITM Eszköznek, hogy továbbíthassa azt a tesztelés alatt álló vezérlőnek. Az eredmények megfigyelése érdekében naplózást is implementálni kell, aminek segítségével látható, hogy a módosított üzenetekre hogyan reagál a fogadó ECU.

Az Önálló laboratórium során a hallgató feladata a Python kliens megtervezése és implementálása. A feladat elvégzéséhez a hallgatónak szüksége van az alábbi ismeretekre és képességekre:
  • szoftver tervezési és fejlesztési ismeretek,
  • ISO és SAE szabványok értelmezése,
  • programozás Python nyelven,
  • autóipari- és klasszikus TCP/IP hálózati kommunikációs protokollokban való jártasság, gyakorlati tapasztalat,
  • beágyazott rendszerek felé irányult érdeklődés.
A feladat hosszabb időtartamú és több irányba mutató továbbfejlesztési lehetőséget tartogat különféle autóipari kommunikációs protokollok implementálása, illetve egyéb támadási stratégiák szimulálása esetén.

A hallgatótól a beszámoló dokumentumokat angol nyelven várjuk.