Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
C0deVari4nt — Ein Tool zur Variantenanalyse und Visualisierung, das Codebasen auf ähnliche Schwachstellen scannt. | Kitploit
Tools/GitHubGitHub/whitesquirrell/c0devari4nt
Statische Code-Analyse (SAST)SchwachstellenanalyseCode-Analyse
GitHubwhitesquirrell/c0devari4nt

C0deVari4nt

Ein Tool zur Variantenanalyse und Visualisierung, das Codebasen auf ähnliche Schwachstellen scannt.

Repository anzeigen
746vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

C0deVari4nt

Black Hat Arsenal
C0deVari4nt

Beschreibung

C0deVari4nt ist ein Werkzeug zur Variantenanalyse und Visualisierung, das Codebasen auf ähnliche Sicherheitslücken untersucht. Es nutzt CodeQL, eine semantische Code-Analyse-Engine, um Code basierend auf benutzerdefinierten CodeQL-Abfragevorlagen abzufragen und die Ergebnisse an unsere mit vis.js und React erstellte Clientschnittstelle zur weiteren Erkundung und Visualisierung weiterzuleiten. Dies ermöglicht eine schnelle und umfassende Variantenanalyse auf Basis früherer Sicherheitsberichte. Die vis.js-Visualisierungsfunktion bietet Entwicklern zusätzliche Einblicke in verwundbare Codepfade und ermöglicht ihnen, potenzielle Varianten effektiv zu priorisieren.

Tool View

Motivationen

Der Log4Shell-Vorfall im Dezember 2021 zeigte die Schwierigkeiten auf, mit denen Open-Source-Entwickler bei der Reaktion auf Sicherheitsmeldungen konfrontiert sind. Nach dem anfänglichen Patch für CVE-2021-44228, der es nicht authentifizierten entfernten Angreifern ermöglichte, die Kontrolle über Geräte mit verwundbaren Versionen von Log4j 2 zu übernehmen, veröffentlichte Apache drei zusätzliche Patches, um verwandte Schwachstellen und nicht abgedeckte Grenzfälle zu beheben.

Open-Source-Entwickler haben oft keine Schulung in umfassender Code-Überprüfung und haben Probleme bei der Identifizierung von Varianten einer Schwachstelle, was zu unvollständigen Patches führt. Obwohl CodeQL-Abfragesammlungen existieren, um eine schnelle Analyse der Codebasis zu ermöglichen, können die Ergebnisse dieser Sammlungen zu erheblichen Fehlalarmraten führen. Darüber hinaus basieren diese Sammlungen auf vordefinierten Abfragen, die keine Variantenanalyse unterstützen und nicht für einzelne Codebasen angepasst sind. Daher reagieren Open-Source-Projekte oft stückweise auf Sicherheitsmeldungen und übersehen dabei potenzielle Varianten.

C0deVari4nt bietet eine Plattform für Entwickler, um Variantenanalyse einfach durchzuführen, ohne den erheblichen Aufwand, eigene CodeQL-Abfragen zu schreiben. Dies gibt Entwicklern die Flexibilität, CodeQL-Vorlagen anzupassen, indem sie codebasisspezifische Informationen wie eine bestimmte Quelle und Senke einer Schwachstelle bereitstellen. Die Ergebnisse werden in einer von vis.js unterstützten Graphdatenbankansicht visualisiert, damit Entwickler schnell potenzielle Varianten identifizieren können. So können Entwickler ganze Klassen von Fehlern aus einem einzigen Sicherheitsbericht effektiv beheben.

Tool-Komponenten

C0deVari4nt wurde mit Python, CodeQL, vis.js und React erstellt, um eine interaktive GUI-Anwendung zu schaffen, die Benutzereingaben entgegennimmt und Beziehungen zwischen verschiedenen verwundbaren Codepfaden aufzeigt.

Tool Architecture

C0deVari4nt besteht aus den folgenden 2 Hauptkomponenten:

  • Client-Schnittstelle: Diese Komponente ist mit React und der browserbasierten Visualisierungsbibliothek vis.js erstellt. Benutzer interagieren mit dieser Komponente, um die CodeQL-Abfrage anzupassen und CodeQL-Ergebnisse über eine Graphvisualisierungsansicht zu analysieren.
  • API-Server: Diese Komponente basiert auf dem Python FastAPI Web-Framework, um Anfragen von der Client-Schnittstelle zu empfangen und CodeQL-Befehle gegen eine Liste von CodeQL-fähigen Datenbankdateien auszuführen. Der Server sendet dann die geparsten Daten zurück an die Client-Schnittstelle.

