Penetration test: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
la voce è formattata... Etichetta: Rimozione di avvisi di servizio |
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti. |
||
(40 versioni intermedie di 28 utenti non mostrate) | |||
Riga 1:
In [[informatica]], il '''''penetration test''''', colloquialmente noto come '''''pentest''''' ("test di penetrazione"); è un attacco informatico simulato autorizzato su un [[sistema informatico]] o una [[rete di computer|rete]], eseguito per valutare la protezione del sistema.
In [[informatica]], il '''''penetration test''''' (o informalmente '''pen test''') è il processo operativo di valutazione della [[sicurezza informatica|sicurezza]] di un [[sistema informatico]] o di una [[rete di computer|rete]] simulando l'[[attacco informatico]] di un utente malintenzionato. L'analisi comprende più fasi ed ha come obiettivo evidenziare le debolezze della [[piattaforma (informatica)|piattaforma]] fornendo il maggior numero di informazioni sulle [[vulnerabilità]] che ne hanno permesso l'accesso non autorizzato. La valutazione è condotta dal punto di vista di un potenziale attaccante e consiste nello sfruttamento delle vulnerabilità rilevate al fine di ottenere più informazioni possibili per accedere indebitamente al sistema, aiutando a determinare se le difese del sistema sono sufficienti o se presenta delle vulnerabilità elencando in questo caso quali difese il test ha sconfitto.<ref>{{Cita libro|titolo=The CISSP® and CAPCM Prep Guide: Platinum Edition|editore=John Wiley & Sons|accesso={{date|2014-01-16}}|isbn=978-0-470-00792-1|citazione=A penetration test can determine how a system reacts to an attack, whether or not a system's defenses can be breached, and what information can be acquired from the system|lingua=en}}</ref><ref>{{Cita libro|isbn=978-1-84928-371-7|autore=Kevin M. Henry|titolo=Penetration Testing: Protecting Networks and Systems|citazione=Penetration testing is the simulation of an attack on a system, network, piece of equipment or other facility, with the objective of proving how vulnerable that system or "target" would be to a real attack.|editore=IT Governance Ltd|lingua=en}}</ref>▼
▲
* delle
* delle
* della sicurezza fisica.
Tutti i problemi di sicurezza rilevati vengono quindi presentati al cliente, assieme
== Storia ==
Verso la metà degli anni ‘60, nascono nuovi problemi per la sicurezza dei dati
[[File:Rand Corporation logo.svg|miniatura|Logo della [[Rand Corporation]]]]
Alla Spring 1967 Joint Computer Conference, molti specialisti del computer si riuniscono di nuovo per discutere della sicurezza dei sistemi informatici. Durante questa conferenza, gli esperti di sicurezza informatica [[Willis Ware]], Harold Petersen, Rein Tern, Bernard Peters della [[National Security Agency]] (NSA) e tutta la [[RAND Corporation]] utilizzano il termine "penetrazione" per descrivere un attacco contro un sistema informatico. In un documento, Ware avvertì che era importante eseguire dei tentativi di penetrazione sui sistemi informatici, riferendosi ai sistemi time-sharing militari. I suoi colleghi Petersen e Turn condivisero lo stesso concetto, osservando che i sistemi di comunicazione on-line "... sono vulnerabili alle minacce riguardanti la privacy". Bernard Peters dell'NSA rimarcò lo stesso punto, insistendo che l'input e l'output di un computer "... potrebbero fornire grandi quantità di informazioni a seguito di una penetrazione." Nel corso della conferenza, la computer penetration viene formalmente identificata come una grave minaccia per i sistemi informatici on-line.<ref name="Hunt 8">Hunt (2012), p. 8</ref>
La minaccia della computer penetration fu sottolineata in un importante rapporto organizzato dal [[Dipartimento della Difesa degli Stati Uniti d'America|Dipartimento della Difesa statunitense]] (DoD) alla fine del 1967. In sostanza, i funzionari del Dipartimento della Difesa si rivolsero a Willis Ware per condurre una task force di esperti proveniente da NSA, [[
Per capire meglio le debolezze del sistema, il governo federale e dei suoi finanziatori ben presto cominciarono
Donald MacKenzie,
Le azioni dei primi tiger team e gli sforzi della RAND Corporation hanno dimostrato l'utilità dei penetration test come strumento per la valutazione della sicurezza del sistema. A quel tempo, un analista RAND notò che i test avevano "... dimostrato la praticità della system-penetration come strumento per valutare l'efficacia e l'adeguatezza delle difese per la sicurezza dei dati." Inoltre, un certo numero di analisti RAND affermarono che gli esercizi di penetration test offrivano diversi vantaggi che erano sufficienti per giustificarne l’uso.<ref name="Hunt 9">Hunt (2012), p. 9</ref>
Forse il principale esperto di computer penetration durante questi primi anni è stato James P. Anderson, che ha lavorato per NSA, RAND
# Trovare una vulnerabilità sfruttabile
# Progettare un attacco intorno
# Testare l'attacco
# Impadronirsi di una linea in uso
# Eseguire l'attacco
# Sfruttare ingresso per recupero delle informazioni
[[File:
Nel corso del tempo, la sequenza di Anderson ha contribuito a guidare molti altri esperti di sicurezza, che si sono basati su questa tecnica per valutare la sicurezza dei sistemi time-sharing.<ref name="Hunt 9"/>
Negli anni successivi, la computer penetration come strumento per la valutazione della sicurezza è
Mentre questi studi suggerivano che la sicurezza informatica negli Stati Uniti era un problema importante, lo studioso Edward Hunt ha di recente fatto una riflessione più ampia sullo studio della computer-penetration come strumento di sicurezza. Hunt, in un recente documento sulla storia del penetration test, suggerisce che le istituzioni per la difesa degli Stati Uniti “... hanno creato molti degli strumenti utilizzati nella moderna [[guerra
== Procedimenti di analisi ==
Riga 41:
I processi di penetration test possono essere effettuati in diverse modalità. La differenza consiste sulla quantità e qualità delle informazioni disponibili agli analisti riguardo ai sistemi analizzati. I test ''Black Box'' non presuppongono precedente conoscenza dell'infrastruttura oggetto di analisi e gli esaminatori necessitano di determinare architettura e servizi dei sistemi prima di iniziare l'analisi.
Nei test ''[[White Box]]'' sono invece fornite conoscenze dettagliate dell'infrastruttura da esaminare, spesso comprensive di schemi di rete, [[codice sorgente]] delle applicazioni e liste di indirizzi IP presenti nella rete. Esistono anche varianti a queste metodologie definibili ''[[Grey Box]]''.<ref name="SANS Institute">{{Cita web|url=http://www.sans.org/reading-room/whitepapers/bestprac/writing-penetration-testing-report-33343|titolo=Writing a Penetration Testing Report|accesso=10 dicembre 2016|data=6 aprile 2010|editore=[[SANS]]|formato=pdf|lingua=en}}</ref> I risultati dei penetration test possono valutare gli impatti di un attacco e suggerire contromisure per ridurre i rischi.<ref name="SANS Institute"/>
I processi di analisi che vengono condotti in un penetration test hanno diversi tempi di azione in cui sono alternate fasi manuali e fasi automatiche. Vengono acquisite inizialmente le informazioni principali sull'[[Architettura (computer)|architettura]] della piattaforma e sui servizi offerti. Dall'analisi di questi dati deriva la scelta di come condurre il passo successivo, consistente in
L'attività si conclude nello sviluppo della reportistica composta dal report di analisi sommaria dedicato al [[management]] o ''executive summary'', contenente l'analisi dell'impatto di rischio di quanto riscontrato e tempistiche per l'azione di rientro o mitigazione delle problematiche riscontrate, e dal report tecnico, contenente l'analisi dettagliata dei problemi e la soluzione tecnica. Il penetration test va effettuato su sistemi esposti su [[Internet]] e comunque sulle piattaforme sensibili collegate a grosse reti, prima di entrare in esercizio, per avere una prova pratica della sicurezza di ciò che si espone.
È importante capire che la probabilità che un pen-tester riesca a trovare tutti i problemi di sicurezza è molto bassa. Ad esempio: ieri è stato fatto un penetration test che ha messo in evidenza l'assenza di vulnerabilità nel sistema; oggi Microsoft rilascia una patch atta a correggere alcuni errori di sistema contenente una nuova vulnerabilità di alcuni server di posta che in precedenza erano considerati sicuri; questo significa che il pen-test di ieri non è più valido visto che naturalmente non può mettere in luce la nuova vulnerabilità. Lo stesso esempio può essere applicato
== Tipologie di Penetration Test ==
=== Penetration Test Infrastrutturale ===
Noto anche come ''Network Penetration Test'' è un tipo di attività che si sofferma principalmente sulle componenti di rete. Il test mira ad analizzare Porte (TCP/UDP) e servizi potenzialmente vulnerabili per effettuare attacchi.
=== Web Application Penetration Test ===
Il Penetration Test di [[Applicazione web|applicazioni web]] (spesso abbreviato in ''WAPT'') tende a valutare specificatamente vulnerabilità della logica applicativa di applicazioni web, limitando il perimetro di test alle stesse. Il test di applicazioni web spesse utilizza come riferimento la OWASP Top 10<ref>{{Cita web|url=https://owasp.org/www-project-top-ten/|titolo=OWASP Top 10}}</ref> rilasciata dalla stessa [[Open Web Application Security Project|OWASP]]. Per effettuare i test vengono spesso utilizzati strumenti quali: Burpsuite, Acunetix, Zap etc.
== Strumenti ==
Line 53 ⟶ 61:
=== Distribuzioni di sistemi operativi specializzati ===
[[File:Kali Linux.png|
Diverse distribuzioni di sistemi operativi sono orientate verso il penetration test.<ref>{{Cita libro|cognome=Faircloth |nome=Jeremy |titolo=Penetration Tester's Open Source Toolkit, Third Edition |url=https://archive.org/details/penetrationteste0000fair |edizione=Third |anno=2011 |editore=
Alcuni dei più famosi [[Sistema operativo|sistemi operativi]] orientati al ''pen test'' sono:
* [[Kali Linux]] basato sulla distribuzione [[Debian GNU/Linux]]
* [[Parrot
* [[Pentoo]] basato su [[Gentoo Linux]]<ref>{{Cita web|url=https://www.pentoo.ch|titolo=Pentoo|accesso=10 dicembre 2016|lingua=en}}</ref>
* [[BackBox]] basato su [[Ubuntu]]
* [[WHAX]] basato su [[Slackware]]<ref>{{Cita libro|titolo=Kali Penetration Testing concepts|citazione=The creators of BackTrack have released a new, advanced Penetration Testing Linux distribution named Kali Linux|isbn=978-1-78216-316-9|lingua=en}}</ref><ref>{{Cita libro|titolo=Kali Penetration Testing concepts|citazione=Kali Linux is designed to follow the flow of a Penetration Testing service engagement|isbn=978-1-78216-316-9|lingua=en}}</ref>
Un certo numero di [[Sistema operativo|sistemi operativi]] includono [[vulnerabilità informatica|vulnerabilità]] di sistema o applicative conosciute, e possono essere utilizzate come bersagli. Tali sistemi aiutano i nuovi professionisti della sicurezza a provare gli ultimi strumenti di sicurezza in un ambiente di laboratorio. Alcuni di questi sono:
* [[Damn Vulnerable Linux]] (DVL)
* [[owasp:Main Page|OWASP Web Testing Environment]] (WTW)
* [[Metasploit Project]]
[[File:Metasploit logo and wordmark.png|
=== Software frameworks Penetration Test ===
Line 84 ⟶ 92:
== Strumenti di test automatizzati ==
Il processo di penetration test può essere semplificato in due parti:
#
# Descrizione dell'operazione non valida
Line 92 ⟶ 100:
Il [[fuzzing]] è una tecnica molto diffusa per scoprire le vulnerabilità di un sistema. Ha lo scopo di ottenere un errore non gestito attraverso un input casuale. Il tester utilizza input casuali per accedere a porzioni di codice poco utilizzate visto che quelle più frequenti sono solitamente esenti da errori. Gli errori sono utili perché o espongono ulteriori informazioni, come ad esempio crash del [[Server web|server HTTP]], o sono direttamente utilizzabili, ad esempio il [[buffer overflow]].
Immaginate un sito che dispone di 100 caselle di testo. Alcune saranno vulnerabili a [[SQL injection]] attraverso l'uso di determinate stringhe. L'invio continuo di stringhe casuali arriverà prima o poi a trovare un buco nella sicurezza. L'errore risulta evidente presentandosi come una pagina HTML non corretta a causa di un errore SQL. In questo caso, solo le caselle di testo sono utilizzate come [[input]]. Tuttavia, i sistemi software hanno solitamente molti tipi di input, come i [[cookie]], il flusso di un file in upload o canali RPC. Gli errori possono presentarsi in tutti questi tipi di input. L'obiettivo è quello di ottenere prima un errore non gestito
=== Payload ===▼
L'operazione non valida, o payload nella terminologia Metasploit, può comportare controllo remoto del mouse, comparsa di popup pubblicitari, furti della password o altro. Alcune aziende mantengono grandi database di exploit noti e forniscono prodotti che mettono alla prova automaticamente i sistemi per conoscerne le vulnerabilità:<ul><li>[[Metasploit]]</li><li>[[Nessus]]</li><li>[[Nmap]]</li><li href="piattaforma (informatica)">[[OpenVAS]]</li><li>[[W3af]]</li></ul>▼
== Standard e certificazioni professionali ==
Nell'ambito del penetration test è possibile acquisire certificazioni rilasciate da enti preposti a garantire le dovute caratteristiche tecniche e di affidabilità degli operatori, nonché quello di fornire una metodologia che renda il test di per sé replicabile, valutabile e misurabile nel tempo:
*
* OffSec - [https://www.offsec.com/courses/pen-300/ OffSec Experienced Penetration Tester (OSEP)]
* [https://www.elearnsecurity.it/course/penetration_testing/ eCPPT] - eLearnSecurity Certified Professional Penetration Tester " Professional v3 in Italiano - Patrocinata da AIPSI, Associazione Italiana Professionisti della Sicurezza Informatica(AIPSI)
* ISECOM - [[OPST|OSSTMM Professional Security Tester]] ([[OPST]])
* International Council of E-Commerce Consultants - [[Certified Ethical Hacker]] (CEH)
▲* Offensive Security (offensive-security.com)- [[Offensive Security Certified Professional]] ([[Offensive Security Certified Professional|OSCP]])
La IACRB (Information Assurance Certification Review Board) fornisce una certificazione per penetration tester nota come Certified Penetration Tester (CPT). Il CPT richiede che il candidato superi un esame a scelta multipla tradizionale e un esame pratico che richiede al candidato di eseguire un pen test su di un server.<ref name="iacertification.org">{{Cita web|url=http://www.iacertification.org/cpt_certified_penetration_tester.html|titolo=Certified Penetration Tester (CPT)
== Discordanze rispetto al Red Teaming ==
▲=== Payload ===
Sebbene Penetration Testing e Red Teaming<ref>{{Cita web|url=https://www.mitnicksecurity.com/blog/red-team-testing-vs.-penetration-testing|titolo=Penetration Testing vs Red Teaming}}</ref> appartengano entrambi alla branca della ''Offensive Security'', vengono spesso usati come sinonimi. Tuttavia ci sono delle profonde differenze sia per modalità di attività, sia per obiettivi prefissati.
▲L'operazione non valida, o payload nella terminologia Metasploit, può comportare controllo remoto del mouse, comparsa di popup pubblicitari, furti della password o altro. Alcune aziende mantengono grandi database di exploit noti e forniscono prodotti che mettono alla prova automaticamente i sistemi per conoscerne le vulnerabilità:<ul><li>[[Metasploit]]</li><li>[[Nessus]]</li><li>[[Nmap]]</li><li href="piattaforma (informatica)">[[OpenVAS]]</li><li>[[W3af]]</li></ul>
Il Penetration Testing ha un perimetro di intervento ben definito, sia in termini di ''scope,'' che può essere una rete (''Network PT''), un sito web (''Web Application PT''), che di finestra temporale (solitamente nell'ordine delle settimane) e il suo scopo è valutare quante più vulnerabilità possibili per permettere di applicare le relative mitigazioni. Spesso per permettere un approccio full coverage, i sistemi difensivi vengono temporaneamente disattivati per permettere all'attaccante di avere una piena visibilità e contezza rispetto alle vulnerabilità presenti.<ref>{{Cita web|url=https://evalian.co.uk/penetration-testing-vs-red-team-testing/|titolo=Penetration Testing vs Red Team Testing}}</ref>
Contestualmente il Red Teaming è un'attività svolta in una finestra temporale molto estesa (solitamente nell'ordine dei mesi) dove non è presente un vero e proprio perimetro di intervento. L'obiettivo è di penetrare all'interno dell'azienda per verificare l'efficacia dei sistemi di sicurezza, ma soprattutto i tempi di risposta del personale posto alla difesa dell'infrastruttura (blue team<ref>{{Cita web|url=https://csrc.nist.gov/glossary/term/blue_team|titolo=Blue Team}}</ref>).
== Note ==
<references/>
== Bibliografia ==▼
* Hunt, Edward (2012). [http://www.computer.org/csdl/mags/an/2012/03/man2012030004.html "US Government Computer Penetration Programs and the Implications for Cyberwar"], ''IEEE Annals of the History of Computing'' 34(3)▼
* [[Johnny Long (informatico)|Long, Johnny]] (2007). ''Google Hacking for Penetration Testers'', [[Elsevier]]▼
* MacKenzie, Donald (2001). [http://books.google.com/books?id=QiMS8t4V_0cC ''Mechanizing Proof: Computing, Risk, and Trust'']. The MIT Press▼
* MacKenzie, Donald and Garrell Pottinger (1997). [http://www.computer.org/csdl/mags/an/1997/03/man1997030041.html "Mathematics, Technology, and Trust: Formal Verification, Computer Security, and the U.S. Military"], ''IEEE Annals of the History of Computing'' 19(3)▼
* McClure, Stuart McClure (2009) '' Hacking Exposed: Network Security Secrets and Solutions'', McGraw-Hill▼
* Russell, Deborah and G. T. Gangemi, Sr. (1991). [http://books.google.com/books?id=BtB1aBmLuLEC ''Computer Security Basics'']. [[O'Reilly Media]]▼
* Yost, Jeffrey R. (2007)."A History of Computer Security Standards," in ''The History of Information Security: A Comprehensive Handbook'', [[Elsevier]]▼
* Stephen Northcutt, Jerry Shenk, Dave Shackleford, Tim Rosenberg, Raul Siles, and Steve Mancini, giugno 2006, [https://www.sans.org/reading-room/whitepapers/analyst/penetration-testing-assessing-security-attackers-34635 Penetration Testing: Assessing Your Overall Security Before Attackers Do] {{Webarchive|url=https://web.archive.org/web/20161012223734/https://www.sans.org/reading-room/whitepapers/analyst/penetration-testing-assessing-security-attackers-34635 |date=12 ottobre 2016 }}, SANS▼
== Voci correlate ==
* [[Vulnerabilità informatica]]
* [[Sicurezza informatica]]
* [[Tiger team]]
Line 118 ⟶ 144:
* [[White hat]]
* [[Software libero]]
▲== Bibliografia ==
▲* Hunt, Edward (2012). [http://www.computer.org/csdl/mags/an/2012/03/man2012030004.html "US Government Computer Penetration Programs and the Implications for Cyberwar"], ''IEEE Annals of the History of Computing'' 34(3)
▲* [[Johnny Long|Long, Johnny]] (2007). ''Google Hacking for Penetration Testers'', [[Elsevier]]
▲* MacKenzie, Donald (2001). [http://books.google.com/books?id=QiMS8t4V_0cC ''Mechanizing Proof: Computing, Risk, and Trust'']. The MIT Press
▲* MacKenzie, Donald and Garrell Pottinger (1997). [http://www.computer.org/csdl/mags/an/1997/03/man1997030041.html "Mathematics, Technology, and Trust: Formal Verification, Computer Security, and the U.S. Military"], ''IEEE Annals of the History of Computing'' 19(3)
▲* McClure, Stuart McClure (2009) '' Hacking Exposed: Network Security Secrets and Solutions'', McGraw-Hill
▲* Russell, Deborah and G. T. Gangemi, Sr. (1991). [http://books.google.com/books?id=BtB1aBmLuLEC ''Computer Security Basics'']. [[O'Reilly Media]]
▲* Yost, Jeffrey R. (2007)."A History of Computer Security Standards," in ''The History of Information Security: A Comprehensive Handbook'', [[Elsevier]]
▲* Stephen Northcutt, Jerry Shenk, Dave Shackleford, Tim Rosenberg, Raul Siles, and Steve Mancini, giugno 2006, [https://www.sans.org/reading-room/whitepapers/analyst/penetration-testing-assessing-security-attackers-34635 Penetration Testing: Assessing Your Overall Security Before Attackers Do], SANS
{{Controllo di autorità}}
|