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
flawfinder — uno strumento di analisi statica per trovare vulnerabilità nel codice sorgente C/C++ | Kitploit
Strumenti/GitHubGitHub/david-a-wheeler/flawfinder
Analisi StaticaAnalisi Statica del Codice (SAST)Analisi delle VulnerabilitàAnalisi del CodiceDevSecOpsTop in Analisi del Codice n.15Top in Analisi Statica del Codice (SAST) n.12
GitHubdavid-a-wheeler/flawfinder

flawfinder

uno strumento di analisi statica per trovare vulnerabilità nel codice sorgente C/C++

58085533 mesi 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 →
Vedi Repository
Condividi

Informazioni

Questo è "flawfinder" di David A. Wheeler.

Flawfinder è un semplice programma che scansiona il codice sorgente C/C++ e segnala potenziali falle di sicurezza. Può essere uno strumento utile per esaminare il software alla ricerca di vulnerabilità e può anche fungere da semplice introduzione agli strumenti di analisi statica del codice sorgente in generale. È progettato per essere facile da installare e usare. Flawfinder supporta la Common Weakness Enumeration (CWE) ed è ufficialmente compatibile con CWE. Supporta vari formati di output, tra cui SARIF, SonarQube e HTML.

Flawfinder può essere utilizzato insieme a strumenti di analisi del codice basati sull'intelligenza artificiale. L'output di Flawfinder può essere utilizzato per identificare rapidamente quali aree di codice meritano maggiore attenzione, che un sistema di IA può poi esaminare in dettaglio.

Per maggiori informazioni, consulta il sito web del progetto

Piattaforme

Flawfinder è progettato per l'uso su sistemi Unix/Linux/POSIX (inclusi Cygwin, sistemi basati su Linux, macOS e vari BSD) come strumento a riga di comando. Richiede Python (testiamo con Python 3; Python 2.7 dovrebbe funzionare ma è sempre meno testato).

Installazione

Se vuoi solo usarlo, puoi installare flawfinder con 'pip' di Python o con il gestore pacchetti del tuo sistema (flawfinder ha pacchetti per molti sistemi). Supporta anche una facile installazione seguendo le consuete convenzioni di installazione da sorgente con make install. Il file INSTALL.md contiene istruzioni di installazione più dettagliate. Non devi OBBLIGATORIAMENTE installarlo per eseguirlo, ma è più semplice così.

Utilizzo

Per eseguire flawfinder, basta fornirgli un elenco di file sorgente o directory da esaminare. Ad esempio, per esaminare tutti i file in 'src/' e nelle sottodirectory:

root@kitploit:~
flawfinder src/

Per esaminare tutti i file nella directory corrente e nelle sottodirectory:

root@kitploit:~
flawfinder ./

I risultati (reperti) ricevono un livello di rischio da 0 (rischio molto basso) a 5 (rischio alto), Per impostazione predefinita, vengono mostrati i reperti di livello di rischio 1 o superiore. Puoi mostrare solo i risultati di livello di rischio 4 o superiore nella directory corrente e nelle sottodirectory in questo modo:

root@kitploit:~
flawfinder --minlevel 4 ./

La pagina del manuale (flawfinder.1 o flawfinder.pdf) descrive come usare flawfinder (incluse le sue varie opzioni) e informazioni correlate (ad esempio come supporta CWE). Ad esempio, l'opzione --html genera output in formato HTML. L'opzione --help fornisce un breve elenco di opzioni.

Errori di codifica dei caratteri

Flawfinder deve essere in grado di interpretare correttamente la codifica dei caratteri del tuo codice sorgente. Nella stragrande maggioranza dei casi questo non è un problema, specialmente se il codice sorgente è codificato correttamente in UTF-8 e il tuo sistema è configurato per usare UTF-8 (la situazione più comune di gran lunga).

Tuttavia, è possibile che flawfinder si blocchi se c'è un problema di codifica dei caratteri e stai eseguendo Python3. Il sintomo usuale sono messaggi di errore come questo: Error: encoding error in FILENAME 'ENCODING' codec can't decode byte ... in position ...: invalid start byte

Purtroppo, Python3 non fornisce built-in utili per gestire questo problema. Pertanto, non è banale affrontare questo problema senza dipendere da librerie esterne (cosa che stiamo cercando di evitare).

Se hai questo problema, consulta la pagina del manuale di flawfinder per una raccolta di varie soluzioni. Una delle più semplici è convertire semplicemente il codice sorgente e la configurazione di sistema in UTF-8. Puoi convertire il codice sorgente in UTF-8 usando strumenti come lo strumento di sistema iconv o il programma Python cvt2utf; puoi installare cvt2utf usando pip install cvt2utf.

Sotto il cofano

Più tecnicamente, flawfinder utilizza la scansione lessicale per trovare token (come nomi di funzioni) che suggeriscono potenziali vulnerabilità, stima il loro livello di rischio (ad esempio, dal testo delle chiamate di funzione) e riporta i risultati. Flawfinder non utilizza né ha accesso alla maggior parte delle informazioni sul flusso di controllo, flusso di dati, tipi di dati, namespace e ambiti. Pertanto, flawfinder produrrà necessariamente molti falsi positivi per le vulnerabilità e non riuscirà a segnalare molte vulnerabilità. D'altra parte, flawfinder può trovare vulnerabilità in programmi che non possono essere compilati o collegati. Flawfinder inoltre non viene confuso dalla maggior parte delle definizioni di macro e altre stranezze con cui strumenti più sofisticati hanno difficoltà.

Azione GitHub di Flawfinder

C'è un'azione GitHub disponibile per chi utilizza GitHub.

Utilizzo

Vedi action.yml

Crea un file .yml sotto .github/workflows con il seguente contenuto:

Demo di base:

root@kitploit:~
- name: flawfinder_scan
  uses: david-a-wheeler/[email protected]
  with:
    arguments: '--sarif ./'
    output: 'flawfinder_results.sarif'

Puoi aggiungere molte altre aggiunte agli argomenti. Ad esempio, --error-level=4 farà sì che venga restituito un errore se flawfinder trova una vulnerabilità di livello 4 o superiore. Nota il numero di versione dopo il simbolo @; puoi selezionare una versione diversa.

Puoi trovare il nome dell'azione e la stringa di versione da Marketplace facendo clic sul pulsante 'Use latest/xxx version'.

Opzioni di input:

  • arguments: Flawfinder command arguments
  • output: Nome del file di output di Flawfinder. Può essere caricato su GitHub.

Integrazione SonarQube

Flawfinder si integra con il plugin cxx di SonarQube. Aggiungi le regole di Flawfinder in SonarQube sotto 'Administration > CXX External Analyers > Other Rule Definitions' eseguendo Flawfinder una volta con le seguenti opzioni.

root@kitploit:~
flawfinder --listrules --sonar [...]

Quindi nel tuo CI/CD esegui Flawfinder in questo modo per generare output che SonarQube possa comprendere.

root@kitploit:~
flawfinder -CDQ --sonar [...]

Devi reindirizzare l'output in un file che puoi poi caricare in SonarQube tramite l'opzione sonar.cxx.other.reportPaths.

Contributi

Amiamo i contributi! Per maggiori informazioni su come contribuire, consulta il file CONTRIBUTING.md.

Licenza

Flawfinder è rilasciato sotto la licenza GNU GPL versione 2 o successiva (GPL-2.0+). Consulta il file COPYING per le informazioni sulla licenza.

Scarica lo strumento