Il penetration testing (noto anche come pen testing) è un tipo di test di sicurezza che mira a scoprire potenziali vulnerabilità in un sistema.
Un pen test non solo segnalerà eventuali debolezze riscontrate, ma cercherà attivamente di sfruttarle tramite quello che viene chiamato ethical hacking.
Perché abbiamo bisogno del pen testing? Qualsiasi attaccante può interrompere o ottenere accesso non autorizzato a un sistema se non è ben protetto. Un rischio di sicurezza può sorgere come risultato di errori involontari commessi durante le fasi di sviluppo e implementazione del software.
Con il penetration testing, possiamo:
- trovare debolezze e rischi che possono portare a fughe di dati sensibili
- prevenire attacchi di phishing e attacchi informatici
- mantenere la fiducia degli utenti proteggendo le loro informazioni sensibili
- raggiungere la conformità con norme e regolamenti
In questo articolo, approfondirò i seguenti argomenti:
- Metodologia del Pen Testing
- I 3 principali approcci al Pen Testing
- Quali sono i principali tipi di Penetration Testing?
Metodologia del Pen Testing
Prima di eseguire il penetration testing, i rischi vengono identificati tramite una valutazione delle vulnerabilità. Ciò significa che la prima cosa da fare è identificare le aree potenzialmente problematiche (come la memorizzazione delle credenziali), e poi provare ad attaccarle attivamente.
Il penetration testing dovrebbe rivolgersi a ogni area che coinvolge dati sensibili, tutte le applicazioni che memorizzano o interagiscono con questi dati, tutte le connessioni di rete e tutti i relativi punti di accesso. I pen test cercano di sfruttare vulnerabilità e debolezze di sicurezza, tentando di violare la rete e le applicazioni.
L'obiettivo del pen testing è determinare se un accesso non autorizzato a sistemi o file critici può essere effettuato da attaccanti malintenzionati. Dopo che queste scansioni delle vulnerabilità sono state eseguite, eventuali problemi riscontrati dovrebbero essere affrontati e corretti.