Weitere Details zur Client-Schnittstelle sind unten zu sehen: Tool Architecture

v1 Nutzung

Einrichten des Datenbankordners

  • Wechseln Sie in das api-server-Verzeichnis und führen Sie dbextractor.py <codeql db zip file> aus, um den Inhalt der CodeQL-Datenbank zu entpacken.

Ausführen des Backend-Servers

  • Wechseln Sie in das api-server-Verzeichnis.
  • Laden Sie Abhängigkeiten herunter: pip install -r requirements.txt
  • Führen Sie uvicorn main:app --reload aus, um den lokalen Entwicklungsserver auf Port 8000 zu starten.

Starten der React-Oberfläche

  • Wechseln Sie in das react-gui-Verzeichnis.
  • Laden Sie Abhängigkeiten herunter: npm i
  • Führen Sie npm start aus, um den lokalen Entwicklungsserver zu starten.

Verwenden des Tools

User Process

  • Geben Sie Ihre Abfrageoptionen in das Optionsfeld ein und klicken Sie auf 'Apply'.
  • Warten Sie einige Sekunden, während das Backend die Anfrage verarbeitet.
  • Verwenden Sie das rechte Eigenschaftenfeld, um Pfade zu isolieren und Knoteneigenschaften anzuzeigen.

Nutzung

Codebase gegen vordefinierte verwundbare Quellen und Senken ausführen (Option 1)

  1. Finde alle Quellfunktionen zu verbotenen String-Funktionen (basierend auf Microsofts Security Development Lifecycle (SDL) Banned Function Calls)
  2. Finde alle Aufrufe von strcat-Funktionen ohne Grenzprüfungen des Quellarguments
  3. Finde alle Aufrufe von strncpy-Funktionen ohne Grenzprüfungen des Quellarguments
  4. Finde alle Fälle ohne Grenzprüfungen des Rückgabewerts eines Aufrufs von snprintf
    • Z.B.: Wenn die Operation das Ende des Puffers erreicht und mehr als 1 Zeichen verworfen wird, ist der Rückgabewert größer als die Puffergröße.
  5. Finde alle Aufrufe von malloc, calloc oder realloc ohne ausreichende Speicherzuweisung, um eine Instanz des Zeigertyps aufzunehmen.

Codebase gegen Quellen und Senken Ihrer Wahl ausführen (Option 2)

  1. Finde alle Quellausdrücke zu einer gefährlichen Senkenfunktion
  2. Finde eine bestimmte Quellfunktion zu einer gefährlichen Senkenfunktion
  3. Finde eine bestimmte Quellfunktion zu einer gefährlichen Senkenfunktion (kontaminierte Funktion)
    • Verwenden Sie die Methode isAdditionalTaintStep, um Kontaminationen zwischen 2 nicht verbundenen Funktionen zu übertragen.
  4. Finde eine bestimmte Quellfunktion zu einer gefährlichen Senkenfunktion (kontaminierter Ausdruck)
    • Verwenden Sie die Methode isAdditionalTaintStep, um Kontaminationen zwischen Zeigern zu übertragen, die zur Laufzeit dieselben Werte haben.

Vereinfachen von CodeQL-Ergebnissen und Beziehungen zwischen Knoten

Das Folgende zeigt die CodeQL-Ergebnisse für eine Abfrage mit recvfrom als Quelle, mempool_alloc als zusätzlichem Kontaminationsschritt und memcpy als Senke:

neo-1

Dieses Ergebnis liefert insgesamt 180 Knoten in 27 verschiedenen Codepfaden. Die Ergebnisse werden unten in einer einfachen neo4j-Oberfläche dargestellt:

neo-2

Indem wir diese Abfrage durch unser Tool laufen ließen, konnten wir doppelte Vorkommen jedes Knotens, jeder Quelle und jeder Senke identifizieren und die Beziehungen der Knoten zusammenführen. Dies führte zu einem deutlich saubereren Graphen mit insgesamt 11 eindeutigen Knoten, während alle 27 eindeutigen Codepfade erhalten blieben:

neo-3

Die Ergebnisse können durch unsere Pfadkennzeichnungsfunktion weiter in ihre jeweiligen Pfade kategorisiert werden:

neo-4

codevariant

Tool herunterladen