Ein schwerer Mangel in der IT-Sicherheit am Flughafen Düsseldorf
Man könnte es für einen vorgezogenen Aprilscherz halten. Aber der Düsseldorf Flughafen zeigte wirklich das Kennwort des "Kontenadministrators" auf einem öffentlichen Bildschirm.
Ein Flughafen gilt immer mehr als ein Ort besonderer Sicherheitsmaßnahmen – zumindest was die Abfertigung der Passagiere angeht. Der Düsseldorfer Flughafen hat mir letztens bewiesen, dass man im Bereich der IT-Sicherheit nachlässig ist.
In einem der Abfertigungsräume erblickte ich beim Warten auf den Bus zum Flugzeug den unten abgebildeten Monitor, der eigentlich Ziel und Einsteigezeit zeigen sollte. Die Fehlermeldung zeigt eine Programmcodezeile, die nicht nur den Benutzernamen eines administrativen Kontos zeigt, sondern auch das vollständige Kennwort im Klartext. Zum Schutz der Flughafen-IT habe ich hier allerdings den mittleren Teil des Kennwortes unleserlich gemacht.
Die IT des Düsseldorfer Flughafen hat hier gegen drei elementare Programmiererregeln verstoßen:
- Keine Benutzername und Kennwörter im Programmcode fest verdrahten.
- Keine Kennwörter im Klartext ablegen.
- Dem Endbenutzer keine Programmzeilen im Fehlerfall anzeigen.
Auch wenn die Anwendung des Flughafens offensichtlich nicht in .NET geschrieben wurde, stellt sich in diesem .NET-Blog jetzt sicherlich bei dem ein oder anderen Entwickler die Frage, welche Instrumente .NET denn bietet, um diese Programmiererregeln einzuhalten. Hierzu möchte ich verweisen auf: ( [1])
- XML-basierte Anwendungskonfigurationsdateien [2]
- Die geschützte Konfiguration (Protected Configuration [3])
- Die Klasse System.Security.SecureString [4]
- Globale Fehlerbehandlung mit Global_Error [5] in ASP.NET, System.Windows.Forms.Application.ThreadException [6] für Windows Forms und System.AppDomain.UnhandledException [7] für Konsolenanwendungen.
URL dieses Artikels:
https://www.heise.de/-352135
Links in diesem Artikel:
[1] mailto:hs@ix.de
[2] http://msdn2.microsoft.com/en-us/library/1xtk877y(VS.71).aspx
[3] http://msdn2.microsoft.com/en-us/library/53tyfkaw.aspx
[4] http://msdn2.microsoft.com/en-us/library/system.security.securestring.aspx
[5] http://www.dotnetframework.de/dotnet/aspnet/ASPNET_global.asax.aspx
[6] http://msdn2.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx
[7] http://msdn2.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx
Copyright © 2008 Heise Medien