Sicherheitsexperten haben eine schwerwiegende Sicherheitslücke im System FlyCASS entdeckt. Sie ermöglicht, die Rechte von Flugpassagieren so zu ändern, dass sie Zugang zu Bereichen erhalten, die normalerweise Flugzeugcrews vorbehalten sind.
Die Zugangsrechte der Mitglieder von Flugzeugcrews regelt das Known Crewmember Program (KCM) der US-amerikanischen Transportsicherheitsbehörde TSA [1]. Um Zugang zu erhalten, scannen die Mitarbeiter einen KCM-Barcode oder geben eine Mitarbeiternummer ein, die das System dann mit den Daten der Fluggesellschaft abgleicht. Stimmen die Daten überein, erhalten die Crewmitglieder ohne zusätzliche Sicherheitsüberprüfungen Zutritt zu für gewöhnliche Passagiere gesperrten Bereichen. Ein ähnliches System, das Cockpit Access Security System (CASS), regelt den Zugang von Piloten, die den Cockpit-Jumpseat für interne Flüge oder Reisen nutzen wollen.
Die Attacke der Forscher setzte am FlyCASS-Portal an, das kleineren Fluggesellschaften eine Verbindung zum zentralen CASS-System bietet. Darüber konnten die Forscher auch auf das KCM-System zugreifen. Durch eine SQL-Injection war es ihnen möglich, die Daten von Besatzungsmitgliedern verschiedener US-Fluggesellschaften einzusehen und zu manipulieren. Die Angreifer konnten sich sogar als Administrator der Frachtfluggesellschaft Air Transport International anmelden. Das verschaffte ihnen Zugang zu den Listen von Piloten und Flugpersonal, die sie nach Belieben ändern konnten. Darüber hinaus waren sie in der Lage, neue virtuelle Mitarbeiter hinzuzufügen und ihnen umfassende Zugangsrechte zu gewähren.
Der SQL-Injection-Fehler trat beim Verarbeiten des Benutzernamens auf, den das System ohne zusätzliche Kontrolle direkt in den SQL-Query-String übernahm. Im Zuge einer SQL-Injection-Attacke fügt ein Angreifer schädlichen Code in eine SQL-Datenbank ein, indem er solche unsicheren Eingabefelder in Webanwendungen ausnutzt. Auf diesem Weg lässt sich die Anwendung dazu bringen, unerwünschte SQL-Befehle auszuführen. Die wiederum dienen dazu, Daten aus der Datenbank auszulesen, zu manipulieren oder sogar zu löschen.
Um SQL-Injections grundsätzlich zu vermeiden, sollte eine Anwendung die Eingaben von Nutzern niemals direkt in SQL-Abfragen einfügen. Stattdessen empfiehlt es sich, parametrisierte Abfragen oder vorbereitete Anweisungen zu verwenden, die den SQL-Code von den Eingaben trennen und so das Ausführen bösartigen Codes verhindern. Zusätzlich gilt es, alle Eingaben zu validieren und zu filtern, damit das System nur erwartete Daten akzeptiert. Diese Methoden sichern die Anwendung gegen SQL-Injection-Angriffe ab. Das FlyCASS-Portal ergriff allerdings keine dieser Vorsichtsmaßnahmen.
Die Forscher griffen bei der Analyse der Schwachstelle unter anderem auf Sqlmap [2] zurück. Dieses Open-Source-Tool verwenden Security-Spezialisten, um SQL-Injection-Schwachstellen in Webanwendungen zu erkennen und auszunutzen. Es ermöglicht das Automatisieren von Tests, das Extrahieren von Daten, das Erlangen eines Zugangs und die Manipulation von Datenbanken. Sqlmap ist bei Sicherheitsexperten und Penetrationstestern beliebt, um Schwachstellen in Anwendungen schnell und effektiv zu identifizieren. Grundsätzlich sollte man neue SQL-Anwendungen immer damit prüfen, um SQL-Injection-Attacken und weitere Fehler in der Applikation auszuschließen.
Mittlerweile wurde die Sicherheitslücke im FlyCASS-Portal geschlossen, die geschilderten Attacken gegen KCM und CASS sind nicht mehr möglich. (jcb)
Infos
- TSA: https://ian.sh/tsa
- Sqlmap: https://sqlmap.org






