Una storia agghiacciante è quella raccontata da Ian Carroll sulle colonne del suo blog. La descrizione lucida e particolareggiata resa da Carroll e dal suo collaboratore Sam Curry, mette in evidenza come ancora oggi, nel 2024, la sicurezza aerea non sia esente da incredibili falle. I due ricercatori hanno infatti scoperto una lacuna di sicurezza di proporzioni bibliche all’interno di un software largamente utilizzato da tante compagnie aree per gestire l’accesso alle aree sterili in aeroporto. Carroll e Curry hanno individuato una falla che permetteva l’effettuazione di un elementare attacco SQL injection dalla pagina di login. Seguiteci: vi spiegheremo perché nel 2024 è qualcosa di davvero incredibile.
Vulnerabilità nei sistemi KCM e CASS: una minaccia per la sicurezza aerea
Mentre la maggior parte dei passeggeri deve sottoporsi a rigorosi controlli di sicurezza, esistono programmi speciali che consentono a piloti e assistenti di volo di bypassare queste procedure.
Uno di questi programmi è chiamato Known Crewmember (KCM) ed è gestito dalla TSA (Transportation Security Administration) negli USA. Il KCM permette a piloti e assistenti di volo di accedere alle aree sterili degli aeroporti senza dover passare attraverso i tradizionali controlli di sicurezza, anche quando viaggiano per motivi personali.
TSA è un’agenzia governativa creata in risposta agli attacchi terroristici dell’11 settembre 2001, con l’obiettivo di garantire la sicurezza nei trasporti, in particolare nel settore aereo. Fa parte del Dipartimento della Sicurezza Interna degli Stati Uniti (DHS) e ha il compito di proteggere i sistemi di trasporto del Paese da potenziali minacce terroristiche e altre forme di pericolo.
Il funzionamento del sistema KCM è apparentemente semplice: il personale di volo utilizza una corsia dedicata, presenta un codice a barre KCM o fornisce il proprio numero identificativo e la compagnia aerea di appartenenza. A questo punto, il sistema verifica lo stato occupazionale dell’individuo con la compagnia aerea. Se la verifica ha successo, l’accesso viene concesso senza ulteriori controlli. Un sistema analogo esiste per l’accesso alla cabina di pilotaggio, chiamato Cockpit Access Security System (CASS): permette ai piloti di utilizzare i cosiddetti “jumpseat” in cabina quando viaggiano per motivi di lavoro.
ARINC: il fulcro della sicurezza aerea
Il cuore dei processi di verifica risiede nel controllo dello stato occupazionale del personale di volo. Un individuo che non è più impiegato presso una compagnia aerea non può evidentemente superare i controlli di sicurezza e non dovrebbe quindi essere autorizzato a bypassare i controlli di sicurezza né tanto meno accedere alla cabina di pilotaggio. L’interoperabilità tra i sistemi delle diverse compagnie aeree e il sistema centralizzato gestito dalla TSA sono tuttavia aspetti cruciali e complessi.
Come spiega Carroll, ARINC sembra essere stata incaricata da TSA per gestire il sistema KCM che include un’applicazione Web destinata a piloti e assistenti di volo al fine di controllare il loro stato e un’API per elaborare le richieste di autorizzazione tra le diverse compagnie aeree. Ogni compagnia aerea partecipa a KCM e CASS tramite il proprio sistema di autorizzazione, che interagisce con l'”hub” centralizzato di ARINC.
Il sistema ARINC permette alla TSA e alle compagnie aeree di inviare richieste come CockpitAccessRequest
e CrewVerificationRequest
al sistema centrale. Quest’ultimo inoltra le richieste al sistema di ciascuna compagnia e annota la risposta.
Attualmente, aggiunge ancora Carroll, ben 77 compagnie aeree partecipano al programma KCM. Le grandi compagnie aeree hanno probabilmente sviluppato i propri sistemi per rispondere a queste richieste, ma come fanno le compagnie aeree più piccole a partecipare al programma?
Il caso di FlyCASS e la vulnerabilità SQL injection
Carroll racconta che insieme con il suo collega Curry, durante la ricerca di fornitori che gestiscono i sistemi di autorizzazione negli aeroporti, si sono imbattuti in FlyCASS. L’applicazione Web permetteva e permette tutt’oggi di accedere a un’interfaccia Web di login esposta pubblicamente sulla rete Internet.
Lo stupore si è fatto subito grande quando i due ricercatori si sono accorti che il form di autenticazione, utilizzato dal personale di molteplici compagnie aeree, soffriva di una vulnerabilità che esponeva il sistema a un attacco di tipo SQL injection.
Inserendo un apice nel campo del nome utente, all’interno del modulo di login, i ricercatori hanno ottenuto l’errore “mySQL Error: You have an error in your SQL syntax“. Questo significa che un’applicazione “sensibile” come quella in questione non filtrava né validava adeguatamente i dati inseriti dall’utente. Il risultato è che un attaccante poteva manipolare l’input per eseguire comandi SQL non previsti. Un attacco SQL injection può portare a diverse conseguenze, tra cui:
- Accesso non autorizzato ai dati.
- Modifica o cancellazione di dati.
- Compromissione completa del sistema.
Le conseguenza della scoperta
Con una mossa alla Frank Abagnale Jr. trasposta in ambito informatico, i ricercatori raccontano di aver creato sul sistema per la gestione degli accessi in aerea sterile un utente fittizio (Test TestOnly). Utilizzando le funzionalità di query proprie di MySQL, Carroll e Curry hanno inserito l’utente, insieme con una foto, e sono riusciti ad autorizzare gli accessi KCM e CASS.
Questo significava che chiunque con una conoscenza basilare di SQL avrebbe potuto accedere al sito, aggiungere se stesso o altri come dipendenti autorizzati, bypassare i controlli di sicurezza e accedere alle cabine di pilotaggio dei voli commerciali.
La scoperta della grave vulnerabilità ha posto i due ricercatori dinanzi alla necessità di informare rapidamente le autorità competenti. Ad aprile 2024, il DHS ha ricevuto i dettagli del problema di sicurezza riconoscendone la gravità e confermando di “prendere la questione molto seriamente“. Successivamente, FlyCASS ha provveduto a risolvere le vulnerabilità.
Una conclusione della vicenda che lascia amaro in bocca
“Dopo la risoluzione del problema, abbiamo cercato di coordinare la divulgazione delle informazioni sulla vulnerabilità. Purtroppo, il DHS ha interrotto le comunicazioni con noi e l’ufficio stampa della TSA ha rilasciato dichiarazioni pericolosamente inesatte, negando l’esistenza della vulnerabilità che avevamo scoperto“, sostengono Carroll e Curry. “La TSA ha affermato che questa vulnerabilità non avrebbe potuto essere utilizzata per accedere a un checkpoint KCM poiché la TSA avvia un processo di verifica prima di emettere un codice a barre KCM a un nuovo membro“.
I ricercatori spiegano invece di aver dimostrato che non era necessario un codice a barre KCM per utilizzare i checkpoint KCM, poiché l’addetto alla sicurezza può inserire manualmente l’ID del dipendente della compagnia aerea. “Dopo aver informato la TSA di questa discrepanza, la sezione del loro sito web che menzionava l’inserimento manuale degli ID è stata rimossa, e non abbiamo ricevuto ulteriori risposte“.
Nonostante la tempestiva e responsabile condivisione dei dettagli tecnici sulla problematica, che hanno condotto alla successiva risoluzione della falla di sicurezza, la risposta delle Autorità competenti sembra davvero deludente. È essenziale che i sistemi di sicurezza, soprattutto quelli critici come KCM e CASS, siano sottoposti a rigorose verifiche di sicurezza e che le vulnerabilità siano affrontate con la massima serietà e trasparenza. Solo in questo modo sarà possibile garantire che la sicurezza dei voli rimanga impenetrabile e che episodi simili non possano mai ripetersi.
Credit immagine in apertura: iStock.com – Thaspol