"Hack" heeft een verscheidenheid aan definities, van het lezen van privégegevens van een niet-kritisch systeem tot het verstoren of verwarren van een avionica-modus, tot het overnemen van het vliegtuig en het buitensluiten van piloten. Dit bemoeilijkt de discussie over hoe waarschijnlijk het is dat vliegtuigen worden "gehackt".
In het algemeen lijkt de recente consensus te zijn dat onder sommige definities van "hack" dit zeker mogelijk is, zelfs zonder voorkennis. Er zijn enkele rapporten van succesvolle hacks, maar aangezien de details vertrouwelijk zijn, is het moeilijk te zeggen wat onderzoekers hebben bereikt of wat hun aanvalsmethode is. Zowel onderzoekers als vliegtuigfabrikanten lijken het erover eens te zijn dat het besturen van een vliegtuig gedurende meer dan een paar seconden buitengewoon moeilijk zou zijn, maar niet onmogelijk, en dat is zelfs met voorkennis of langdurige toegang tot het vliegtuig.
Huidig beleid richtlijnen van de FAA zijn te vinden in PS-AIR-21.16-02. Ik heb gehoord dat de FAA uiteindelijk DO-326 zal erkennen als een middel om te voldoen.
Ik ga wat informatie verstrekken over veiligheids- en integriteitsmaatregelen die standaard zijn in de industrie en het hacken van luchtvaartelektronica moeilijk maken . Met name hacking avionica is een soort van veiligheidskritische hacking van embedded apparaten, geen hacking van servers of pc's. Veiligheidskritieke embedded apparaten hebben een veel kleiner aanvalsoppervlak en er zijn veel meer risicobeperkende methoden, zoals hieronder beschreven.
Bedreigingsmodel en verschillen met computers
De bedreigingen waarmee u in vliegtuigen wordt geconfronteerd, zijn zeer anders dan servers en laptops. Vooral voor de meest kritische systemen, zoals beeldschermen en stuurautomaten, zijn de datatypes strikt, zijn de berichten gepland, is de verwerkingstijd beperkt en worden er zelden strings gebruikt. Om de meeste traditionele aanvallen uit te voeren, zou u deze protocollen moeten breken. Dit is vergelijkbaar met andere soorten embedded programmering waarbij de software zo inflexibel is dat het aanvalsoppervlak klein is.
Sommige dingen die aanvallers hier zeker helpen, zijn onder meer fysieke toegang tot het software-updateproces, de mogelijkheid om een aantal dagen met het vliegtuig te werken, voorkennis, eenvoudige RF-apparatuur of de mogelijkheid om satellietcommunicatie naar het vliegtuig te kapen. Als uw aanvaller er enkele heeft, is de dreiging veel ernstiger.
Beschikbaarheid
Is het mogelijk om te knoeien met de beschikbaarheid van vliegtuigsystemen? Ja, als je de juiste signalen kunt manipuleren. U kunt de vluchtregelcomputer bijvoorbeeld laten denken dat een sensor defect is. Je zou veel sensoren kunnen afwerpen met radiosignalen die krachtig genoeg zijn. Een bug in 787 NG -beeldschermsoftware leidde er ooit toe dat alle beeldschermen zwart werden. Bovendien gebruiken de meeste vluchtcomputers standaardprocessors met veel vreemd gedrag, en vooral als een exploit je in staat stelt willekeurige assembly-code uit te voeren, zou je een aantal hiervan kunnen misbruiken om het avionicasysteem offline te halen.
beschikbaarheid is echter niet zo belangrijk als de integriteit van de avionica. De meeste mensen maken zich echt zorgen dat een hacker de volledige controle over het vliegtuig overneemt en de piloot niet dwingt om met de hand te vliegen.
Partitionering
Verschillende functies, vooral die op verschillende veiligheidsniveaus, zijn door regeling geïsoleerd van elkaar. Hoewel vliegtuigen van oudsher speciale hardware hadden voor elk onderdeel, wordt tegenwoordig veel van deze software uitgevoerd op gedeelde LRU-computers (dit wordt een IMA-architectuur genoemd). Maar ondanks het delen van hardware, zijn de softwareprocessen strikt van elkaar geïsoleerd en tijdens de certificering is bewezen dat er geen processorfouten, foutcondities, overflows, etc. kunnen worden overgedragen van het ene proces naar het andere, zeker niet een proces op een hoger niveau. Ja, signalen gaan tussen partities, maar signalen die van een lager veiligheidsniveau naar een hoger niveau gaan, zijn individueel gerechtvaardigd om ervoor te zorgen dat ze geen veiligheidsproblemen veroorzaken.
Om een exploit een catastrofaal effect te laten hebben, zou het deze moeten omzeilen door ofwel 1) rechtstreeks te werken met hardware en processen van niveau A 2) een slechte veronderstelling te vinden over de impact van een signaal op een lager niveau. Deze slechte aannames bestaan, maar ze zijn zeldzaam.
Zie DO-297 en DO-178C voor meer informatie over deze partitionering.
Testen
Veel hacks in personal computers gebeuren vanwege inadequate tests die uitzonderingen en fouten in het systeem toelaten. Software van niveau A wordt veel uitgebreider getest dan de meeste apps of pc-software. Elke lijn wordt getest op MC-DC-dekking (niet uitputtend, maar elke beslissing moet worden genomen als zowel waar als niet waar). Structurele dekking wordt ook geëvalueerd om ervoor te zorgen dat er geen onbedoelde interacties plaatsvinden. Als er toch fouten optreden, is de RTOS ontworpen om deze fouten voorspelbaar en betrouwbaar op te lossen.
Software-updates
Ok, stel dat je geen manier kunt vinden om willekeurige code uit te voeren, kun je het software-updateproces verknoeien? Dit lijkt aanvankelijk haalbaar, vooral gezien de nieuwe neiging om elektronische firmware via netwerken bij te werken. Er zijn hier verschillende problemen.
- De meeste vliegtuigen zijn niet rechtstreeks verbonden met internet voor avionica-updates. U moet dus toegang krijgen tot het lokale netwerk voor updates en vervolgens ook toegang krijgen tot de vliegtuigen die dit netwerk gebruiken.
- De meeste software-updates gebruiken een high-fidelity integriteitscontrole, waarvoor u een ongelooflijk moeilijke hasjbotsing. Sommige updateprocessen hebben geen high-fidelity-controles, maar als dit het geval is, moeten ze bij de autoriteiten kwalificeren dat hun updateproces stabiel en foutbestendig is. Er zijn gebreken die kunnen worden uitgebuit, zoals bleek uit het probleem dat tijdens de crash van de A400M in Sevilla werd aangetroffen. De enige optie zou dus zijn om ook de CRC te vervalsen voor de update en / of om een exploit te vinden in een gekwalificeerd laadproces.
- Op het netwerk gebaseerde updates houden ook de versienummers bij en kunnen de integriteitscontroles van de software bijhouden. Je kunt dus niet echt een update van versie 13 naar een gehackte versie 13.1 forceren zonder dat iemand het merkt.
- Momenteel komen supply chain-aanvallen steeds vaker voor. Hoewel ik er zeker van ben dat een supply chain-aanval mogelijk is, bieden voorschriften zoals DO-330-toolkwalificatie en DO-178-configuratiebeheer al jaren bescherming tegen onbedoelde wijzigingen tijdens het bouwen van software. Geteste en herziene versies van code worden zorgvuldig gecontroleerd en vergeleken met de definitieve versies, softwarebouwomgevingen worden vergrendeld en gekwalificeerd, en lijsten met opgenomen bibliotheken worden gedocumenteerd en goedgekeurd. U zou een blinde vlek in deze processen moeten zoeken om de toeleveringsketen van software aan te vallen.
- Software-updates (geen updates van de navigatiedatabase) worden niet vaak uitgevoerd, misschien eens in de drie jaar, waardoor de kans aanzienlijk wordt beperkt. om een softwarelading te hacken. Er zijn vergrendelingen aangebracht om te voorkomen dat de software opnieuw wordt geladen wanneer dit niet gewenst is. Deze zeldzaamheid leidt ook tot meer controle van het hele proces.
Voor meer analyse van veiligheidsmaatregelen om te voorkomen dat corrupte software of databases worden geüpload, raad ik u aan de normen voor dit proces te raadplegen. : DO-200A, Hoofdstuk 5 van FAA Order 8110.49 en FAA AC 20-153.
Handmatig en automatisch verbreken
Gewoonlijk wordt de stuurautomaat en andere software beheerd door een ander systeem dat vergrendelt en ontkoppelt logica. Deze bevatten veiligheidsnormen en tests die zijn geschreven om ervoor te zorgen dat ze betrouwbaar werken, inclusief een vereiste voor een softwarevrije methode om de automatische piloot uit te schakelen. Dit maakt het erg lastig om hier een exploit te vinden zonder bijvoorbeeld al willekeurige code uit te kunnen voeren.
Zelfs als deze ontkoppelingssoftware niet werkt, hebben piloten stroomonderbrekers en kunnen ze het hele avionicasysteem uitschakelen en vervolgens het vliegtuig met de hand besturen. Zie het antwoord van BigHomie voor een bespreking van hoe haalbaar het is om dit te hacken (antwoord: niet erg).
In theorie zou dit moeten werken, maar in bepaalde situaties kan het vliegtuig in een onveilige situatie worden gebracht voordat de piloot kon de controle terugkrijgen. Zoals de 737 Max-incidenten lieten zien, kan het moeilijk zijn om plotseling te zakken wanneer u dicht bij de grond bent, zelfs als u de stuurautomaat handmatig kunt uitschakelen of het trimsysteem handmatig kunt uitschakelen.
Opmerking: I ben geen expert in avionica of embedded device security. Bij hacken gaat het vaak om buiten de gebaande paden denken, dus laat het me weten als iets waarvan ik aanneem dat het hier niet klopt of als ik iets mis.