Einführung in Penetrationstests für Entwickler
Kyle Suero
2. März 2022
0 Min. LesezeitEntwickler sind stolz auf ihre Arbeit. Wir bemühen uns, stets den bestmöglichen Code zu liefern und gefährliche Sonderfälle zu vermeiden. Deshalb wollen wir Fehler durch Tests und Code-Reviews erkennen und beheben, bevor sie ausgeliefert werden.
Bei der Sicherheit bleiben wir jedoch manchmal hinter den Erwartungen zurück. Fehlt einem Team die passende Sicherheits-Toolchain, kann das die Entwicklung ausbremsen, zusätzlichen Aufwand verursachen und gefährliche Sicherheitslücken bei Kunden und Endnutzern hinterlassen.
Zum Glück verfügen Penetrationstester (Pentester) über Tools und Prozesse, die uns die Arbeit erleichtern und unsere Anwendungen sicherer machen. In diesem Beitrag erfahren Sie, was Penetrationstests sind, welche Tools dabei zum Einsatz kommen und warum sie eine wertvolle Fähigkeit für Entwickler sind.
Was sind Penetrationstests?
Bei Penetrationstests versuchen Sicherheitsexperten auf ethische Weise, von außen in Systeme einzudringen, um Sicherheitsschwächen und Schwachstellen aufzudecken – und so die Versuche eines Angreifers zu simulieren, ein System oder eine Organisation zu kompromittieren. Ich sage immer: „Schwachstellen gibt es an den Grenzen der Funktionalität.“ Das bedeutet, dass sie manchmal entstehen, wenn ein Programm an die Grenzen seiner Möglichkeiten gebracht wird.
Wer Design, vorgesehenen Anwendungsfall und Implementierung eines Programms untersucht, erhält die nötigen Informationen für eine gründliche Sicherheitsbewertung. Bei solchen Aufträgen geht es darum, Schwachstellen zu finden, ihre Ausnutzbarkeit nachzuweisen und sie anschließend dem Kunden zu melden. Da Penetrationstests meist gegen Ende eines SDLC stattfinden, sind sie oft die letzte Gelegenheit, Schwachstellen vor der Auslieferung aufzudecken. In Kombination mit einem robusten DevSecOps-Programm bieten Penetrationstests eine weitere Erkennungsebene und ergänzen die bereits bestehenden Maßnahmen.
Was machen Penetrationstester?
Indem Pentester die Grenzen der Funktionalität ausloten, können sie mögliche Angriffswege ermitteln und Hinweise zur Behebung geben. Das hat sich als hervorragende Methode erwiesen, um komplexe Fehler im Kern Ihrer Anwendung aufzudecken.
Obwohl Code-Scanner viele Schwachstellen finden, übersehen sie häufig die komplexeren. Schwachstellen, die in der Funktionalität der Software angelegt sind oder aus der Geschäftslogik statt aus mangelhaften Programmierpraktiken entstehen, erfordern die tiefergehenden Erkennungsmöglichkeiten eines Penetrationstests. Auch Fälle von Fehl- und Missbrauch lassen sich bei solchen Tests aufdecken und bieten dem geprüften System so eine zusätzliche vorbeugende Schutzebene.
Was gehört zum Werkzeugkasten von Pentestern?
Pentester können auf viele verschiedene Methoden, Toolkits, Frameworks und Skripte zurückgreifen – etwa auf Fuzzer, Exploit-Kits, Scanner und einfache Dokumentvorlagen. In einem kommenden Beitrag stellen wir einige konkrete Tools vor, mit denen Entwickler eigene Penetrationstests durchführen können.
Warum sollten sich Entwickler für Penetrationstests interessieren?
Penetrationstests durchführen zu können, ist eine äußerst wertvolle Fähigkeit. Entwickler können hautnah erleben, was Sicherheitsforscher und Angreifer im Fall eines Sicherheitsvorfalls erreichen könnten – ein idealer Anreiz, sichere Programmierpraktiken zu priorisieren.
Als vertrautes Vergleichsbeispiel können wir uns das mutation-basierte Testen ansehen. Dabei soll Ihr Code auch nach kleineren Änderungen alle Tests bestehen. So lassen sich schwache Tests und fehlerhafter Code erkennen und Sie erfahren, wie Ihr Programm mit Fehlern umgeht. Das ähnelt den explorativen Tests von Pentestern. Sie passen ihre Angriffsmuster an das Ziel an, um bessere Ergebnisse zu erzielen und herauszufinden, was das Programm akzeptiert. Wenn Sie Funktionen auf diese Weise testen, verstehen Sie die Risiken Ihres Produkts besser.
Bauen Sie Ihre Pentesting-Kenntnisse aus
Penetrationstests eignen sich hervorragend, um die Risiken einer Software zu ermitteln. Mit dieser stark gefragten Fähigkeit können Entwickler besseren Code schreiben, ihr Unternehmen vor möglichen Sicherheitsvorfällen schützen und ein tieferes Verständnis für sichere Entwicklung entwickeln. In kommenden Beiträgen besprechen wir konkrete Pentest-Tools und -Methoden. Außerdem zeigen wir, wie Sie mit den verfügbaren Ressourcen drohende Gefahren erkennen und beheben können. Bleiben Sie dran!
