Mehr zu diesem und anderen aktuellen Security-Themen konnten Sie auf der LSZ-Konferenz "Softwaretesting & Qualitätskontrolle" am 9.11. in Wien erfahren. Bei den Downloads finden Sie den Vortrag von Michael Lausch.
Der Author, Michael Lausch, ist Test- und Security-Experte bei ANECON
Dieser Artikel erschien am 22.9. im Security Spezial der Computerwelt.
Testen wird durch den Einsatz moderner Techniken und Tools immer effizienter und genauer.
Gleichzeitig häuft sich die Zahl der Schreckensmeldungen über Sicherheitsprobleme in (Web-) Applikationen. ABER: Fehler, die zu solchen Sicherheitsproblemen führen, findet man beim Testen einfach nicht.
Beim Testen einer Applikation führt ein Tester Funktionen der Applikation mit definierten Eingabedaten aus und überprüft ob das Ergebnis der Spezifikation entspricht. Ist das der Fall, wird der Test als „bestanden“ markiert und der nächste Testfall wird durchgeführt. Tester achten oftmals nicht auf Seiteneffekte, die von der Applikation zusätzlich zu der spezifizierten Funktionalität ausgeführt werden. (siehe Grafik)
Wenn der Testplan vorsieht, dass eine Shopping Applikation die Bestellungen inklusive der Kreditkartendaten in einem Spreadsheet konformen Format zur Verfügung stellt, so achtet der Tester darauf, dass die Daten vollständig und nicht fehlerhaft sind. Dass diese Daten vor ihrer Verarbeitung aber zuerst auf einem Filesystem auf dem Server landen und dort uneingeschränkt lesbar sind, bleibt unerkannt und der Tester hat keine Chance dieses Problem jemals zu finden.
Diese Seiteneffekte sind also zusätzliche Funktionalitäten die eine Applikation ausführt, und die spezifizierten Funktionen in keiner Weise stören.
Das beispielhaft angeführte Sicherheitsproblem ist allerdings einfach zu entschärfen und sogar ganz vermeidbar. Normalerweise sind die Seiteneffekte viel subtiler, und als einzelnes Vorkommnis betrachtet nicht der Rede oder ein Error Ticket wert. In Ihrer Gesamtheit aber, wo ein Problem die Tür zur Ausnutzung mehrerer anderer Problemen öffnet, können sie gefährlich werden.
Darauf abzielende Sicherheitstests können nicht früh genug eingeplant werden. Im besten Fall werden sie schon während der Designphase gestartet, denn abhängig von den eingesetzten Technologien können solche Seiteneffekte erhebliche Mehrkosten verursachen.
Wenn zum Beispiel die eingesetzte Software zum Umwandeln der Daten in ein Spreadsheet konformes Format nur von einer Datei lesen kann, dann wird das Beheben des Sicherheitsproblems im erwähnten Beispiel schon schwieriger. Und Angriffe, die dieses File zu lesen versuchen, die von dem Rechner aus gestartet werden, der die Umwandlung durchführt, können unter Umständen gar nicht verhindert werden. Solange man noch am Zeichenbrett sitzt, reicht ein Radiergummi zur Korrektur, auf der Baustelle braucht man schon eine Abrissbirne. Dieser Leitsatz aus dem Baugewerbe ist auch für sicherheitsbewusste Softwareentwicklung gültig.