Menu

Pentest con software open source: la catena completa, senza licenze

9 min di lettura Manuel

Sul pentest open source esiste un racconto che non torna: "le alternative gratis non sono all'altezza". Chi lo dice di solito non ha mai usato Metasploit Framework in un pentest reale, perché il 90% di quello che fa il prodotto a pagamento è già nella versione libera.

La parte libera fa il lavoro. Quella a pagamento aggiunge automazione, interfaccia e report. Il lavoro vero — capire che cosa c'è, verificare che cosa è rotto, dimostrare che cosa si può fare — è tutto dentro il codice aperto.

Detto questo, un articolo che si limita a elencare tool gratis sarebbe pubblicità travestita da contenuto. Quindi qui si dice anche dove l'open source non basta, che è la parte che ti costa di più se la scopri durante un engagement.

Vale sempre il vincolo di prima: questi strumenti si usano solo su sistemi per cui hai un'autorizzazione scritta. Uno scanner non ha bisogno di sanzioni perché non fa niente di illegale; un exploit sì. In Italia si configura come intrusione informatica aggravata (art. 615-ter c.p.).

La catena, fase per fase

Le quattro fasi di un pentest e che cosa copre il software libero in ciascuna. È la mappa che manca di solito, perché le liste di tool presentano gli strumenti come un menu invece che come un processo.

FaseOpen sourceCosa manca
RicognizioneNmap, masscan, Amasscorrelazione e report automatici
EnumerazioneNikto, ffuf, nuclei, Impacketgestione centralizzata dei risultati
VerificaMetasploit Framework, sqlmap, ZAPvalidazione e priorità automatica
Post-exploitationImpacket, Sliver (C2), BloodHoundstabilità e supporto
ReportingJinja2, Pandoc, Dradis CEwizard e mappe di conformità

Ricognizione: Nmap

Il caso è particolare e merita una nota, perché qui la gente sbaglia sistematicamente. Nmap non è GPL puro dal 2020. dalla versione 7.90 è distribuito sotto la Nmap Public Source License, derivata dalla GPLv2 con clausole aggiuntive sul riutilizzo commerciale: se ridistribuisci Nmap dentro un prodotto proprietario o lo vendi come parte di un appliance, serve una licenza separata a Nmap Software.

Per un pentest questo non cambia niente: puoi scaricarlo, usarlo, modificarlo, farne quello che vuoi. Ma se un giorno lo incorpori in un prodotto che vendi, la domanda "è open source?" non basta più. È il caso in cui la risposta sì/no è più sfumata di quanto sembri, e vale la pena saperlo prima di mettersi in una discussione legale.

Il resto è il solito: -sV per le versioni, gli NSE script per le vulnerabilità, e un tasso di falsi positivi che va gestito come tutte le scansioni. Uno scan dice "c'è una porta", non "c'è una vulnerabilità".

Verifica: Metasploit Framework

Qui la distinzione è netta e documentata. Rapid7 distribuisce Metasploit Framework sotto licenza BSD-style, permanentemente gratis, e Metasploit Pro a pagamento. La stessa base di exploit — oltre 1.500 — è nelle mani di chiunque, e la differenza non è nel catalogo, è in quello che ci metti intorno:

  • Pro ha interfaccia web, wizard, catene di task, report;
  • Pro ha scansione di scoperta e importazione dei dati di scansione;
  • Pro ha API remoto documentato per SIEM e GRC;
  • Pro ha bruteforce automatico e payload che evitano alcuni antivirus.

Tradotto: l'utente medio di un tool a pagamento non paga per gli exploit, paga per non dover scrivere gli script di contorno. E in molti casi quegli script li deve comunque scrivere, perché il caso reale non è mai quello standard.

C'è anche Community Edition, che è gratis ma limitata a un solo utente. Se ti serve il prodotto gratis con più persone, quella non è la strada.

Nota legale che viene spesso ignorata: l'EULA di Rapid7 vieta esplicitamente l'uso per creare firme antivirus, per analisi euristiche e per benchmark comparativi dei prodotti. Se fai valutazioni comparative per un cliente, non è Metasploit Pro il tool da usare.

Web: sqlmap e ZAP

sqlmap è GPLv2, senza edizioni commerciali a monte, ed è il caso in cui il software libero batte il prodotto a pagamento in modo netto: automatizza l'iniezione SQL meglio di quasi tutto il resto, e ti permette di ispezionare ogni richiesta che genera. Cosa non fa: non distingue una vulnerabilità sfruttabile da una risposta che sembra sfruttabile. Ti dà la injection, non l'impatto.

ZAP merita un aggiornamento che pochi hanno: ha lasciato OWASP nel 2023 ed è passato alla Linux Foundation, nell'ambito del Software Security Project. Resta Apache 2.0, resta governato dalla comunità, resta gratis. Il nome con cui lo cercano tutti è ancora "OWASP ZAP", ma ufficialmente ora si chiama ZAP ed è di Checkmarx dal settembre 2024. L'informazione non cambia nulla tecnicamente e cambia molto nella percezione di chi lo cerca.

Qui la competizione con Burp è più interessante che Metasploit, perché Burp Community Edition è gratis e fa il proxy di testing manuale. La Pro aggiunge scanner, automazione e integrazione.

Post-exploitation e reporting

