Sichere C/S-Architektur für E-Government (Fortsetzung)
- Sichere C/S-Architektur für E-Government
- Sichere C/S-Architektur für E-Government (Fortsetzung)
- Sichere C/S-Architektur für E-Government (Fortsetzung)
- Sichere C/S-Architektur für E-Government (Fortsetzung)
Eingabe-Validierung unabdingbar
Beide Angriffsmethoden lassen sich durch systematische und konsequente Prüfungen der Ein- und Ausgaben weitgehend ausschließen. Eingaben von Benutzern sollten dabei einen mehrstufigen Prüfungs- und Analyseprozess durchlaufen. Bereits in der Präsentationsschicht können die Eingaben auf syntaktische Korrektheit (Formatprüfung, Längenprüfung) hin kontrolliert werden. Mit einer Eingabe-Validierung, die den Eingabestring auf die zulässigen Zeichen (z.B. [0-9,-]) geprüft hätte, wäre der im Kasten beschriebene Angriff bereits verhindert worden. Werden die eingegebenen Daten an nachgelagerte Systeme übergeben, sollte anschließend eine System-spezifische Überprüfung folgen. Dabei sind insbesondere die Eingangsdaten auf für das jeweilige Backend zulässige Befehlsfolgen oder Escape-Sequenzen zu prüfen, um das Einschleusen von manipulativen Befehlen zu verhindern. Auch HTML-Fragmente in den Ein- oder Ausgaben sind gegebenenfalls an dieser Stelle erneut zu filtern, da HTML-Daten in der Mittel- und Persistenzschicht als Anzeichen für mögliche Cross-Site-Scripting-Angriffe zu werten sind. Zur Verhinderung des Einschleusens von betrügerischem SQL-Code hat sich darüber hinaus die Verwendung so genannter »Prepared Statements« und Speicherprozeduren bewährt. Im Gegensatz zu dynamisch erstellten SQL-Anweisungen, die erst zur Laufzeit aus vorgegebenen SQL-Fragmenten und Parametern komplett zusammengesetzt werden, sind bei diesen Techniken die SQL-Anweisungen in ihrer Struktur bereits zur Entwicklungszeit fest vorgegeben.
Wie das Beispiel im Kasten zeigt, steht zur Abwehr der vielfältigen Sicherheitsbedrohungen ein Bündel von Maßnahmen zur Verfügung, die im besten Fall schon bei der Erstellung der einzelnen Softwareapplikation berücksichtigt werden sollten. Zur Sicherheit von IT-Systemen gehören allerdings nicht nur präventive Maßnahmen wie die vorgestellten Design- und Architekturempfehlungen oder der Einsatz von Firewalls und Einbruchs-Sensoren, sondern vor allen Dingen durchdachte Sicherheits-Maßgaben, die auch den Mensch als mögliche Schwachstelle mit einbeziehen. Dr. Stephan Krüdener und Stefan Sauer sind Mitglieder der
Geschäftsleitung von INTESIO, einem Unternehmen der C1 Group.