Bandit è uno strumento open source progettato per trovare problemi di sicurezza comuni nel codice Python. È un analizzatore di sicurezza statica, il che significa che esamina il codice sorgente senza eseguirlo, alla ricerca di potenziali vulnerabilità. Bandit è particolarmente utile per identificare problemi come:
Utilizzo di moduli non sicuri: Bandit può identificare l'uso di moduli Python noti per avere problemi di sicurezza, come pickle
(vedere https://it.wikiwhat.page/kavramlar/Deserializzazione%20non%20sicura).
Hardcoding di password e chiavi API: Bandit è in grado di rilevare la presenza di password, chiavi API o altre credenziali hardcoded direttamente nel codice (vedere https://it.wikiwhat.page/kavramlar/Credenziali%20Hardcoded).
Injection vulnerabilities: Bandit può aiutare a identificare potenziali vulnerabilità di injection, come https://it.wikiwhat.page/kavramlar/SQL%20Injection, o https://it.wikiwhat.page/kavramlar/Command%20Injection.
Utilizzo non sicuro di funzioni: Bandit può evidenziare l'uso di funzioni intrinsecamente non sicure o funzioni che richiedono un'attenta gestione, come la gestione dei file temporanei (vedere https://it.wikiwhat.page/kavramlar/Gestione%20non%20sicura%20dei%20File%20Temporanei).
Problemi di configurazione di sicurezza: Bandit può segnalare errori comuni di configurazione che potrebbero compromettere la sicurezza dell'applicazione.
Come Funziona:
Bandit utilizza un set di plugin che definiscono le regole di sicurezza da applicare. Quando Bandit analizza il codice, esamina il codice rispetto a queste regole e segnala eventuali violazioni. Ogni rilevamento viene assegnato un livello di gravità (bassa, media, alta) e un livello di confidenza (bassa, media, alta), aiutando a dare priorità alla correzione delle vulnerabilità più importanti.
Utilizzo:
Bandit può essere installato utilizzando pip
:
pip install bandit
Per eseguire l'analisi su un progetto Python, è sufficiente eseguire:
bandit -r /path/to/your/project
-r
indica la scansione ricorsiva della directory specificata. Bandit offre anche molte altre opzioni di configurazione, inclusa la possibilità di escludere specifici file o directory, utilizzare diversi formati di output (come JSON o HTML) e configurare il livello di severità da segnalare.
Vantaggi:
Limitazioni:
In sintesi, Bandit è uno strumento prezioso per gli sviluppatori Python che desiderano migliorare la sicurezza del loro codice. È un'ottima prima linea di difesa contro vulnerabilità comuni e può aiutare a ridurre il rischio di incidenti di sicurezza.