
Dawn ist ein statischer Analyse-Sicherheitsscanner für in Ruby geschriebene Webanwendungen. Er unterstützt die Frameworks Sinatra, Padrino und Ruby on Rails.
dawn ist ein Quellcode-Scanner, der dazu entwickelt wurde, Ihre Webanwendungen auf Sicherheitsprobleme zu überprüfen.
Das Tool kann Webanwendungen scannen, die in Ruby geschrieben sind, und unterstützt standardmäßig alle wichtigen MVC-Frameworks (Model View Controller):
dawn Version 2.0 verfügt über mehr als 680 Sicherheitsprüfungen in seiner Wissensdatenbank, die wöchentlich aus der National Vulnerability Database vom NIST aktualisiert wird.
Wenn Sie dawn auf Ihrem Code ausführen, parst es die Gemfile.lock Ihres Projekts, sucht nach den verwendeten Gems und versucht, die Ruby-Interpreter-Version zu erkennen, die Sie verwenden oder die Sie in Ihrem bevorzugten Ruby-Versionsverwaltungstool (RVM, rbenv, ...) deklariert haben.
Dann versucht das Tool, das MVC-Framework zu erkennen, das Ihre Webanwendung verwendet, und wendet die entsprechende Sicherheitsprüfung an. Es gibt Prüfungen, die speziell für Rails-Anwendungen konzipiert sind, oder Prüfungen, die auf jeden Ruby-Code anwendbar sind.
dawn kann auch den Code in Ihren Views verstehen und Sinks zurückverfolgen, um Cross-Site-Scripting und SQL-Injection zu erkennen, die durch den von Ihnen tatsächlich geschriebenen Code eingeführt wurden (in der Projekt-Roadmap ist dies der Code, auf den der Großteil der zukünftigen Entwicklungsarbeit konzentriert werden wird).
Das Ergebnis des Sicherheitsscans von dawn ist eine Liste von Schwachstellen mit einigen Abhilfemaßnahmen, die Sie befolgen sollten, um eine sicherere Webanwendung zu erstellen.
Sie können die neueste Version von dawn installieren, indem Sie sie von Rubygems abrufen und Folgendes eingeben:
$ gem install dawnscanner
Danach müssen Sie die Wissensdatenbank von Github herunterladen und das Archiv in das Verzeichnis $HOME/dawnscanner/kb entpacken.
Ein typisches Layout des kb-Verzeichnisses sieht wie folgt aus:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
Die Wissensdatenbank ist wie folgt strukturiert:
Ab Version 2.0 verwendet das Tool Unterbefehle, um bestimmte Aufgaben zu starten, jede mit eigenen Hilfemeldungen.
Der Unterbefehl scan weist dawn an, das angegebene Ziel auf Sicherheitsprobleme zu scannen.
$ dawn scan target
Derzeit sind die Ergebnisse nur im Textformat verfügbar und werden in einem Verzeichnis gespeichert, das mit dem Scan-Zeitstempel benannt ist, unter $HOME/dawnscanner/results/target, wobei target der Name der analysierten Anwendung ist.
Mit dem Unterbefehl kb ist es möglich, die Wissensdatenbank abzufragen.
dawn kb find # Durchsucht die Wissensdatenbank nach einer bestimmten Schwachstelle
dawn kb help [COMMAND] # Beschreibt Unterbefehle oder einen bestimmten Unterbefehl
dawn kb lint # Überprüft den Inhalt der Wissensdatenbank auf Korrektheit
dawn kb list gem_name[gem_version] # Listet alle Sicherheitsprobleme auf, die ein als Argument übergebenes Gem betreffen (die Versionszeichenkette ist optional).
dawn kb status # Überprüft den Status der Wissensdatenbank
dawn kb unpack # Entpackt Sicherheitsprüfungen in den KB-Bibliothekspfad
Twitter-Profil: @dawnscanner Github-Repository: https://github.com/thesp0nge/dawnscanner
Feedback ist großartig und wir hören wirklich gern von Ihnen.
Wenn Sie ein stolzer dawn-Benutzer sind, wenn Sie es nützlich finden, wenn Sie es in Ihren Release-Prozess integriert haben und wenn Sie das Projekt offen unterstützen möchten, können Sie hier Ihren Verweis hinterlassen. Öffnen Sie einfach ein Issue mit einer Aussage, wie Sie das Tool finden, und Ihrem Firmenlogo, falls vorhanden.
Vielen Dank.
saten: erstes Issue zu einem Tippfehler im README
presidentbeef: für seine herausragende Arbeit, die mich zur Erstellung von dawn inspiriert hat, und für die Überprüfung der Vergleichsmatrix. Issue #2 gehört Ihnen :)
marinerJB: für verschiedene Fehlerberichte und weitere Ideen
Matteo: für Ideen zur API und deren Nutzung mit github.com-Hooks
Copyright (c) 2013-2023 Paolo Perego [email protected]
MIT-Lizenz
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (der "Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD "WIE BESEHEN" ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE VERPFLICHTUNGEN, OB AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.