
VisualCodeGrepper - Tool zur Sicherheitsanalyse von Code.
VCG (VisualCodeGrepper)
Aktuelle Version: 2.3.2
====================================================================================
Inhalt:
VCG ist ein automatisiertes Werkzeug zur Sicherheitsüberprüfung von Code, das C/C++, Java, C#, VB, PL/SQL, PHP und COBOL verarbeitet. Es verfügt über einige Funktionen, die hoffentlich für jeden nützlich sind, der Sicherheitsüberprüfungen von Code durchführt, insbesondere wenn die Zeit knapp ist:
Ich habe versucht, etwas zu entwickeln, das nicht die große Anzahl von Fehlalarmen zurückgibt, die von einigen Werkzeugen geliefert werden, und das außerdem intelligent sucht, um Pufferüberläufe und Vergleiche zwischen vorzeichenbehafteten und vorzeichenlosen Werten zu erkennen.
Neue Funktionen: 1) Eine Änderung der GUI bedeutet, dass die Auswahl der Zielsprache über eine Dropdown-Liste statt über ein Menü erfolgt (wie in V2.3.1). 2) Die Beta-Funktionalität umfasst nun das Scannen von R-Skripten (wie in V2.3.1). 3) Kleinere Fehlerbehebungen zur Behebung verschiedener Probleme und zur Wiederherstellung der Möglichkeit, mehrere Anwendungsinstanzen auszuführen.
Eingabedateien/Codebasis:
Stellen Sie vor dem Scannen des Codes sicher, dass die richtige Sprache ausgewählt ist, da VCG nur auf Probleme im Zusammenhang mit der ausgewählten Sprache prüft und nur die relevanten Dateitypen scannt. Die Sprache kann im Einstellungsmenü oder im Optionsdialog ausgewählt werden. Wählen Sie das Verzeichnis aus, das den zu scannenden Code enthält, über Datei=>Neues Ziel... VCG lädt dann alle Dateien mit den angegebenen Endungen.
Die Standardwerte sind unten aufgeführt, können aber über den Optionsdialog geändert werden: C/C++: .c .h .cpp .hpp Java: .java .jsp web.xml config.xml (die XML-Dateien sind enthalten, um die Eingabevalidierung durch Struts usw. zu prüfen) PL/SQL: .pls .sql .pkb .pks C#: .cs .asp .aspx web.config (die web.config-Datei ist enthalten, um die Eingabevalidierung, Debug-Einstellungen usw. zu prüfen) VB: .vb .asp .aspx web.config (die web.config-Datei ist enthalten, um die Eingabevalidierung, Debug-Einstellungen usw. zu prüfen) PHP: .php php.ini (die php.ini-Datei ist enthalten, um fehlerhafte Konfigurationen wie register_globals zu prüfen) COBOL: .cob .cbl .clt .cl2 .cics R: .r
Optionen und Einstellungen:
Dateitypen – Hiermit können Sie die Dateitypen ändern, nach denen VCG für jeden Codetyp sucht. Um alle Dateien in einem Verzeichnis zu scannen, fügen Sie .* zur Liste hinzu oder löschen Sie alle Typen und übermitteln Sie eine leere Zeichenkette. Konfigurationsdateien – Geben Sie für jede Sprache eine Konfigurationsdatei an. Diese enthält eine Auflistung aller Funktionen oder Codefragmente, die als riskant gelten und gemeldet werden müssen. Diese Funktion fügt im Wesentlichen eine zusätzliche Prüfebene zu den komplexeren Vorgängen hinzu, die im Rahmen des Code-Scans ausgeführt werden. Schweregrad – VCG kann so eingestellt werden, dass nur Fehler oberhalb eines bestimmten Schweregrads gemeldet werden. Wählen Sie z. B. „Medium“, um nur Medium, High und Critical im Bericht zu erhalten. COBOL-Einstellungen – Die Anfangsspalte muss angegeben werden – d. h. die erste Spalte nach den Zeilennummern. Diese ist im Allgemeinen 1 für ein Listing ohne Zeilennummern oder 7 für ein Listing mit Zeilennummern. Eine andere Einstellung kann erforderlich sein, wenn die Code-/Kommentarzeilen im Listing in einer anderen Spalte beginnen. Die z/OS-Einstellung kann verwendet werden, um Prüfungen auf die sichere Verwendung der CICS-API usw. einzuschließen. OWASP-Einstellungen (nur Java) – Wenn ausgewählt, werden zwei Verstöße gegen die OWASP-Best-Practice für Java-Programmierung identifiziert, die auf den OWASP-Seiten zum sicheren Programmieren aufgeführt sind. Verschachtelte Klassen und nicht-finale öffentliche Klassen werden gemeldet – da es wahrscheinlich eine große Anzahl dieser Verstöße ohne großes Risiko gibt, besteht die Möglichkeit, einen dieser Scans zu deaktivieren. Ausgabedatei – Die ASCII-Ausgabe wird in diese Datei geschrieben, wenn ausgewählt. Beta-Funktionalität – Wählen Sie durch Anklicken des entsprechenden Kontrollkästchens unter Optionen -> Beta-Funktionalität, ob Beta-Funktionalität verwendet werden soll. Derzeit verfügbare Beta-Funktionalität ist die Lokalisierung von Signed/Unsigned-Vergleichen in C (sehr unzuverlässig) und das Scannen von R (getestet und funktioniert einigermaßen gut – nahe an der Aufnahme in die nächste Version).
Scannen:
Der Scan kann auf drei Arten durchgeführt werden:
Konfigurationsdateien:
Für jede der sechs Sprachen, die VCG scannt, existieren Konfigurationsdateien. Diese bieten eine zusätzliche Scanebene zur Ergänzung der integrierten komplexen Scans für jede Sprache. Der Inhalt der Konfigurationsdateien besteht aus einer Liste von Funktionen/Codefragmenten, nach denen gesucht werden soll, zusammen mit einer zugehörigen Beschreibung, die in den Ergebnissen erscheint. Die Beschreibung enthält eine optionale Schweregradangabe in eckigen Klammern und wird durch „=>“ von der Funktion getrennt, mit folgendem Format: Funktionsname[=>][[N]][Beschreibung] (wobei N eine Schweregradbewertung von 1 (Critical) bis 3 (Medium) ist (oder optional 0 für „normal“))
Zum Beispiel: strcat=>[3]String concatenation function which facilitates buffer overflow conditions. Appears in Microsoft's banned function list.
Ausgabe:
Die visuelle Code-Aufschlüsselung wird angezeigt, wenn der Scan abgeschlossen ist.