In this article
Grundlagen des Black-Box-Tests
Angriffe bei Sicherheitstests simulieren
Black-Box-Tests erklärt
Hochwertige und sichere Anwendungen zu entwickeln, gehört zu den größten Herausforderungen der Softwareentwicklung. Sicherheitstests helfen dabei, beides zu erreichen, indem sie potenzielle Fehler und Sicherheitslücken in Software aufdecken. Black-Box-Tests sind ein guter Einstieg, da sie simulieren, wie ein Angreifer Schwachstellen in einem System ausnutzen würde, um Zugriff zu erhalten.
In diesem Artikel erfahren Sie alles Wissenswerte über Black-Box-Tests, einschließlich Testarten und -techniken.
Was ist Black-Box-Testing?
Black-Box-Testing ist eine Softwaretestmethode, für die keine Kenntnisse darüber erforderlich sind, wie eine Anwendung aufgebaut ist. Dabei kommen verschiedene Testverfahren zum Einsatz, um Schwachstellen oder Sicherheitslücken im Produkt aufzudecken und zu simulieren, wie ein echter Angreifer nach ausnutzbaren Lücken in der Software suchen würde.

4 Arten von Black-Box-Tests
Sicherheitsexperten nutzen verschiedene Black-Box-Testtechniken – sowohl automatisierte als auch manuelle –, um die Sicherheit eines Systems zu bewerten. Sehen wir uns einige der beliebtesten Arten von Black-Box-Tests an.
1. Schwachstellenscans
Um eine Anwendung zu hacken, muss ein Angreifer zunächst verstehen, wie sie funktioniert. Schwachstellenscans bieten Hackern eine einfache Möglichkeit, ein System kennenzulernen und Sicherheitslücken aufzudecken. Sie sind aber auch ein wichtiger Bestandteil der Anwendungssicherheit, denn damit können Sie die Rolle eines Hackers übernehmen und solche Angriffe verhindern.
Automatisierte Black-Box-Testsoftware wie ZAP deckt oft Schwachstellen auf, die sich leichter erkennen lassen. Erfahrene Sicherheitsexperten können diese Tests jedoch durch manuelle Schwachstellentests ergänzen, um Lücken aufzudecken, die bei automatisierten Tests möglicherweise übersehen wurden. Sie können auch verschiedene Tools gemeinsam nutzen, um nach Schwachstellen zu suchen, zum Beispiel unterstützte Tools in Kali Linux oder Chrome DevTools zur Untersuchung von Webanwendungen.
2. Penetrationstests
Penetrationstests simulieren realistische Angriffsszenarien, in denen Hacker versuchen, auf Daten zuzugreifen und diese zu sammeln, um schädliche Aktionen auszuführen und das System zu kompromittieren.
Penetrationstests werden üblicherweise manuell durchgeführt und stützen sich auf die Erfahrung der Tester. So lässt sich beispielsweise die API testen, über die verfügbare Produkte abgerufen werden, die Nutzer kaufen können. Dazu müssen Sie verschiedene Eingaben testen, um ungewöhnliche Antworten oder angezeigte Stacktraces aufzudecken.
Penetrationstests lassen sich auch automatisiert mit Open-Source-Tools wie Powershell Suite durchführen.
3. Ermittlung der Netzwerktopologie
Die Ermittlung der Netzwerktopologie hilft dabei, den aktuellen Netzwerkaufbau Ihres Systems zu verstehen. Dazu gehört, wie die Elemente im Netzwerk miteinander verbunden sind und interagieren. So lassen sich potenziell gefährdete Elemente im Netzwerk identifizieren und Risiken mindern.
4. Risikobewertung
Diese besondere Art von Sicherheitstest erfordert nur geringe technische Kenntnisse über das System und bezieht sich eher auf geschäftliche Aspekte: auf Anforderungen, die Sicherheitsrisiken bergen könnten. Eine Risikobewertung ist bereits in den frühesten Phasen der Produktentwicklung möglich – von der Konzeption bis zur Sprintplanung des Softwareentwicklungsteams. So können Sicherheitsprobleme frühzeitig im SDLC verhindert werden.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
Beispiel für einen Black-Box-Test
Sehen wir uns ein Beispiel für einen Black-Box-Test an.
Klonen Sie zunächst dieses Repository in Ihre lokale Umgebung: https://github.com/appsecco/dvna. Dadurch wird die Beispielanwendung mit mehreren ausnutzbaren Sicherheitslücken gestartet:

Führen Sie zum schnellen Einrichten des Beispiels den folgenden Befehl aus:
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqliteAutomatisierte Schwachstellenscans mit ZAP
Für Black-Box-Tests verwenden wir ZAP. Daher müssen Sie ZAP installieren.
Zunächst führen wir automatisierte Scans durch, um die Website auf Schwachstellen zu prüfen. Nach Abschluss des Scans erhalten Sie eine Liste mit Warnmeldungen zu den Schwachstellen sowie einer Beschreibung und einem Lösungsvorschlag für jede einzelne.

Manuelle SQL-Injection
Automatisierte Scans lassen sich einfach durchführen und sind ein guter Einstieg in Sicherheitstests. Einige Sicherheitsaspekte erfordern jedoch manuelle Tests. Ein Beispiel dafür ist SQL-Injection. Führen Sie die einfache SQL-Abfrage ' or '1'='1 aus, um in der Anwendung zu suchen:

Hier sehen Sie, wie sich dies auf die Benutzeroberfläche auswirkt, die allen Systemnutzern angezeigt wird. Hacker könnten dadurch Nutzerdaten des Systems sammeln oder sogar Kundendaten an Konkurrenzunternehmen verkaufen.
Der Black-Box-Testprozess
Black-Box-Tests prüfen Systeme auf ausnutzbare Sicherheitsprobleme, ohne dass Sie auf den Produktcode zugreifen oder genau wissen müssen, wie die Anwendung entwickelt wird. Nach Abschluss des Tests erhalten Sie eine Liste von Sicherheitsfehlern, die überprüft, priorisiert und behoben werden müssen.
Die nächsten Schritte:
Das Entwicklungsteam sucht nach Lösungen für jedes Sicherheitsproblem.
Die Sicherheitsanalysten überprüfen, ob die Fehler tatsächlich behoben wurden.
Das Entwicklungsteam führt Regressionstests durch, um sicherzustellen, dass alles funktioniert und durch die Korrektur keine bestehenden Funktionen beeinträchtigt wurden.
4 Black-Box-Testtechniken
Sicherheitstests können als Kunst betrachtet werden, insbesondere Black-Box-Tests. Entscheidend ist dabei, kreativ zu sein und wie ein Hacker zu denken. Es gibt verschiedene Black-Box-Testtechniken, die Sie anwenden können.
1. Fuzzing
Beim Fuzzing werden API-Dienste oder Weboberflächen mit zufälligen oder speziell angepassten Eingaben auf das Systemverhalten geprüft. Wird ein ungewöhnliches Verhalten erkannt, muss das Entwicklungsteam die Ursache ermitteln und eine Lösung finden.
2. Syntax-Tests
Syntax-Tests suchen nach ungültigen Eingaben, etwa einer fehlerhaften Syntax. Außerdem wird geprüft, ob das System sensible Daten zu Datenbanken oder Kundeninformationen preisgibt, die Hacker ausnutzen könnten.
3. Exploratives Testen
Exploratives Testen ist eine gängige Black-Box-Analysetechnik. Sicherheitsanalysten lernen dabei im Verlauf der Sicherheitstests mehr über das System, indem sie nach verborgenen Sicherheitsproblemen suchen. Entdeckte Sicherheitsfehler werden laufend gemeldet, zusammen mit Vorschlägen zu ihrer Behebung.
4. Datenanalyse
Bei Datenanalysen werden Protokolle, Antworten von API-Backend-Diensten oder Weboberflächen auf rechtswidrige Inhalte oder solche geprüft, die für Angriffe auf das System oder zum Sammeln von Nutzerdaten verwendet werden könnten. Für eine zuverlässige und effiziente Datenanalyse benötigen Sie ein gutes Monitoring- und Debugging-System, das Protokolle erfasst und Daten visualisiert. Möglicherweise müssen Sie außerdem Regeln für Sicherheitswarnungen einrichten, um bei auftretenden Sicherheitsproblemen sofort benachrichtigt zu werden.
Black-Box- und White-Box-Tests im Vergleich
Bei Sicherheitstests kann es erforderlich sein, sowohl Black-Box- als auch White-Box-Tests durchzuführen. Sehen wir uns die Unterschiede zwischen zwei der beliebtesten Black-Box- und White-Box-Testmethoden an: Dynamic Application Security Testing (DAST) und Static Application Security Testing (SAST).
Black-Box-Methode: Dynamic Application Security Testing (DAST)
Dynamische Tests ohne Zugriff auf den Quellcode der Anwendung und ohne dessen Analyse.
Manuell (durch Sicherheitsexperten) oder automatisiert durchführbar.
Die Anwendung wird von außen getestet, ohne Zugriff auf ihre interne Softwarestruktur.
Es ist schwierig sicherzustellen, dass die gesamte Codebasis abgedeckt wurde.
In der Regel teurer, da die Anwendung für die Tests bereitgestellt werden muss.
White-Box-Methode: Static Application Security Testing (SAST)
SAST dient der Analyse des Quellcodes.
Wird in der Regel vor der Kompilierung des Codes ausgeführt.
Wird häufig mit automatisierten SAST-Tools durchgeführt.
Kann 100 % der Codebasis analysieren.
Sicherheitsprobleme lassen sich kostengünstiger beheben, da sie früher im Softwareentwicklungszyklus erkannt werden.
Ob Black-Box-Tests, White-Box-Tests oder beide Testarten am besten zu Ihren Anforderungen passen, hängt vom Anwendungsfall ab.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
Fazit
Black-Box-Tests sind ein wichtiger Bestandteil der Anwendungssicherheit. Ohne Kenntnisse über die interne Architektur der Software bietet diese Testmethode einen objektiven, praxisnahen Blick auf Ihre Anwendung. Auch wenn sie möglicherweise nicht die gesamte Codebasis abdecken, stärken sie in Kombination mit anderen Sicherheitstestmethoden Sicherheitsteams und helfen ihnen, hochwertige und sicherere Produkte bereitzustellen.
Mit entwicklerorientierten Tools und erstklassiger Sicherheitsintelligenz hilft Snyk Entwicklern, hochwertige Produkte schneller bereitzustellen und dabei Ihren Code, Open-Source-Bibliotheken, Container und Infrastructure as Code zu schützen. Buchen Sie noch heute eine Demo.