Questo argomento è stato trattato in penTestEthicaHacking
Figura dell’hacker
L’hacker è un’esperto del computer interessato alla conoscenza dei dettagli di un computer ed espandere le sue capacità. Usa le conoscenze tecniche per risolvere problemi (non solo correlati alla sicurezza) e non causa danni in modo delibearato.
Un craker è anch’essa una persona esperta, che irrompe in sistemi in maniera intenzionale e illegale, con lo scopo di ottenere dati o controllo del sistema e, più in generale, di causare danni.
Un ethical hacker è un professionista che applica le proprie skill in ambito hacking per scopi difensivi.
La differenza tra un white hat hacker e un black hat hacker non risiede nell’etica, a causa della complessità della definizione del concetto di “etico” in ogni contesto. Piuttosto un white hat hacker può essere rappresentato con la seguente definizione:
White Hat Hacker vs Black Hat Hacker: definizione
I white hat hacker sono individui che effettuano valutazioni di sicurezza nell’ambito di un accordo contrattuale, mentre i Black hat hacker sono degli individui che eseguono attacchi e penetrazioni non autorizzati in sistemi informativi.
White Hat Hacker
Lo scopo di un white hat hacker è quello di migliorare la posizione, in termini di sicurezza, del proprio cliente, a livello di rete o di sistema, o trovando delle vulnerabilità ed exploit che possono essere usati da un attore malevolo e/o non autorizzato.
La figura del white hat hacker gode anche di alcuni benefici, rispetto alla figura del black hat hacker:
- i white hat hacker sono spesso ingaggiati da compagnie con risorse a disposizione per la formazione;
- quelli impiegati in grandi compagnie hanno accesso a risorse che i black hat hacker non hanno, come complesse architetture che usano protocolli allo stato dell’arte, nuove tecnologie e steam di ricerca e sviluppo.
Tuttavia, possono avere delle restrizioni durante le loro attività, in quanto alcuni attacchi possono causare crash e perdita di dati.
Standard Etici
Esistono diverse “codifiche” per interpretare il significato di standard etico. Una prima definizione viene fornita da CISSP (Certified Information Systems Security Professionals), che richiede ai propri membri il rispetto dei seguenti principi (in ordine di importanza):
- proteggere la società, il bene comune e l’infrastruttura;
- agire in modo onorevole, onesto, giusto, responsabile e legale;
- fornire servizi diligenti e competenti ai committenti;
- far avanzare e proteggere la professione.
Un ulteriore definizione viene fornita dall’Istituto SANS:
- mi impegnerò a conoscere me stesso ed essere onesto sulle mie capacità;
- condurrò la mia attività in maniera da assicurare che la professione in ambito IT sia considerata integra e professionale;
- rispetterò la privacy e la confidenzialità.
In aggiunta a questi, quasi ogni organizzazione ha le sue policy in materia di standard etici. Talvolta, possono non essere correlate direttamente con la sicurezza delle informazioni, ma solitamente sono definite ad alto livello, in modo da includere tutte le attività svolte nell’ambito aziendale. Inoltre, non è insolito che, quando si assume un terzo (contractor), si richiede che questi aderisca alla policy etica di chi lo assume.
Penetration testing
Penetration tester
Un penetration tester è un professionista in ambito cybersecurity che ha le stesse capacità di un hacker e sono assunti da organizzazioni per simulare attacchi reali sull’infrastruttura di rete dell’organizzazione con l’obiettivo di individuare e sfruttare vulnerabilità. Questa pratica consente alle organizzazioni di determinare di quali debolezze soffre e di implementare controlli che possano prevenire e mitigare attacchi.
Attività di pen testing
Penetration testing: definizione
Il penetration testing è un approccio proattivo alla cybersecurity che include un tentativo autorizzato di violazione del sistema informatico di un’organizzazione (incluse reti e applicazioni) per valutarne la posizione in termini di sicurezza e identificare le vulnerabilità prima che possano essere sfruttate dagli attaccanti.
Il penetration testing:
- fornisce un controllo fondamentale sull’efficacia delle difese di un’organizzazione;
- riduce i rischi di minacce;
- assicura compliance con gli industry standard e con i regolamenti.
Obiettivi del pen testing
- Identificare le debolezze nella sicurezza, per porre azioni correttive per prevenire cyberattacchi;
- stare al passo con le minacce;
- valutare un potenziale impatto, siccome l’impatto di una violazione può essere significativa. L’attività di pen testing aiuta a identificare aree ad alto rischio, fornendo una valutazione delle vulnerabilità prima che un attaccante possa sfruttarle;
- compliance, riguardo alla quale è possibile, mediante l’attività di pen testing, aderire i requisiti regolamentari e assicurare che i dati sensibili dei clienti siano protetti;
- costruire una forte cultura alla cybersecurity, dimostrando i potenziali rischi e conseguenze di un attacco. Acquisendo consapevolezza dei rischi, un impiegato è più incline a mantenere le best practices in ambito sicurezza.
Concetto di tempo
La comprensione di quanto tempo è richiesto dall’inizio della raccolta delle informazioni al raggiungimento dell’obiettivo dell’attacco è fondamentale. A volte, un attacco può richiedere da qualche giorno a qualche mese di attenta pianificazione per garantire che ogni fase sia eseguita con successo quando eseguita nell’ordine giusto^[Tuttavia, un threat actor deve considerare anche la possibilità di un non funzionamento di un attacco o di un exploit sul target, che comporta un ostacolo durante il processo che aumenta il tempo richiesto per raggiungere l’obiettivo dell’attacco.]. Questo concetto può essere applicato dal penetration tester per determinare quanto tempo è necessario per completare il testing per un cliente e presentare il report con le conclusioni e le raccomandazioni di sicurezza.
Hack value
L’hack value è il motivo per svolgere un attacco contro i sistemi e le reti di un target. Per un threat actor rappresenta il valore di raggiungere gli obiettivi conseguenti alla compromissione del sistema, per cui potrebbe non bersagliare una determinata organizzazione se non vale la pena dedicare tempo, sforzo e risorse; altri threat actors, tuttavia, potrebbero bersagliare la stessa organizzazione per altri motivi.
Necessità di penetration testing
In conseguenza a un attacco, è necessario svolgere la strategia di Incident Response (IR) e pianificare il recupero dei sistemi compromessi a uno stato accettabile di funzionamento.
Analogamente, per svolgere il penetration testing, è necessaria un’attività di planning, in modo da determinare un ordine sequenziali di passi per raggiungere lo scopo desiderato, cioè quello di identificare e sfruttare delle vulnerabilità.
Metodologie per il pen testing
La metodologia è una discussione ad alto livello degli step necessari per completare un task, includendo l’ordine in cui i passi devono essere svolti; si tratta di un componente essenziale per l’attività di project management.
Tuttavia, la metodologia non include la descrizione del modo in cui devono essere svolte le azioni, che rientra nell’ambito di azione del framework. Nel dettaglio, un framework fornisce una lista di passi necessari da svolgere in ogni fase; i passi non sono obbligatori e possono essere adattati per rispettare i requisiti di ogni specifico ingaggio, dunque il framework è ancora una lista di passi generici. I playbooks, invece, sono dei processi step-by-step che definiscono davvero come svolgere un compito all’interno del framework.
Il penetration testing deve essere un processo ripetibile e correlato di documenti associati a una attività di project management, con lo scopo di migliorare drasticamente la qualità del test e ridurre i costi.
ISSAF: Information System Security Assessment Framework
ISSAF è un framework supportato dalla Open Information Systems Security Group (OISSG) e rappresenta un processo peer-reviewed che fornisce informazioni in dettaglio su come condurre un penetration test; il focus non è posto sull’attività di project management (non è utile per i project manager) e viene utilizzato prevalentemente per scopi didattici. Crea una connessione distinta tra le task di un penetration test e uno strumento di pen testing.
Viene articolato in varie fasi:
- fase 1 - planning & preparation: include gli step per lo scambio delle informazioni iniziali, pianificare e preparare il test. Un contratto formale (Assessment Agreement) viene firmato da entrambe le parti e fornisce le basi per il test e protezione legale, poiché detta le specifiche per il team di ingaggio, le date esatte, i tempi del test, l’escalation path e altri dettagli organizzativi, incluse le persone da contattare per entrambe le parti;
- fase 2 - assessment: ogni step del testing è un layer e, ciascuno, può essere applicato a un determinato target (Networks, Hosts, Applications e Databases). Il significato di questi layer è:
- information gathering: usare Internet per trovare informazioni sul target, usando metodologie tecniche e non tecniche;
- network mapping: identificare tutti i sistemi e risorse nella rete target;
- vulnerability identification: attività svolte da un perito per rilevare le vulnerabilità nel target;
- penetration: ottenere accesso non autorizzato eludendo le misure di sicurezza applicate e cercando di ottenere un livello di accesso quanto più ampio possibile;
- gaining access and privilege escalation: dopo aver sfruttato con successo un sistema o rete target, si tenterà di ottenere un livello di privilegi più alto;
- enumerating further: ottenere ulteriori informazioni riguardo una rete o sistema compromesso;
- compromise remote users/sites: sfruttare delle relazioni di fiducia e comunicazioni tra utenti remoti e reti aziendali;
- maintaining access: usando canali coperti, backdoor e rootkit per nascondere la presenza dell’intruso su un sistema o per fornire accesso continuativo al sistema compromesso;
- covering tracks: eliminare ogni segno di compromissione nascondendo files, pulendo log, eludendo controlli di integrità e software antivirus. ISSAF fornisce informazioni dettagliate su diversi tipi di valutazione della sicurezza della rete, su vari livelli di dettaglio, includendo informazioni di contesto come configurazioni standard, lista di tool da usare per l’attacco e risultato atteso. In più, include anche i sistemi operativi più usati nella lista dedicata alla sicurezza degli host, dettagliando in particolare, per ogni piattaforma, i risultati attesi, gli strumenti e come può avvenire il pen test. Per quanto riguarda la sicurezza applicativa, ISSAF valuta: Web Application Security Assessment, SQL Injections, Source Code Auditing, Binary Auditing.
- fase 3 - reporting, clean-up, destroy artifacts: la fase finale in ISSAF affronta la creazione del report necessario agli stakeholders e mettere in sicurezza qualsiasi dato che è stato generato durante il penetration test, fornendo delle generalità senza scendere troppo nel dettaglio. Esistono due modi di effettuare il report che possono essere usate nel contesto di un penetration test e sono rappresentate dalla forma orale e scritta. I report orali sono esclusivi per quelle istanze in cui problemi critici sono scoperti ed è necessario riportarli tempestivamente^[Ed è inoltre suggerito di menzionare ogni comunicazione verbale all’interno del report finale, anche se ISSAF non lo menziona in modo esplicito.]. In questo modo, si crea un record formale anche se il problema critico è risolto prima della distribuzione del report finale agli stakeholders. È richiesto che vengano inclusi, come corpo del documento finale e non come allegato:
- sintesi gestionale;
- ambito del progetto;
- strumenti utilizzati nel penetration test;
- exploit usati;
- data e ora dei test;
- tutti gli output dei tool e degli exploit;
- una lista delle vulnerabilità identificate;
- raccomandazioni per mitigare le vulnerabilità individuate, organizzate per priorità. non viene tuttavia discussa la rimozione delle informazioni sui sistemi testati.
OSSTMM: Open Source Security Testing Methodology Manual
OSSTMM è un manuale giunto alla versione 3.0 e mantenuto dall’Institute for Security and Open Methodology (ISECOM), sviluppato mediante peer review; sebbene questa fonte fornisca una metodologia per condurre un penetration testing, è principalmente una metodologia di auditing che può soddisfare requisiti regolamentari quando usato contro asset dell’organizzazione.
OSSTMM è più estensivo nell’elencare parti di cosa appartiene a un penetration test professionale rispetto a ISSAF, pur non rivolgendosi al project manager. Le informazioni fornite in OSSTMM includono le industry best practices, a vantaggio del project manager che non ha esperienza con il penetration testing. Inoltre, stabilisce le “regole di ingaggio” prima che il progetto possa iniziare.
OSSTMM richiede obbligatoriamente alcune attività e di generare alcuni documenti:
- ambito del progetto;
- confidenzialità e nondisclosure assurance;
- contatti di emergenza;
- statement of Work change process;
- test plan;
- processo di test;
- reporting. In alcuni test, questo potrebbe essere sufficiente a soddisfare il cliente, ma ci sono molte lacune di cui un project manager necessita per migliorare il successo di un progetto di penetration testing (per esempio, identificazione del rischio, analisi qualitativa e quantitativa dei task, ottenimento delle risorse umane, stima dei costi e controllo).
OSSTMM usa il termine “canale” per classificare diverse aree di sicurezza di interesse all’interno di un’organizzazione:
- human security: lo scopo principale è accertarsi dell’efficacia dell’addestramento all’interno dell’organizzazione. Le tecniche e gli strumenti necessari per valutare la human security includono l’ingegneria sociale (la possibilità di condurre una frode, suscettibilità ad “abusi psicologici” come rumors, abilità di ascoltare riunioni a porte chiuse…);
- physical security: coinvolge tentativi di ottenere accesso a strutture senza autorizzazioni appropriate, valutando l’efficacia dei sistemi di sorveglianza, piazzamento delle guardie, illuminazione e tempo di risposta ad eventi che impattano la sicurezza, imitando in tutto e per tutto le attività dei criminali;
- wireless communications: l’ambito non è l’imitato alla connessione tra un access point di rete e un computer, ma include anche la sicurezza elettronica, la sicurezza dei segnali e di altre emanazioni. Ogni trasmissione elettronica che può essere interrotta o intercettata ricade in questo canale (anche RFID, apparecchiature mediche…);
- telecommunications: riguarda qualsiasi forma di comunicazione vocale, ora operate mediante compute e suscettibili di attacchi di rete. Un penetration test può identificare possibili fughe di informazioni, che sia attraverso una deviazione malevola del traffico di rete o meccanismi di protezioni deboli per accedere agli account degli impiegati;
- data networks: si concentra sulla sicurezza di reti e computer e copre le procedure di pen testing come:
- rilevamento di rete;
- conteggio;
- identificazione;
- processo di accesso;
- identificazione dei servizi;
- autenticazione;
- spoofing;
- phishing;
- abuso di risorse.
I moduli sono dei processi ripetibili in un penetration test e sono usati in tutti i canali identificati da OSSTMM. L’implementazione di ogni modulo può essere differente sulla base del sistema o della rete target, in quanto OSSTMM descrive l’obiettivo ad alto livello di ogni modulo. Passi specifici sono forniti in OSSTMM in modo che gli obiettivi ad alto livelli siano realizzati e venga eliminata ogni ambiguità. Anche se non sono specifici come gli step di ISSAF, i moduli di OSSTMM forniscono sufficiente granularità per pen tester esperti di selezionare gli strumenti adeguati per condurre l’attacco, fornendo anche flessibilità su come meglio attaccare il target, fornendo generalità su cosa debba essere fatto nel pen testing. Anche i moduli sono organizzati in fasi:
- fase 1 - regulatory
- posture review: identificazione delle policies regolamentari e legislative che si applicano al target, considerando anche le industry practices;
- logistics: identificazione di vincoli logistici presenti nel progetto (per esempio, latenza di rete e posizione del server);
- active detection verification: la verifica di pratiche e la portata di interazione, rilevamento, risposta e prevedibilità della risposta;
- fase 2 - definitions
- visibility audit: definito l’ambito del progetto, i pen testers devono determinare la visibilità degli obiettivi all’interno dell’ambito del progetto;
- access verification: identificare i punti di accesso nel target;
- trust verification: i sistemi spesso hanno relazioni di fiducia con altri sistemi per svolgere le proprie funzioni, oggetto di determina da parte del modulo;
- controls verification: il modulo misura la capacità di violare confidenzialità, integrità, privacy e non ripudiabilità in un sistema e quali controlli sono in atto per prevenire questa perdita;
- fase 3 - information phase
- process verification: si esamina quali processi sono in atto per garantire che la posizione di sicurezza del sistema sia mantenuta al livello attuale e l’efficacia di questi processi;
- configuration verification^[Nell’ambuto del canale Human Security, questo modulo è chiamato Training Verification e verifica le operazioni di default del target.]: compara le operazioni di default con le necessità dell’organizzazione;
- property validation: identifica la proprietà intellettuale o l’applicazione sul sistema target e valida la licenza della proprietà intellettuale o l’applciazione;
- segregation review: tenta di individuare informazioni personali sul sistema e la misura in cui utenti autorizzati e non possono accedere all’informazione;
- exposure verification: identifica quali informazioni sono disponibili su Internet riguardo il sistema target;
- competitive intelligence scouting: identifica informazioni sui competitor che possono impattare il proprietario del target attraverso competizione;
- fase 4 - interactive controls test phase
- quarantine verification: valida la capacità del sistema di mettere in quarantena l’accesso al sistema dall’esterno e dei dati si sistema dall’interno;
- privileges audit: esamina la capacità di aumentare i permessi all’interno del sistema;
- survivability validation^[Nel canale Human Security, il modulo è chiamato Service Continuity,]: determina la resistenza del sistema a situazioni estreme o avverse;
- alert and log review^[Nel canale Human Security, il modulo è chiamato End Survey.]: include la revisione delle attività di audit.
Valutazione del rischio
Metodologie
Per comprendere il rischio all’interno di un sistema un di una rete, metodologie professionali di penetration testing provano a includere l’analisi del rischio adottando alcune dei metodi più affidabili usati in altri settori, ma spesso è difficoltoso tradurre metodologie di alto livello in esempi reali. ISSAF è molto semplicistico nel suo approccio, mentre OSSTMM quantifica tutti gli aspetti di sicurezza in un target, ma il calcolo necessario per ottenere un punteggio di rischio è complicato. Un’alternativa in questi casi è l’uso di analisi di terze parti per assegnare il rischio, usando strumenti progettati per accertare i livelli di rischio sui sistemi target.
OSSTMM Risk Evaluation
OSSTMM usa tre aspetti all’interno di un sistema per verificare il rischio complessivo per la sicurezza delle informazioni: operazioni, controlli e limitazioni. A ogni aspetto del componente viene assegnato un valore sulla base di diversi criteri, definiti in OSSTMM, come il numero di target, quantità dei metodi di autenticazione in ogni sistema, il numero di vulnerabilità etc. Formule matematiche aggiuntive sono usate per ottenere, infine, una metrica del rischio per il sistema o rete target, che riflette il rischio complessivo per la sicurezza del business dello stakeholder.
OSSTMM OpSec
OSSTMM è un manuale sulla sicurezza operativa (Operational Security, OpSec) e riguarda la misurazione di quanto funziona la sicurezza. OpSec è una combinazione di separazione e controlli, sotto cui, affinché una minaccia possa essere efficace, deve interagire direttamente o indirettamente con l’asset; in questo senso, la separazione della minaccia dall’asset serve a evitare una possibile interazione: è possibile avere la totale sicurezza se l’asset e la minaccia sono completamente separate, altrimenti la sicurezze dell’asset è basata sui controlli in atto sull’asset o il grado in cui si attutisce l’impatto della minaccia.
Le operazioni sono rappresentati da una mancanza di sicurezza che è necessario avere per essere interattivi, utili, pubblici, aperti o disponibili. OpSec è dunque l’abbassamento necessario alle difese affinché si possa condurre business.
OSSTMM Elements: VAT (in OpSec)
- visibility: la visibilità crea opportunità, tutti i target accessibili sono contati una sola volta^[TL;DR: è l’elemento che quantifica la possibilità per un attaccante di osservare o scoprire dei target e rappresenta la potenziale superficie di attacco.];
- access: l’opportunità di interagire con un target, tutti i singoloi modi di interagire con un target sono contati^[TL;DR: quantifica la possibilità di interagire con un target e si concentra su tutti i punti - discreti e misurabili - in cui ingaggiare un target.]
- trust: rappresenta dove il target può interagire liberamente con un altro target all’interno della sua portata, non incide la direzione della relazione di fiducia ai fini del conteggio.
OSSTMM: Controls (in OpSec)
I controlli sono un mezzo per influenzare l’impatto di una minaccia e i conseguenti effetti quando è necessaria l’interazione. Sebbene esistano diversi nomi e tipi di controlli, ci sono solo 12 categorie che includono tutti i possibili controlli.
Controlli interattivi
La classe dei controlli interattivi (Class A) rappresenta la metà dei controlli e influenzano direttamente le interazioni relativamente a visibilità, accesso o fiducia. In particolare, si evidenziano:
- autenticazione: controllo mediante la verifica di credenziali basate su identificazione e autorizzazione;
- indemnification (indennizzo): è un controllo mediante un contratto tra il proprietario del bene e la parte interagente, che può assumere la forma di un avviso visibile come precursore di un’azione legale in caso di mancato rispetto delle regole, di una protezione legislativa specifica o di un fornitore di garanzie di danni di terze parti in caso di danni, come una compagnia assicurativa;
- resilienza: è un controllo su tutte le interazioni per mantenere la protezione degli asset in caso di corruzione o fallimento;
- subjogation (assoggettamento): è un controllo che assicura che le interazioni avvengano solo secondo processi definiti e il proprietario dell’asset definisce in che modo l’interazione avviene, aspetto che rimuove la libertà di scelta ma anche la responsabilità della perdita della parte che interagisce;
- continuity: è un controllo su tutte le interazioni per mantenere l’interattività con l’asset in caso di corruzione o fallimento.
Controlli sul processo
L’altra metà dei controlli sono rappresentati dalla Class B e sono controlli usati per creare processi difensivi. Questi processi non influenzano direttamente le interazioni, ma proteggono l’asset una volta che la minaccia è presente:
- non ripudiabilità: è un controllo che previene la parte che interagisce dal negare la sua partecipazione in ogni interazione;
- confidenzialità: è un controllo che assicura che un asset mostrato o scambiato tra parti che interagiscono possa essere rivelato al di fuori di queste parti;
- privacy: è un controllo che garantisce che le modalità di accesso, visualizzazione e scambio di un asset tra parti non possano essere conosciute al di fuori di queste parti;
- integrity: è un controllo per garantire che le parti che interagiscono conoscano quando l’asset e i processi sono cambiati;
- alarm: è un controllo per notificare che un’interazione è in corso o è stata svolta.
Controlli sull’autenticazione
- identificazione: è la verifica di un’identità esistente;
- autorizzazione: è la concessione dei permessi dalla giusta autorità.
Non possono essere standalone in un ambiente operativo, ma sono combinate e aggiunte al controllo dell’autenticazione.
OSSTMM: Limitazioni
Una limitazione è l’inabilità di un meccanismo di protezione di funzionare correttamente. Dunque, una “limitazione” è lo stato della sicurezza, considerando falle note e restrizioni in ambito operativo. È a causa di buchi, vulnerabilità, debolezze e provlemi che previene la separazione da un asset e una minaccia o nel garantire il corretto continuo funzionamento.
Le limitazioni sono classificate in 5 categorie, ciascuna delle quali definisce il tipo di vulnerabilità, errore, configurazione errata o carenza imputabile al funzionamento:
- vulnerabilità: è la falla o errore che:
- impedisce l’accesso all’asset alle persone o processi autorizzati;
- consente accesso privilegiato all’asset a persone o processi non autorizzati;
- consente a persone o processi non autorizzati di nascondere asset o loro stessi all’interno dell’ambitp;
- debolezza: è la falla o errore che corrompe, riduce, abusa o annulla in modo specifico gli effetti dei cinque controlli di interattività;
- concern: è la falla o errore che corrompe, riduce, abusa o annulla gli effetti dell’esecuzione dei cinque controlli di processo;
- esposizione: è un’azione non giustificabile, errore o falla che fornisce visibilità diretta o indiretta di target o asset all’interno del canale di ambito scelto;
- anomalia: è un qualsiasi elemento non identificabile o sconosciuto che non è stato controllato e non può essere considerato normale per l’operatività.
OSSTMM RAV (Risk Assessment Value)
RAV (Risk Assessment Value) è una metrica quantitativa di sicurezza che mostra quanto è protetto un sistema o un ambiente dalle minacce. Non è una metrica relativa al rischio (piuttosto, lo è per la protezione). Lo score massimo è 100 e rappresenta lo scenario in cui c’è un bilanciamento ottimale tra controlli e operazioni. Quando RAV è inferiore a 100, lo score indica che i controlli sono insufficienti, se non assenti. Se RAV supera 100, significa che si sta sprecando denaro, poiché si investe su qualcosa che è già perfettamente sicuro.