Impacket (Python, open source) è il cavallo di battaglia per Active Directory, ed è il tool che in un assessment interno ti salva la giornata. BloodHound ha una Community Edition Apache 2.0 separata dall'Enterprise a pagamento: la mappa degli attacchi è la parte open, le funzioni di rilevamento in tempo reale no. hashcat per il cracking è open e non ha eguali; la controparte commerciale non esiste sul mercato.

Il reporting è invece il punto debole reale, e qui va detto chiaramente: non esiste un equivalente open di un report commerciale curato. Gli strumenti ci sono — Jinja2, Pandoc, Dradis Community Edition — ma il lavoro di trasformare i risultati in un documento che un cliente accetti di firmare resta a carico tuo.

Ed è un lavoro vero. Un report non è un dump di risultati: è una gerarchia di rischio, una priorità di rimedio, e una spiegazione per chi non è tecnico. Questo non si automatizza bene.

Perché è migliore: sei motivi, uno dei quali è discutibile

1. Il rischio di lock-in è azzerato. Se fra tre anni il tuo tool open source è abbandonato, il codice è tuo. Se smette il prodotto a pagamento, ripeti il gioco con un fornitore.

2. Il prezzo non è il fattore principale, ma non è secondario. Il risparmio sulla licenza è reale. Il motivo più forte è un altro: il costo di un prodotto a pagamento scala con il numero di tester, mentre quello dell'open no. Su un team di dieci persone la licenza non è una voce di spesa, è un progetto di approvvigionamento.

3. Puoi costruirci sopra. È il motivo tecnico vero. Con sqlmap puoi fare quello che vuoi; con un prodotto chiuso no. Gli strumenti open sono componenti, non prodotti finiti.

4. Non devi giustificare il budget. Spesso la licenza non è nemmeno il ostacolo principale: è la richiesta di approvazione. Un prodotto a pagamento in una piccola azienda è un iter di tre mesi. Un apt install è oggi.

5. Non c'è il canale di esfiltrazione. I tool a pagamento spesso richiedono attivazione e account, e in alcuni casi la telemetria. Su una macchina di produzione, o su un engagement dove il cliente non può sapere che stai usando un tool con funzioni di evasione, è un problema reale.

6. Il difetto di questa lista. La versione libera è "migliore" solo se sai cosa stai facendo. Un prodotto a pagamento con un wizard ti porta lontano anche se non capisci niente. Il framework libero ti mette davanti un terminale e ti costringe a imparare. Per un principiante è peggiore. Per chi deve capire che cosa è successo nel sistema, è l'unica cosa che va bene: tu non puoi correggere una vulnerabilità che non capisci.

I tre casi in cui l'open source non basta

Se lo sai prima, ti costa un'ora. Se lo scopri in mezzo a un engagement, ti costa il rapporto.

1. Il reporting. Come detto sopra. Esistano i mattoni, non il prodotto. Se la tua deliverable è un documento firmato dal cliente, qui l'open source richiede ore che il commerciale ti dà in minuti.

2. La gestione dei risultati a scala. Per un singolo assessment Nmap e Metasploit bastano. Per una flotta di dieci sistemi che devi riassitere fra un trimestre e l'altro, con storico e diff, i tool a pagamento hanno un modello dati che non hai ricostruito gratis.

3. La copertura enterprise. Nexpose, Qualys e simili hanno qualcosa che i tool open non hanno: il confronto con l'inventario dell'azienda. Sanno che cosa hai e ti dicono che cosa non è coperto. Nmap e sqlmap non sanno che cosa hai.

Aggiungo un quarto, meno ovvio: il supporto in un momento critico. Quando serve un exploit e nessuno ne parla, un'azienda con contratto di supporto risponde. Un repository GitHub no. E ci sono casi in cui quella differenza vale più del prezzo del tool.

L'errore da evitare

È l'unica cosa che conta davvero, e non riguarda il software.

Usare uno scanner come se fosse un pentest. I tool open sono eccellenti per trovare il candidato e inutili per stabilire se è un problema. Il rapporto fra tempo di scansione e tempo di verifica è sfavorevole di parecchio, e la ragione è che la verifica richiede di capire il sistema.

Chi usa sqlmap su un sito, prende 40 allarmi, ne verifica 3, trova una SQL injection vera e scrive nel report "vulnerabilità SQL injection". Quel report è sbagliato in ogni sua parte tranne una, perché i 39 falsi positivi hanno fatto il suo lavoro: il cliente non legge più nessun finding, quindi non legge nemmeno quello vero.

Il software libero ti dà la certezza di aver trovato tutto quello che c'era da trovare con quello strumento. Non ti dà la certezza che sia un problema. La differenza è il mestiere.

La regola che usiamo noi

Il ragionamento di CYBER ONIONS su questo tema non è "gratis è meglio", e non è "l'open source basta sempre":

Usa il software aperto per capire. Usa quello che ti fa risparmiare tempo solo su ciò che non richiede comprensione — il report, l'inventario, la correlazione. Tutto il resto devi saperlo fare.

Il motivo è quello che abbiamo già scritto altrove e che vale anche qui: se puoi leggere il codice di una cosa di cui dipendi, quella cosa è tua. Le licenze si rinnovano, i fornitori si ritirano, i tool open restano su un repository e si possono studiare anche quando non li usi più.

Il risparmio iniziale è qualche ora di configurazione. Il vantaggio vero è che fra alcuni anni sai ancora usare quello che hai, e non stai aspettando che qualcuno ti aggiorni la licenza.