Das manuelle Lesen von Code ist ein zeitaufwändiger Prozess. Außerdem ist er fehleranfällig, da wichtige Details leicht übersehen werden können. Als Entwickler und Penetrationstester müssen wir einen Weg finden, diesen Prozess zu automatisieren. SAST ist eine Technik, die uns bei dieser Aufgabe helfen kann. Es kann nur für Anwendungsfälle mit Zugriff auf den Quellcode für Open-Source-Projekte oder White-Box-Penetrationstests verwendet werden. Es kann Ihnen jedoch dabei helfen, einige leicht zu erreichende Ziele zu finden und Zeit zu sparen. SAST ist kein Allheilmittel. Was ist SAST? Statische Anwendungssicherheitstests (SAST) sind eine Untergruppe der statischen Codeanalyse, die verwendet wird, um die Sicherheit und Zuverlässigkeit des Codes zu erhöhen. SAST erkennt alte Abhängigkeiten, geheime Erkennung, logische Fehler, die zu Schwachstellen führen, und mehr. SAST umfasst Tests, die sich sekundär auf die Cybersicherheit auswirken, wie z. B. visuelle Codekomplexität, Codemehrdeutigkeit und nicht intuitive Praktiken, die zu Schwachstellen führen können. Werkzeuge in der Praxis SAST-Tools sind normalerweise Regex-Pattern-Matcher auf Steroiden, die nach bekannten Schwachstellen im Code suchen. Ein SAST-Tool könnte beispielsweise nach der Verwendung von , oder in Python-Code suchen. Diese Funktionen können zum Ausführen beliebigen Codes verwendet werden. eval exec pickle Hacking und SAST Ich würde meinen Ansatz zu SAST in drei Kategorien unterteilen: : Ich verwende Tools wie , um Angriffsmethoden im Code zu finden. Normalerweise findet man dort leicht zu erreichende Ziele wie nicht bereinigte Eingaben, schlechte Kryptografie oder anfällige Bibliotheken. Übrigens hat die Semgrep PRO-Version mehr Regeln; sie ist kostenlos, wenn nicht mehr als 10 Entwickler am Projekt beteiligt sind. Schwachstellenerkennung Semgrep und , Bandit Nodejsscan : , oder können Ihnen dabei helfen, Geheimnisse im Code zu finden. Dies ist wichtig, da Geheimnisse dazu verwendet werden können, Berechtigungen zu erhöhen oder auf vertrauliche Daten zuzugreifen. Normalerweise werden im Code Datenbankverbindungszeichenfolgen, API-Schlüssel oder Passwörter gespeichert. Geheimniserkennung Gitleaks Trufflehog Grep : Tools wie oder können Ihnen dabei helfen, Fehlkonfigurationen zu finden. Fehlkonfigurationen befinden sich normalerweise in „Infrastructure as Code“-Dateien (IaC), können aber auch im Code selbst enthalten sein. Ein Beispiel wäre eine falsch konfigurierte Docker-Compose-Datei, die eine Datenbank dem Internet zugänglich macht. Zum Scannen von Dockerfiles empfehle ich eine Kombination aus und . Fehlkonfigurationen Checkov Trivy Hadolint Grype Weitere Informationen: https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker SAST-Tools sind nicht perfekt. Sie liefern falsche Positiv- und Negativergebnisse. **Im Vergleich zum willkürlichen Ausnutzen bestimmter Anwendungen sparen sie jedoch viel Zeit. Ich habe SAST-Tools bei meinen Penetrationstests und Wettbewerben verwendet. Sie halfen mir beim Einstieg in die Codebasis und gaben mir Hinweise, wo ich nach Schwachstellen suchen sollte. So trainieren Sie mit SAST beim Hacken Ich empfehle, mit zu beginnen. Diese Plattform bietet Herausforderungen, wie z. B. das Abrufen von Quellcode und das Auffinden von Schwachstellen. Nutzen Sie diese dann auf einer echten Maschine aus. Dies ist eine großartige Möglichkeit, den praktischen Einsatz von SAST-Tools zu erlernen. Hack The Box Oder wenn Sie Entwickler sind, können Sie SAST-Tools in Ihrer CI/CD-Pipeline verwenden. Auf diese Weise können Sie sich mit den Tools und ihren Ergebnissen vertraut machen. Gleichzeitig verbessern Sie die Sicherheit Ihrer Anwendung. Empfehlungen des Reiseführers Ich habe eine Liste mit Anleitungen zusammengestellt, die Ihnen den Einstieg in SAST und die Erkennung von Geheimnissen erleichtern. Diese Anleitungen wurden im Rahmen meiner Abschlussarbeit geschrieben und sind ein guter Ausgangspunkt für alle, die sich für SAST-Tools interessieren. So beginnen Sie mit der Geheimerkennung. Denken Sie beim Erkennen von Geheimnissen daran: Es ist kein Geheimnis, wenn Hacker es kennen. Selbst erfahrene Entwickler können versehentlich Passwörter oder Verbindungszeichenfolgen in die Remote-Quellcodeverwaltung übertragen. Mithilfe verschiedener Tools bietet dieser Leitfaden schnelle und einfache Methoden, um dieses Risiko zu mindern. So automatisieren Sie die Geheimniserkennung In diesem Handbuch geht es um das Verständnis der Geheimniserkennung mithilfe von Pre-Commit-Hooks und CI/CD-Pipelines. Während sich der Code hauptsächlich auf GitLab konzentriert, wird im letzten Abschnitt auch GitHub behandelt. So starten Sie mit SAST-Pipelines In diesem Handbuch werden die Schritte zum Starten von Static Application Security Testing (SAST) in GitLab kurz beschrieben. SAST ist ein Prozess, der mithilfe einer statischen Codeanalyse potenzielle Schwachstellen identifiziert. So beginnen Sie mit IaC SAST Dieses Cheatsheet stellt hilfreiche Tools zum Scannen von Infrastructure-as-Code (IaC)-Artefakten vor und bietet Beispiele für deren Integration in Ihre CI/CD-Pipeline. Benutzerdefiniertes Tool in Golang Ich habe in Golang ein benutzerdefiniertes Tool erstellt, mit dem ich reguläre Ausdrücke schnell mit riesigen Codebasen abgleichen kann. Es gibt einen unendlichen Kompromiss zwischen Präzision und Varianz. Angenommen, Sie benötigen mehr Abwechslung und haben nichts gegen mehr manuelle Überprüfung. In diesem Fall können Sie ausprobieren, das wie ist, aber besser für die Geheimniserkennung geeignet ist (schneller in größeren Repos, klare Ausgabe, Ignorieren einiger Dateierweiterungen). Oder Sie können grep direkt verwenden. im Repo, nicht das Tool, das Sie verwenden werden. RegFinder grep Am wertvollsten sind die regulären Ausdrücke Dieses klonen Repository Führen Sie aus. grep -n -r your_app/ -Ef regex_dir/general.txt Oder Führen Sie ./regfinder.elf -d your_app/ -f regex_dir/general.txt Es ist ganz einfach, vorhandene Regex-Muster zu erweitern. Dieses Tool ist für automatisierte Pipelines nicht geeignet. Es ist jedoch praktisch, wenn Sie ein nicht standardmäßiges Geheimnis finden müssen oder bei anderen Bewertungen, wie z. B. Sicherheitsüberprüfungen, bei denen mehr manuelle Arbeit zu erwarten ist. . Vielen Dank fürs Lesen. Kommentieren Sie, wenn Sie gute Erfahrungen mit anderen Tools gemacht haben