Penetration test: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
deduttività
Riga 9:
 
Tutti i problemi di sicurezza rilevati vengono quindi presentati al cliente assieme ad una valutazione del loro impatto nel sistema e nello scenario del business aziendale, fornendo inoltre una soluzione tecnica o proposta di [[Migrazione (informatica)|migrazione]] e mitigazione del sistema.<ref>{{Cita web|https://www.sans.org/reading-room/analysts-program/PenetrationTesting-June06|Penetration Testing: Assessing Your Overall Security Before Attackers Do|10 dicembre 2016|editore=[[SANS]]|formato=pdf|lingua=en}}</ref>
 
== Procedimenti di analisi ==
L'analisi viene svolta a fronte di un accordo commerciale/tecnico. Chi svolge questa attività è chiamato ''penetration tester'' o ''auditor'' e oggi anche con il più moderno nome ''ethical hacker'', visto che si tenta di aggredire il sistema con le stesse logiche utilizzate da un [[hacker]]. Un gruppo di penetration tester è chiamato anche ''[[tiger team]]''.
 
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|http://www.sans.org/reading-room/whitepapers/bestprac/writing-penetration-testing-report-33343|Writing a Penetration Testing Report|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 una enumerazione dei principali errori e problemi. Software automatizzati uniti all'esperienza manuale dell'analista permettono quindi di evidenziare tutte le possibili vulnerabilità, incluse quelle più recenti e alcune ancora non di pubblico dominio. I problemi riscontrati sono quindi manualmente verificati e sono prese le evidenze, o prove, che certificano l'esistenza delle problematiche stesse.
 
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 ad ogni modifica attuata sul sistema. Mantenere una rete sicura richiede quindi una vigilanza costante.
 
== Storia ==
Riga 51 ⟶ 38:
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 cibernetica”.<ref>Hunt (2012), p. 5</ref>
 
== Procedimenti di analisi ==
== Standard e Certificazioni professionali ==
L'analisi viene svolta a fronte di un accordo commerciale/tecnico. Chi svolge questa attività è chiamato ''penetration tester'' o ''auditor'' e oggi anche con il più moderno nome ''ethical hacker'', visto che si tenta di aggredire il sistema con le stesse logiche utilizzate da un [[hacker]]. Un gruppo di penetration tester è chiamato anche ''[[tiger team]]''.
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:
* [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]])
 
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.
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>{{Cita web|http://www.iacertification.org/cpt_certified_penetration_tester.html|Certified Penetration Tester (CPT)|10 dicembre 2016|editore=IACRB|lingua=en}}</ref>
 
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|http://www.sans.org/reading-room/whitepapers/bestprac/writing-penetration-testing-report-33343|Writing a Penetration Testing Report|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 una enumerazione dei principali errori e problemi. Software automatizzati uniti all'esperienza manuale dell'analista permettono quindi di evidenziare tutte le possibili vulnerabilità, incluse quelle più recenti e alcune ancora non di pubblico dominio. I problemi riscontrati sono quindi manualmente verificati e sono prese le evidenze, o prove, che certificano l'esistenza delle problematiche stesse.
 
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 ad ogni modifica attuata sul sistema. Mantenere una rete sicura richiede quindi una vigilanza costante.
 
== Strumenti ==
Riga 104 ⟶ 95:
 
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, e quindi comprendere la falla basandosi sul test che ha portato al fallimento. Il tester progetta uno strumento automatizzato per testare la sua conoscenza della falla finché non la comprende a pieno. In seguito, diventa evidente come creare il payload in modo che il sistema vittima lo esegua. Se questa via non è percorribile si può sperare che un altro errore prodotto dal fuzzer produca più frutti. L'uso di un fuzzer consente di risparmiare tempo in modo da non dover controllare le porzioni di codice in cui è improbabile trovare delle [[vulnerabilità]].
 
== Standard e Certificazionicertificazioni 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:
* [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>{{Cita web|http://www.iacertification.org/cpt_certified_penetration_tester.html|Certified Penetration Tester (CPT)|10 dicembre 2016|editore=IACRB|lingua=en}}</ref>
 
=== Payload ===