Penetration Testing ist nicht alles

Softwareentwicklung – ohne Sicherheitskonzept keine sichere Anwendung

Seite: 4/4

Firmen zum Thema

Penetrationstests

Bei einem Penetrationstest geht es darum, Angriffe zu simulieren und die Sicherheit der Applikation abschließend zu prüfen. Damit sollten Personen oder Gruppen betraut werden, die nicht am bisherigen Software-Entwicklungsprozess beteiligt waren.

Durch die Unabhängigkeit, also eine unbefangene Sicht auf die Applikation, wird von neuem versucht, Schwachstellen im gesamten Design der Applikation zu identifizieren. Penetrationstests sollten immer von Experten durchgeführt werden, die über eine langjährige Erfahrung und ein breites Wissen um Angriffstechniken verfügen.

Im Gegensatz zur Designphase kommt es nicht darauf an, konstruktiv für alle Sicherheitsanforderungen geeignete Sicherheitsmaßnahmen zu definieren. Vielmehr sollen die Tester auf destruktive Weise die Schwächen der Applikation herausfinden, indem sie die Widerstandsfähigkeit angenommener Sicherheitsfunktionen testen.

In dieser Testphase kommen spezielle Tools zum Einsatz, die den Datenverkehr analysieren und in geeigneter Weise manipulieren können, z.B. Veränderung von Werten, die durch die Applikation fest vorgegeben werden. Darüber hinaus gibt es Tools, die die Applikation mit einer Vielzahl von zufällig generierten Eingaben bombardieren um die Robustheit und Wirksamkeit der Sicherheitsmaßnahmen testen.

Die fünf Phasen des Penetration Testing

Zum Thema Penetrationstests gibt es auch eine BSI-Studie mit dem Titel „Durchführungskonzept für Penetrationstests“, die als Orientierung sehr nützlich ist. Die Studie beschreibt fünf entscheidende Schritte: Vorbereitung, Informationsbeschaffung und -auswertung (Blackbox/Whitebox), Bewertung der Informationen/Risikoanalyse, aktive Eindringversuche und Analyse.

In der Vorbereitungsphase werden die Testparameter abgesteckt und definiert. Das beinhaltet die folgenden Aspekte: Informationsbasis (Blackbox/Whitebox), Aggressivität (passives Scannen, vorsichtig, systematisch, aggressiv), Umfang (betroffener Bereich), Vorgehensweise (verborgen/sichtbar), Technik (Netzwerkzugriff, andere Kommunikationskanäle, physikalischer Zugriff, Social Engineering) und Ausgangspunkt (extern/intern).

In der Informationsbeschaffungs- und Auswertungsphase gilt es, so viele relevante Informationen wie möglich zusammenzutragen. Hierbei müssen alle Services, Prozesse, die genutzten Geräte und Komponenten, die Netzwerkstruktur, die genutzte Technologie und die Frameworks ermittelt werden. Die gesammelten Informationen werden anschließend zusammengeführt, um potenzielle Schwachstellen und daraus resultierende Angriffsziele für Hacker zu identifizieren. Dazu werden automatisierte und manuelle Methoden, sowie verschiedene Tools verwendet.

Abschließend werden die Ergebnisse mit Hilfe festgelegter Kriterien danach bewertet, wie einfach es für einen Angreifer ist, die jeweilige Schwachstelle zu finden und sie für einen erfolgreichen Angriff zu nutzen. Diese Bewertung soll zu einer objektiven Einschätzung der jeweiligen Bedrohung führen. Als Basis für die Bewertung empfiehlt es sich, einen bewährten Kriterienkatalog wie die Common Methodology for Information Technology Security Evaluation (CEM) zu nutzen.

Die Ergebnisse der gesamten Testphase müssen denen der durchgeführten Softwarerisiko- und Anforderungsanalyse hinzugefügt werden. Nun lässt sich abschätzen, ob weitere Sicherheitsmaßnahmen notwendig sind. Spätestens jetzt zeigt sich, ob das Sicherheitskonzept sorgfältig ausgearbeitet und konsequent durchgeführt worden ist. Wenn ja, dann haben Sie einen großen Schritt dahin gemacht, die neue Applikation sicher zu machen.

Markus Wutzke

Markus Wutzke ist (ISC)²-zertifizierter CSSLP und Experte für sichere Software- und Systementwicklung.

(ID:2046092)