ADMIN
2024
05
2024-04-29T12:00:00
Zero Trust
PRAXIS
060
Security-Tipp
Sicherheit
Dokumentation
Healthchecks für Automatisierung
Lebenszeichen
von Dr. Matthias Wübbeling
Veröffentlicht in Ausgabe 05/2024 - PRAXIS
Bei Pentests kommen oft zahlreiche Tools zum Einsatz. Dann gilt es, die Ausgaben der unterschiedlichen Werkzeuge an den finalen Bericht anzupassen. Mit dem Open-Source-Framework Dradis erstellen Sie Pläne zur Durchführung der Tests in einem Team und vereinheitlichen ohne großen Aufwand die Reports unterschiedlicher Tools zu einem Gesamtbericht. Dieser Security-Tipp führt in die Verwendung des Frameworks ein.

Die Grundlage guter Zusammenarbeit ist in den meisten Fällen, auch außerhalb der IT, eine gute Kommunikation und die Dokumentation von Prozessen, Ereignissen und Ergebnissen. Dafür existieren heute unzählige Tools und Frameworks, häufig spezialisiert auf bestimmte Arbeitsbereiche. Für Teams im Bereich der IT-Sicherheit entwickelt das Unternehmen Security Roots aus London die Open-Source-Software Dradis [1]. Hierbei handelt es sich um ein Framework für das Erstellen einheitlicher Berichte, vor allem bei Sicherheitsprüfungen. Mit Dradis bereiten Teams etwa das Pentesting von IT-Infrastrukturen vor und organisieren die Durchführung wie Auswertung.
Häufig verwenden Security-Experten während der Durchführung von Pentests viele unterschiedliche Tools mit individuellem Schwerpunkt. Dabei unterstützen einige dieser Werkzeuge zwar standardisierte Ausgabeformate der Ergebnisse, für einen umfassenden Bericht aller Tests müssen sie diese aber selbst zusammentragen und organisieren. Einheitliche Standards für die Organisation oder das Erstellen von Berichten aus den einzelnen Ergebnissen gibt es nicht. Genau dabei versprechen die Entwickler von Dradis Unterstützung.
Dradis stellt eine Webanwendung als zentrale Schnittstelle für den Ablauf von Pentests bereit. Die Community-Version als kostenfreie Variante erlaubt pro Instanz die Arbeit an einem Projekt für mehrere Mitarbeiter. Mit unterschiedlichen Plug-ins stellen Sie die Daten gängiger Pentesting-Tools innerhalb des Projekts bereit. Darunter finden Sie auch Erweiterungen für Metasploit, Nessus, Nikto oder NMAP. Einige der Werkzeuge kennen Sie bereits aus vorigen Security-Tipps.
Die Grundlage guter Zusammenarbeit ist in den meisten Fällen, auch außerhalb der IT, eine gute Kommunikation und die Dokumentation von Prozessen, Ereignissen und Ergebnissen. Dafür existieren heute unzählige Tools und Frameworks, häufig spezialisiert auf bestimmte Arbeitsbereiche. Für Teams im Bereich der IT-Sicherheit entwickelt das Unternehmen Security Roots aus London die Open-Source-Software Dradis [1]. Hierbei handelt es sich um ein Framework für das Erstellen einheitlicher Berichte, vor allem bei Sicherheitsprüfungen. Mit Dradis bereiten Teams etwa das Pentesting von IT-Infrastrukturen vor und organisieren die Durchführung wie Auswertung.
Häufig verwenden Security-Experten während der Durchführung von Pentests viele unterschiedliche Tools mit individuellem Schwerpunkt. Dabei unterstützen einige dieser Werkzeuge zwar standardisierte Ausgabeformate der Ergebnisse, für einen umfassenden Bericht aller Tests müssen sie diese aber selbst zusammentragen und organisieren. Einheitliche Standards für die Organisation oder das Erstellen von Berichten aus den einzelnen Ergebnissen gibt es nicht. Genau dabei versprechen die Entwickler von Dradis Unterstützung.
Dradis stellt eine Webanwendung als zentrale Schnittstelle für den Ablauf von Pentests bereit. Die Community-Version als kostenfreie Variante erlaubt pro Instanz die Arbeit an einem Projekt für mehrere Mitarbeiter. Mit unterschiedlichen Plug-ins stellen Sie die Daten gängiger Pentesting-Tools innerhalb des Projekts bereit. Darunter finden Sie auch Erweiterungen für Metasploit, Nessus, Nikto oder NMAP. Einige der Werkzeuge kennen Sie bereits aus vorigen Security-Tipps.
Erste Gehversuche im Container
Um Dradis in Aktion zu betrachten, gibt es unterschiedliche Möglichkeiten zur Installation. Um erst einmal einen flüchtigen Blick darauf zu werfen, verwenden wir das bereitgestellte Docker-Image:
docker run -it --rm -p 3000:3000 dradis/dradis-ce
Natürlich können Sie auch die Quellen aus dem Git-Repository [2] laden und die Software auf Ihrem lokalen System installieren. Sollten Sie Zugriff auf Heroku oder Digital Ocean haben, installieren Sie Dradis dort auf Knopfdruck direkt aus der Git-Dokumentation.
Wenn Sie nun die URL "http://localhost: 3000" in Ihrem Webbrowser öffnen, müssen Sie zunächst ein Passwort festlegen. Das ist in der Community-Edition das Teamkennwort, mit diesem authentifizieren sich anschließend alle Teammitglieder für den Zugriff auf das Projekt. Wenn Sie sich zunächst umschauen möchten, lassen Sie im zweiten Schritt die Instanz mit Beispieldaten füllen. Wählen Sie dafür den Button "No, I'm a new user".
Sobald der Import der Beispieldaten fertig ist, werden Sie zum Loginformular weitergeleitet. Hier wählen Sie nun einen individuellen Benutzernamen und loggen sich mit dem zuvor gewählten Teampasswort ein. In unseren Tests erhielten wir jeweils beim ersten Versuch einen Ses-sion-Timeout-Fehler. Versuchen Sie es einfach direkt noch einmal und gedulden sich anschließend kurz, der erste Abruf des Dashboards benötigt einen kurzen Moment. Dieses zeigt Ihnen für das Beispielprojekt eine Zusammenfassung der aktuellen Issues, des Fortschritts des Projekts und der Einzelaktivitäten.
Kanban-Board
Wenn Sie nun auf den Link "Getting started with Dradis Checklist" in der Mitte des Projektforschritts klicken, gelangen Sie zu einem simplen Kanban-Board unter dem Menüpunkt "Methodologies". Hier modellieren Sie den systematischen Ablauf Ihrer Pentestings in einer Methodik, die dann in Form einzelner Karten des Boards abgearbeitet wird. Wenn Sie für Ihr eigenes Vorgehen weitere Listen benötigen, etwa für einen "Backlog" oder eine Liste "Blocked / Need input" für Arbeiten, die momentan noch nicht weitergehen können, legen Sie diese einfach an.
Wenn Sie eine Karte auswählen und über "Edit" den Bearbeitungsmodus öffnen, können Sie die Aufgabe einem Mitglied Ihres Teams zuweisen. Das hilft zwar bei der Planung, mangels Übersicht der einem selbst zugewiesenen Aufgaben aber nicht unbedingt bei der Bearbeitung. Insgesamt bietet das Methodology-Board die grundlegenden Funktionen, einen Funktionsumfang wie etwa bei Trello suchen Sie hier jedoch vergebens. Nehmen Sie sich dennoch im Anschluss ruhig die Zeit, die Karten der Reihe nach abzuarbeiten, um sich noch mehr mit Dradis zu beschäftigen.
Findings bearbeiten
Für den nächsten Schritt in unserem Überblick wählen Sie im Menü auf der linken Seite den Eintrag "All Issues". Sie gelangen zu einer tabellarischen Übersicht der im System vorhandenen Issues, das sind die Findings in Ihrem Pentest angereichert um Handlungsempfehlungen für die verantwortlichen Administratoren. Um die Vorauswahl der Tabellenfelder zu ändern, klicken Sie auf den kleinen Pfeil neben "Columns" und wählen als weitere Spalte etwa "Description" mit aus. Dann erhalten Sie für die einzelnen Einträge deutlich mehr Informationen. Ein Rating der Kritikalität Ihrer Findings erreichen Sie in Dradis über entsprechende Tags. Davon gibt es einige bereits vorkonfiguriert, es lassen sich zudem eigene Tags anlegen.
Klicken Sie auf einen beliebigen Eintrag, um weitere Detailinformationen zu einem Finding zu erhalten, etwa den für Apache-Server in der Version 1.3. Die Dokumentation beinhaltet ausführliche Informationen und auch Vorschläge zur Lösung der Probleme. Unter dem Tab "Evidence" erhalten Sie entsprechende Nachweise, in der Regel Logdaten des Pentesting-Tools, und einen Hinweis auf die Netzwerkknoten, auf denen die Schwachstelle existiert. In diesem Beispiel ist das etwa der Webserver auf der IP-Adresse 10.0.155.160.
Die beiden Tabs für "CVSS" und "DREAD" erlauben die weitere Angabe von Ratings für die Schwere der Verwundbarkeit entsprechend dieser Spezifikationen. Gehen Sie noch einmal zurück zum ersten Tab und scrollen Sie auf diesem ganz nach unten. In der Fußzeile erkennen Sie, dass der Report nicht von einem Analysten eingetippt wurde, sondern als Autor das "Qualys upload plugin" angegeben ist – also direkt aus der Ausgabe des benutzten Werkzeugs importiert.
Erstellen von Findings
Im nächsten Schritt probieren wir die Upload-Plug-ins für das Erstellen von Issues aus. Die unterschiedlichen Erweiterungen von Dradis helfen Ihnen dabei, die Ergebnisse externer Werkzeuge Ihres Pentests zu importieren. Wenn Sie gerade kein solches Ergebnis zur Hand haben, laden Sie das Beispielergebnis der Burp-Suite unter [3] herunter – speichern Sie die Seite einfach als HTML-Datei ab. Klicken Sie anschließend im Menü oben rechts auf "Upload", um den Upload-Manager zu öffnen.
Wählen Sie nun unter Schritt 1 das Plug-in "Dradis::Plugins::Burp::Html", lassen Sie mit der Auswahl von Schritt 2 auf "Draft" den Zustand des Issues im Entwurfsmodus und wählen dann im 3. Schritt die zuvor heruntergeladene Datei aus. Nach dem Upload können Sie in der Output-Konsole den Import verfolgen. Wenn dieser beendet ist, klicken Sie noch einmal auf "All Issues", nun sehen Sie die Beispieldaten für den "grandjuice.shop". Als Analyst würden Sie diese jetzt bearbeiten und für Ihren eigenen Bericht fertigstellen. Anschließend setzen Sie beim Speichern den Status "Ready for Review", sodass der Bericht nach einem Qualitäts-check durch einen Ihrer Kollegen veröffentlicht werden kann.
Bericht erzeugen
Nachdem Sie und Ihre Kollegen alle Findings eingetragen haben, geht es ans Erzeugen des Abschlussberichts. Das machen Sie über den Export-Manager, den Sie über den Menüpunkt "export" im oberen Menü erreichen. Als Standard ausgewählt ist der HTML-Export mit einem der beiden vorgefertigten Dradis-Templates.
Natürlich lassen sich mit etwas HTML-Kenntnissen auch eigene Templates anlegen und über den Ordner ./templates/ reports/html_export in Dradis anbieten. Beim Klick auf "Export" beschwert sich unsere Instanz über fehlende Zugriffsrechte zum Schreiben des Reports. Das scheint ein Fehler mit dem Docker-Image zu sein. Finden Sie mit docker ps heraus, wie ihr Container heißt und lösen Sie das Problem mit dem folgenden Kommando:
docker exec -ti -u root <containername> chown rails /app/app/views/tmp
Anschließend gelingt Ihnen der Export ohne Fehlermeldung. Die praktischen Exportziele zu Word- und Excel-Dateiformaten sind den Benutzern der Pro-Version vorbehalten. Mit eigenen HTML-Tem-plates erreichen Sie aber eine ähnlich gute Vorbereitung für die Fertigstellung Ihres Berichts.
Fazit
Der Security-Tipp in diesem Monat hat Ihnen Einblicke in die grundsätzliche Benutzung von Dradis gegeben. Auch wenn die Community-Edition an manchen Stellen funktional etwas eingeschränkt ist, eignet sie sich durchaus für die gemeinsame Vorbereitung, Durchführung und Berichterstattung von Penetrationstests.
Tatsächlich lassen sich darüber hinaus auch weitere Anwendungsfälle für Dradis finden und mit etwas Programmieraufwand entwickeln Sie zusätzliche Plug-ins zum Import der Reportdaten von Anwendungen, die Sie regelmäßig verwenden, und Templates zum Export von Berichten. Mehrere Projekte lassen sich durch verschiedene Instanzen dank Docker und Co. einfach realisieren.
(dr)