Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
C0deVari4nt — Uno strumento di analisi e visualizzazione delle varianti che scansiona i codebase alla ricerca di vulnerabilità simili | Kitploit
Strumenti/GitHubGitHub/whitesquirrell/c0devari4nt
Analisi Statica del Codice (SAST)Analisi delle VulnerabilitàAnalisi del Codice
GitHubwhitesquirrell/c0devari4nt

C0deVari4nt

Uno strumento di analisi e visualizzazione delle varianti che scansiona i codebase alla ricerca di vulnerabilità simili

Vedi Repository
746404 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

C0deVari4nt

Black Hat Arsenal
C0deVari4nt

Descrizione

C0deVari4nt è uno strumento di analisi delle varianti e visualizzazione che esamina i codebase alla ricerca di vulnerabilità simili. Sfrutta CodeQL, un motore di analisi semantica del codice, per interrogare il codice basandosi su modelli di query CodeQL controllati dall'utente e passa i risultati all'interfaccia client costruita con vis.js e React per ulteriori esplorazioni e visualizzazioni. Ciò consente un'analisi rapida e completa delle varianti basata su precedenti segnalazioni di vulnerabilità. La funzionalità di visualizzazione vis.js fornisce agli sviluppatori ulteriori informazioni sui percorsi di codice vulnerabili e permette loro di triare efficacemente le potenziali varianti.

Vista dello strumento

Motivazioni

L'incidente Log4Shell nel dicembre 2021 ha evidenziato le difficoltà che gli sviluppatori open-source affrontano nel rispondere alle segnalazioni di vulnerabilità. Dopo la patch iniziale per CVE-2021-44228, che consentiva ad attaccanti remoti non autenticati di prendere il controllo dei dispositivi che eseguivano versioni vulnerabili di Log4j 2, Apache ha rilasciato 3 patch aggiuntive per affrontare vulnerabilità correlate e casi limite non mitigati.

Gli sviluppatori open-source spesso non hanno una formazione adeguata nella revisione completa del codice e incontrano problemi nell'identificare le varianti di una vulnerabilità, portando a patch incomplete. Sebbene esistano suite di query CodeQL per facilitare l'analisi rapida del codebase, i risultati restituiti da queste suite possono presentare tassi di falsi positivi significativi. Inoltre, queste suite si basano su query predefinite che non supportano l'analisi delle varianti e non sono personalizzate per i singoli codebase. Di conseguenza, i progetti open-source spesso rispondono alle segnalazioni di vulnerabilità in modo frammentario, trascurando potenziali varianti.

C0deVari4nt fornisce una piattaforma per consentire agli sviluppatori di condurre facilmente l'analisi delle varianti senza il notevole carico di scrivere le proprie query CodeQL. Ciò offre agli sviluppatori la flessibilità di personalizzare i modelli CodeQL fornendo informazioni specifiche del codebase, come una particolare source e sink di una vulnerabilità. I risultati vengono visualizzati in una vista di database a grafo basata su vis.js, permettendo agli sviluppatori di identificare rapidamente potenziali varianti. In questo modo, gli sviluppatori possono affrontare efficacemente intere classi di bug a partire da una singola segnalazione di vulnerabilità.

Componenti dello strumento

C0deVari4nt è costruito utilizzando Python, CodeQL, vis.js e React per creare un'applicazione GUI interattiva che accetta input dall'utente e mostra le relazioni tra diversi percorsi di codice vulnerabili.

Architettura dello strumento

C0deVari4nt è composto dai seguenti 2 componenti principali:

  • Interfaccia client: Questo componente è costruito con React e la libreria di visualizzazione basata su browser vis.js. Gli utenti interagiscono con questo componente per personalizzare la query CodeQL e analizzare i risultati di CodeQL attraverso una vista di visualizzazione a grafo.
  • Server API: Questo componente è basato sul framework web Python FastAPI per ricevere richieste dall'interfaccia client ed eseguire comandi CodeQL su una lista di file di database pronti per CodeQL. Il server restituisce quindi i dati analizzati all'interfaccia client.

Ulteriori dettagli sull'interfaccia client sono visibili di seguito: Architettura dello strumento

Utilizzo v1

Configurazione della cartella del database

  • Eseguire cd api-server e poi dbextractor.py <file zip del database codeql> per decomprimere il contenuto del database CodeQL

Avvio del server backend

  • Eseguire cd api-server
  • Scaricare le dipendenze: pip install -r requirements.txt
  • Eseguire uvicorn main:app --reload per avviare il server di sviluppo locale sulla porta 8000

Avvio dell'interfaccia React

  • Eseguire cd react-gui
  • Scaricare le dipendenze: npm i
  • Eseguire npm start per avviare il server di sviluppo locale

Utilizzo dello strumento

Processo utente

  • Inserisci le opzioni della query nel riquadro delle opzioni e clicca su "Applica"
  • Attendi qualche secondo affinché il backend elabori la richiesta
  • Utilizza il riquadro delle proprietà a destra per isolare i percorsi e visualizzare le proprietà dei nodi

Utilizzo

Esegui il codebase su source e sink predefiniti (Opzione 1)

  1. Trova tutte le funzioni source che chiamano funzioni di stringa vietate (basate sulle chiamate di funzione vietate dell'SDL di Microsoft)
  2. Trova tutte le chiamate a funzioni strcat senza controlli dei limiti sull'argomento source
  3. Trova tutte le chiamate a funzioni strncpy senza controlli dei limiti sull'argomento source
  4. Trova tutti i casi senza controlli dei limiti sul valore di ritorno di una chiamata a snprintf
    1. Es: quando l'operazione raggiunge la fine del buffer e più di 1 carattere viene scartato, il valore di ritorno sarà maggiore della dimensione del buffer
  5. Trova tutte le chiamate a malloc, calloc o realloc senza allocazione di memoria sufficiente per contenere un'istanza del tipo del puntatore

Esegui il codebase su source e sink a tua scelta (Opzione 2)

  1. Trova tutte le espressioni source verso una funzione sink pericolosa
  2. Trova una funzione source specifica verso una funzione sink pericolosa
  3. Trova una funzione source specifica verso una funzione sink pericolosa (Funzione contaminata)
    1. Usa il metodo isAdditionalTaintStep per trasferire la contaminazione tra 2 funzioni non collegate
  4. Trova una funzione source specifica verso una funzione sink pericolosa (Espressione contaminata)
    1. Usa il metodo isAdditionalTaintStep per trasferire la contaminazione tra puntatori che hanno gli stessi valori in fase di esecuzione

Semplificazione dei risultati CodeQL e delle relazioni tra nodi

Quanto segue mostra i risultati di CodeQL per una query con recvfrom come source, mempool_alloc come passo di contaminazione aggiuntivo e memcpy come sink:

neo-1

Questo risultato produce un totale di 180 nodi in 27 percorsi di codice diversi. I risultati sono rappresentati in una semplice interfaccia neo4j qui sotto:

neo-2

Inserendo questa query nel nostro strumento, siamo stati in grado di identificare occorrenze duplicate di ciascun nodo, source e sink e di unire le relazioni dei nodi.
Ciò ha prodotto un grafo significativamente più pulito con un totale di 11 nodi unici, mantenendo comunque tutti i 27 percorsi di codice unici:

neo-3

I risultati possono essere ulteriormente categorizzati nei rispettivi percorsi attraverso la nostra funzione di etichettatura dei percorsi:

neo-4

codevariant

Scarica lo strumento