I 3 principali approcci al Pen Testing
Proprio come per tutti i tipi e metodi di test, possiamo utilizzare diversi approcci al penetration testing a seconda delle conoscenze e dei diritti di accesso del tester. Gli approcci principali al pen testing includono il white-box, il black-box e il gray-box testing.
1. White-box Penetration Testing
Nel pen testing di tipo white-box, i tester hanno piena conoscenza e pieno accesso al sistema. Questo approccio permette un test approfondito e consente di scoprire vulnerabilità anche lontane e difficili da raggiungere.
2. Black-box Penetration Testing
Il black-box penetration testing è un approccio in cui il tester non ha conoscenza del funzionamento interno del sistema. Un tester progetterebbe i pen test come un attaccante informatico privo di informazioni.
Questo approccio è il più simile a scenari reali, in cui gli hacker non hanno accesso al codice sorgente reale dell'applicazione o del sistema sottoposto a test.
3. Gray-box Penetration Testing
Il gray-box è il punto d'incontro tra il white-box e il black-box testing. Questo significa che il pen tester avrà una conoscenza limitata del sistema.
Passiamo ora ad approfondire alcune delle diverse tipologie di penetration test.
Quali sono i principali tipi di Penetration Testing?
1. Penetration Testing delle Applicazioni Web
Il penetration testing delle applicazioni web è solitamente più mirato e approfondito rispetto ad altri tipi di pen test. Lo scopo principale è individuare debolezze e rischi di sicurezza informatica nei siti web e nei loro componenti, come database, codice sorgente o il network di back-end.
Il penetration testing delle applicazioni web è particolarmente importante oggi, dato il grande aumento della criminalità informatica registrato a causa della pandemia di Covid-19.
Alcune delle vulnerabilità di sicurezza più comuni da cercare come penetration tester in una web app includono:
- Punti di accesso non protetti
- Password deboli
- Attacchi di SQL injection
- Code injection
- Cross-site scripting
- Violazione dei dati
- Attacchi di phishing
2. Penetration Testing lato Client
Questa è una tipologia di test che controlla le minacce locali. Queste minacce possono provenire da qualsiasi app o programma in esecuzione sulle postazioni di lavoro dei dipendenti — browser, lettori multimediali, app open-source, app per la presentazione o la creazione di contenuti (pensate a Microsoft PowerPoint).
Oltre alle app di terze parti, anche programmi e framework interni possono causare minacce alla sicurezza, quindi assicurati di includerli nei test.
3. Penetration Testing di Rete
Questa tipologia di test è tra le più richieste per le attività di penetration testing. Il suo obiettivo è individuare vulnerabilità nell'infrastruttura di rete.
Le reti presentano punti di accesso sia interni sia esterni, il che può renderle vulnerabili ad attacchi da parte di cybercriminali. Le due sottocategorie del penetration testing di rete sono: test della rete interna e test della rete esterna.
Penetration Testing della Rete Interna
Questa tipologia di penetration testing parte dall'assunto che gli attacchi hacker provengano dall'interno della rete. Come pen tester, assumi il ruolo di una persona malintenzionata con un certo livello di accesso (più o meno legittimo) alla rete interna.
Questo può significare, ad esempio, analizzare l’impatto di informazioni riservate divulgate, alterate, utilizzate in modo improprio o distrutte involontariamente.
Penetration Testing della Rete Esterna
In questo caso, lo scenario simulato prevede che l'attacco provenga dall'esterno della rete. I tester cercheranno di violare il sistema sfruttando vulnerabilità dall’esterno che possano consentire l’accesso ai dati e sistemi interni.
Il penetration testing può concentrarsi sui seguenti rischi di sicurezza di rete:
Quando si conducono penetration test, è fondamentale convalidare anche l'integrità delle proprie piattaforme di gestione dei dati
4. Social Engineering Testing
Il social engineering è diverso dagli altri tipi di test perché non si concentra sugli aspetti tecnici dei sistemi o delle applicazioni. L'attenzione si sposta invece sulla psicologia degli utenti e dei dipendenti, che possono compromettere la sicurezza involontariamente.
Ci sono due modi per eseguire un social engineering pen testing: da remoto o fisico.
Il social engineering testing da remoto si esegue tramite mezzi elettronici, come le email di phishing che possono potenzialmente contenere malware. Se i dipendenti aprono l’email, può essere una buona idea per l’azienda avviare sessioni di formazione sulla sicurezza per prevenire attacchi reali di questo tipo.
Il testing della sicurezza fisica significa invece parlare direttamente con le persone e convincerle a divulgare informazioni sensibili.
Non so voi, ma negli ultimi anni, tre delle aziende per cui ho lavorato hanno condotto questo tipo di test. Ad esempio, noi dipendenti ricevevamo email che ci comunicavano di aver vinto dei premi su siti di shopping o sconti speciali. Le email ci spingevano a cliccare su un link o scaricare un file. In circostanze normali, quando l’attacco è reale e non simulato, l’URL o l’allegato solitamente contengono malware in grado di infettare i computer e rubare dati personali o riservati.
Sareste sorpresi da quante persone cadano effettivamente in queste trappole, soprattutto quando l’email sembra provenire da una fonte affidabile, come Amazon.
Si ricorda che ogni volta che si conduce questo tipo di test, la direzione aziendale dovrebbe essere sempre informata in anticipo.
5. Penetration Testing Fisico

Il penetration testing fisico va oltre gli aspetti digitali. Per eseguire questo tipo di test, dovrai valutare quanto facilmente si possa ottenere l’accesso fisico a una struttura. Questo può essere fatto provando a bypassare i controlli di sicurezza, sensori, telecamere di sorveglianza o persino tentando di scassinare le serrature delle porte.
I vantaggi dei test fisici sono immediati: è possibile applicare la correzione a qualsiasi vulnerabilità riscontrata non appena si individua l’area da migliorare.
6. Penetration Testing Wireless
Le violazioni delle reti wireless rappresentano una minaccia reale per la sicurezza di un’azienda. I test vengono eseguiti su tutti i dispositivi fisici wireless, come laptop, tablet, smartphone, ecc. connessi alla rete WiFi.
Quando si esegue un test wireless, le cose da valutare includono, ma non solo:
- debolezze nella crittografia
- vulnerabilità nei protocolli wireless, nei punti di accesso wireless o nelle credenziali di amministratore
- password di default o deboli
- hotspot non autorizzati
- attacchi di tipo Denial of Service (DoS)
Conclusioni
Il penetration testing è davvero importante e offre molti vantaggi, ma non è semplice da eseguire come altri tipi di test. Se vuoi esercitarti, puoi dare un’occhiata all’app demo di OWASP e cimentarti in alcune sfide di hacking.
Ti è piaciuto questo articolo? Su The QA Lead troverai molti altri temi interessanti riguardanti il QA, quindi assicurati di iscriverti alla newsletter!
Dai un’occhiata a questi articoli:
- LE 5 PRINCIPALI FASI DEL PROCESSO DI GESTIONE DELLE VULNERABILITÀ
- COME AUTOMATIZZARE IL TESTING DELLE APPLICAZIONI MOBILE
Elenco di strumenti correlati:
