Continua il nostro approfondimento in ambito cyber security, analizzando il concetto di penetration test, le sue finalità e i benefici che può apportare alle organizzazioni di qualsiasi dimensione e settore. I penetration tester, professionisti esperti nel campo della sicurezza informatica, si infiltrano nei sistemi per scoprire falle e vulnerabilità prima che possano essere sfruttate da malintenzionati.
Il loro ruolo non è solo quello di “sfondare” muri.
Devono essere prima di tutto “strateghi” per vagliare le varie opportunità di accesso; devono essere “analisti” perchè la loro utilità risiede nella capacità di fornire suggerimenti e soluzioni per migliorare la sicurezza complessiva del sistema; devono essere soggetti esterni all’azienda analizzata in quanto forniscono una prospettiva obiettiva, arricchita dalla conoscenza di sistemi diversi che possono avere affrontato molteplici minacce informatiche.
Poichè l’argomento è spesso associato ad attività di natura prettamente “tecnica”, riservate a pochi eletti che conoscono sistemi e codici, cerchiamo di esaminare le diverse fasi di un penetration test, dalla pianificazione all'esecuzione, fino alla valutazione dei risultati. Quali tecniche e strumenti usano i professionisti per sondare e testare la resistenza dei sistemi, delle applicazioni e delle reti? Quali sono i possibili approcci?
E infine qualche esempio che ci aiuta ad avvicinarci alla logica degli hacker, dandoci qualche spunto di riflessione e di attenzione.
Partiamo dalla definizione di penetration testing, ovvero un'attività finalizzata a identificare e individuare le potenziali problematiche di un sistema specifico. Attraverso un'analisi approfondita eseguita dall'interno o dall'esterno del sistema, vengono rilevate le vulnerabilità presenti e sfruttate le sue debolezze. Durante questa valutazione vengono presi in considerazione tutti i componenti dell'infrastruttura IT, comprese le applicazioni, i dispositivi di rete e la sicurezza fisica. Attraverso la valutazione della resistenza del sistema agli attacchi reali, il penetration test mette alla prova l'efficacia delle misure di sicurezza implementate. Simulando scenari di attacco, si identificano eventuali punti deboli che necessitano di miglioramenti, garantendo così che il sistema sia in grado di difendersi dagli attacchi per proteggere i dati che raccoglie e gestisce.
Abbiamo già parlato di Vulnerability Assessment ed è normale porsi la domanda di quale delle 2 analisi fornisca il miglior processo per valutare la sicurezza delle informazioni.
Un vulnerability assessment da solo non risolve il problema di una possibile intrusione.
Dopo aver condotto un vulnerability assessment, è necessario procedere all'analisi delle vulnerabilità identificate per determinare se possono costituire una minaccia per il sistema in questione. Nel momento in cui si procede ad un tentativo di intrusione, ci si sposta nel raggio d’azione del penetration testing. Sicuramente i risultati ottenuti a seguito di un penetration test generano un valore superiore rispetto a quelli di un vulnerability assessment, aiutando gli amministratori del sistema ad individuare rapidamente le vulnerabilità e contestualmente a valutare l'efficacia delle misure di sicurezza adottate (se presenti).
In ambito di penetration testing esistono due tipologie di approccio fondamentali: il black-box testing e il white-box testing. La differenza principale tra queste due metodologie risiede nella quantità di informazioni che un penetration tester ha a disposizione sui sistemi da testare: nel primo caso (Black box, noto anche come "test esterno"), il tester simula le azioni che un attaccante potrebbe compiere sfruttando le vulnerabilità rilevate, senza avere informazioni dettagliate sull'infrastruttura. Nel secondo caso (White box, noto anche come "test interno"), i tester simulano un attacco avendo una conoscenza completa dell'infrastruttura da testare. Questo approccio consente ai tester e agli amministratori del sistema da testare di concentrarsi su un obiettivo specifico, lavorando in collaborazione per identificare e risolvere le vulnerabilità rilevate.
Esiste anche un terzo approccio (Grey box testing) che si pone in mezzo ai precedenti, in cui i tester hanno una conoscenza parziale dell'infrastruttura da testare. Questo approccio permette di “risparmiare” tempo nella ricerca di informazioni pubblicamente disponibili.
Il processo di penetration testing deve seguire una logica stringente e normalmente viene suddiviso in fasi che hanno obiettivi e finalità diverse.
La Fase di pre-attacco segna l'inizio del penetration testing: serve a raccogliere il maggior numero di informazioni possibili sul sistema che si intende analizzare. Durante questa fase, si cercano attivamente dati e dettagli che possono aiutare nel processo di valutazione.
La Fase di attacco, durante la quale il penetration tester sfrutta le vulnerabilità rilevate nella fase di pre-attacco per cercare di compromettere il sistema, ottenere accesso non autorizzato o mettere alla prova le misure di sicurezza implementate. L'obiettivo principale è verificare la resistenza del sistema agli attacchi reali e identificare eventuali punti deboli che richiedono interventi correttivi.
L’ultima è la Fase post-attacco in cui vengono ripristinati i sistemi al loro stato di pre-test originale e viene generato un report dettagliato che riporta tutti i risultati del penetration test. Il report costituisce un documento esaustivo in cui vengono spiegati e analizzati in modo chiaro tutti i passi eseguiti durante la fase di test. Inoltre, vengono forniti suggerimenti pertinenti per correggere gli errori identificati.
Le azioni sono molteplici, ci soffermiamo su un paio di esempi che coprono la gran parte delle situazioni.
Un attacco di phishing mira a indurre il destinatario a cadere nell'azione desiderata dall'attaccante: ad esempio rivelare informazioni finanziarie, credenziali di accesso al sistema o altre informazioni sensibili.
Un attacco di phishing di solito inizia con una mail che sostiene di provenire da un sito web legittimo, come un sito di un istituto bancario o un negozio online.
Le mail di phishing spesso contengono molti errori di ortografia, grammatica o formattazione. La presenza di tali errori è un segnale di avvertimento che può far comprendere immediatamente che il messaggio non è affidabile o autentico. Poiché le organizzazioni legittime di solito fanno attenzione alla qualità e alla precisione delle loro comunicazioni ufficiali, una e-mail piena di errori può sollevare sospetti sia sul contenuto che sulla sua provenienza.
Non sempre questo parametro è sufficiente per capire che si tratta di una mail malevola.
Un suggerimento importante è verificare attentamente i link e gli indirizzi presenti nella mail. Prima di fare clic su un link, è consigliabile passarci sopra con il cursore del mouse per esaminare l’indirizzo completo. Se ci sono lettere estranee nel nome di dominio o se il nome del dominio non corrisponde all'azienda, potrebbe essere un chiaro segno che il messaggio sia una truffa.
Spesso il collegamento promette funzioni speciali o contenuti personalizzati, omaggi o altre offerte molto allettanti: è sempre consigliabile in questi casi evitare di cliccare sui link proposti ed informarsi meglio circa la veridicità del messaggio ricevuto.
Un penetration tester sfrutta la stessa modalità dell’hacker e invia messaggi “finti” per verificare chi cade nella trappola. Ovviamente la grande differenza rispetto all’hacker è che l’obiettivo non è sfruttare l’ingenuità dell’operatore a proprio vantaggio ma sensibilizzare ad una maggiore attenzione che spesso viene meno, complice anche il bombardamento di mail quotidiane.
L'iniezione di SQL è una vulnerabilità della sicurezza web che consente a un attaccante di interferire con le query che un'applicazione invia al suo database. In generale, consente all'attaccante di visualizzare dati ai quali normalmente non avrebbe accesso: ciò potrebbe includere dati appartenenti ad altri utenti o qualsiasi altro dato a cui l'applicazione stessa è in grado di accedere. In alcuni casi, un attaccante può modificare o eliminare tali dati, causando modifiche persistenti al contenuto o al comportamento dell'applicazione.
Esistono dei tool appositi di analisi automatica che rilevano i database collegati ad un sistema, partendo da parametri contenuti direttamente nell’URL dell’applicazione web, ad esempio "http://example.com/page.php?id=1&category=2", dove un tool è in grado di testare e sfruttare la vulnerabilità di SQL injection nel parametro "id" e/o "category".
Una via d’accesso semplificata all’identificazione del nome del database significa di conseguenza una maggiore probabilità di acquisire ulteriori informazioni come il nome delle tabelle presenti, le colonne di ciascuna tabella e i dati contenuti in ogni colonna. Anche in questo caso, il penetration tester si ferma alla constatazione di avere raggiunto i dati, un hacker andrebbe oltre, estraendo i dati o, peggio ancora, modificandoli.
08 Ottobre, 2024
09 Settembre, 2024
Sviluppiamo software su misura per te