Nel mondo odierno, dove la dipendenza dalla tecnologia è crescente, la cybersecurity è diventata un pilastro fondamentale. La sicurezza informatica non riguarda solo la protezione di dati e risorse, ma anche la gestione delle vulnerabilità che emergono nei sistemi e nelle applicazioni software. Uno degli errori comuni è la fiducia cieca nella fonte da cui si ottiene il software: installare programmi da fonti non verificate può esporre a gravi rischi, poiché software dannosi come trojan e virus sono spesso distribuiti tramite siti web malevoli o email fraudolente. In questi casi, la vulnerabilità risiede non solo nel software ma anche negli utenti, i quali, se non adeguatamente formati, possono commettere errori nella valutazione delle fonti e dei rischi associati.
La sicurezza della fonte e le minacce nascoste
Affidarsi solo all’affidabilità della fonte di download non è sufficiente. Anche quando scarichiamo software da siti web legittimi, potremmo comunque trovarci esposti a minacce come attacchi “man in the middle” che compromettono il file durante il trasferimento. Inoltre, errori logici interni al software o input inattesi (non è detto che l’input sia fidato, ovvero “soddisfi le precondizioni”), possono compromettere l’intero sistema. Pertanto, la correttezza del software, intesa come aderenza ai requisiti funzionali e prevenzione degli errori, diventa un aspetto cruciale.
Gestione delle vulnerabilità: l’intervento di CERT e CSIRT
Quando una vulnerabilità viene scoperta, l’utente deve segnalarla a un team di risposta agli incidenti informatici, come i CERT (Computer Emergency Response Team) o i CSIRT (Computer Security Incident Response Team). Questi enti, spesso supportati da università o enti governativi, verificano la presenza della vulnerabilità e avvisano i produttori del software, prima di pubblicare un avviso di sicurezza. Tuttavia, esiste anche un mercato illecito per queste vulnerabilità, detto mercato degli “zero-day”, dove le falle sconosciute e non documentate possono essere vendute e sfruttate dai criminali.
Il cybercrime market e le minacce digitali
L’economia del crimine informatico non si limita alle vulnerabilità zero-day. Esistono veri e propri mercati per exploit, malware, botnet e credenziali rubate, spesso venduti come servizi “as-a-service”. Questi mercati prosperano nel dark web, sfruttando reti anonime come TOR per garantire la segretezza e l’intracciabilità delle transazioni. Ad esempio, i dati delle carte di credito o gli account compromessi possono essere venduti a prezzi che variano a seconda del livello di compromissione e del valore dell’account.
Il database delle vulnerabilità e i framework di sicurezza
Per catalogare e analizzare le vulnerabilità, sono stati sviluppati database come il National Vulnerability Database (NVD) e il Common Vulnerabilities and Exposures (CVE), che documentano le vulnerabilità note e forniscono indicazioni su come mitigare i rischi. Le vulnerabilità vengono inoltre classificate tramite il Common Vulnerability Scoring System (CVSS), un sistema di valutazione che attribuisce un punteggio alla gravità del rischio, guidando le aziende nelle priorità di intervento.
Il Common Weakness Enumeration (CWE): una tassonomia delle debolezze del software
Il Common Weakness Enumeration (CWE) è un elenco standardizzato delle debolezze più comuni nella sicurezza del software, sviluppato per facilitare l’identificazione e la prevenzione di vulnerabilità. A differenza del CVE, che si concentra su vulnerabilità specifiche e istanze particolari in software o sistemi, il CWE descrive debolezze generali che possono essere sfruttate in una vasta gamma di contesti. Tra le debolezze più rilevanti troviamo problemi come il “buffer overflow”, che può portare a corruzione della memoria e attacchi di esecuzione arbitraria di codice, la “SQL Injection”, dove l’immissione di comandi non validati può compromettere database e sistemi, e l’“out-of-bounds write”, dove l’accesso a memoria al di fuori dei limiti previsti può causare crash o vulnerabilità critiche. Il CWE non solo funge da linguaggio comune per discutere di questi problemi, ma fornisce anche una base per sviluppare strumenti di testing e pratiche di sicurezza, aiutando gli sviluppatori a progettare sistemi più robusti e resilienti fin dalle fasi iniziali di sviluppo.
Sfide e falsi miti sulla sicurezza del software
Uno dei miti più diffusi è che un software sia “sicuro” se funziona come previsto. Tuttavia, affidabilità e sicurezza non sono sinonimi: un software può soddisfare i requisiti funzionali ma essere comunque vulnerabile ad abusi e attacchi. Inoltre, la sicurezza non dipende solo dalle caratteristiche visibili come la crittografia o il controllo degli accessi, ma anche dall’integrazione sicura di ogni funzione. Le minacce derivano anche dall’imprevedibilità dell’uso del software: moderni sistemi connessi e complessi sono difficili da proteggere completamente.
Alcuni “falsi miti” e la realtà
Funziona in modo affidabile, soddisfacendo tutti i requisiti funzionali. Affidabilità non vuol dire sicurezza: “Il software affidabile fa quello che deve fare. Il software sicuro fa quello che deve fare e nient’altro” (Ivan Arce). Non si tratta solo di come il software deve essere usato, ma anche di come può essere abusato: in quanto i requisiti funzionali sono guidati dai casi d’uso, mentre i requisiti di sicurezza sono guidati da casi di abuso.
Dispone di tutte le caratteristiche di sicurezza appropriate. Funzionalità di sicurezza non vuol dire funzionalità sicure: le funzionalità di sicurezza sono caratteristiche direttamente collegate agli obiettivi di sicurezza, come l’uso della crittografia, la gestione delle password, il controllo degli accessi, ecc. Devono essere implementate con attenzione, ma lo sviluppo non può concentrarsi solo sulle caratteristiche di sicurezza (Seven Pernicious Kingdoms). Le funzionalità sicure sono qualsiasi funzionalità, anche se non direttamente correlate a un requisito di sicurezza, che possono mettere a rischio la sicurezza.
I possibili utilizzi sono ben noti e sotto controllo. Non è possibile prevedere tutti i possibili usi di un sistema software. Il software moderno è soggetto alla “The Trinity of Trouble” (ToT) (Trinità dei problemi) :
Connettività: i sistemi software sono connessi.
Complessità: la loro organizzazione può essere intricata e complessa.
Estensibilità: si evolvono e possono essere estesi in modo imprevedibile.
Tutti questi aspetti sono naturalmente correlati tra loro.
Principio n. 1: il difensore deve difendere tutti i punti; l’attaccante può scegliere il punto più debole.
Principio n. 2: il difensore può difendersi solo da attacchi noti; l’attaccante può sondare le vulnerabilità sconosciute.
Principio n. 3: il difensore deve essere costantemente vigile; l’attaccante può colpire a piacimento.
Principio n. 4: il difensore deve rispettare le regole; l’attaccante può giocare sporco.
Il codice è “chiuso” e le versioni binarie sono offuscate. Anche i nostri meccanismi di crittografia sono segreti. “Security by design vs security by obscurity”: security by obscurity si basa sulla segretezza come metodo generale per la sicurezza. Funziona come deterrente, aumenta il lavoro dell’attaccante, ma i segreti sono difficili da mantenere a lungo (ad es. considerare le fughe di notizie, le tecniche di reverse engineering). In generale, ricordiamo i principi dei “vantaggi dell’attaccante”. Security by design si basa su 10 principi generali di sicurezza:
Semplicità
Design Open
Suddivisione
Esposizione minima
Minimo privilegio
Minima fiducia e massima affidabilità
Difetti sicuri e a prova di errore
Mediazione completa
Nessun singolo punto di errore
Tracciabilità
Per quanto riguarda la sicurezza, conduciamo un pentest approfondito alla fine del ciclo di sviluppo del software. Software development life cycle (SDLC) e il “modello touchpoint”. Il Software Development Life Cycle (SDLC) è un processo strutturato per lo sviluppo di software di alta qualità. Include una serie di fasi che gli sviluppatori seguono per pianificare, progettare, costruire, testare e distribuire un software. L’SDLC fornisce una mappa per il team di sviluppo e garantisce che il prodotto finale soddisfi i requisiti e sia affidabile. Le fasi tipiche dell’SDLC sono:
Pianificazione e analisi dei requisiti: si identificano le esigenze del cliente e si definiscono i requisiti che il software deve soddisfare. Si stabiliscono obiettivi, risorse e tempistiche.
Progettazione: si pianifica l’architettura del software, definendo l’organizzazione del sistema, l’interfaccia utente e il flusso di dati.
Implementazione e codifica: in questa fase si scrive il codice del software. Gli sviluppatori traducono il progetto in codice funzionante, seguendo standard e pratiche di programmazione.
Test: si eseguono vari tipi di test (unit testing, integration testing, system testing, ecc.) per verificare che il software funzioni correttamente e soddisfi i requisiti.
Deployment (distribuzione): una volta che il software è stato testato e considerato pronto, viene distribuito agli utenti finali.
Manutenzione e supporto: dopo il rilascio, il software entra in una fase di manutenzione in cui si correggono bug, si ottimizza il funzionamento e si gestiscono aggiornamenti.
Il modello Touchpoint, sviluppato da Gary McGraw, è una metodologia per incorporare la sicurezza in ogni fase dell’SDLC. A differenza di un approccio “a cascata”, dove la sicurezza è spesso trattata come una fase separata o come un controllo finale, il modello touchpoint incoraggia la sicurezza come parte integrante di tutte le fasi dello sviluppo. I “touchpoint” sono punti strategici dell’SDLC in cui vengono applicate pratiche di sicurezza specifiche. Le principali attività di sicurezza nel modello touchpoint includono:
Code review (revisione del codice): effettuare revisioni del codice manuali o automatiche per identificare vulnerabilità, come SQL injection o buffer overflow. Questo consente di correggere errori di sicurezza direttamente nel codice.
Design review (revisione del progetto): rivedere l’architettura e la progettazione del software per assicurarsi che le decisioni di design non introducano vulnerabilità. Questo può includere un’analisi dei controlli di accesso, della crittografia e delle interazioni con altri sistemi.
Testing di sicurezza: durante i test funzionali, è essenziale includere anche test di sicurezza, come penetration testing o test di fuzzing, per verificare che il software non sia vulnerabile a exploit.
Gestione delle minacce (threat modeling): in questa fase si identificano e valutano le potenziali minacce al sistema, pianificando contromisure e strategie di mitigazione. Il threat modeling può avvenire in diverse fasi, ma è tipicamente più efficace nella fase di progettazione.
Configurazione sicura (security configuration): assicurarsi che i componenti del software, così come i server e le reti, siano configurati in modo sicuro, riducendo al minimo le superfici di attacco.
Incident response planning (piano di risposta agli incidenti): peparare un piano di risposta agli incidenti per gestire eventuali attacchi e violazioni. Avere questo piano in atto sin dalle prime fasi consente di ridurre l’impatto di eventuali exploit.
Formazione sulla sicurezza per gli sviluppatori: assicurarsi che il team di sviluppo sia informato sulle migliori pratiche di sicurezza, per evitare errori comuni durante la scrittura del codice.
Abbiamo appena rilasciato una patch che ha risolto tutti i problemi di sicurezza ed è protetta contro ogni exploit conosciuto. Finestra di vulnerabilità, exploit zero-day. La finestra di vulnerabilità è un concetto utilizzato in sicurezza informatica per descrivere l’intervallo di tempo in cui una vulnerabilità è nota ma non ancora corretta. Durante questo periodo, i sistemi e le applicazioni che presentano la vulnerabilità sono a rischio di attacco, poiché i difetti possono essere sfruttati dagli attaccanti prima che i proprietari del sistema o i fornitori del software rilascino una patch o una correzione.
Ciclo di vita delle vulnerabilità di sicurezza – Fonte OWASP
Caratteristiche della finestra di vulnerabilità
Inizio della finestra: la finestra di vulnerabilità inizia nel momento in cui una falla di sicurezza è scoperta e viene resa pubblica o comunque conosciuta dagli attaccanti.
Fine della finestra: la finestra termina quando viene distribuita e applicata una patch di sicurezza che corregge la vulnerabilità su tutti i sistemi interessati.
Durata variabile: la durata della finestra di vulnerabilità può variare. In alcuni casi, i fornitori rilasciano rapidamente una patch, riducendo il tempo di esposizione. In altri casi, la correzione può richiedere più tempo, prolungando la finestra e aumentando il rischio.
Un exploit zero-day (o attacco zero-day) è una tipologia di attacco che sfrutta una vulnerabilità nel software non ancora conosciuta dai produttori o dal pubblico. In altre parole, si tratta di una vulnerabilità “a giorno zero” perché non è stata ancora scoperta o affrontata con un aggiornamento di sicurezza, lasciando il sistema completamente esposto.
Caratteristiche degli Exploit Zero-Day
Ignoranza del fornitore: un exploit zero-day sfrutta una vulnerabilità di cui il fornitore non è ancora a conoscenza. Questo significa che non esiste alcuna patch o correzione disponibile al momento dell’attacco.
Alta efficacia: gli exploit zero-day sono particolarmente pericolosi perché possono bypassare le misure di sicurezza esistenti, proprio perché non sono ancora stati catalogati né gestiti.
Difficoltà di rilevamento: questi exploit sono difficili da rilevare e mitigare, poiché le soluzioni di sicurezza non hanno ancora aggiornamenti o regole specifiche per bloccare l’attacco.
Relazione tra finestra di vulnerabilità ed exploit zero-day. Quando viene scoperta una vulnerabilità zero-day, si apre immediatamente una finestra di vulnerabilità. Finché la falla non è nota pubblicamente, il rischio è limitato a un numero ristretto di attaccanti che conoscono l’exploit. Tuttavia, quando l’exploit diventa di dominio pubblico, la finestra di vulnerabilità può aumentare considerevolmente in termini di esposizione.
Mitigazione della finestra di vulnerabilità e degli exploit zero-day. Per gestire la finestra di vulnerabilità e ridurre il rischio associato agli exploit zero-day, è possibile adottare le seguenti misure:
Patch management: implementare un sistema di gestione delle patch efficace per applicare rapidamente gli aggiornamenti di sicurezza appena disponibili.
Threat intelligence: utilizzare fonti di threat intelligence per rimanere aggiornati sulle nuove minacce e sugli exploit zero-day che potrebbero colpire i sistemi.
Implementazione di sicurezza multi-livello: avere sistemi di sicurezza su più livelli, come firewall, sistemi di rilevamento e prevenzione delle intrusioni (IDS/IPS) e controlli di accesso rigorosi, può ridurre l’impatto di un exploit zero-day.
Analisi del comportamento e anomaly detection: tecniche di rilevamento basate sull’analisi del comportamento aiutano a identificare attività anomale anche se un attacco zero-day cerca di eludere i controlli di sicurezza convenzionali.
Segmentazione della rete: segmentare la rete può limitare i danni che un attaccante può causare in caso di sfruttamento di una vulnerabilità zero-day.
La “Security by Design” e il Ciclo di Sviluppo Sicuro
È quindi necessario sviluppare software secondo i principi della “security by design”, in contrasto alla “security by obscurity”. I principi di sicurezza da incorporare includono semplicità, suddivisione dei privilegi, esposizione minima, tracciabilità e l’assenza di punti di errore singoli. A differenza del classico test di sicurezza svolto a fine sviluppo, un ciclo di vita dello sviluppo del software (SDLC) ben pianificato include la sicurezza in ogni fase, minimizzando le vulnerabilità di design.
In sintesi, la cybersecurity non è un obiettivo raggiungibile con un unico intervento. Essa richiede un approccio integrato, che combini formazione, adozione di tecniche sicure nello sviluppo e costante monitoraggio delle minacce emergenti. Una comprensione profonda delle vulnerabilità e l’implementazione di una sicurezza “by design” rappresentano i fondamenti per proteggere i sistemi in un panorama digitale in continua evoluzione.
Seven Pernicious Kingdoms
Una tassonomia creata per aiutare gli sviluppatori a comprendere gli errori di programmazione più comuni che influiscono sulla sicurezza.
Il modello del Seven Pernicious Kingdoms è un framework utilizzato per classificare le principali categorie di vulnerabilità nel codice, in particolare in ambito di sicurezza applicativa. Sviluppato dai ricercatori di Cigital (in particolare Gary McGraw), il modello è un modo per raggruppare le vulnerabilità in base alla loro natura e impatto. I “Sette Regni” rappresentano tipi distinti di difetti nel codice, che possono essere utilizzati per strutturare e migliorare la sicurezza del software.
Input validation and representation: si riferisce ai difetti che derivano da una gestione impropria dei dati di input o dalla rappresentazione inadeguata dei dati, portando a vulnerabilità come SQL injection, command injection e cross-site scripting (XSS).
API abuse: riguarda l’uso improprio delle API, spesso dovuto a una mancata comprensione dei limiti o delle modalità d’uso corrette delle stesse, che può consentire exploit a livello di API.
Security features: include difetti legati all’implementazione errata delle caratteristiche di sicurezza, come l’autenticazione, la gestione delle sessioni, e il controllo degli accessi. Difetti in questo “regno” possono portare a problemi come session hijacking o bypass delle restrizioni di accesso.
Time and state: questo “regno” riguarda vulnerabilità legate alla gestione del tempo e degli stati. Problemi come race conditions (condizioni di corsa) o gestione inadeguata delle risorse possono far sì che un utente malintenzionato prenda il controllo di una risorsa o esegua azioni dannose.
Errors: si riferisce alla gestione errata degli errori, come la visualizzazione di messaggi d’errore dettagliati che rivelano informazioni sensibili o la mancanza di controllo su errori imprevisti, che possono facilitare l’enumerazione o l’accesso a dettagli interni.
Code quality: questo “regno” comprende le vulnerabilità derivanti da una scarsa qualità del codice, come buffer overflow, pointer dereferencing e altri errori che possono portare a comportamenti imprevisti o a falle di sicurezza.
Encapsulation: si riferisce a difetti nella separazione dei dati e nella gestione dell’accesso. Problemi di incapsulamento possono portare a fughe di informazioni o all’alterazione di dati interni che dovrebbero essere inaccessibili all’utente.
La sicurezza dei dispositivi mobile è diventata una preoccupazione critica nell’era digitale. Con oltre 6 miliardi di utenti di smartphone in tutto il mondo, questi dispositivi sono diventati un obiettivo primario per i criminali informatici. Gli smartphone contengono una vasta quantità di dati personali e aziendali sensibili, rendendo l’analisi malware su questi dispositivi un aspetto fondamentale della cybersecurity moderna.
Android e iOS presentano approcci diversi in termini di architettura e sicurezza. Android, essendo un sistema più aperto, consente maggiore flessibilità agli utenti ma anche una maggiore esposizione alle minacce. Al contrario, iOS adotta un modello più chiuso, con rigidi controlli su app e accessi, il che rende più difficile compromettere il sistema, ma non lo esclude.
L’analisi malware su smartphone è il processo di esaminare un dispositivo mobile per rilevare, identificare e comprendere software malevoli che potrebbero comprometterne la sicurezza. Questa pratica è essenziale per:
proteggere le informazioni personali degli utenti;
salvaguardare i dati aziendali su dispositivi BYOD (Bring Your Own Device)[1];
mantenere l’integrità delle reti mobili;
prevenire frodi finanziarie e furti di identità.
Tipi comuni di malware per smartphone
I malware per smartphone si sono evoluti in diverse forme, ciascuna con obiettivi e metodi di attacco specifici:
Spyware: raccoglie informazioni sull’utente senza il suo consenso;
Ransomware: estorce denaro bloccando l’accesso ai dati o al dispositivo crittografando i file;
Adware: genera ricavi attraverso pubblicità invasive, mostra annunci non richiesti, reindirizza a siti web malevoli;
Trojan: si nasconde come app legittima per eseguire azioni malevole in background;
Rootkit: ottiene l’accesso privilegiato al sistema operativo modificando il kernel del sistema per nascondere la propria presenza.
Metodi di infezione
I malware possono infettare gli smartphone attraverso vari vettori:
download di app da fonti non ufficiali;
phishing attraverso SMS, email o messaggi sui social media con link malevoli;
exploit di vulnerabilità del sistema operativo sfruttando bug o falle di sicurezza non corrette nel sistema operativo;
connessioni Wi-Fi non sicure: intercettazione dei dati su reti pubbliche non protette.
Tecniche di analisi malware per smartphone
L’analisi del malware per smartphone richiede un approccio multifaceted che combina diverse tecniche per ottenere una comprensione completa della minaccia. In tal senso, personale specializzato di questa articolazione Anticrimine ha implementato procedure e tecniche informatiche orientate all’analisi:
del traffico di rete: una delle tecniche principali per identificare la presenza di malware su un dispositivo mobile è l’analisi del traffico di rete. Il comportamento delle app e dei processi in background può rivelare informazioni cruciali riguardanti attività malevole. Attraverso tecniche di sniffing del traffico, è possibile catturare il flusso di pacchetti di rete, analizzare la destinazione e il contenuto dei dati scambiati, nonché rilevare anomalie nei pattern di traffico[2];
del comportamento delle applicazioni: le applicazioni malevole spesso richiedono più autorizzazioni di quelle strettamente necessarie al loro funzionamento;
attraverso scansione antivirus: la scansione antivirus è una tecnica fondamentale e ampiamente utilizzata per l’analisi preliminare e la rilevazione di malware su smartphone. Questa metodologia si basa principalmente su un approccio di riconoscimento delle firme[3], integrato con tecniche euristiche e di rilevamento comportamentale[4];
delle tracce di compromissione: è particolarmente utile analizzare tracce di compromissione (Indicators of Compromise, IoC), come quelle identificate tramite lo “Structured Threat Information Expression” (STIX)[5], che possono rivelare la presenza di malware o altre attività dannose. L’utilizzo di STIX nell’analisi di malware su smartphone rappresenta un approccio avanzato che combina standardizzazione, condivisione di intelligence e analisi strutturata. Mentre richiede un certo expertise, offre benefici significativi in termini di comprensione approfondita delle minacce e integrazione con l’ecosistema più ampio della cybersecurity.
[1] Espressione usata per riferirsi alle politiche aziendali che permettono di portare i propri dispositivi personali nel posto di lavoro e usarli per avere gli accessi privilegiati alle informazioni aziendali e alle loro applicazioni.
[2] L’analisi dei pattern di comunicazione, come connessioni frequenti a server esterni sconosciuti o trasferimenti di grandi quantità di dati senza autorizzazione dell’utente, può suggerire la presenza di malware.
[3] Gli antivirus confrontano i file presenti nel sistema con un database di firme di malware conosciuti. Ogni virus o malware ha una propria “firma”, una sorta di impronta digitale unica che lo identifica. Se l’antivirus rileva una corrispondenza, segnala il file come dannoso.
[4] Questa tecnica si basa sull’analisi del comportamento dei file e delle applicazioni. Piuttosto che cercare solo firme conosciute, il rilevamento euristico osserva i comportamenti anomali, come l’accesso non autorizzato ai dati sensibili o l’invio di pacchetti di dati a server remoti. Ciò permette all’antivirus di identificare anche malware sconosciuti, basandosi sulle azioni che essi tentano di compiere.
[5] Lo Structured Threat Information Expression (STIX) è un linguaggio standardizzato per la rappresentazione di informazioni sulle minacce informatiche. Nel contesto dell’analisi di malware su smartphone, STIX fornisce un framework strutturato per identificare, catalogare e analizzare le tracce di compromissione (Indicators of Compromise, IoC).
Una breve guida introduttiva a Wireshark: “The world’s most popular network protocol analyzer”.
Wireshark è il più celebre e diffuso analizzatore di pacchetti di rete, utilizzato ampiamente sia nel mondo accademico che professionale. Originariamente lanciato nel 1998 sotto il nome di “Ethereal”, Wireshark ha guadagnato una reputazione solida per la sua efficacia e versatilità nella diagnosi di problemi di rete e nella comprensione approfondita dei protocolli di rete, tanto da essere utilizzato da:
sistemisti: usano Wireshark per diagnosticare e risolvere problemi di prestazioni della rete;
studenti: trovano in Wireshark uno strumento prezioso per apprendere e visualizzare il funzionamento dei protocolli di rete;
analisti di sicurezza: verificano con Wireshark la presenza di dati non autorizzati o sospetti nella rete.
Caratteristiche principali
licenza GPL: Wireshark è distribuito con una licenza GPL, rendendolo un software libero e gratuito disponibile per Windows, macOS e GNU/Linux. Sul sito ufficiale è possibile trovare i file per l’installazione oltre a una vasta documentazione di riferimento;
formati di file: Il formato nativo per il salvataggio dei dati è il .PCAP (Packet Capture), ma Wireshark supporta e può aprire molti altri formati di file di cattura e permette l’esportazione in vari formati;
riconoscimento dei protocolli: Wireshark è in grado di riconoscere automaticamente una vasta gamma di protocolli di rete, consentendo agli utenti di leggere tutti i dettagli relativi ai pacchetti catturati;
filtraggio e ricerca: Il software permette di filtrare i dati catturati e di svolgere ricerche selettive utilizzando una sintassi comprensiva ma accessibile.
Introduzione a Wireshark
Quando si avvia Wireshark, la prima cosa che si nota sarà l’elenco delle interfacce di rete rilevate dal proprio sistema. Questo permette di visualizzare facilmente quali interfacce sono attive e di iniziare immediatamente la cattura del traffico con un semplice doppio clic su un’interfaccia specifica. Accanto alle interfacce attive, apparirà anche un piccolo grafico che indica l’attività di rete in tempo reale.
Funzionalità chiave dell’area di lavoro di Wireshark:
cattura e analisi di traffico preesistente: oltre a catturare traffico in tempo reale (v. Appendice “Wireshark – uso dei filtri di cattura”), Wireshark permette di aprire e analizzare file di cattura .PCAP esistenti, facilitando l’analisi di dati raccolti in precedenza;
visualizzazione dei dati catturati: una volta avviata la cattura, i dati vengono visualizzati in tempo reale nell’area centrale della finestra di Wireshark, nota come “elenco pacchetti”. Qui è possibile interrompere la cattura cliccando sull’icona a forma di quadrato situata nella barra degli strumenti principale, sopra l’elenco pacchetti.
Figura 1 – L’interfaccia di Wireshark
Suddivisione dell’area di lavoro (Figura 1):
elenco dei pacchetti: questa è la parte principale dell’interfaccia di Wireshark (lettera A), dove tutti i pacchetti di dati catturati o caricati vengono elencati. Ogni riga rappresenta un pacchetto individuale con informazioni di base come il numero di sequenza, il protocollo utilizzato, la lunghezza del pacchetto e altro;
dettagli del pacchetto: selezionando un pacchetto dall’elenco, i dettagli specifici del pacchetto saranno mostrati in questa area (lettera B). I dettagli sono organizzati in un formato ad albero, che riflette l’incapsulamento dei protocolli all’interno del pacchetto. Questo aiuta a comprendere come i dati sono strutturati e quali informazioni trasportano;
dati contenuti nel pacchetto: in questa parte dell’interfaccia, il contenuto del pacchetto selezionato viene visualizzato in forma originale, sia in esadecimale che in ASCII (lettera C). Questo è particolarmente utile per l’analisi a basso livello dei dati e per l’individuazione di specifici pattern o informazioni all’interno del payload del pacchetto.
Barre degli strumenti e utilità:
barra degli strumenti principale: le icone che permettono di avviare e fermare la cattura, salvare i dati, configurare le opzioni di cattura e accedere ad altre funzioni comuni;
barra degli strumenti di filtraggio: posta sotto la barra degli strumenti principale, questa barra permette di inserire filtri per raffinare la visualizzazione dei pacchetti. Supporta l’evidenziazione sintattica per aiutarti a scrivere correttamente le espressioni di filtro;
barra di stato: situata in fondo alla finestra, mostra il numero di pacchetti catturati e fornisce accesso rapido alle proprietà del file di cattura e altre informazioni rilevanti.
L’elenco dei pacchetti è il cuore del flusso di lavoro per l’analisi di una cattura dati in Wireshark. Una volta avviata la cattura, i dati vengono decodificati e ordinati in una tabella, permettendo di seguire la sequenza di cattura dal primo all’ultimo pacchetto.
Informazioni chiave per ciascun pacchetto:
No.: numero progressivo del pacchetto, iniziando da 1.
Time: istante in cui il pacchetto è stato catturato.
Source: indirizzo IP sorgente.
Destination: indirizzo IP di destinazione.
Protocol: protocollo di più alto livello contenuto nel pacchetto.
Length: dimensione del pacchetto in byte.
Packet Info: estratto delle informazioni più rilevanti contenute nel pacchetto.
Wireshark, inoltre, utilizza diverse colorazioni per aiutare a identificare rapidamente i tipi di pacchetti.
La barra del menu contiene moltissime funzioni e strumenti utili per gestire e analizzare le catture di rete:
File: importazione ed esportazione dei dati in diversi formati.
Modifica: ricerca e selezione dei pacchetti, modifica del profilo di configurazione e accesso alle preferenze generali.
Visualizza: gestione delle barre, formato di visualizzazione del tempo di cattura, regole di colorazione.
Vai: navigazione e ricerca nell’elenco pacchetti.
Cattura: opzioni e comandi per la cattura dei dati.
Analizza: costruzione di filtri di visualizzazione e altre funzioni di analisi dei dati.
Statistiche: contiene statistiche pronte per l’analisi del traffico, grafici e proprietà del file di cattura.
Telefonia: strumenti per l’analisi e decodifica di flussi VoIP.
Wireless: dedicato al traffico Bluetooth e WiFi.
Strumenti: funzione per la creazione di regole per i firewall.
Aiuto: accesso alla guida web, wiki, FAQ, catture di esempio e altre risorse utili. Include anche informazioni sulla versione di Wireshark e sulle combinazioni di tasti.
Analizzare la cattura dati
Tra le diverse funzionalità di analisi fornite da Wireshark vi è il menu statistiche, una risorsa potente per effettuare una prima analisi generale dei dati catturati. Questo menu offre una varietà di strumenti che permettono di visualizzare informazioni dettagliate sul traffico di rete, gli host coinvolti, le connessioni stabilite e i protocolli utilizzati. Ecco una panoramica delle voci più utili disponibili nel menu Statistiche:
proprietà del file di cattura: questa opzione fornisce una visione generale dei metadati del file di cattura, come la dimensione in byte, la data e l’ora di cattura, il nome del file e altre informazioni simili. È utile per ottenere un riepilogo rapido delle caratteristiche principali della sessione di cattura;
terminatori (Endpoints): la voce “Endpoint” elenca tutti gli host coinvolti nel traffico di rete catturato. Per ciascun host, Wireshark mostra dettagli come gli indirizzi IP, gli indirizzi MAC, e le porte utilizzate per le connessioni TCP e UDP. Questo strumento è essenziale per identificare rapidamente gli attori chiave nella rete e per comprendere meglio la distribuzione del traffico;
conversazioni: simile alla voce “Endpoint”, “Conversazioni” mostra tutte le connessioni presenti nella cattura. Per ogni connessione, vengono dettagliati gli host coinvolti, i loro indirizzi IP, e le porte di connessione. Particolarmente utile per seguire il flusso di comunicazione tra specifici host e per identificare possibili pattern di traffico o connessioni sospette;
gerarchia dei protocolli: elenca tutti i protocolli di rete presenti nella cattura, organizzati per incapsulamento. Mostra chiaramente come i vari protocolli si stratificano e interagiscono tra loro nel flusso di dati, fornendo una visione comprensiva della struttura del traffico;
altre statistiche utili: il menu Statistiche contiene molte altre voci che forniscono dati specifici per protocollo e analisi più dettagliate, possono includere elementi come flussi di rete, utilizzi di banda, errori di trasmissione;
filtraggio automatico: una funzionalità particolarmente utile di ciascuna voce del menu Statistiche è la possibilità di costruire automaticamente filtri di visualizzazione basati sui dati analizzati.
I filtri di visualizzazione sono uno strumento essenziale in Wireshark per isolare specifiche parti del traffico di rete in base alle necessità di analisi. Questi filtri consentono di affinare la visualizzazione dei dati catturati, rendendo più efficiente l’analisi di grandi quantità di traffico (v. Appendice “Analizzare una cattura usando i filtri di visualizzazione”).
Identificati i pacchetti di interesse in Wireshark, il passo successivo è l’analisi approfondita dei dati che contengono. Wireshark offre un riquadro dedicato chiamato dettagli dei pacchetti, che consente di esplorare in dettaglio l’incapsulamento dei protocolli e i dati trasportati da ciascun pacchetto. I dettagli dei pacchetti sono organizzati gerarchicamente, rispecchiando l’incapsulamento dei protocolli all’interno del pacchetto. Questo permette di visualizzare ogni livello di dati, dal più esterno al più interno. Ecco un esempio tipico di come potrebbero essere strutturati i dettagli per un pacchetto contenente dati HTTP:
Figura 2 – Pacchetto frame
Frame: mostra il pacchetto dati catturato completo di tutti i metadati associati, come l’ora di cattura, la lunghezza del frame, e altre informazioni utili (Figura 2);
Figura 3 – Trama Ethernet II
Ethernet II: mostra la trama Ethernet, il primo livello di incapsulamento, che include dettagli come l’indirizzo MAC sorgente e destinazione e il tipo di protocollo, tipicamente IP (Figura 3);
Figura 4 – Pacchetto IPv4
IP Version 4:il pacchetto IP incapsulato dentro la trama Ethernet. Mostra i dettagli come l’indirizzo IP sorgente e destinazione, la versione del protocollo, il tipo di servizio, e altri parametri relativi al protocollo IP (Figura 4);
Figura 5 – Segmento TCP
TCP: il segmento TCP incapsulato dentro il pacchetto IP, include informazioni come le porte sorgente e destinazione, i numeri di sequenza e di conferma, e altri dettagli relativi alla gestione della connessione TCP (Figura 5);
Figura 6 – HTTP
HTTP: l’unità di dati HTTP trasportata nel segmento TCP. Qui vengono visualizzate informazioni specifiche dell’HTTP, come il metodo di richiesta (GET, POST, ecc.), l’URL richiesto e gli header HTTP (Figura 6).
Analisi dei Protocolli di rete su Wireshark
Nel vasto e complesso mondo delle reti, la capacità di monitorare e analizzare il traffico di rete è fondamentale per garantire la sicurezza, la stabilità e l’efficienza delle comunicazioni digitali. Wireshark offre gli strumenti necessari per esaminare dettagliatamente il flusso dei dati attraverso una rete, è in grado di catturare e visualizzare il contenuto dei pacchetti di rete in tempo reale, permettendo una profonda analisi di vari protocolli essenziali. Tra questi troviamo:
ARP risolve il problema di mappare un indirizzo IP, utilizzato nei pacchetti di rete, all’indirizzo MAC fisico della scheda di rete. L’analisi del traffico ARP è cruciale per (v. Appendice “Analizzare il traffico ARP utilizzando Wireshark”):
– identificare problemi di rete: come conflitti di indirizzi IP o problemi di risoluzione degli indirizzi;
– rilevare attività sospette: come attacchi di ARP spoofing o ARP poisoning, dove un malintenzionato potrebbe tentare di intercettare o alterare il traffico modificando le risposte ARP.
ICMP è fondamentale per la gestione e il debug delle reti IP. Viene spesso utilizzato per testare la connettività e tracciare il percorso dei pacchetti attraverso la rete ad esempio mediante i comandi come ping e traceroute (v. Appendice “Come analizzare i messaggi ICMP in Wireshark”)
TCP, UDP e porte associate. Quando si analizza il traffico di rete con Wireshark, è possibile vedere l’indirizzo IP e il numero di porta per i protocolli TCP e UDP in ogni pacchetto. Questo aiuta a identificare non solo l’origine e la destinazione dei dati a livello di rete, ma anche l’applicazione specifica a cui i dati sono destinati. L’identificazione delle porte utilizzate può fornire indizi vitali in scenari di troubleshooting di rete, sicurezza informatica e conformità di configurazione di rete (v. Appendice “Analisi di TCP e UDP in Wireshark”).
Domain Name System (DNS). Traduce i nomi di dominio facilmente memorizzabili in indirizzi IP numerici che le macchine possono comprendere e a cui possono connettersi (v. Appendice “Analisi del traffico DNS in Wireshark”):
– la maggior parte delle comunicazioni DNS avviene tramite UDP su porta 53, per la sua efficienza in termini di velocità e utilizzo ridotto delle risorse, ideale per le brevi query DNS;
– il DNS usa anche TCP, soprattutto per operazioni che richiedono affidabilità o per risposte che superano il limite di dimensione del pacchetto UDP (512 byte), come nei trasferimenti di zona tra server DNS.
Hyper Text Transfer Protocol (HTTP). Una conversazione HTTP tipica segue un modello di richiesta e risposta (v. Appendice “Analisi del Traffico HTTP in Wireshark”):
– richiesta (Request): il client web invia una richiesta al server per ottenere dati o per inviare informazioni. Le richieste più comuni includono il metodo GET per richiedere dati e POST per inviare dati al server;
– risposta (Response): il server elabora la richiesta e invia una risposta al client. La risposta include uno status code che indica il successo o il fallimento della richiesta, dati (se richiesti), e header che forniscono informazioni aggiuntive.
HTTPS (HTTP Secure). Utilizza il protocollo Transport Layer Security (TLS) per cifrare le comunicazioni tra il client e il server, garantendo così privacy e sicurezza dei dati trasmessi. Wireshark può essere usato per analizzare il traffico TLS/SSL, sebbene il contenuto specifico delle comunicazioni sia cifrato e non direttamente leggibile (v. Appendice “Analisi del Traffico HTTPS e Decodifica di TLS in Wireshark”). La decodifica del traffico TLS in Wireshark richiede l’accesso alle chiavi di sessione, che non sono trasmesse in rete ma generate localmente da client e server durante l’handshake TLS. Per analizzare i dati HTTPS (nascosti dentro il livello TLS) è necessario esportare queste chiavi mentre il browser web stabilisce una connessione TLS (v. Appendice “Decodifica del traffico TLS in Wireshark utilizzando le chiavi di sessione”). Ogni protocollo ha un ruolo unico e critico nella facilitazione e nella sicurezza delle comunicazioni su Internet e l’analisi di questi protocolli attraverso Wireshark è cruciale per diagnosticare problemi di rete, ottimizzarne le prestazioni nonché a mitigare gli attacchi informatici.
La decodifica del traffico TLS in Wireshark richiede l’accesso alle chiavi di sessione, che non sono trasmesse in rete ma generate localmente da client e server durante l’handshake TLS. Per analizzare i dati HTTPS (nascosti dentro il livello TLS) è necessario esportare queste chiavi mentre il browser web stabilisce una connessione TLS. Ogni protocollo ha un ruolo unico e critico nella facilitazione e nella sicurezza delle comunicazioni su Internet e l’analisi di questi protocolli attraverso Wireshark è cruciale per diagnosticare problemi di rete, ottimizzarne le prestazioni nonché a mitigare gli attacchi informatici.
Altri strumenti di analisi dei file PCAP e non
Oltre a Wireshark (v. Appendice “Wireshark – personalizzazione dell’area di lavoro” e Appendice “Wireshark – predisposizione dell’area di lavoro”), esistono diversi altri strumenti utili per l’analisi di file PCAP. Questi strumenti offrono funzionalità specializzate che possono completare o estendere le analisi effettuate con Wireshark, particolarmente utili per identificare minacce, analizzare malware, e visualizzare le connessioni di rete:
analisi generale: caricando un file PCAP su A-Packets, si ottiene un report dettagliato che include l’analisi dei protocolli di rete e i file presenti nel traffico;
estrazione di credenziali: il sito offre funzionalità per estrarre le credenziali che possono essere trasmesse nel traffico di rete;
visualizzazione di rete: mostra una rappresentazione grafica degli host e delle loro interconnessioni, facilitando la comprensione delle relazioni di rete.
Note: I file caricati su A-Packets diventano pubblicamente accessibili, quindi è importante considerare la sensibilità dei dati prima di utilizzare questo servizio.
analisi di rete: non si concentra sull’analisi di malware, ma offre strumenti per esaminare le connessioni di rete dentro il PCAP;
strumenti integrati: include funzionalità per il whois e la geolocalizzazione;
grafici del traffico: fornisce una rappresentazione grafica dello stream di dati, simile a quella di Wireshark, aiutando a visualizzare il flusso di traffico in maniera intuitiva.
Network Miner è un potente strumento forense che si specializza nell’estrarre e visualizzare informazioni dai file PCAP. È particolarmente utile per gli analisti che necessitano di un’analisi rapida e diretta delle comunicazioni di rete. Questo strumento è spesso usato in complemento a Wireshark per offrire una vista più orientata ai dati estratti piuttosto che alla pura analisi del traffico:
Hosts: mostra un elenco di host coinvolti nel traffico di rete;
Files: elenca i file trasferiti attraverso la rete, che possono essere esaminati o scaricati direttamente dall’interfaccia;
Sessions: fornisce una panoramica delle sessioni di comunicazione tra i dispositivi;
Credentials: rivela credenziali che potrebbero essere state trasmesse in chiaro.
ANY.RUN è un servizio di analisi malware basato su sandbox che permette agli utenti di eseguire file sospetti in un ambiente controllato e sicuro, garantisce:
ambiente isolato: utilizza una macchina virtuale (VM) Windows 7 per isolare il malware dal sistema operativo principale e dalla rete locale;
interattività: fornisce un ambiente interattivo, consentendo agli utenti di interagire direttamente con il sistema operativo della VM durante l’analisi;
monitoraggio in tempo reale: durante l’esecuzione del malware, ANY.RUN visualizza in tempo reale le connessioni di rete e l’albero dei processi generati dall’eseguibile;
community e database: gli utenti possono accedere a un database di analisi precedenti, che include i dettagli delle minacce più comuni e recenti, consentendo uno studio approfondito prima di iniziare nuove analisi.
CyberChef, sviluppato dall’agenzia di intelligence britannica GCHQ, è uno strumento versatile per l’analisi e la manipolazione di dati. Viene chiamato “il coltellino svizzero della cyber-security” vista la grande quantità di tools di cui dispone.
Tra le tante categorie di operazioni disponibili vi sono:
operatori aritmetici e logici;
conversione di formato;
codifica e decodifica, crittografia e hashing;
compressione e decompressione dati, strumenti di elaborazione grafica;
estrazione di dati, stringhe e files.
APPENDICI
Wireshark – uso dei filtri di cattura
Wireshark è uno strumento estremamente potente per l’analisi di rete e comprendere come utilizzare efficacemente i filtri di cattura può significativamente migliorare l’efficienza delle sessioni di monitoraggio. Ecco una guida per configurare e applicare filtri di cattura.
Configurazione Iniziale
All’avvio, Wireshark mostra l’elenco delle interfacce di rete disponibili:
grafico dell’interfaccia: accanto a ciascuna interfaccia c’è un grafico che mostra l’attività di rete in tempo reale, facilitando l’identificazione delle interfacce attive;
avvio della cattura: un doppio clic su un’interfaccia avvia la cattura del traffico su quella specifica interfaccia.
Finestra opzioni di cattura
Per accedere:
dal menu Cattura selezionare Opzioni;
Selezione Multipla: seleziona più interfacce per la cattura simultanea;
File di Cattura: definisce un file per salvare i dati catturati, specifica una dimensione massima e imposta la rotazione del file per gestire grandi quantità di dati;
Risoluzione dei Nomi: abilita la risoluzione dei nomi per gli indirizzi IP e per il livello di trasporto, facilitando la lettura e l’analisi del traffico.
Filtri di cattura
A differenza dei filtri di visualizzazione, i filtri di cattura limitano i dati al momento dell’acquisizione. Ciò significa che i dati non corrispondenti al filtro non saranno disponibili in Wireshark dopo la cattura.
Come inserire un filtro di cattura:
nella finestra Opzioni di Cattura, vi è un campo dedicato ai filtri di cattura;
scegliere un filtro predefinito cliccando il nastro verde accanto al campo di inserimento o scrivere manualmente il filtro.
Esempi di filtri di cattura
Cattura traffico da un singolo host:
host 192.168.0.99
Cattura traffico da una rete specifica:
src net 10.1.0.0/16
oppure:
src net 10.1.0.0 mask 255.255.0.0
Cattura traffico HTTP diretto a una porta specifica:
Analizzare una cattura usando i filtri di visualizzazione
La sintassi di base per creare un’espressione di filtraggio richiede la specifica di un protocollo seguito da un dettaglio del protocollo, utilizzando un formato protocollo.campo:
Esempio: ip.addr == 192.168.1.1 seleziona tutti i pacchetti che contengono l’indirizzo IP specificato, sia come mittente che come destinatario.
Gli operatori di confronto sono fondamentali nella costruzione dei filtri:
== oppure eq: uguale a;
!= oppure neq: diverso da;
> oppure gt: maggiore di;
< oppure lt: minore di.
Per combinare più condizioni, si utilizzano gli operatori logici:
&& oppure and: entrambe le condizioni devono essere soddisfatte;
|| oppure or: una delle condizioni deve essere soddisfatta;
Esempio: ip.src == 192.168.1.151 && ip.dst == 62.10.45.151 seleziona solo il traffico dall’indirizzo IP sorgente al destinatario specificato.
Filtraggio per protocollo o porta
Per selezionare traffico specifico basato su protocolli o porte, si possono utilizzare espressioni come:
tcp.port == 80 || http: seleziona tutto il traffico HTTP.
udp.port == 53 || dns: seleziona tutte le query DNS.
Ricerca di stringhe con contains
L’operatore contains è utilizzato per cercare specifiche stringhe all’interno dei pacchetti:
Esempio: dns contains “google” trova tutti i pacchetti DNS che includono il termine “google”.
Per analizzare il traffico ARP utilizzando Wireshark, seguire questi passaggi:
Filtrare il Traffico ARP: digitare arp nella barra di filtraggio di Wireshark per isolare il traffico ARP. Questo filtro visualizzerà tutti i pacchetti ARP scambiati nella rete.
Selezionare un Messaggio ARP: cliccare su un pacchetto ARP nell’elenco per visualizzarne i dettagli nel pannello dei dettagli.
Esaminare i Dettagli del Messaggio ARP: nel Pannello dettagli, sotto la voce “Ethernet II”, vi è la sezione ARP che include i seguenti campi:
Opcode: indica il tipo di messaggio ARP, dove 1 rappresenta una REQUEST e 2 un REPLY;
indirizzi IP e MAC: mostra gli indirizzi IP e MAC dell’host sorgente e del destinatario. Notare che l’ARP REQUEST è inviato al broadcast, cioè all’indirizzo MAC di destinazione ff:ff:ff:ff:ff:ff.
Per analizzare i Messaggi ICMP utilizzando Wireshark, seguire questi passaggi:
filtrare il Traffico ICMP: digitare icmp nella barra di filtraggio di Wireshark per isolare solo il traffico ICMP;
selezionare un pacchetto ICMP: nella lista dei pacchetti filtrati, selezionare un pacchetto che si desidera analizzare. I pacchetti di Echo Request e Echo Reply sono facilmente identificabili dai loro tipi;
esaminare i dettagli dei pacchetti:
nel pannello dei dettagli di Wireshark, cercare la sezione ICMP che si trova subito sotto la sezione di IPv4;
osservare il campo Type per identificare il tipo di messaggio ICMP:
Type 8: ICMP Echo Request;
Type 0: ICMP Echo Reply;
il Timestamp mostra l’orario esatto in cui il messaggio è stato inviato dall’host originale, che può essere utile per calcolare la latenza.
Quando si utilizza Wireshark per analizzare il traffico di rete, comprendere le differenze tra TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) è fondamentale per l’interpretazione dei dati di rete. Ecco come analizzare questi due protocolli cruciali usando Wireshark.
Filtraggio TCP e UDP
Per iniziare l’analisi:
filtraggio: inserire tcp o udp nella barra di filtraggio di Wireshark per isolare il traffico corrispondente;
selezione del pacchetto: scegliere un pacchetto per analizzare i dettagli nel pannello dei dettagli, immediatamente sotto il livello di IPv4.
Dettagli TCP in Wireshark
Con TCP, si troveranno informazioni dettagliate utili per monitorare e diagnosticare la connessione:
Sequence Number e Acknowledge Number: questi numeri sono cruciali per il controllo di flusso e per garantire che i dati siano trasmessi in modo affidabile e in ordine.
flags di TCP: i flags come SYN, ACK, e FIN sono utilizzati per gestire lo stato della connessione. Ad esempio:
SYN: utilizzato per iniziare una connessione;
SYN-ACK: risposta dal server per accettare la connessione;
ACK: utilizzato per confermare la ricezione dei pacchetti;
FIN: indica la chiusura di una connessione;
RST: quando l’handshake a tre vie non viene concluso correttamente, ad esempio per indisponibilità del servizio, il server restituirà altri messaggi di controllo, come il RST (reset).
L’analisi dei flags è importante per identificare il comportamento della connessione, come l’inizio e la conclusione delle sessioni TCP o possibili anomalie nelle connessioni di rete.
Seguire il Flusso TCP
Per una visione più dettagliata della comunicazione tra client e server:
attivare “Segui il Flusso TCP”: dopo aver selezionato un pacchetto TCP, clic destro e selezionare “Segui” e poi “Flusso TCP”. Questo aprirà una nuova finestra con i dati trasmessi nel flusso TCP;
analisi del dialogo: I dati vengono visualizzati con i messaggi del client in rosso e quelli del server in blu, facilitando la visualizzazione della conversazione tra i due;
leggibilità dei dati: la facilità di lettura dei dati dipende dal protocollo di livello applicativo trasportato. Per esempio, il traffico HTTP è generalmente più facile da interpretare rispetto ad altri protocolli meno verbosi.
Dettagli UDP in Wireshark
UDP è meno complesso rispetto a TCP in quanto non stabilisce una connessione e non garantisce il controllo di flusso o la conferma di ricezione.
filtraggio del Traffico DNS: per analizzare il traffico DNS in Wireshark, digitare dns nella barra di filtraggio per isolare solo i pacchetti DNS;
esaminare le Query e le Risposte DNS:
nel pannello dei dettagli di Wireshark, è possibile vedere la struttura delle query e delle risposte DNS. Questo include i nomi di dominio richiesti, i tipi di record (come A, AAAA, MX), gli indirizzi IP risolti, e altri dettagli DNS;
ogni pacchetto DNS mostrerà se si tratta di una query o di una risposta e includerà dettagli come il numero di record nella risposta e gli eventuali errori (es. “Non-Existent Domain”).
monitoraggio per anomalie:
analizzare il traffico DNS può aiutare a identificare comportamenti anomali come attività di malware, che spesso utilizzano query DNS per comunicare con i server di comando e controllo;
l’alta frequenza di query DNS fallite o un volume insolitamente elevato di query può essere indicativo di configurazioni errate o attività sospette.
impostare il filtro: digitare http nella barra di filtraggio di Wireshark per visualizzare solo i pacchetti http;
selezionare un pacchetto: cliccare su un pacchetto di interesse per visualizzare i dettagli nel pannello inferiore.
Dettagli del traffico HTTP in Wireshark
Nel pannello dettagli di Wireshark, sotto il livello TCP, si trova il livello HTTP che include:
Content-Type: indica il tipo di dati trasferiti, come text/html per le pagine web o application/json per dati in formato JSON;
Server: il software server che gestisce la richiesta;
Request URI: l’URI specifico richiesto dal client;
User-Agent: identifica il client web e il sistema operativo utilizzato per fare la richiesta;
Referrer: l’URL della pagina che ha originato la richiesta.
Seguire il flusso TCP
Per una visione completa della conversazione:
selezionare “Segui Flusso TCP”: clic destro sul pacchetto quindi Analizza > Segui > Flusso TCP. Questo mostra l’intera conversazione tra client e server, inclusi tutti i dati trasmessi;
analisi: la finestra del flusso TCP permette di leggere l’interazione completa, visualizzando i dati trasferiti e gli header HTTP in un formato leggibile.
Utilizzare il Menu Statistiche
Per una panoramica più ampia:
gerarchia di protocolli: nel menu Statistiche, selezionare Gerarchia di Protocolli per vedere una sintesi dei protocolli usati nella cattura, inclusi quelli trasportati via http;
esportazione di oggetti HTTP: Da File > Esporta Oggetti > HTTP, è possibile esportare elementi come immagini, fogli di stile e script che sono stati trasferiti via HTTP.
Analisi del traffico HTTPS e decodifica di TLS in Wireshark
Analisi di HTTPS – TLS in Wireshark
filtrare il traffico TLS: inserire tls nella barra di filtraggio di Wireshark per isolare il traffico TLS;
esaminare i dettagli TLS:
nel pannello dettagli, sotto il livello TCP, si trova il livello TLS;
HTTP nascosto: poiché il traffico HTTP è cifrato, non comparirà esplicitamente. Sarà indicato come “Encrypted Application Data”;
dettagli TLS: analizzare i messaggi di “Client Hello” e “Server Hello” per vedere dettagli come la versione TLS, i metodi di cifratura negoziati e i numeri casuali usati per generare la chiave di sessione;
chiave pubblica: nel certificato del server, si può vedere la chiave pubblica usata per la negoziazione della cifratura;
visualizzazione di certificati e handshake: è possibile esaminare i certificati scambiati e i dettagli dei messaggi di handshake per avere un’idea di come viene stabilita la sicurezza prima di trasmettere dati sensibili.
Limitazioni nell’analisi di TLS in Wireshark
Decifrare i dati TLS: Wireshark non può decifrare i dati TLS senza le appropriate chiavi di decifrazione. Tuttavia, è possibile configurare Wireshark per decifrare il traffico TLS se si ha accesso alle chiavi di sessione o ai parametri di pre-master secret.
Decodifica del traffico TLS in Wireshark utilizzando le chiavi di sessione
Ecco come farlo utilizzando Firefox e configurando Wireshark per utilizzare il file di log delle chiavi.
Configurazione di Firefox per esportare le chiavi di sessione TLS
impostazione della variabile di ambiente SSLKEYLOGFILE:
chiudere Firefox e Wireshark: assicurarsi che entrambe le applicazioni siano chiuse prima di modificare le impostazioni;
aprire le impostazioni di sistema:
nel menu di Avvio cercare “env” o “environment variables”.
cliccare su “Modifica le variabili d’ambiente per il tuo account”;
aggiungere la variabile SSLKEYLOGFILE:
clicca su “Nuova…” per creare una nuova variabile d’ambiente;
assegnare come nome della variabile SSLKEYLOGFILE;
come valore della variabile, impostare un percorso per il file di log, ad esempio: %USERPROFILE%\Documents\sslkey.log.
salvare e chiudere: confermare e chiudi tutte le finestre di dialogo;
verifica della configurazione:
riaprire Firefox e visitare un sito HTTPS;
verificare che il file sslkey.log sia stato creato nel percorso specificato e controllare se contiene le chiavi di sessione;
Importazione delle chiavi di sessione in Wireshark
avviare Wireshark e iniziare una cattura: avviare una cattura di rete in Wireshark mentre si usa Firefox per generare traffico HTTPS;
configurazione delle preferenze di Wireshark per TLS:
da Modifica → Preferenze → Protocols → TLS;
trovare la voce “(Pre)-Master-Secret log filename” e cliccare su Sfoglia….
selezionare il file sslkey.log che si è precedentemente configurato e confermare;
analizzare il traffico decodificato:
con le chiavi di sessione importate, Wireshark sarà in grado di decodificare il traffico TLS e mostrare i dati HTTP in chiaro;
per esaminare un flusso di comunicazione specifico, cliccare con il tasto destro su un pacchetto e selezionare Segui → Flusso TLS o Flusso HTTP per visualizzare l’intera conversazione tra client e server.
Wireshark offre ampie possibilità di personalizzazione per adattarsi meglio alle esigenze specifiche di ciascun utente o tipo di analisi. La personalizzazione può aiutare a migliorare l’efficienza nell’analisi del traffico di rete.
Creazione e gestione dei profili di configurazione
Creare un nuovo profilo:
da Modifica → Profili di configurazione;
cliccare su Nuovo e assegnare un nome al nuovo profilo. Questo permette di personalizzare e salvare le impostazioni senza alterare il profilo Default.
Cambio del profilo: è possibile cambiare profilo ogni qual volta è necessario adattarsi a diversi scenari di analisi. Selezionare semplicemente il profilo desiderato dall’elenco nel menu dei profili di configurazione.
Esportazione e importazione di un profilo: questo è utile per trasferire le personalizzazioni su un’altra installazione di Wireshark. Dallo stesso menu dei profili, è possibile esportare un profilo e poi importarlo su un’altra macchina.
Modifica delle regole di colorazione
Accesso alle regole di colorazione:
da Visualizza → Regole di colorazione;
modificare le regole esistenti o aggiungerne di nuove cliccando sul simbolo +.
Personalizzazione dei colori: ogni regola è legata a un filtro di visualizzazione specifico. Definire il colore del testo e dello sfondo per rendere più intuitiva l’analisi visiva del traffico.
Configurazione delle colonne
Modifica delle colonne:
da Modifica → Preferenze → Aspetto;
eliminare colonne non necessarie o aggiungerne di nuove.
Aggiunta di nuove colonne:
assegna un nome alla nuova colonna e seleziona il dettaglio da visualizzare, come indirizzi IP o porte;
è possibile visualizzare i nomi risolti o mantenere i numeri con l’opzione resolved o unresolved.
Riorganizzazione delle colonne: è possibile trascina le colonne nella posizione desiderata per un’analisi più efficiente.
Memorizzazione dei filtri di visualizzazione
Aggiunta di filtri personalizzati:
utilizzare il pulsante + vicino alla barra di filtraggio per salvare i filtri utilizzati frequentemente.
assegnare un nome al filtro e, se necessario, aggiungere un commento per descriverne l’uso.
Utilizzo dei filtri salvati: i filtri salvati appariranno come pulsanti nella barra di filtraggio e saranno applicabili rapidamente con un clic.
Per rafforzare la capacità di rilevamento di malware nel traffico di rete, è possibile configurare specificamente Wireshark per analizzare le sessioni HTTP e HTTPS:
Creazione di un nuovo profilo di configurazione: da Modifica → Profili di configurazione e creare un nuovo profilo, es. “Analyst”.
Modifica delle colonne per analisi HTTP/HTTPS
aprire le preferenze: da Modifica → Preferenze → Aspetto.
configurazione delle colonne: rimuovere le colonne non necessarie e aggiungere le seguenti per ottimizzare l’analisi del traffico web:
Time: imposta il formato su UTC per garantire che l’ora sia uniforme e confrontabile globalmente;
Src e Dst: aggiungere colonne per gli indirizzi IP sorgente e destinatario;
Port: colonne per le porte sorgente e destinatario, utili per identificare il tipo di traffico;
Host: una colonna personalizzata che usa il filtro http.host o tls.handshake.extensions_server_name per visualizzare i nomi dei server web.
Info: per dettagli generali sulla trasmissione.
Impostazioni di data e ora: assicurarsi che il tempo sia impostato su UTC per la consistenza attraverso il menu Visualizza → Formato visualizzazione tempo → Data e ora del tempo UTC.
Creazione di pulsanti di filtraggio
Usare il pulsante + accanto alla barra di filtraggio per creare filtri rapidi:
(http.request or tls.handshake.type eq 1) and !(ssdp): filtra le richieste HTTP e i nomi di dominio HTTPS, escludendo il traffico SSDP;
(http.request or tls.handshake.type eq 1 or tcp.flags eq 0x0002 or dns) and !(ssdp): aggiunge TCP SYN e DNS alle sessioni HTTP e HTTPS.
Analisi delle conversazioni di rete e ricerca di minacce
Gerarchia dei protocolli: da Statistiche → Gerarchia di protocolli per vedere la distribuzione dei dati tra i protocolli;
Endpoint e conversazioni: utilizzare le opzioni sotto Statistiche per visualizzare gli endpoint e le conversazioni, che possono aiutare a identificare i “top talkers” o le connessioni sospette.
HTTP Requests: Statistiche → HTTP → Richieste per un elenco di richieste a server web, che può rivelare connessioni a domini sconosciuti o maligni.
Uso avanzato dei filtri di visualizzazione
udp.port eq 67: visualizza i messaggi DHCP inviati dai client che contengono l’indirizzo IP, l’indirizzo MAC e l’hostname;
nbns: mostra il traffico Netbios utilizzato tipicamente dagli host Windows, utile per ricavare l’hostname degli endpoint;
http.request: mostra tutte le richieste di accesso ai server web, che contengono utili info;
udp and !(dns): visualizza le connessioni UDP non attinenti al trasporto di DNS;
dns.qry.name contains dominio: mostra le richieste di risoluzione per il dominio indicato;
frame contains “MZ” and frame contains “DOS”: trova il trasferimento di eseguibili Windows. Le stringhe specificate sono i cosiddetti magic numbers (o anche file signatures[1]), piccole sequenze di caratteri poste all’inizio di ogni file grazie alle quali è possibile identificare il tipo di file; il magic number MZ identifica un file eseguibile per Windows.
l’operatore matches: simile a contains ma abilita l’uso delle espressioni regolari:
frame matches “\.(?i)(exe|zip|doc|xls|ppt|jar)”: visualizza i pacchetti che contengono file;
frame matches “(?i)(username|password)”: trova i pacchetti con credenziali;
frame matches “User-Agent: Mozilla.*”: visualizza solo le richieste HTTP dei client Mozilla
Attivazione della geolocalizzazione con MaxMind
Durante la ricerca di una minaccia risulta utile avere informazioni sulla provenienza geografica ovvero la nazionalità degli host coinvolti nelle conversazioni di rete; di base Wireshark non fornisce tali informazioni ma possono essere integrati grazie al database fornito dal sito di MAXMIND:
download dei database MaxMind: registrarsi e scaricare i file .mmdb[2] da MaxMind;
configurazione in Wireshark:
da Modifica → Preferenze → Name Resolution;
aggiungere la directory contenente i file .mmdb.
Utilizzo dei Filtri di Display per la Geolocalizzazione
Completata l’attivazione dei file di database si troveranno subito le nuove informazioni:
nel pannello dettagli di un pacchetto selezionato, espandendo il livello IPv4;
nella finestra dedicata alle statistiche per i terminatori di rete (endpoint), scheda IPv4, il pulsante Mappa posto a sinistra nella finestra permette di osservare gli indirizzi IP su di una mappa geografica.
Wireshark permette di utilizzare i dati di geolocalizzazione per filtrare il traffico di rete in base alla località geografica:
questo filtro visualizza tutti i pacchetti che hanno origine o destinazione nella città di Roma:
TOR (The Onion Router) e VPN (Virtual Private Network) sono entrambi strumenti che possono essere utilizzati per proteggere la privacy e la sicurezza online. Sebbene entrambi abbiano alcune somiglianze, presentano anche differenze fondamentali che li rendono più adatti a diversi tipi di utenti e a diversi tipi di attività online.
Cos’è il TOR?
TOR (abbreviazione di The Onion Router) è un software gratuito e open source che consente agli utenti di navigare in Internet in modo anonimo. È stato sviluppato a metà degli anni ‘90 dal Laboratorio di Ricerca Navale statunitense come modo per proteggere le comunicazioni governative. Oggi TOR è utilizzato da una vasta gamma di persone, da giornalisti e attivisti a individui comuni che desiderano proteggere la propria privacy online.
TOR funziona crittografando il traffico Internet di un utente e instradandolo attraverso una rete di server gestiti da volontari, noti come “nodi”, prima di raggiungere la sua destinazione. Questo processo rende difficile per chiunque monitorare l’attività online di un utente o determinarne la posizione fisica.
Per utilizzare TOR, un utente deve semplicemente scaricare e installare il browser TOR, basato sul popolare browser Web Firefox. Una volta installato, il browser TOR consente all’utente di accedere a Internet proprio come farebbe con qualsiasi altro browser Web, ma con l’ulteriore protezione dell’anonimato.
Uno dei principali vantaggi dell’utilizzo di TOR è che fornisce un elevato livello di privacy e sicurezza. Poiché il traffico Internet dell’utente è crittografato e instradato attraverso più nodi, è molto difficile per chiunque monitorare la propria attività online o determinare la propria posizione. Ciò rende TOR uno strumento popolare per giornalisti e attivisti che potrebbero operare in paesi con governi repressivi, poiché consente loro di comunicare e condividere informazioni senza timore di essere monitorati o puniti.
Un altro vantaggio di TOR è che può aiutare gli utenti a aggirare la censura di Internet. In molti paesi, i governi censurano determinati siti Web o tipi di contenuti, rendendo impossibile agli utenti l’accesso. Ma con TOR, gli utenti possono accedere a questi siti web instradando il loro traffico attraverso nodi in altri paesi dove non si applica la censura.
Tuttavia, il TOR non è privo di inconvenienti. Poiché la rete fa affidamento su volontari per gestire i nodi, a volte può essere lenta e inaffidabile. Inoltre, poiché TOR è spesso associato ad attività criminali, alcuni siti Web potrebbero bloccare gli utenti che vi accedono tramite la rete TOR.
Cos’è la VPN?
Una VPN, o rete privata virtuale, è uno strumento che aiuta a mantenere la tua attività online privata e sicura. Lo fa crittografando il tuo traffico Internet e instradandolo attraverso un server remoto sicuro prima che raggiunga la sua destinazione. Ciò rende difficile per chiunque vedere cosa si sta facendo online o monitorare le attività online.
Ci sono molte situazioni per cui un utente potrebbe voler utilizzare una VPN. Ad esempio, superare una rigorosa censura di Internet di alcuni Paesi per accedere a siti Web o servizi bloccati. Oppure connettersi su una rete Wi-Fi pubblica e voler proteggere i propri dati dall’intercettazione da parte di altri sulla stessa rete o da altre minacce crittografando il traffico Internet e instradandolo attraverso un server sicuro: quando ci si connette a una rete Wi-Fi pubblica, si espone potenzialmente il proprio dispositivo e i propri dati a una serie di minacce, come hacking o malware.
L’uso di una VPN può anche aiutare a proteggere la privacy online. Molti siti Web e servizi monitorano le attività online e raccolgono dati personali, che possono essere utilizzati per pubblicità mirata o addirittura venduti a terzi. Una VPN crittografa il traffico Internet, rendendo molto più difficile per queste aziende tracciare e raccogliere i dati.
Esistono molti provider VPN diversi tra cui scegliere: aspetti fondamentali da considerare quando si sceglie un provider VPN sono il livello di crittografia utilizzato, la posizione e il numero dei server, nonché le politiche sulla privacy e sulla registrazione.
TOR e VPN, le differenze tra loro.
Una delle principali differenze tra TOR e VPN è il modo in cui instradano il traffico Internet. TOR instrada il traffico attraverso più livelli di server, o “router a cipolla”, prima che raggiunga la destinazione. Ciò rende difficile per chiunque monitorare le attività online o determinare il vero indirizzo IP mittente.
D’altro canto, una VPN instrada il traffico attraverso un unico server sicuro. Questo server crittografa il traffico e assegna un nuovo indirizzo IP temporaneo, rendendo difficile per chiunque vedere cosa si sta facendo online o tracciare il vero indirizzo IP.
Un’altra differenza fondamentale tra TOR e VPN è il livello di crittografia che forniscono. TOR crittografa il traffico più volte mentre passa attraverso i router Onion, fornendo un livello di sicurezza molto elevato. Tuttavia, ciò significa anche che TOR può essere più lento della VPN, poiché il traffico deve passare attraverso più livelli di crittografia. D’altra parte, la VPN crittografa il traffico solo una volta, rendendolo più veloce di TOR. Tuttavia, ciò significa anche che la VPN potrebbe[1] fornire un livello di sicurezza inferiore rispetto a TOR, poiché il traffico viene crittografato solo una volta.
Master Executive di II livello in Cyber Security – Anno Accademico 2015-2016, estratto dalla mia tesi.
“There are two types of companies: those who have been hacked, and those who don’t yet know they have been hacked”
John Chambers, Executive Chairman Cisco Systems. World Economic Forum 2015
“… possiamo affermare che il 2016 è stato complessivamente l’anno peggiore di sempre in termini di evoluzione delle minacce “cyber” e dei relativi impatti, non solo dal punto di vista quantitativo ma anche e soprattutto da quello qualitativo.”
Rapporto Clusit 2017
Questa era la mia prefazione alla tesi redatta nel 2016, ma considerando quanto scritto nel “Rapporto Clusit 2023”:
“Osservando la situazione dal punto di vista quantitativo, negli ultimi 5 anni la situazione è peggiorata nettamente, seguendo un trend pressoché costante. Confrontando i numeri del 2018 con quelli del 2022 la crescita del numero di attacchi rilevati è stata del 60% … Oltre alla maggiore frequenza, anche la nostra valutazione della Severity media (indice di gravità) di questi attacchi è drasticamente peggiorata, il che rappresenta un significativo moltiplicatore dei danni.”
Anello debole: l’uomo. La forza di una catena, si dice, si misura da quella del suo anello più debole.
Cap.1 La Minaccia Cyber nelle Aziende
La vulnerabilità dei sistemi informatici è oggi riconosciuta a livello globale. Cittadini, aziende e governi subiscono attacchi sempre più frequenti e difficili da contrastare. L’ultimo “Rapporto Clusit” sulla sicurezza ICT evidenzia che la capacità complessiva di attivare protezioni efficaci è ancora debole.
La minaccia cyber
Con minaccia cibernetica intendiamo l’insieme delle condotte controindicate che possono essere realizzate nel e tramite lo spazio cibernetico ovvero in danno di quest’ultimo e dei suoi elementi costitutivi. La minaccia si sostanzia nei c.d. attacchi cibernetici: azioni più o meno automatizzate sulle reti da parte di singoli individui o organizzazioni, statuali e non, finalizzate a distruggere, danneggiare o ostacolare il regolare funzionamento dei sistemi, delle reti o dei sistemi attuatori di processo da essi controllati ovvero a compromettere l’autenticità, l’integrità, la disponibilità e la riservatezza dei dati ivi custoditi o che vi transitano[1].
Una caratteristica saliente della minaccia cibernetica è la sua asimmetricità. L’attaccante infatti:
può colpire a grandissima distanza, da dovunque nel mondo esista un accesso alla rete;
potenzialmente può attaccare sistemi particolarmente sofisticati e protetti sfruttandone anche una sola vulnerabilità;
può agire con tempi tali da non consentire un’efficace reazione difensiva;
può rimanere anonimo o comunque non facilmente individuabile rendendo in tal modo estremamente complessa e difficile una corretta risposta da parte dell’attaccato.
In cosa consiste la Cyber Security?
Sui giornali, ai convegni, nelle presentazioni commerciali si evidenzia una notevole confusione in merito al significato dell’espressione “Cyber Security”.
Ma possiamo dire che “La cyber security è quella pratica che consente a una entità̀ (ad esempio, organizzazione, cittadino, nazione ecc.) la protezione dei propri asset fisici e la confidenzialità̀, integrità̀ e disponibilità̀ delle proprie informazioni dalle minacce che arrivano dal cyber space”.[2]
Dove, “the Cyberspace” è definito come “il complesso ambiente derivante dall’interazione tra persone, software e servizi su Internet tramite dispositivi tecnologici e reti connesse, che non esiste in nessuna forma fisica”[3]
In sintesi, proteggere gli assetti della propria organizzazione significa garantire i seguenti tre obiettivi:
riservatezza,le informazioni devono essere accessibili direttamente o indirettamente solo alle persone (o ai sistemi) che ne hanno diritto e che sono espressamente autorizzate a conoscerle;
integrità, i dati e le rispettive informazioni devono essere protette da alterazioni, quali modifiche, danneggiamenti o cancellazioni improprie, anche accidentali;
disponibilità, i dati e le rispettive informazioni devono essere sempre accessibili agli utilizzatori che ne hanno diritto nei tempi e nei modi previsti.
Il dato è la rappresentazione oggettiva di un fatto o evento che consenta la sua trasmissione oppure interpretazione da parte di un soggetto umano o di uno strumento informatico.
L’informazione è l’interpretazione e il significato assegnato a uno o più dati.
Cap.2 I Possibili “Nemici”
Già nel Rapporto CLUSIT 2015, alla luce dei trend individuati si leggeva: “dunque la vera questione per i difensori (con riferimento ai dati, alle infrastrutture informatiche ed a tutti quei servizi, molti dei quali critici, oggi realizzati tramite l’ICT) non è più “se”, ma “quando” si subirà un attacco informatico (dalle conseguenze più o meno dannose), e quali saranno gli impatti conseguenti”.
Questa tendenza si è ulteriormente consolidata e nel 2016, il principale problema non è tanto che si verrà attaccati (tutti lo sono ormai costantemente, per lo più tramite sistemi automatizzati, nella sfera personale e professionale, per i motivi più disparati), ma quali saranno gli impatti degli attacchi andati a buon fine sulla sicurezza di organizzazioni, utenti, clienti e partner, e come impedire al maggior numero possibile di incidenti di verificarsi.
Tipi di minaccia
A seconda degli attori e delle finalità si usa distinguere la minaccia cibernetica in quattro macro-categorie. Si parla in tal caso di:
criminalità cibernetica (cyber-crime): complesso delle attività con finalità criminali (quali, per esempio, la truffa o frode telematica, il furto d’identità, la sottrazione indebita di informazioni o di creazioni e proprietà intellettuali);
spionaggio cibernetico (cyber-espionage): acquisizione indebita di dati/informazioni sensibili, proprietarie o classificate;
terrorismo cibernetico (cyber-terrorism): insieme delle azioni ideologicamente motivate, volte a condizionare uno stato o un’organizzazione internazionale;
guerra cibernetica (cyber-warfare): insieme delle attività e delle operazioni militari pianificate e condotte allo scopo di conseguire effetti nel predetto ambiente.
Europol, nel suo rapporto IOCTA[4] sugli otto trend del cyber crime nel 2016, li ha classificati in:
crime-as-a-service: il crimine diventa una commodity che si compra al “supermercato” (nero) criminale. Il crimine informatico e la criminalità ordinaria sono sempre più vicini grazie al modello noto come “cybercrime-as-a-service” in cui esperti hacker offrono prodotti e servizi a gruppi criminali che intendono differenziare le proprie attività;
i ransomware, la nuova edizione dell’estorsione;
l’uso criminale dei dati nelle forme di truffe od estorsioni più sofisticate;
le frodi nei pagamenti;
la pedopornografia online e gli abusi;
l’abuso di darknet per attività illecite;
il social engineering, ora rivolto anche ai vertici aziendali per frodi articolate;
l’uso distorto delle valute virtuali, divenute lo strumento di pagamento degli illeciti.
Gli autori
pirati informatici, quelli che spesso, comunemente, vengono chiamati hacker, È sbagliato pensare che i cybercriminali puntino solamente ad eseguire attacchi in grande stile. A fianco di bersagli quali istituti governativi e bancari, sono sempre più oggetto di attacchi informatici anche PMI, liberi professionisti, sino al singolo utente domestico;
spie, sabotatori, vandali. Attualmente, diversi Governi si sono dotati delle necessarie capacità per penetrare le reti nazionali degli altri Stati (in uso sia alle autorità pubbliche che ai privati) a fini di spionaggio o per mappare i sistemi potenzialmente oggetto di un futuro attacco. Il vandalo adotta un insieme di azioni al fine di danneggiare o distruggere beni altrui materiali e non, per puro divertimento o incuria. Il sabotatore ha per obiettivo creare danni ad un sistema, dal rallentamento sino al denial of service, per i motivi più vari. È evidente che una netta distinzione tra i due attori non è possibili in quanto agiscono spesso con le medesime modalità e per gli stessi scopi;
oltre ai criminali comuni, che si rifanno al modello noto come “cybercrime-as-a-service” di cui si è parlato prima, vi sono organizzazioni criminali che hanno preso coscienza delle potenzialità dei malware andando a creare strutture commerciali efficientemente organizzate, capaci di generare sensibili profitti dalla vendita dei servizi che le botnet[5] sono in grado di offrire;
terroristi, è possibile ipotizzare che nel prossimo futuro gruppi terroristici o singoli individui possano impiegare strumenti cibernetici offensivi ed utilizzarli contro obiettivi militari e civili. Si può far rientrare in questa categoria, quella degli attivisti, dal 2013 sempre più spesso si assiste ad una commistione tra finalità cyber criminali e forme di hacktivism. I due ambiti, originariamente distinti per background, finalità e modalità di azione, sempre più spesso trovano conveniente allearsi per raggiungere i propri obiettivi: tipologie di attacco motivate ideologicamente, con intento sostanzialmente dimostrativo, che mirano principalmente a creare un danno d’immagine e/o alla funzionalità temporanea di sistemi e reti;
personale interno, ovvero l’ “insider”, cioè il soggetto che all’interno di una organizzazione – pubblica o privata poco importa – può generare situazioni compromettenti la sicurezza o addirittura la sopravvivenza della realtà di appartenenza. L’attenzione è incentrata sia sui soggetti che ora lavorano nell’organizzazione, sia su quelli che hanno interrotto ogni rapporto. Va tenuto nella dovuta considerazione il fatto che l’attenzione agli attacchi informatici deve necessariamente essere rivolta non solo verso l’esterno, ma anche verso l’interno dell’azienda. Un dipendente particolarmente motivato potrebbe creare un danno molto maggiore rispetto a quello di un cyber attaccante, vista la sua conoscenza dell’infrastruttura e degli asset aziendali. A mio parere rappresenta una fra le minacce più gravi: partono in vantaggio rispetto ad un attaccante esterno per la conoscenza delle dinamiche interne, delle infrastrutture, ecc.., hanno già le credenziali di accesso e spesso non vengono revocate in tempo. Esempio italiano Hacking Team;
fornitori di servizi, outsourcers, nel 2013 si è assistito all’emergere di una chiara tendenza, per cui gli attaccanti hanno individuato negli outsourcer l’anello più debole da colpire per raggiungere (tipicamente sfruttandone le utenze privilegiate e le connessioni VPN) i loro bersagli primari. Questo fenomeno, data la propensione degli attaccanti a minimizzare gli sforzi, è destinato a crescere in modo esponenziale, dal momento che spesso questi fornitori sono aziende medio-piccole, con una cultura della sicurezza sensibilmente inferiore a quella dei loro grandi clienti, pur avendo di frequente accessi poco o per nulla presidiati alle loro reti ed infrastrutture;
dal crimine informatico allo state-sponsored hacking. Lo scenario attuale vede un crescente numero di attacchi informatici caratterizzati da livelli di complessità elevati, determinati dalla proliferazione di hacker al soldo di governi oppure di malware sviluppati dai governi stessi. Se il crimine informatico preoccupa gli esperti di sicurezza, il nation-state hacking non è da meno. La quasi totalità dei governi è intenta nell’ampliamento del proprio arsenale cibernetico.
Cap.3 Il Rischio Cyber per le Imprese
Vulnerabilità e potenziali attacchi
In questo capitolo vengono elencate le principali tipologie di attacchi e di vulnerabilità che possono essere riscontrate nella pratica, per lo sviluppo sicuro delle applicazioni, nell’ottica di identificare un modello adeguato da utilizzare nella identificazione delle contromisure da adottare per il profilo di sicurezza di una applicazione.
Per realizzare un profilo di sicurezza efficace, sarà infatti necessario conoscere innanzitutto quali sono i potenziali attacchi che più verosimilmente potranno essere riscontrati nell’ambito di una applicazione.
L’identificazione di queste possibili situazioni critiche potrà essere quindi utilizzata secondo un approccio probabilistico nella successiva fase di analisi dei rischi, per la individuazione delle contromisure che più convenientemente sia il caso di adottare.
Un potenziale attacco può essere definito come l’attuazione di una delle possibili minacce per un sistema, mentre la vulnerabilità è una debolezza all’interno del sistema stesso e che rende possibile il verificarsi di quel potenziale attacco.
La vulnerabilità può essere causata da un disegno di analisi non adeguato, da errori di configurazione o da tecniche di programmazione non sicure o inappropriate. Una insufficiente validazione dell’input è un esempio di vulnerabilità a livello di sicurezza delle applicazioni e che potrebbe causare il verificarsi di attacchi tramite input maliziosi.
La distribuzione dei potenziali attacchi suddivisi per categoria di vulnerabilità, come riportato di seguito, fornisce una rappresentazione delle aree dove più frequentemente si verificano problemi in termini di sicurezza delle applicazioni e può costituire uno strumento di supporto da seguire nelle fasi di sviluppo e di analisi.
Categoria di Vulnerabilità
Potenziale attacco
Validazione dell’input
Buffer overflow; Script XSS; SQL injection; Altre forme di iniezione di codice (O.S., LDAP) Canonicizzazione.
Autenticazione
Network eavesdropping; Brute force attacks; Dictionary attacks; Cookie replay; Furto di credenziali.
Autorizzazione
Elevazione di privilegi, Violazione di dati riservati, Accesso a funzionalità non autorizzate Data tampering; Luring attacks.
Gestione della Configurazione
Accessi non autorizzati ad interfacce di amministrazione; Accessi non autorizzati a file di configurazione; Reperimento in chiaro di dati riguardanti la configurazione; Assegnazione di account non individuali; Processi e account del servizio con privilegi troppo elevati.
Categoria di Vulnerabilità
Potenziale attacco
Dati Sensibili
Accesso a dati sensibili in memoria o file system; Network eavesdropping; Data tampering.
Gestione delle Sessioni
Session hijacking; Session replay; Man in the middle.
Crittografia
Gestione o generazione non appropriata delle chiavi; Crittografia debole.
Manipolazione di Parametri
Manipolazione di query string; Manipolazione di campi relativi a maschere di input, inclusi campi hidden; Manipolazione di Cookie; Manipolazione di header HTTP
Gestione delle eccezioni/errori
Information disclosure; Denial of service.
Audit e Log
Negazione di aver effettuato una operazione; Violazione di una applicazione senza lasciare tracce; Cancellazione delle proprie tracce.
Per effettuare in maniera sistematica una identificazione delle possibili minacce per una applicazione, un approccio valido consiste nella verifica delle vulnerabilità che sono ad essa applicabili.
Una volta individuate le vulnerabilità a cui l’applicazione potrebbe essere soggetta, si potranno identificare le possibili minacce, o attacchi potenziali ad essa collegate e le corrispondenti contromisure da adottare.
Validazione dell’Input
In questa categoria ricadono le tecniche di filtraggio di una applicazione che debba accettare dei dati di input, e che portano alla accettazione o al rifiuto degli stessi, dopo averne verificato la validità. Si ha una vulnerabilità di questo tipo ad esempio quando:
un programma non gestisce correttamente un errore di sintassi nell’input;
un modulo accetta parametri di input esterni e arbitrari senza validarli;
un modulo non gestisce correttamente dei campi di input non valorizzati;
un campo non è stato definito correttamente per tipo, numero di caratteri, ecc.
Per gli attacchi che ricadono in questa categoria, dovrebbe essere generalmente applicata una strategia di difesa in profondità, sinteticamente definita in tre passi:
il primo consiste nello stabilire delle limitazioni per accettare in input soltanto dati validi, definendo dei filtri riguardanti tipo, formato, lunghezza e range;
il secondo, rifiutare i dati non validi, è meno robusto del primo dato che non sarà sempre possibile prevedere le eventuali varianti di un input illegittimo;
per il terzo, l’obiettivo consiste nel rendere innocui altri dati potenzialmente dannosi, una tecnica potrà essere ad esempio la eliminazione degli spazi presenti alla fine della stringa di input.
Buffer overflow (Applicabilità: Applicazioni Web Oriented e Client Server). Un Buffer overflow è una situazione di errore che si può verificare durante l’esecuzione di un programma, quando la lunghezza effettiva dell’input supera il suo valore massimo previsto. Un programma avente una vulnerabilità di questo tipo potrebbe essere sfruttato illecitamente, introducendo input di tipo malizioso con lunghezza superiore alle capacità del buffer. Ciò avviene solitamente nell’ambito di una chiamata ad una funzione: in occasione di una CALL, la CPU si preoccupa infatti di salvare in memoria l’indirizzo di ritorno (EIP), per poter riprendere dopo il return l’istruzione immediatamente successiva alla CALL stessa. Se il corrispondente buffer dichiarato in memoria, tipicamente nello stack, viene sovrascritto da una quantità di dati tale da causarne lo “straripamento” in zone di memoria adiacenti, ciò provocherà anche la sovrascrittura dell’indirizzo di ritorno del chiamante, necessario per puntare all’istruzione successiva. In questo contesto, come descritto nell’esempio, sarà possibile sostituire l’indirizzo di ritorno della funzione con un altro indirizzo scelto dall’attaccante, modificando il flusso di esecuzione del programma allo scopo di eseguire codice arbitrario.
XSS – Cross-Site Scripting (Applicabilità: Applicazioni Web Oriented). Un attacco di tipo script XSS, o Cross-Site scripting, consiste nel provocare l’esecuzione di codice arbitrario di tipo HTML e script da esso eseguibili (quali Javascript) attraverso il browser, utilizzando l’applicazione come veicolo per l’attacco. Vulnerabilità XSS si verificano quando un’applicazione presenta all’utente (nel browser) delle informazioni ricevute precedentemente in input qualora queste non siano state opportunamente validate. Se l’input contiene caratteri che, quando sottoposti al browser, rappresentano codice (HTML, Javascript), si ottiene un attacco in cui si provoca l’esecuzione di codice arbitrario, che avverrà nel contesto di sicurezza del browser.
SQL Injection (Applicabilità: Applicazioni Web oriented, Client server). Un attacco di questo tipo consiste nello sfruttare vulnerabilità presenti nel meccanismo di validazione dell’input, al fine di eseguire comandi arbitrari nel database.
Autenticazione
È il processo in cui una entità prova la identità di un’altra entità, tipicamente attraverso credenziali come user name e password, relative ad una applicazione. Gli aspetti fondamentali collegati all’autenticazione riguardano:
la identificazione dei punti in cui richiedere l’autenticazione all’interno dell’applicazione, tipicamente nelle zone che delimitano un’area di ‘Trust’;
la validazione di credenziali, che nelle applicazioni Web vengono trasmesse tramite form HTML (o, meno comunemente per le implicazioni di sicurezza associate, utilizzando schemi quali http basic o digest authentication);
l’assegnazione di un token all’utente per la sua identificazione.
I punti da considerare per una corretta strategia di protezione sono i seguenti:
evitare il passaggio di credenziali ‘in chiaro’ attraverso la rete e utilizzare canali di comunicazione sicuri;
memorizzare i dati relativi alle credenziali in maniera crittografata o utilizzare eventualmente algoritmi di hash;
identificare univocamente l’utente che si è autenticato, proteggendo i suoi cookie di autenticazione.
Network eavesdropping (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di attacco, ossia ‘spiare attraverso la rete’ potrebbe andare a buon fine se le credenziali relative all’autenticazione vengono passate in chiaro dal client al server. I dati HTTP che viaggiano in chiaro nella rete sono soggetti a questo tipo di attacco, che viene perpetrato attraverso software di monitoraggio della rete al fine di intercettare e/o modificare dati riservati. Da tenere in considerazione che il protocollo HTTP impiega solo una semplice codifica Base64 prima di trasmettere le password.
Brute force attack (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di attacco è mirato verso la individuazione automatica delle password o altre informazioni sensibili. L’attacco consiste nella possibilità di ‘craccare’ (to crack = rompere) la password o altre informazioni riservate, codificate con meccanismi crittografici o di hashing, verificando tutte le combinazioni possibili per le informazioni in oggetto (ad es., tutte le combinazioni di username, password).
Dictionary attack (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di attacco è mirato verso la individuazione automatica delle password. Se le password da conservare in memoria vengono codificate tramite un meccanismo di hashing, il meccanismo di autenticazione avviene ricodificando con lo stesso meccanismo la password digitata dall’utente ed effettuando il confronto del valore ottenuto con il corrispondente valore memorizzato nel database. Se un attaccante riesce ad ottenere la lista delle password codificate, potrà cercare di individuare il meccanismo di decodifica (Brute Force). In aggiunta a ciò, un attacco di questo tipo (Dictionary attack) viene perpetrato con l’ausilio di appositi programmi che effettuano delle iterazioni, utilizzando tutte le parole di un dizionario (o di più dizionari di lingua diversa), effettuando poi l’hashing per ognuna delle parole possibili. L’hashing risultante viene poi confrontato con il corrispondente valore del database. Per questo motivo viene sconsigliato l’uso di password troppo semplici.
Cookie replay (Applicabilità: Applicazioni Web Oriented). Con questo tipo di attacco, si cerca di impadronirsi dei cookie di autenticazione dell’utente utilizzando software di monitoraggio, replicandone poi il contenuto per accedere all’applicazione, impersonificando un utente legittimo. Un attacco di questo tipo può verificarsi quando il canale di comunicazione non è cifrato (ad es., si utilizza http) e l’attaccante ha la capacità di osservare traffico in transito dalla vittima.
Furto di credenziali (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Se una applicazione contempla l’uso di propri ‘contenitori’ relativi a credenziali dell’utente, il suo meccanismo di sicurezza potrebbe essere meno robusto di quello fornito dalla piattaforma di riferimento.
Autorizzazione/profilazione
Le autorizzazioni/profilazioni connesse con una applicazione riguardano sia le modalità con cui essa accede a risorse, database e/o operazioni sia se e con quali diritti gli utenti finali accedono a loro volta all’applicazione stessa.
Le principali implicazioni che derivano da vulnerabilità imputabili ad una inappropriata gestione delle autorizzazioni sono:
Elevazione di privilegi (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di attacco, collegato con la fase di assegnazione delle autorizzazioni, consiste nella possibilità che qualcuno possa allargare il proprio campo di azione, utilizzando privilegi non consentiti per il proprio account, come ad esempio i diritti assegnati ad un gruppo di amministratori. L’attacco avviene solitamente in modo indiretto, dato che spesso deve sfruttare altre vulnerabilità (es. un buffer overflow) presenti nell’applicazione per poter essere messo in pratica.
Violazione di dati riservati (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di minaccia riguarda i dati gestiti da una applicazione e consiste nella possibilità di visualizzazione di dati riservati da parte di un utente non autorizzato.
Data tampering (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di minaccia riguarda i diritti assegnati agli utenti e consiste nella possibilità di modifica dei dati da parte di un utente non autorizzato.
Luring attacks (Applicabilità: Applicazioni Web Oriented). Questo tipo di problema, che rientra nella categoria di attacchi che comportano una elevazione di privilegi, consiste nella possibilità, da parte di una entità, di richiamarne un’altra avente privilegi superiori, ossia che consentano di effettuare una certa operazione altrimenti non autorizzata.
Gestione della configurazione
Questa categoria riguarda le applicazioni dotate di interfacce e funzionalità che permettono a sviluppatori, operatori e amministratori di gestire:
parametri di configurazione di un sito web;
contenuti delle pagine Web;
account degli utenti;
informazioni sugli user profile;
stringhe di connessione al database;
routine di manutenzione e amministrazione.
Questo tipo di vulnerabilità potrebbe permettere ad un attaccante di accedere al sito con privilegi di amministratore. Se, ad esempio, un application server è dotato di funzioni di amministrazione remota, un accesso non sicuro alla interfaccia di amministrazione potrebbe permettere l’ingresso e la modifica di qualsiasi informazione.
Accessi non autorizzati ad interfacce di amministrazione (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di minaccia potrebbe riguardare quelle applicazioni dotate di interfacce, interne od esterne all’applicazione stessa, tramite le quali sia possibile effettuare operazioni di gestione e di configurazione.
Accessi non autorizzati a file di configurazione (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questa minaccia riguarda le informazioni contenute nei file di configurazione (o file .ini nelle applicazioni client server) che, a causa della loro natura, devono essere protette da accessi non autorizzati.
Reperimento in chiaro di dati riguardanti la configurazione (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questa minaccia è collegata con la precedente: oltre a riguardare la limitazione degli accessi sui file contenenti dati di configurazione, comporta l’adozione di un meccanismo di difesa in profondità attraverso la crittografia dei dati sensibili/critici o delle stringhe di connessione.
Assegnazione di account non individuali (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questa minaccia riguarda la possibilità da parte di un attaccante di modificare informazioni relative alla configurazione ed all’amministrazione di sistemi e siti e di accedere a dati riservati senza una adeguata tracciabilità delle operazioni e della persona che le ha effettuate attraverso le attività di auditing e logging.
Processi e account del servizio con privilegi troppo elevati (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Un importante aspetto per una corretta configurazione dell’applicazione è rappresentato dall’assegnazione di minimi privilegi agli account di processo usati per esempio per eseguire il processo Web server e gli account di servizio usati per accedere alle risorse e ai sistemi.
Dati sensibili
Questa categoria è soggetta ad una varietà considerevole di possibili tentativi di visualizzazione o modifica di dati riservati, e può riguardare sia dati memorizzati, sia dati che viaggiano sulla rete.
I meccanismi principali per gestire la privacy di queste informazioni sono:
la crittografia;
l’integrità attraverso codici di autenticazione del messaggio (MAC).
Accesso a dati sensibili in memoria (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Network eavesdropping (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Data tampering (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Queste minacce si riferiscono alla possibilità da parte di alcuni utenti malintenzionati di accedere in maniera non autorizzata a dati riservati, memorizzati su qualsiasi tipo supporto.
Gestione delle sessioni
Questo tipo di vulnerabilità costituisce un aspetto critico per una applicazione, e le applicazioni Web in particolare devono utilizzare sessioni per tenere traccia delle richieste di ogni utente: il protocollo HTTP non offre questa funzionalità e quindi ogni applicazione deve implementarla in qualche modo.
Session hijacking (Applicabilità: Applicazioni Web Oriented). La tecnica di questo attacco consiste nell’attendere che qualcuno porti a termine con successo il proprio processo di autenticazione, al fine di sfruttare in seguito la medesima connessione, anche quando il legittimo utente ne ha terminato l’utilizzo.
Session replay (Applicabilità: Applicazioni Web Oriented). Questa minaccia riguarda la possibilità di sfruttare informazioni riguardanti la sessione, intercettate come descritto nel punto precedente, al fine di bypassare il meccanismo di autenticazione. In altre parole è l’utilizzo delle autorizzazioni da parte dell’hacker senza che esse gli siano state date. Se ad esempio il token relativo alla sessione è presente in chiaro all’interno di un cookie o di una URL, potrebbe essere intercettato (Session hijacking) e poi riutilizzato.
Man in the middle (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questo tipo di attacco può riguardare un qualsiasi tipo di richiesta inviata attraverso la rete nel corso di una comunicazione client/server. Consiste nella alterazione dei messaggi nella fase di passaggio fra mittente e destinatario, prima dell’effettivo arrivo a destinazione. Il messaggio falsificato viene accettato come vero dal destinatario, che intraprende le azioni corrispondenti. Analogamente, quando in seguito viene inviata una risposta, anche questa viene falsificata. In tal modo nessuna delle due parti si renderà mai conto di essere stata attaccata.
Session Riding (Applicabilità: Applicazioni Web Oriented). Session Riding, altrimenti detta Cross-Site Request Forgery, rappresenta una classe di vulnerabilità che consente di inviare comandi ad applicazioni web tramite un (inconsapevole) utente, mediante l’invio a quest’ultimo di email o inducendolo a visitare apposite pagine web.
Crittografia
Di fronte all’esigenza di trattare informazioni sensibili dal punto di vista della sicurezza, cosa abbastanza comune per un gran numero di applicazioni, potrebbe essere necessario utilizzare un algoritmo di crittografia. In tal caso, il meccanismo prescelto non dovrà essere utilizzato in maniera impropria. Probabilmente, l’errore più comune è rappresentato da codice di crittografia realizzato autonomamente, solitamente debole e semplice da violare.
È importante assicurarsi che l’algoritmo scelto sia adatto al lavoro che deve svolgere e allo stesso tempo bisogna assicurarsi di usare una giusta dimensione della chiave che garantisca un sufficiente grado di sicurezza. Generalmente più grande è la chiave, maggiore sarà il livello di sicurezza, ma più onerosa la sua implementazione.
Di seguito vengono analizzate le minacce (solitamente sottovalutate) che possono essere sfruttate affinché gli attacchi possano avere successo e quindi compromettere la sicurezza delle applicazioni.
La seguente lista sintetizza gli algoritmi più diffusi e le chiavi che essi implementano:
Data Encryption Standard (DES) chiave a 64 bit suddivisa in 8 blocchi da 8 bit (8 bytes) – Simmetrico (chiave privata);
TripleDES (3DES) chiavi a 128 bit o 192 bit (16 o 24 bytes) – Simmetrico (chiave privata);
Rijndael 128 –256 bit (16-32 bytes) – Simmetrico (chiave privata);
RSA 1024 bit (128 bytes) Asimmetrico (chiave pubblica).
Gestione o generazione non appropriata delle chiavi (Applicabilità: Applicazioni Web Oriented, Client server). Gli utenti malintenzionati possono decriptare i dati se essi hanno accesso alla chiave di encriptyng o possono dedurla. Alcuni utenti malintenzionati potrebbero scoprire le chiavi se le stesse sono generate in maniera non casuale od utilizzando degli algoritmi fai da te. Questo tipo di minaccia, utilizzabile da un attacco, ha una probabilità di fallimento che è direttamente proporzionale alla robustezza del meccanismo di generazione e gestione delle chiavi crittografiche.
Crittografia debole (Applicabilità: Applicazioni Web, Applicazioni Client server). Un algoritmo di crittografia non offre nessuna sicurezza se può essere decodificato, ossia è vulnerabile ad un attacco di tipo “Brute Force”. Gli algoritmi “fai da te” sono particolarmente vulnerabili se non testati adeguatamente. È d’obbligo in questi casi l’utilizzo di algoritmi noti e accuratamente testati. Questo tipo di vulnerabilità ha una probabilità di insuccesso direttamente proporzionale alla robustezza dell’algoritmo di crittografia utilizzato.
Manipolazione di parametri
In questa categoria ricadono le applicazioni Web in cui avvenga un passaggio di parametri fra client e applicazione. Ciò potrebbe riguardare stringhe contenenti query, campi della maschera di input, cookie e header HTTP.
Manipolazione di stringhe contenenti query (Applicabilità: Applicazioni Web). Le stringhe di query sono porzioni di una URL dinamica che contengono parametri per la generazione di una pagina. La manipolazione di questi dati è solitamente una operazione abbastanza semplice e non esistono metodi robusti per prevenirla, soprattutto se i parametri vengono passati tramite una HTTP GET da client a server, che provoca la loro successiva visualizzazione all’interno della URL.
Manipolazione di campi relativi a maschere di input (Applicabilità: Applicazioni Web). Quando un utente inserisce dati in una pagina HTML, questi vengono solitamente memorizzati come valori di campi del form e inviati in chiaro all’applicazione come una richiesta HTTP (GET o POST). Questi campi potrebbero essere modificati per bypassare le routine di validazione del client e la manipolazione potrebbe riguardare tutti i campi presenti nel form, compresi quelli nascosti.
Manipolazione di Cookie (Applicabilità: Applicazioni Web). I cookie sono un conveniente meccanismo di memorizzazione delle preferenze utente e di altri dati, fra cui i session token. Esistono due diverse tipologie di cookie:
Cookie persistenti;
Cookie non-persistenti
I cookie di tipo persistente sono memorizzati in file di testo che si trovano sul client, e sono validi per un determinato periodo, stabilito in base alla corrispondente data di scadenza. I cookie di tipo non-persistente sono memorizzati sul client nella RAM, e vengono cancellati quando il browser viene chiuso oppure il cookie viene terminato da uno script di logoff. Entrambe le tipologie sono suscettibili a manomissioni da parte del client, che li invia successivamente al server effettuando richieste tramite header HTTP, ad esempio per ottenere l’accesso ad un sito Web, oppure utilizzando Javascript.
Manipolazione di header http (Applicabilità: Applicazioni Web). Gli header HTTP sono informazioni di controllo, che vengono scambiate fra client e Web server nelle richieste HTTP. Gli header relativi al client vengono solitamente indicati come request header, mentre i response header sono quelli relativi al server. Il cookie può essere considerato un esempio di response header. Queste informazioni sono solitamente contenute in una riga ASCII di testo, ed hanno un nome ed un valore. Normalmente, i web browser non consentono la modifica degli header, e un attaccante dovrà scrivere un apposito programma che effettua la richiesta HTTP, oppure utilizzare degli strumenti facilmente reperibili in rete, che consentono di modificare i dati inviati dal browser (proxies).
Gestione delle eccezioni/errori
Una corretta gestione degli errori non deve esporre informazioni sulla struttura interna dell’applicazione ad eventuali attacchi. Le applicazioni che non effettuano una corretta gestione delle eccezioni sono vulnerabili da questo punto di vista.
Information disclosure (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Con questo tipo di attacco si cerca di provocare un errore dell’applicazione, al fine di ottenere informazioni riguardanti l’applicazione stessa, come ad esempio: versione della piattaforma, nomi di server, stringhe contenenti comandi SQL, e stringhe di connessione al database.
Denial of Service (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Un attacco di questo tipo viene solitamente effettuato inviando intenzionalmente un input errato ad una applicazione. Questo per due scopi principali:
causare un errore che riveli informazioni di dettaglio sull’applicazione;
provocare il crash dell’applicazione o di una sua componente.
Se tutte le eccezioni non sono state opportunamente catturate e gestite, questa eventualità potrebbe verificarsi.
Audit e Log
L’audit è una tecnica che permette di determinare e scoprire a posteriori le violazioni sulla sicurezza e si basa sulla creazione di log (di solito file) in cui registrare gli eventi e/o statistiche che una entità effettua sul sistema in oggetto. Questo tipo di tecnica dovrebbe essere utilizzata per individuare, riparare e possibilmente prevenire il maggior numero possibile di attività illecite. I log forniscono un meccanismo per analizzare lo stato di sicurezza del sistema, anche per determinare se un’azione richiesta metterà il sistema in uno stato non sicuro o per determinare la sequenza degli eventi che conducono il sistema in uno stato di non sicurezza.
Si raccomanda di registrare almeno le azioni riguardanti le seguenti tipologie di eventi delle applicazioni:
lettura dati sensibili;
scrittura dati sensibili;
cancellazione di ogni tipologia di dato;
tutti gli eventi di autenticazione (login, logout, e log failure)
tutti i tentativi di modifica autorizzazioni includendo data e ora, se è avvenuto con successo o è stato rifiutato, la risorsa o la funzione alla quale si autorizza, e l’utente che ha chiesto l’autorizzazione.
Si riportano i problemi che possono far sì che il meccanismo di log non possa fornire le informazioni necessarie per stabilire lo stato di sicurezza del sistema.
Negazione di aver effettuato una operazione (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). L’attacco consiste nella possibilità di ripudio di una azione o di una transazione che è realmente avvenuta facendola apparire come se non fosse mai stata eseguita.
Violazione di una applicazione senza lasciare tracce (Applicabilità: Applicazioni Web Oriented, Client server, MainFrame). Questa minaccia consiste nell’attacco a un’applicazione utilizzando uno dei metodi descritti in precedenza senza che ci sia conoscenza del cambiamento sullo stato del sistema.
Vediamo ora alcuni delle minacce più diffuse:
Defacement
Il web defacement è la modifica non autorizzata di come visivamente appare un sito web. Tale azione è ormai un elemento ricorrente in Internet e le motivazioni che spingono un attaccante ad agire in questo modo sono molteplici, incluse la dimostrazione di abilità, le ragioni ideologiche, la truffa ed il ricatto con implicazioni prevalentemente di danno economico. La gravità di questo problema è ormai diventata incontrovertibile, come dimostrato da numerosi dati di fatto. Attacchi di questo genere sono ormai effettuati in maniera automatizzata ed in larga scala, in modo analogo a quanto avviene con la propagazione dei virus e degli worm. I contenuti originari vengono sostituiti con testi e/o immagini irridenti e critici, a volte “nonsense” (o apparentemente tali).
Un defacement mina la credibilità del sito colpito, che dimostra di essere vulnerabile. Pur interferendo con la comunicazione del sito colpito, il danno non è permanente. La modifica del sito web viene effettuata ottenendo un accesso al server che lo ospita.
Attacchi di Denial of Service (DoS) e Distributed Denial of Service (DDoS)
La sigla DoS di Denial of Service si traduce letteralmente in negazione del servizio. Si tratta di un malfunzionamento dovuto ad un attacco informatico in cui si esauriscono deliberatamente le risorse di un sistema informatico che fornisce un servizio, ad esempio un sito web, fino a renderlo non più in grado di erogare il servizio. Alcuni mirano solo ad un servizio, ad esempio Web, SMTP, FTP, etc., altri invece mirano a mettere fuori uso completamente il server o, addirittura, un’intera rete.
Gli attacchi DDoS (Distributed Denial of Service) amplificano la portata di tali minacce.
Gli attacchi di tipo DDoS sono molto più insidiosi da bloccare perché:
la potenza dell’attacco (volume dei dati trasmessi, banda occupata, etc.) è maggiore, di vari ordini di grandezza, rispetto a quella possibile attraverso un DoS;
è praticamente impossibile bloccare l’attaccante nella considerazione che sono decine di migliaia di computer infetti che perpetrano l’attacco;
è praticamente impossibile riconoscere il traffico autorizzato da quello non autorizzato, visto che i computer partecipanti alla botnet sono dislocati, praticamente in tutto il globo.
Attacchi man in the middle.
Consistono nell’intercettazione da parte dell’attaccante della comunicazione legittima in corso tra due attori. Tramite diverse tecniche, che si differenziano attraverso la tipologia di connessione in corso, l’attaccante osserva lo scambio di informazioni tra le due parti, e al momento più opportuno si sostituisce a una delle due per ottenere quanto desidera.
Un classico esempio di questa tipologia di attacco, che sta mietendo sempre più vittime anche in Italia, viene denominato man in the mail: a seguito della violazione dell’account di posta di uno dei due attori coinvolti, l’attaccante è in grado di assistere alle conversazioni email. In questo modo egli può carpire quante più informazioni sulle persone coinvolte e al momento opportuno sostituirsi ad una di esse in maniera esemplare. L’unico modo per evitare il verificarsi di tali truffe è chiedere una conferma certa da parte del ricevente e in caso di dubbi stoppare l’attività di bonifico.
Malware
Il termine malware indica genericamente un qualsiasi software creato con il solo scopo di causare danni più o meno gravi ad un computer, ai dati degli utenti del computer, o a un sistema informatico su cui viene installato. Si conoscono molte categorie di malware, anche se spesso questi programmi sono composti di più parti interdipendenti e rientrano pertanto in più di una classe. Tra questi i più frequenti sono:
Virus: sono parti di codice che si diffondono copiandosi all’interno di altri programmi, o in una particolare sezione del disco fisso, in modo da essere eseguiti ogni volta che il file infetto viene aperto. Si trasmettono da un computer a un altro tramite lo spostamento di file infetti ad opera degli utenti;
Worm: il loro scopo è rallentare il sistema con operazioni inutili o dannose;
Trojan horse: software che contengono istruzioni dannose che vengono eseguite all’insaputa dell’utilizzatore, per diffondersi devono essere consapevolmente inviati alla vittima;
Backdoor: consentono un accesso non autorizzato al sistema su cui sono in esecuzione;
Spyware: software che vengono usati per raccogliere informazioni dal sistema su cui sono istallati e per trasmetterle ad un destinatario interessato, le informazioni carpite possono andare dalle abitudini di navigazione fino alle password e alle chiavi crittografiche di un utente;
Dialer: questi programmi si occupano di gestire la connessione ad Internet tramite la normale linea telefonica, possono essere utilizzati in modo illecito, modificando il numero telefonico chiamato dalla connessione predefinita con uno a tariffazione speciale, allo scopo di trarne illecito profitto all’insaputa dell’utente;
Hijacker: questi programmi si appropriano di applicazioni di navigazione in rete (soprattutto browser) e causano l’apertura automatica di pagine web indesiderate;
Keylogger: sono dei programmi in grado di registrare tutto ciò che un utente digita su una tastiera o che copia e incolla rendendo così possibile il furto di password o di dati che potrebbero interessare qualcun altro.
Il loro numero e la varietà, unite alla loro rapida evoluzione ed obsolescenza non consentono di classificarli al fine di raggiungere una loro tipizzazione sanzionatoria. La Convenzione di Budapest ha quindi evitato deliberatamente di sanzionare specificamente le varie forme di malware, anche soltanto limitandosi alle tipologie più ricorrenti, al fine di evitare la rapida perdita di attualità delle norme ivi contenute. Tuttavia è possibile ricondurre anche i malware sotto specifiche disposizioni della Convenzione avendo riguardo alla funzionalità ed ai danni prodotti dai malware che sono, invece, suscettibili di catalogazione e di tipizzazione normativa. Vengono in considerazione le norme[6] che sanzionano l’accesso abusivo, l’interruzione e l’intercettazione di comunicazioni telematiche, le varie forme di danneggiamento aventi ad oggetto dati, programmi o sistemi, le norme che sanzionano la disponibilità e la cessione a terzi di programmi realizzati al fine di accedere illegalmente a computer e sistemi protetti ovvero al fine di danneggiarli, i programmi concepiti per l’alterazione e la falsificazione di informazioni presenti in banche dati pubbliche o private, i malware specificamente progettati per recare un danno economico e conseguire un profitto tramite l’interferenza sul funzionamento di computer o sistemi.
Advanced Persistent Threats
L’anno 2014 è stato caratterizzato da numerosi attacchi del tipo Advanced Persistent Threat (APT), basati su malware già noti in passato ma riutilizzati secondo una nuova connotazione. Gli APT sono schemi di attacco articolati, mirati a specifiche entità o organizzazioni, e che si contraddistinguono per un accurato studio del bersaglio preventivo e che spesso continua anche durante l’attacco, per l’impiego di tool e malware sofisticati e per la lunga durata o persistenza nel tempo cercando di rimanere inosservati per continuare a perpetrare quanto più possibile il proprio effetto.
Crimini di identità
Il nuovo contesto tecnologico, la diffusione capillare di Internet e fenomeni quali i social network hanno fatto sì, infatti, che l’attenzione dei criminali si rivolgesse verso nuove forme di cybercrime che hanno ragione di esistere in quanto sfruttano l’immaterialità del cyberspace.
Questa nuove forme di crimini informatici si sostanziano in abusi di profili identitari altrui nel cyberspace, ovvero il furto d’identità digitale, il phishing, l’abuso di identità “virtuale”, le frodi identitarie, fenomeni questi che possono essere ricondotti nella categoria generale degli “identity crime”.
Tale categoria comprende in pratica tutte quelle condotte delittuose che comportano una aggressione all’identità digitale altrui, dovendosi intendere con tale espressione quell’insieme di informazioni presenti online e relative ad una persona, un ente, un brand, ecc.
I crimini di identità si dividono in due categorie: i furti d’identità, cioè la sottrazione di dati personali di persone esistenti o decedute e le frodi d’identità, cioè la creazione di un’identità fittizia, basata su dati falsi o manomessi (mescolando dati reali di più persone).
La tecnica più diffusa per il furto di identità è il phishing: può essere definito come “una metodologia di comportamento sociale indirizzata a carpire informazioni personali o abitudini e stili di vita”. Attraverso tale tecnica si induce l’utente a fornire dati personali che consentono l’accesso ad informazioni riservate.
Social Engineering. La dissimulazione disonesta: l’ingegneria sociale
Non importa di quali tecnologie di sicurezza sia dotata un’azienda, l’investimento in soluzioni all’avanguardia potrebbe essere inficiato dal comportamento di un solo utente, manipolato con un attacco di ingegneria sociale. Non esiste alcuna tecnologia che permetta di prevenirlo o di difendersi. Per esserne immuni è necessario essere addestrati.
L’ingegneria sociale è in generale l’arte di indurre le persone a compiere determinate azioni dissimulando il reale obiettivo dell’attacco. L’ingegnere sociale è abile a mascherare la propria identità, fingendosi un’altra persona: in tal modo, attraverso la conversazione o altre interazioni, riesce a ricavare informazioni che altrimenti non otterrebbe.
In ambito security il social engineering viene utilizzato come metodo di intrusione e spesso l’attività di social engineering è strettamente collegata a quella di phishing. L’evoluzione del cybercrime negli ultimi anni evidenzia la tendenza all’utilizzo congiunto di tecniche avanzate di malware e social engineering per lanciare attacchi sempre più sofisticati e difficili da prevedere o rilevare, tali da provocare danni ingenti e a volte irreparabili ai sistemi di sicurezza aziendali, con conseguenti perdite economiche, perdita di dati sensibili e informazioni strategiche, danno alla reputazione.
Operazioni estorsive. Cifratura di file con ransomware
Questa tipologia di attacchi si sta evolvendo e raffinando sempre più. Il metodo di diffusione più comune è quello dell’email, che viene camuffata ad arte per assomigliare ad esempio ad una fattura o ad un ordine di un potenziale cliente. Il fine dell’attaccante è quello di indurre l’utente ad eseguire il download dell’allegato presente sulla mail ricevuta, in modo tale da poter eseguire l’installazione del virus sulla macchina target. Una volta installato, il ransomware esegue una cifratura di quanti più file riesce a infettare, includendo non solo la macchina locale su cui è stato scaricato, ma anche le eventuali cartelle condivise. Per ottenere la chiave di decifrazione la vittima deve pagare un riscatto, solitamente sotto forma di Bitcoin, la moneta digitale utilizzata sempre più dai cybercriminali per le transazioni di questo genere, in quanto difficilmente rintracciabili.
Ultimamente questo tipo di ransomware (locker-ransomware), è stato gradualmente soppiantato da un più insidioso crypto-ransomware, codici che criptano i soli documenti lasciando però accesso al sistema che invece risulterà vuoto e chiedendo un riscatto (generalmente nell’ordine delle centinaia di dollari) per riottenere i documenti in chiaro.
Questa particolare forma di malware è cresciuta di molto anche grazie alla diffusione di servizi di ransomware as a service gestiti da gruppi criminali che affittano servizi completi di ransomware a chi decide di gestire in proprio le campagne di estorsione informatica.
Attacchi alle infrastrutture Cloud
L’utilizzo del Cloud computing ha introdotto nuove sfide che aziende e organizzazioni di ogni tipo e dimensione hanno la necessità di affrontare. Le politiche e procedure disegnate attraverso esperienze decennali nella gestione delle minacce on-premise[7], continuano ad avere la loro validità anche negli ambienti public e hybrid cloud, ma non sono più sufficienti: c’è la forte necessità per i team di sicurezza di mantenersi aggiornati sulle nuove tipologie di minacce che il cloudcomputing deve affrontare, per definire la migliore strategia di protezione. Tali minacce possono essere introdotte da caratteristiche peculiari dei servizi cloud o per effetto dell’interconnessione tra l’ambiente on-premise con quello cloud.
Strategia di un attacco
Per individuare le vulnerabilità all’interno di una applicazione possono essere sfruttate diverse forme di interazione, i cui passi principali sono:
controllo e identificazione: l’obiettivo dell’attacco viene studiato al fine di identificare congiuntamente le caratteristiche di una applicazione, ossia ad esempio i servizi ed i protocolli utilizzati, le corrispondenti vulnerabilità e punti di accesso. In primo luogo si potrà simulare il normale utilizzo da parte di un utente e a tale scopo sarà sufficiente un qualunque client http;
infiltrazione: dopo aver studiato ed identificato l’obiettivo, il passo successivo sarà quello di cercare una strada che permetta di infiltrarsi nel sistema. Se la sicurezza della rete e la sicurezza dell’host saranno state ben salvaguardate, sarà presa di mira la sicurezza delle applicazioni;
appropriazione di privilegi: dopo aver trovato una via di ingresso, il prossimo passo potrebbe consistere nel tentativo di ottenere diritti di accesso ancora più elevati, per allargare il proprio campo di azione. Se nella corrispondente gestione della configurazione sono stati previsti processi e account del servizio con privilegi troppo elevati, ciò faciliterà questa tipologia di intervento. Per questo motivo il principio del minimo privilegio resta sempre una contromisura molto importante da adottare;
mantenimento di un accesso: dopo aver ottenuto l’accesso ad un sistema, si cercherà di mantenerlo, provvedendo anche a semplificarlo per il futuro ed a cancellarne le tracce. Un esempio potrebbe consistere nell’installazione di programmi di back-door, che lasciano aperta la strada o anche nella scelta di un account adatto. Per coprire le proprie tracce, sarà poi effettuata una pulizia dei log, che costituiscono un altro potenziale obiettivo di attacco ed è per questo motivo che i file di log dovrebbero essere salvaguardati ed analizzati sistematicamente;
negazione del servizio (Denial of Service): alcuni attaccanti che non riescano ad ottenere l’accesso ad un sistema, spesso cambiano obiettivo, cercando di impedire agli utenti legittimi di utilizzare l’applicazione, per altri ancora, questo può essere invece l’obiettivo primario.
Cap.4 Le Investigazioni Digitali
Lo “stato” della digital forensics in Italia si è, negli ultimi anni, evoluto sensibilmente e, fortunatamente, in maniera abbastanza omogenea. Sin dagli anni duemila, la scienza che studia la corretta identificazione, acquisizione, produzione e, in senso lato, “resistenza” in giudizio della fonte di prova digitale ha vantato anche in Italia uno sviluppo lineare che ha riguardato tutti i settori coinvolti, nessuno escluso: il mondo dell’accademia, le Forze dell’Ordine, la magistratura e l’avvocatura e il mondo dei consulenti, dei tecnici, degli esperti, delle associazioni e delle aziende che producono software ed hardware per la digital forensics (soggetti, questi, giustamente più votati a un approccio alla materia tecnico e d’immediata utilità, compresa la formazione nell’utilizzo di tali strumenti, sovente complessi). Ciò ha portato a uno sviluppo equilibrato del settore, cosa molto utile e apprezzabile in un ambito che viene a toccare, come è noto, i diritti fondamentali dell’individuo.
Prova digitale: «È da considerarsi prova digitale il dato e la rispettiva informazione avente valore probatorio, ricavati da un accertamento tecnico-scientifico di tipo informatico, svolto nell’ambito di un procedimento penale o civile.»
L’aspetto più importante, e che è divenuto la questione centrale, è che la digital forensics ha intaccato alcuni concetti base ritenuti universalmente validi in ambito legale, i quali devono essere in qualche modo ricodificati o quantomeno riadattati all’inarrestabile evoluzione tecnologica del mondo digitale.
Ad esempio…
La dematerializzazione
In generale il processo di dematerializzazione è stato largamente introdotto quando, anche la PA, ha cercato di trasformare l’enorme massa di documentazione cartacea in suo possesso in file su una memoria di massa digitale.
A questo va aggiunto che si è cercato non solo di implementare l’archiviazione in tal senso, ma anche le procedure, spostando le attività umane su flussi descritti e contenuti in complessi database (archivi elettronici) e software basati su articolate reti di computer.
Il completo processo di dematerializzazione, però, e mi riferisco in Italia, impiegherà lunghi periodi, lasciando ancora alla carta un centralissimo ed indiscutibile compito in qualsiasi ambito documentale e procedurale.
Uno dei motivi fondamentali di tale difficoltà di avanzamento è la mancanza di fiducia verso il digitale, che ha sicuramente mostrato la sua pervasività ed indispensabilità, ma ha parimenti evidenziato un’assoluta incapacità di gestire sicurezza, affidabilità e disponibilità dei dati:
sicurezza: stabilire chi (identità) è autorizzato a fare cosa (attività) e con quali dati (informazioni) ed evitare che non autorizzati svolgano procedure o accedano a dati loro vietati. Non esiste ad oggi un sistema tecnico completamente sicuro per i sistemi digitali, soprattutto quando sono in rete, è indispensabile una politica di gestione della sicurezza che coinvolga anche le persone;
affidabilità: garanzia che i dati registrati restino integri nel tempo. La maggior parte delle memorie digitali si danneggia con frequenza molto più alta della carta, che resta il supporto di memoria al momento più longevo;
disponibilità: garanzia che i dati restino disponibili agli autorizzati quando questi lo richiedono. Spesso tra guasti di sistema, difficoltà di connessione, ecc. i dati, pur essendo presenti in una rete complessa, non sono disponibili.
Succede poi che in Italia sicurezza, affidabilità e disponibilità vengono percepiti come costi sia dalle PA che dalle aziende e non come investimenti e quindi si cerca di “spenderci il meno possibile” conseguendo sistemi deboli e mediamente mal funzionanti che vengono rafforzati solo nelle aree in cui non se ne può fare a meno (es. aree riservate o critiche).
La dematerializzazione nella digital forensics
Nella digital forensics i problemi appena visti per la dematerializzazione in generale, non solo esistono, ma sono rafforzati dalla pesantezza e rilevanza dell’attività considerata che è quantomeno un’indagine civile/penale. Ogni volta infatti che si devono affrontare questioni critiche in cui si rischiano grosse ripercussioni per degli errori è naturale irrigidirsi. Si può passare immediatamente a considerare l’aspetto digital forensics centrale di tale faccenda mediante un esempio base di semplice e diretta comprensione. Qualora un PC contenga nella sua memoria di massa (hard disk) alcuni dati di estremo interesse, per un’indagine di PG nei confronti del suo possessore, se ne può disporre il sequestro (fisico) per poi consentire ad un CT di svolgere un’analisi forense approfondita consegnandogli l’oggetto. La domanda però è perché disporre un sequestro fisico dello strumento quando NON si è interessati a tutto quello che contiene ma solo ad alcuni dati in esso registrati.
In definitiva si è stabilito un nuovo concetto di sequestro virtuale in cui l’oggetto del sequestro non è la “cosa” ma il “dato”. Va dunque distinto il “contenitore” rispetto al “contenuto”.
Il punto massimo sul reperto virtuale e sulla dematerializzazione, lo si ha con i sistemi cloud. In breve un cloud system è un sistema che usa Internet come semplice rete di appoggio, combinando il lavoro di migliaia di server in tutto il mondo, ciò a determinare una serie di servizi.
Il computer virtuale su cloud o computer remoto è un intero sistema di elaborazione che NON esiste fisicamente ma solo virtualmente (è definito scientificamente macchina virtuale distribuita). Il suo sequestro può essere SOLO di natura virtuale ed il reperto che ne consegue è un insieme di dati che difficilmente potrà sussistere solo in un hard disk.
In altre parole NON è sempre possibile registrare questa fonte di prova su una nostra memoria locale, tale contenitore non è adeguato. L’unico modo di gestire la situazione è lasciare il computer virtuale nel cloud e chiedere al gestore del cloud di “congelarlo” lì dove si trova, ad esclusivo uso di PG ed AG e dei loro CT e periti.
Cyberspace vs. “domicilio informatico”
A differenza di circa venti anni fa, l’investigatore moderno volente o nolente si trova proiettato ad indagare in un mondo parallelo ed intangibile che costituisce di fatto una sorta di quinta dimensione, ossia il cyberspace. Ma cosa s’intende con tale termine di origine anglosassone? Una definizione formale ed esaustiva l’ha fornita la ISO 27032:2012, la quale ha sancito che è intendersi come “l’ambiente virtuale generato dall’interazione tra persone, software e servizi Internet ottenuti attraverso l’uso di sistemi informatici e telematici interconnessi tra loro.
Attualmente tale ambiente operativo non è formalmente definito in specifiche norme del nostro sistema giudiziario, ma oramai per consuetudine possiamo dire che esso è assimilato al concetto di “domicilio informatico” sancito dalla nostra Suprema Corte nel seguente modo: “… deve ritenersi “domicilio informatico” …quello spazio ideale (ma anche fisico in cui sono contenuti i dati informatici) di pertinenza della persona, cui si estende la tutela della riservatezza della sfera individuale, quale bene anche costituzionalmente protetto (art. 15 Cost.)…”[8].
Alla luce di tale asserto, possiamo senza dubbio dire che attualmente l’ordinamento penale conosce un duplice significato del termine “domicilio”:
uno in senso reale, inteso come “spazio ideale di pertinenza della persona, al quale estendere la tutela della riservatezza della sfera individuale, quale bene anche costituzionalmente protetto (art. 14 Cost.)”[9];
uno in senso virtuale, che si differenzia dal primo per la morfologia del perimetro, il quale è caratterizzato da una “geometria variabile” nella disponibilità diretta della parte. Dalla dinamicità di tale ambiente deriva che il suo contenuto informativo non necessariamente coincide con quello del dispositivo fisico assicurato, ma può essere distribuito anche in aree diverse dal territorio nazionale[10], come ad esempio il cloud[11], il cui paradigma ha di fatto stravolto il “modus investigandi” che si era consolidato nel tempo.
L’impatto del Cloud Computing nell’attività investigativa
Come noto il principale problema derivante dalle indagini in materia di criminalità informatica in Internet è l’ “aterritorialità”.
Si pongono dunque problemi che si collocano a diversi livelli:
livello investigativo: ampio terreno da monitorare;
livello procedurale: chi è competente a fare cosa;
livello di diritto penale: a quale legge penale, di quale Stato, bisogna fare riferimento.
Tali difficoltà vengono ulteriormente amplificate quando l’attività antigiuridica viene realizzata per mezzo dei servizi c.d. “cloud based” (es. Social Network, Cloud Storage, ecc.) i quali sono fortemente caratterizzati da elementi come:
ubiquità, specie da parte di client leggeri come quelli previsti per i dispositivi mobile (es. smartphone, tablet, ecc.). A riscontro basti pensare che, mentre la Polizia Giudiziaria sta attuando una perquisizione informatica in un account Google, ancorché in presenza della parte, un soggetto terzo potrebbe contemporaneamente accedere e modificare, se non cancellare del tutto, gli elementi di prova utili per le indagini vanificando/compromettendo l’esito della stessa;
“depemetralizzazione” e condivisione delle risorse secondo un modello multitenant (letteralmente, “con più affittuari” – es. cartelle o file condivisi). In tale modello le risorse fisiche e virtuali sono assegnate e riassegnate dinamicamente ai consumatori, sulla base delle loro esigenze (es. un documento GDoc scritto e revisionato da più soggetti). C’è inoltre un’indipendenza dalla locazione, in cui si trovano di fatto i consumatori e chi gli fornisce il servizio (CSP – Cloud Service Provider) infatti questi, per quanto appreso, non hanno né il controllo né la conoscenza dell’ubicazione geografica delle risorse utilizzate. È tuttavia possibile che i CSP abbiano il controllo sulla locazione a un livello di astrazione più alto, ad esempio la nazione (spesso questo è necessario per motivi prevalentemente legislativi);
ridondanza, come una risorsa complessa può essere distribuita in più datacenter, altrettanto la stessa può essere ripetuta più e più volte per bilanciare il carico di lavoro del CSP.
Accertamenti informatici in ambito aziendale
Le attività investigative che vedono coinvolti sistemi informatici e/o telematici possono essere svolti anche in ambito aziendale, il cui contesto operativo necessita di accorgimenti diversi dalla privata dimora.
Ricerca Informativa
Al fine di circoscrivere e dettagliare nella maniera più precisa possibile sia l’area fisica che virtuale della scena criminis, gli eventuali sospettati, nonché gli elementi di reato, si rende necessario dapprima assumere informazioni da chi ricopre il ruolo di “responsabile dei sistemi informativi”[12] circa “policy aziendali” in materia di:
sicurezza fisica, relativamente, ad esempio:
all’esistenza di apparati di videosorveglianza e rispettivo periodo di data retention[13];
policy di accesso all’edificio (es. accesso tramite badge);
eventuale gestione in outsourcing (società terze) per la manutenzione dei sistemi precedentemente elencati;
sicurezza logica, relativamente, ad esempio:
alla mappatura dell’infrastruttura di rete (subnet[14], assegnazione statica o dinamica degli IP[15], antivirus, firewall[16], IDS[17], DMZ[18] ecc.);
regola di accesso al sistema telematico, ossia solo in locale (intranet) o anche da remoto (extranet);
ai criteri di autenticazione (es. password, two step verification[19], strong authentication[20]) e rispettivi permessi (amministratore, operatore di sistema, ecc.) degli utenti accreditati al sistema informatico aziendale;
presenza di sistemi di cifratura degli hard disk (es. BitLocket, File Vault, Volumi crittografici, ecc.) ed acquisizione delle rispettive passphrase;
presenza di un CSIRT[21] ed eventuali ticket aperti nel periodo di interesse per le indagini;
metodi di logging e rispettivo periodo di data retention[22] di ciascun sistema di sicurezza;
eventuale gestione in outsourcing (società terze) per la manutenzione dei sistemi precedentemente elencati.
Tali dichiarazioni potranno trovare riscontro dalla consultazione del Documento di valutazione rischi, ovvero del Modello di organizzazione e gestione.
Le misure tecniche
Da un punto di vista meramente pratico, le misure tecniche da adottare sui dati, informazioni e programmi ritenuti di interesse per le indagini, potranno essere attuate seguendo le raccomandazioni fornite dall’ISO 27037:2012. Tale documento definisce sia chi sono i soggetti, che le tecniche di acquisizione che questi potranno adottare sulla scena del crimine aziendale nel pieno rispetto dei principi giuridici e requisiti investigativi riconosciuti su scala transnazionale.
In ambito internazionale vengono identificate le seguenti figure professionali, quali soggetti devoluti alla gestione delle fonti di prova digitali rinvenute sulla scena del crimine informatico:
DEFR (Digital Evidence First Responder – ISO 27037:2012 Pt. 3.7), questi viene coinvolto nelle fasi di identificazione, repertamento e/o acquisizione e preservazione della fonte di prova digitale. Tale figura professionale non dovrebbe necessariamente svolgere un’attività di analisi.
DES (Digital Evidence Specialist – ISO 27037:2012 Pt. 3.8), questi fornisce supporto tecnico al DEFR nelle fasi di identificazione, repertamento e/o acquisizione e preservazione delle fonti di prova digitale. Il DES deve essere caratterizzato da una formazione di tipo accademico e di comprovata esperienza nel settore tecnico-investigativo.
L’operato di tali soggetti deve avvenire nel rispetto dei seguenti principi e requisiti comuni alla maggior parte dei sistemi giurisdizionali internazionali:
rilevanza/pertinenza (relevance): secondo cui bisogna dimostrare di aver acquisito e/o repertato solo elementi di pertinenza con il contesto d’indagine, avendo cura di motivarne le ragioni;
affidabilità/attendibilità (reliability): secondo cui ogni processo che caratterizza la scena del crimine informatico dovrebbe essere verificabile e ripetibile. L’attuazione di tali processi dovrebbe garantire l’intera riproducibilità dell’attività tecnico-investigativa;
sufficienza/proporzionalità (sufficiency): in cui il DEFR si assicura di avere a disposizione sufficiente materiale su cui svolgere le indagini;
verificabilità (auditability): secondo cui dovrebbe essere possibile per una parte terza, autorizzata dall’A.G. (es. il Consulente Tecnico), poter accertare tutte le attività poste in essere sia dal DEFR che dal DES sulla scena del crimine informatico;
ripetibilità (repeatability): secondo cui si producono gli stessi risultati con lo stesso test nello stesso ambiente;
riproducibilità (riproducibility): secondo cui si producono gli stessi risultati con ambiente diverso, quindi anche tool diversi;
giustificabilità (justifiability): secondo cui il DEFR dovrebbe essere in grado di poter giustificare la metodologia attuata per quel particolare contesto investigativo caratterizzato da vincoli giuridici, tecnologici e logistici, oltreché di competenze tecniche dello stesso operatore.
Ricostruzione degli eventi
La differenza sostanziale tra le indagini classiche e quelle in materia di criminalità informatica in Internet è l’ “aterritorialità”.
Tale vincolo solleva problemi a diversi livelli:
territoriale: assenza di confini ben definiti;
livello processuale: chi è competente a fare cosa;
legislativo: Autorità Giudiziaria competente ad indagare o giudicare.
Tali elementi, uniti a vincoli di carattere tecnologico, ostacolano, se non rendendo impossibile, l’operazione di ricostruzione del percorso utilizzato dall’autore del reato, non consentendo così l’individuazione della postazione dalla quale è stato posto in essere il comportamento illecito.
A tale risultato potrà pervenirsi unicamente seguendo a ritroso il cammino dell’informazione illecita, dal destinatario ad un provider (sovente con sede all’estero), e da questi sino al client dell’autore del reato.
Nel caso in cui la postazione sia nella disponibilità di più soggetti, sarà necessario correlare l’attività tecnico-investigativa con gli elementi di prova[23] ricavati con modalità classica, al fine di dimostrare una disponibilità univoca del mezzo di un determinato lasso temporale.
Qualora bisognasse svolgere operazioni di analisi inerente un sistema di rete può essere conveniente, in prima approssimazione, suddividere le tematiche legate al Network Forensics in due classi, a seconda si tratti di live analysis o post mortem analysis, per una collocazione nell’ambito codicistico penale procedurale che separi, seppur in modo non esaustivo, lo stato pre – e post – discovery.
In ottica post mortem delle attività correlate all’utilizzo per fini criminali della rete, a contrario del contesto del mondo reale, si avranno a disposizione generalmente solo pochi ed incerti elementi:
indirizzo IP[24] (dove IP sta per Internet Protocol) è l’elemento fondamentale che permette, all’interno di una rete di calcolatori, di individuare un nodo della rete stessa. Gli indirizzi IP sono utilizzati dal protocollo IP per gestire l’instradamento delle comunicazioni tra tutte le macchine connesse a Internet;
i file di log, sul quale registrati gli eventi in ordine cronologico (consente di stabilire: un determinato utente in un particolare giorno ed ora si è collegato alla rete tramite un provider; data ed ora della sessione di navigazione; quale indirizzo IP temporaneo ha avuto in assegnazione per la durata della connessione; l’indirizzo IP utilizzato per la sessione di navigazione; quali informazioni ha inviato o ricevuto per mezzo dell’indirizzo IP assegnato; anagrafica dell’intestatario di un contratto di utenza Intenet);
l’URL, l’Uniform Resource Locator, è una sequenza di caratteri che identifica univocamente l’indirizzo di una risorsa in Internet, come ad esempio un documento o un’immagine.
Risposta alle intrusioni
Nel caso in cui si è vittima di un accesso abusivo nella propria infrastruttura, di seguito vengono proposte le procedure di risposta alle intrusioni:
analisi di tutte le informazioni disponibili che caratterizzano una intrusione:
registrazione di tutte le informazioni che possono essere perse o non registrate durante una procedura di backup (connessioni di rete correnti, processi attivi o ibernati, utenti connessi, file aperti, informazioni volatili);
backup dei sistemi compromessi: realizzare almeno due backup completi dei sistemi e dei dati utente identificati come compromessi, utilizzare supporti proteggibili via hardware o non riscrivibili;
isolare i sistemi compromessi (trasferimento dei file di backup su un sistema di test isolato dai sistemi di produzione, restore dei sistemi compromessi sul sistema di test, analisi diretta da effettuarsi sul sistema di test);
ricerca di tracce di intrusione su altri sistemi. Gli intrusori abitualmente creano più di un punto di accesso in una rete dove abbiano conquistato un accesso. Nel caso sia stata rilevata una intrusione sarà necessario controllare tutti gli altri sistemi simili al sistema violato;
esame dei log file generati dai firewall, router, e network monitor. Gli attacchi spesso lasciano tracce che possono condurre all’individuazione dei sistemi;
identificazione dell’attacco ad un sistema. Dopo aver conquistato l’accesso ad un sistema, l’intrusore può cercare di cancellare tutti i log file o alcuni specifici log entry, e quindi è possibile non trovare alcuna di queste utili informazioni. A volte la cancellazione dei log entry è rilevabile, in questo caso è la prova di una attività sospetta ed è necessario procedere ad analisi più approfondite;
identificazione delle attività eseguite durante un attacco ad un sistema (analizzare in vari log file, come quegli specifici sistemi di Intrusion Detection);
raccolta e conservazione delle informazioni associate ad un’intrusione:
raccolta di tutte le informazioni relative ad un’intrusione. Raccogliere le informazioni ricavate dai log dei sistemi e delle reti degli ambienti compromessi, dai sistemi di intrusion detection, firewall, router ed altri strumenti. Raccogliere i backup completi e parziali, documentare le schermate dei sistemi con screen-shots, videoregistrazioni e fotografie;
raccolta delle prove. Designare un responsabile per la raccolta delle prove e per il mantenimento dei contatti con l’Autorità Giudiziaria e con eventuali agenzie investigative private. Al fine di assicurare che le raccolte abbiano valore legale, le procedure di raccolta e conservazione delle stesse dovranno essere effettuate in accordo con la legislazione vigente;
conservazione delle prove. Tutte le informazioni registrate elettronicamente saranno archiviate fuori linea e conservate in luogo fisicamente sicuro;
eliminazione di tutti gli strumenti utilizzati per l’intrusione:
modifica di tutte le password su tutti i sistemi ove sia stata riscontrata un’intrusione;
reinstallazione completa dei sistemi compromessi. Nel caso in cui sia difficoltoso o troppo oneroso verificare i checksum crittografici del sistema compromesso si dovrà procedere alla reinstallazione integrale del sistema utilizzando i supporti di distribuzione originali o delle copie sicuramente conformi;
rimozione di tutti i programmi utilizzati per realizzare l’intrusione e di tutte le modifiche determinate dall’intrusione;reinstallazione dei programmi eseguibili e dei file binari dai supporti di distribuzione originali;
revisione delle configurazioni del sistema. Dovranno essere verificati i file di configurazione del sistema;
determinare se sussistono vulnerabilità nel sistema e nella rete e correggerle;
migliorare gli strumenti di protezione per limitare l’esposizione dei sistemi e della rete;
ripristino dei sistemi alle condizioni di normale operatività:
verifica dei requisiti e della tempistica per il ritorno alla normale operatività;
ripristino dei dati utente da un backup affidabile;
abilitazione dei sistemi e dei servizi;
connessione dei sistemi ripristinati alla rete;
azioni conclusive. A seguito di una intrusione e del successivo ripristino della normale operatività sarà utile effettuare una analisi complessiva delle implicazioni determinate dall’evento:
valutazione dell’adeguatezza degli strumenti di protezione e individuazione delle violazioni dei sistemi;
revisione dei piani di sicurezza, delle politiche e delle procedure;
revisione delle direttive ad utenti ed amministratori dei sistemi volte a prevenire ulteriori violazioni;
valutazione della necessità di una nuova analisi del rischio in base alla gravità degli effetti dell’intrusione;
aggiornamento dell’inventario dei sistemi e dei loro assetti;
partecipazione ad azioni investigative e legali.
Cap.5 La Verifica dello Stato dell’Arte in Azienda
Ricognizione della situazione
Sono 5 i fattori critici che devono essere tenuti in debita considerazione al fine di realizzare una strategia di cyber risk efficace.
Il 1° elemento: riuscire ad acquisire una visione globale del rischio:
effettuare screening sistematici in ambito information security al fine di prefigurare i possibili scenari di minacce, identificare quali siano i target potenziali e verificare i livelli di protezione in tutte le funzioni ed aree aziendali;
ripartizione completa delle informazioni protette, poiché ritenute critiche e potenziali bersagli;
valutazione del rischio, a cui sono soggette le informazioni protette, dal punto di vista economico, che includa anche le misure di protezione.
Il 2° elemento: l’identificazione dei target potenziali ed il relativo impatto strategico per l’organizzazione, ciò significa ottenere:
una chiara visione del possibile pericolo causato anche da elementi “periferici” dei target potenziali, (es. nuovi processi o servizi connessi … );
un abbinamentoefficiente tra il probabile bersaglio e quelli imminenti ed attesi, nonché la loro valorizzazione economica e prioritizzazione per criterio di rischio e di potenziale impatto.
Il 3° elemento prevede lo sviluppo di un percorso di criticità relativamente agli scenari di rischio, ciò significa:
utilizzare in modo mirato l’esperienza ed i dati storici aziendali per calcolare sulla base delle probabilità l’insorgenza del potenziale rischio;
dare priorità alle minacce più significative, attraverso la rappresentazione di modelli e schemi di attacco creati su tipologie di minaccia analoghe.
Il 4° elemento definisce una strategia di “risk appetite” la quale prevede:
la stesura di un’adeguata strategia di “risk appetite”, la quale deve risultare condivisa non solo con i vertici delle aree funzionali ma anche con la Corporate Strategy;
la definizione di un’appropriata estensione di misure per la protezione delle informazioni incentratasui potenziali effetti, catalogati secondo criterio di probabilità ed impatto.
Il 5° evidenzia l’esigenza di aggregare le misure di sicurezza adottate per la protezione dei dati, prevedendo:
creazione di un processo integrato di misure per la sicurezza delle informazioni che va ad abbracciare le differenti funzioni aziendali;
aggregazione di un insieme di strategie di mitigazione del rischio a livello organizzativo, procedurale e di sistemi;
attuazione di interventi mirati e processi di controllo relativi al governo delle terze parti (es. fornitori, personale esterno…).
Il Framework Nazionale
Il Framework Nazionale definito in questo capitolo si fonda sul “Framework for Improving Critical Infrastructure Cybersecurity”, sviluppato dal National Institute for Standards and Technology (NIST) statunitense.
Il cuore del Framework NIST è costituito da un insieme di 21 Category e 98 Subcategory, organizzate in 5 Function. Ogni Subcategory rappresenta un’area di raccomandazioni che l’organizzazione può decidere di implementare, se necessario riferendosi a standard o norme specifiche di settore. Il Framework NIST fornisce, per ogni Subcategory, i riferimenti agli standard e Framework esistenti: si tratta di una mappatura parziale, ma che comunque copre la quasi totalità dei riferimenti già adottati dalle organizzazioni internazionali, quali Standard NIST, Standard ISO/IEC e COBIT.
Il Framework Nazionale amplia questa struttura inserendo due nuovi concetti: i livelli di priorità e i livelli di maturità. Questi due concetti permettono di tenere conto della struttura economica del nostro Paese fatta di alcune decine di grandi aziende e infrastrutture critiche e di una galassia di piccole imprese, rendendo dunque, di fatto, il Framework adatto alle PMI, ma conservando tuttavia la sua iniziale vocazione per Grandi Imprese e infrastrutture critiche.
Framework Core, Profile e Implementation Tier
Il Framework Nazionale eredita le tre nozioni fondamentali del Framework NIST: Framework Core, Profile e Implementation Tier[25]:
Framework Core. Il core rappresenta la struttura del ciclo di vita del processo di gestione della cyber security, sia dal punto di vista tecnico sia organizzativo. Il core è strutturato gerarchicamente in Function, Category e Subcategory. Le Function, concorrenti e continue, sono: Identify, Protect, Detect, Respond, Recover e costituiscono le principali tematiche da affrontare per operare una adeguata gestione del rischio cyber in modo strategico. Il Framework quindi definisce, per ogni Function, Category e Subcategory, le quali forniscono indicazioni in termini di specifiche risorse, processi e tecnologie da mettere in campo per gestire la singola Function.
Identify, è legata alla comprensione del contesto aziendale, degli asset che supportano i processi critici di business e dei relativi rischi associati;
Protect, è associata all’implementazione di quelle misure volte alla protezione dei processi di business e degli asset aziendali;
Detect, è associata alla definizione e attuazione di attività appropriate per identificare tempestivamente incidenti di sicurezza informatica;
Respond, è legata alla definizione e attuazione delle opportune attività per intervenire quando un incidente di sicurezza informatica sia stato rilevato;
Recover, è associata alla definizione e attuazione delle attività per la gestione dei piani e delle attività per il ripristino dei processi e dei servizi impattati da un incidente.
Profile rappresentano il risultato della selezione, da parte di un’organizzazione, di specifiche Subcategory del Framework;
Implementation Tier forniscono contesto su come l’azienda, nel suo complesso, veda il rischio cyber e i processi posti in essere per gestirlo. Sono previsti quattro livelli di valutazione, dal più debole al più forte: (1) Parziale, (2) Informato, (3) Ripetibile, (4) Adattivo.
I livelli di priorità
I livelli di priorità permettono di supportare le organizzazioni e le aziende nell’identificazione preliminare delle Subcategory da implementare per ridurre maggiormente i livelli di rischio a cui sono sottoposte, bilanciandone l’impegno da profondere per la loro attuazione. Il Framework suggerisce l’utilizzo di una scala di priorità a tre livelli tra le Subcategory.
I livelli di maturità
I livelli di maturità permettono di fornire una misura della maturità di un processo di sicurezza, della maturità di attuazione di una tecnologia specifica o una misura della quantità di risorse adeguate impiegate per l’implementazione di una data Subcategory. I livelli di maturità forniscono un punto di riferimento in base al quale ogni organizzazione può valutare la propria implementazione delle Subcategory e fissare obiettivi e priorità per il loro miglioramento. I livelli devono essere in progressione, dal minore al maggiore. Ogni livello deve prevedere pratiche e controlli incrementali rispetto al livello di maturità inferiore
Pentration Testing
Nella “sicurezza informatica” è compreso anche il processo di prevenzione, ovvero quell’insieme di misure atte alla protezione di informazioni dall’accesso, dalla modica o dal furto da parte di “attività” non previste.
“Un penetration test, occasionalmente pen test, è un metodo per la valutazione della sicurezza di un sistema informatico o di una rete simulando un attacco da parte di attaccanti esterni (che non hanno di norma accesso ai sistemi informatici) e/o di attaccanti interni (che hanno un qualche livello di accesso autorizzato ai sistemi)”[26]
Auditor è colui che svolge tutte le attività di verifica operando con logiche medesime a quelle di un hacker. L’analisi intrapresa da un auditor comprende più fasi ed ha l’obiettivo di evidenziare in un report le debolezze rilevate nella piattaforma, fornendo il maggior numero di informazioni sulle vulnerabilità sfruttate per ottenere l’accesso non autorizzato.
L’auditor non si fermerà ad analizzare i soli sistemi informatici ma potrà sfruttare tecniche di ingegneria sociale per verificare eventuali carenze formative del personale aziendale di fronte a tentativi di intrusione; questa modalità definita Hidden Mode prevede l’accordo esclusivamente con il consiglio amministrativo dell’azienda che commissiona le verifiche lasciando all’oscuro tutto il personale, compreso il settore IT dell’azienda.
A livello metodologico il NIST descrive inoltre un concetto a cui spesso viene data poca importanza: il penetration test – per sua natura – è un processo iterativo e non ha un andamento lineare. Ogni volta che si hanno maggiori informazioni sul bersaglio queste vengono riutilizzate e si reitera su quanto già fatto. Non a caso Offensive Security[27] definisce il penetration test come “un ciclo continuo di ricerca e di attacco”.
E’ estremamente importante notare come la definizione si focalizzi sul metodo e non sullo strumento. Il penetration test non è un attività in cui lo strumento fa da padrone e non è un caso.
L’attacco ad un sistema si può suddividere in cinque fasi principali:
Information Gathering; raccolta d’informazioni. Ha l’obbiettivo di raccogliere informazioni utili sul bersaglio come una lista di nomi di dominio, l’architettura della piattaforma, delimitazione di indirizzi IP, sistemi e porte attive, servizi offerti ed infine un elenco di nominativi ed e-mail utili in caso di attacco social engineering. I dati raccolti in questa fase permetteranno di scegliere la linea di attacco da seguire nel passo successivo;
Vulnerability Assessment; ricerca di vulnerabilità. Un Vulnerability Assessment (VA) è un processo grazie al quale si identificano e quantificano le vulnerabilità di un sistema. Questa attività permette di avere una panoramica dello stato di sicurezza della infrastruttura tecnologica consentendo ad evidenziarne le potenziali vulnerabilità e ad implementare conseguentemente migliori politiche di sicurezza. Le informazioni elaborate in un vulnerability assessment, riportate in appositi report, consentono di delineare piani di analisi più mirati. Dato l’alto numero di nuove vulnerabilità che vengono scoperte ogni giorno è fondamentale svolgere un vulnerability assessment con la giusta frequenza al fine di assicurarsi che le configurazioni dei sistemi siano corrette e le opportune patch di sicurezza applicate
Exploitation; Exploit delle vulnerabilità. La fase successiva di exploitation permette di ricercare all’interno di un software una vulnerabilità in grado di provocare un imprevisto nel sistema bersaglio dell’attacco. Con il termine exploit (la cui traduzione significa “sfruttare”) si identifica un pezzo di software o una sequenza di comandi che sfrutta un bug o una vulnerabilità per causare inaspettati comportamenti su un computer, sia per quanto riguarda lato software che hardware;
Privilege Escalation; Scalata dei privilegi. Durante questa fase viene sfruttato l’accesso ricavato attraverso l’exploit per innalzare i propri privilegi; questo può avvenire sfruttando ulteriori vulnerabilità di sistema, sniffando pacchetti che transitano nella rete o semplicemente cercando di ottenere in chiaro le password di un utente amministratore. Possiamo distinguere due tipi di scalata:
scalata verticale: quando si ottengono autorizzazioni o privilegi superiori a quelli normalmente avuti;
scalata orizzontale: quando si ottiene l’accesso a risorse con gli stessi privilegi che normalmente concessi ma in un’area di competenza diversa;
Reporting; infine l’attività di Pen Testing si conclude con la stesura di un Report dettagliato includendo tutte le vulnerabilità riscontrate, l’analisi dell’impatto di rischio ed eventualmente una possibile soluzione tecnica al problema.
Cap.6 Dinamiche di Reazione
Il reato informatico nella prassi giudiziaria: le linee guida internazionali per il contrasto ai nuovi fenomeni criminali
La Convenzione di Budapest per il contrasto al Cybercrime[28] ha adottato una tecnica di tipizzazione delle fattispecie incriminatrici che non riproduce pedissequamente i fenomeni criminali, riscontrati nella prassi giudiziaria ed investigativa delle attività di contrasto ma individua, secondo una tecnica di tipizzazione radicata nell’esperienza della codicistica italiana, una serie di fattispecie penalmente illecite caratterizzate dalle modalità della condotta, finalità perseguite ed evento realizzato. Di modo che, nella Convenzione e nelle norme che le hanno dato recepimento nell’ambito degli ordinamenti nazionali, non troveremo riscontro esplicito e diretto alle modalità specifiche attraverso le quali la criminalità concretamente opera: non troveremo cioè riferimenti a prassi criminali molto frequenti nell’esperienza quotidiana quali il phishing, il bombing, i botnet, lo spamming, in quanto si è ritenuto preferibile focalizzare l’attenzione sulle condotte criminali piuttosto che sulla tecnologia da questi utilizzata.
La scelta assunta dai compilatori della Convenzione ha l’innegabile pregio di fornire strumenti sanzionatori che, non essendo finalizzati a fotografare e qualificare giuridicamente le mutevoli fenomenologie dell’illecito cibernetico, non sono condannati a cadere in desuetudine e divenire inutilizzabili quando le tecniche di commissione degli illeciti dovessero mutare ed evolversi.
Offrono, quindi, strumenti di qualificazione giuridica sempre attuali. Al contempo, la tecnica di normazione prescelta, presenta il difetto di non consentire l’immediata riconduzione ad una unica fattispecie incriminatrice delle condotte illecite rilevate nella prassi.
Se da un lato l’operazione interpretativa finalizzata a qualificare giuridicamente le condotte criminali appare complessa e produttiva di risultati non sempre omogenei, l’esigenza sottesa alla Convenzione di Budapest è certamente quella di rendere omogenei i sistemi sanzionatori nazionali, al fine di facilitare la cooperazione giudiziaria, volta al contrasto di fenomeni criminali che presentano una eminente connotazione trans-nazionale. In questo ambito uno dei principi cardine della collaborazione internazionale è quello della reciprocità, ovvero il presupposto della comune qualificazione penale della condotta criminale da perseguire. Diventa quindi di centrale importanza che, non solo tutti i Paesi aderenti si dotino di un omogeneo sistema sanzionatorio ma che siano anche omogenei i canoni interpretativi che consentono di qualificare illecitamente le diverse condotte complesse nelle quali si estrinsecano le prassi criminali più ricorrenti. Propri alla standardizzazione dei canoni interpretativi tendono le linee guida adottate periodicamente dal Cybercrime Convention Committee (T-CY) istituito presso il Consiglio d’Europa in virtù dell’art. 46 della Convenzione e finalizzato a darle attuazione, ad arricchirne e potenziarne i contenuti, a favorire lo scambio di informazioni e di esperienze attuative tra gli Stati aderenti. In particolare le linee guida costituiscono l’espressione del comune intendimenti delle parti del trattato circa le modalità concrete di darvi attuazione, superando, attraverso una condivisa interpretazione delle sue norme (e delle norme di recepimento dei singoli stati) le ricadute negative che potrebbero verificarsi, sul piano della cooperazione giudiziaria, per effetto della differente interpretazione di ciò che sia o meno qualificabile come reato in base alla convenzione.
Sul piano del diritto nazionale le linee guida, pur non assumendo alcun valore normativo e tanto meno vincolante per l’interprete, offrono un valido strumento di ausilio nell’attività di interpretazione delle norme e di qualificazione giuridica dei fatti di reato, che presenta il pregio dell’uniformità ed il prestigio culturale proveniente, oltre che dall’elevata qualificazione tecnico giuridica della sua fonte, anche dall’attenzione e dalla completezza con le quali sono redatte.
Delitti informatici e trattamento illecito dei dati
Il Legislatore Italiano, spesso in adempimento di obblighi di cooperazione europea od internazionale, ha, nell’ultimo ventennio, introdotto nell’ordinamento diverse disposizioni aventi come oggetto la tutela dei “Sistemi Informatici o Telematici”.
Prima della legge n. 547 del 1993, nel nostro ordinamento non esisteva alcuna disposizione normativa specifica sui reati informatici. La legge 547/93 è intervenuta in quattro diverse direzioni, punendo le seguenti forme di aggressione:
le aggressioni alla riservatezza dei dati e delle comunicazioni informatiche;
le aggressioni all’integrità dei dati e dei sistemi informatici;
le condotte in tema di falso, estese ai documenti informatici;
le frodi informatiche.
In data 5 aprile 2008 è entrata in vigore la Legge n. 48, recante la ratifica ed esecuzione della Convenzione del Consiglio d’Europa sulla criminalità informatica.
Con tale norma il Legislatore ha apportato modifiche al codice penale in materia di reati informatici ed ha introdotto diverse disposizioni in relazione ai delitti informatici e al trattamento illecito dei dati.
Cap.7 Responsabilità dell’Azienda
La sicurezza delle informazioni nella legislazione italiana
Il legislatore italiano già da tempo si è preoccupato di dettare delle norme volte ad individuare alcune misure minime di sicurezza per tutti quei casi in cui la qualità delle informazioni contenute nei sistemi informatici di un’azienda renda opportuna e giuridicamente necessaria la loro protezione.
In particolare, la normativa italiana vigente – contenuta per poco tempo ancora nel D.Lgs. 196/2003 e comunemente denominata “Codice della privacy” – si applica esclusivamente al trattamento di dati personali. Essi sono definiti come “qualunque informazione relativa a persona fisica, identificata o identificabile, anche indirettamente, mediante riferimento a qualsiasi altra informazione, ivi compreso un numero di identificazione personale”.
Accanto alla definizione di dato personale e di dato identificativo, però, il legislatore ha espressamente previsto anche i concetti di dato sensibile e di dato giudiziario, protetti dalla normativa vigente in maniera ancora più stringente, dato l’alto valore delle informazioni in essi contenuto.
I dati sensibili, infatti, riguardano i dati personali idonei a rivelare l’origine razziale ed etnica, le convinzioni religiose, filosofiche o di altro genere, le opinioni politiche, l’adesione a partiti, sindacati, associazioni od organizzazioni a carattere religioso, filosofico, politico o sindacale, nonché i dati personali idonei a rivelare lo stato di salute e la vita sessuale di un soggetto.
I dati giudiziari, invece, sono i dati personali idonei a rivelare provvedimenti in materia di casellario giudiziale, di anagrafe delle sanzioni amministrative dipendenti da reato e dei relativi carichi pendenti, o la qualità di imputato o di indagato.
In merito alla loro protezione, l’art. 31 del Codice della privacy pone come regola generale quella secondo cui i dati personali oggetto di trattamento debbano essere “custoditi e controllati, anche in relazione alle conoscenze acquisite in base al progresso tecnico, alla natura dei dati e alle specifiche caratteristiche del trattamento, in modo da ridurre al minimo, mediante l’adozione di idonee e preventive misure di sicurezza, i rischi di distruzione o perdita, anche accidentale, dei dati stessi, di accesso non autorizzato o di trattamento non consentito o non conforme alle finalità della raccolta”.
Occorre evidenziare come il legislatore italiano preveda esplicitamente ed analiticamente solo le misure minime di sicurezza da applicare al trattamento dei dati, ovvero quelle dell’art. 34 e dell’Allegato B al Codice della privacy, lasciando invece indefinite le misure di sicurezza idonee previste dall’art. 31.
La non applicazione delle misure minime ha come conseguenza sanzioni di tipo penale, laddove la mancata predisposizione di misure di sicurezza idonee per lo specifico trattamento dei dati comporta l’applicazione delle sole sanzioni amministrative.
Le norme da prendere in considerazione, però, non si esauriscono con quanto finora accennato.
Il 25 maggio 2016, infatti, è entrato in vigore il “Regolamento europeo generale sulla protezione dei dati personali” n. 2016/679[29], che stabilisce norme relative alla protezione delle persone fisiche con riguardo al trattamento dei dati personali, nonché norme relative alla libera circolazione di tali dati.
Questo Regolamento diventerà definitivamente applicabile in ogni Stato membro dell’Unione Europea a partire dal 25 maggio 2018, abrogando la Direttiva 95/46/CE sinora vigente e andando a sostituire anche quanto attualmente previsto in Italia dal Codice della privacy.
In linea generale, tutto il Regolamento si poggia su due principi fondamentali, che ispirano l’intero costrutto normativo: il principio di privacy by design, che mira a proteggere ogni dato personale sin dal momento di determinare i mezzi o i processi utili al trattamento, oltre che ovviamente all’atto del trattamento stesso (attraverso, ad esempio, i “sotto-principi” di pseudonimizzazione[30] e minimizzazione dei dati trattati); e il principio di privacy by default, che mira a garantire che siano trattati, per impostazione predefinita, solo i dati personali necessari per ogni specifica finalità del trattamento e che va ad incidere, pertanto, sulla quantità dei dati personali raccolti, sulla portata del trattamento, nonché sul periodo di conservazione e sulla loro accessibilità.
Il Decreto Legislativo n. 231/2001
Il Decreto Legislativo n. 231 dal titolo “Disciplina della responsabilità amministrativa delle persone giuridiche, delle società e delle associazioni anche prive di personalità giuridica” [31], ha introdotto nell’ordinamento italiano un regime di responsabilità amministrativa (riferibile sostanzialmente alla responsabilità penale) a carico degli enti (da intendersi come Società, associazioni, consorzi, ecc., di seguito denominati “enti” e, singolarmente, “Ente”) per alcuni reati commessi, nell’interesse o a vantaggio degli stessi:
da persone fisiche che rivestano funzioni di rappresentanza, di amministrazione o di direzione degli enti stessi o di una loro unità organizzativa dotata di autonomia finanziaria e funzionale, nonché da persone fisiche che esercitino, anche di fatto, la gestione e il controllo degli enti medesimi;
da persone fisiche sottoposte alla direzione o alla vigilanza di uno dei soggetti sopra indicati.
Tale responsabilità si aggiunge a quella della persona fisica che ha realizzato materialmente il fatto.
Il D.Lgs. 231/01 prevede, all’art. 6, una forma specifica di esonero dalla responsabilità amministrativa (c.d. esimente) qualora l’Ente sia in grado di dimostrare:
di aver adottato ed efficacemente attuato, prima della commissione di eventuali fatti illeciti, modelli di organizzazione e di gestione idonei a prevenire la commissione di reati della specie di quelli verificatisi;
che il compito di vigilare sul funzionamento e l’osservanza dei Modelli nonché di curare il loro aggiornamento sia stato affidato a un organismo dell’Ente dotato di autonomi poteri di iniziativa e controllo (di seguito, “l’Organismo di Vigilanza” o “OdV”);
che le persone che hanno commesso il reato abbiano agito eludendo fraudolentemente i suddetti modelli di organizzazione e gestione;
che non vi sia stata omessa o insufficiente vigilanza da parte dell’Organismo di cui alla precedente lett. b).
Le circostanze appena elencate devono concorrere congiuntamente affinché la responsabilità dell’Ente possa essere esclusa.
Tipologie di reato previste dal D.Lgs. 231/01
Il Legislatore ha individuato diverse tipologie di reati che possono essere commessi da persone fisiche nell’interesse o a vantaggio della società, fino ad includere fattispecie anche non necessariamente tipiche dell’attività di impresa.
La responsabilità amministrativa dell’Ente, inoltre, sussiste anche se non sia stato identificato l’autore del reato, o se il reato si sia estinto per una causa che sia diversa dall’amnistia.
L’Autorità competente a contestare l’illecito all’Ente è il Pubblico Ministero, mentre è il giudice penale che ha la responsabilità e l’autorità per irrogare la sanzione.
L’Ente può essere chiamato a rispondere per un numero chiuso di reati, ovvero soltanto per i cd. “Reati Presupposto”[32] indicati negli artt. 24 e seguenti del Decreto, che appartengono alle categorie indicate di seguito:
reati commessi nei rapporti con la P.A. (artt. 24 e 25);
delitti informatici e trattamento illecito dei dati (art. 24-bis);
delitti di criminalità organizzata (art. 24-ter);
reati di falsità in monete, in carte di pubblico credito, in valori di bollo e in strumenti o segni di riconoscimento (art. 25-bis);
delitti contro l’industria e il commercio (art. 25-bis.1);
reati societari (art. 25-ter);
delitti con finalità di terrorismo o di eversione dell’ordine democratico (art. 25-quater);
pratiche di mutilazione degli organi genitali femminili (art.25-quater.1);
delitti contro la personalità individuale (art. 25-quinquies);
abusi di mercato (art. 25-sexies);
omicidio colposo e lesioni colpose gravi o gravissime, commessi con violazione delle norme sulla tutela della salute e sicurezza sul lavoro (art. 25-septies);
ricettazione, riciclaggio e impiego di denaro, beni o utilità di provenienza illecita (art. 25-octies);
delitti in materia di violazione del diritto d’autore (art. 25-novies);
induzione a non rendere dichiarazioni o a rendere dichiarazioni mendaci all’Autorità Giudiziaria (art. 25-novies);
reati transnazionali (art. 10, L. 146/2006).
Criteri di imputazione della responsabilità all’Ente
l’Ente è punibile solamente nel caso in cui si verifichino determinate condizioni, definite come criteri di imputazione del reato all’Ente.
La prima condizione è che il reato sia stato commesso da un soggetto legato all’Ente da un rapporto qualificato: soggetti apicali, soggetti subordinati, collaboratori.
La seconda condizione è che il reato sia stato commesso nell’interesse o a vantaggio dell’Ente:
“l’interesse” sussiste quando l’autore del reato ha agito con l’intento di favorire la società, indipendentemente dalla circostanza che poi tale obiettivo sia stato realmente conseguito;
il “vantaggio” sussiste quando la società ha tratto, o avrebbe potuto trarre, dal reato un risultato positivo, economico o di altra natura.
Delitti informatici e trattamento illecito dei dati
La legge 18 marzo 2008, n. 48, “Ratifica ed esecuzione della Convenzione del Consiglio d’Europa sulla criminalità informatica, fatta a Budapest il 23 novembre 2001, e norme di adeguamento dell’ordinamento interno” ha ampliato le fattispecie di reato che possono generare la responsabilità della società. L’art. 7 del provvedimento, infatti, ha introdotto nel D.Lgs. 231/01 l’art. 24-bis per i reati di:
accesso abusivo ad un sistema informatico o telematico (art. 615-ter c.p.);
detenzione e diffusione abusiva di codici di accesso a sistemi informatici o telematici (art. 615-quater c.p.);
diffusione di apparecchiature, dispositivi o programmi informatici diretti a danneggiare o interrompere un sistema informatico o telematico (art. 615-quinquies c.p.)
intercettazione, impedimento o interruzione illecita di comunicazioni informatiche o telematiche (art. 617-quater c.p.);
installazione di apparecchiature atte ad intercettare, impedire o interrompere comunicazioni informatiche o telematiche (art. 617-quinquies c.p.);
danneggiamento di informazioni, dati e programmi informatici (art. 635-bis c.p.);
danneggiamento di informazioni, dati e programmi informatici utilizzati dallo Stato o da altro ente pubblico o comunque di pubblica utilità (art. 635-ter c.p.);
danneggiamento di sistemi informatici o telematici (art. 635-quater c.p.);
danneggiamento di sistemi informatici o telematici di pubblica utilità (art. 635-quinquies c.p.).
falsità in un documento informatico pubblico o avente efficacia probatoria (art. 491-bis c.p.);
frode informatica del certificatore di firma elettronica (art. 640-quinquies c.p.).
Le sanzioni
Le sanzioni che il legislatore ha voluto collegare alla responsabilità penale e amministrativa delle persone giuridiche sono di varia natura a seconda della forma di commisurazione e dell’incidenza che le stesse hanno sullo svolgimento dell’attività di impresa. Esse possono essere suddivise come segue:
sanzioni pecuniarie, è incentrata sul concetto di “quota” e viene applicata in un numero non inferiore a cento né superiore a mille;
sanzioni interdittive, possono comportare conseguenze dirette sull’attività di impresa (nella sospensione o nella revoca delle autorizzazioni, licenze o concessioni funzionali alla commissione dell’illecito, nel divieto di contrattare con la Pubblica Amministrazione, esclusione da agevolazioni, finanziamenti);
confisca del profitto del reato, con la sentenza di condanna, il Giudice dispone sempre la confisca del prezzo o del profitto del reato, ovvero di somme di denaro, beni o altre utilità di valore equivalente, salvo la parte che possa essere restituita al danneggiato;
pubblicazione della sentenza, a seguito dell’applicazione di una sanzione interdittiva, il Giudice può disporre la pubblicazione della sentenza di condanna in uno o più giornali ovvero mediante affissione nel comune ove la società ha la sede principale, misura capace di recare un grave impatto sull’immagine dell’Ente.
Linee guida per la costruzione dei modelli di organizzazione, gestione e controllo
Il Decreto 231 prevede sanzioni per l’Ente che non si sia organizzato per evitare fenomeni criminosi in seno all’impresa, quando soggetti funzionalmente riferibili all’Ente abbiano commesso taluno dei reati indicati dallo stesso decreto.
Individuazione dei rischi e protocolli
L’art. 6, comma 2, del Decreto 231 indica le caratteristiche essenziali per la costruzione di un modello di organizzazione, gestione e controllo. In particolare, le lettere a) e b) della disposizione si riferiscono espressamente ad alcune attività correlate ad un processo di sana e prudente gestione dei rischi.
La procedura di identificazione e valutazione dei rischi deve essere applicata durante le seguenti fasi:
fase iniziale d’implementazione del Modello Organizzativo 231 in conformità con il D.Lgs. 231/2001, in quanto costituisce la base per potere poi intervenire con la definizione di specifici protocolli/procedure atte a prevenire la commissione del reato ritenuto a rischio di realizzazione e comunque prima di ogni riesame del sistema al fine di garantire un aggiornamento sistematico della valutazione dei rischi;
ogni qualvolta si verifichi una variazione di processo, di prodotto o del sito o contesto in cui l’Ente opera, quali ad esempio modifiche nel quadro legislativo di riferimento ovvero vi siano mutamenti nell’organizzazione o nell’oggetto sociale dell’Ente tali da richiedere una valutazione dei rischi connessi;
ogni qualvolta, a fronte di valutazioni o attività di controllo (ad esempio da parte dell’ODV) si presenti la necessità/volontà di verificare l’efficacia del Modello.
Rischio = probabilità che sia raggiunta la soglia di commissione di un reato/illecito presupposto della responsabilità amministrativa ai sensi del D. lgs. 231/01.
L’organismo di vigilanza è la figura prevista dal Legislatore con il preciso compito di valutare l’adeguatezza ed efficacia del Modello, la sua applicazione da parte dell’Ente, nonché curarne l’aggiornamento.
I contenuti minimi di un Codice Etico
L’adozione di principi etici rilevanti ai fini della prevenzione dei reati ex D. Lgs. 231/2001 costituisce un elemento essenziale del sistema di controllo preventivo.
In termini generali, i codici etici (o codice di comportamento), sono documenti ufficiali dell’Ente che contengono l’insieme dei principi, dei diritti, dei doveri e delle responsabilità dell’Ente nei confronti dei “portatori d’interesse” (dipendenti, fornitori, clienti, Pubblica Amministrazione, azionisti, mercato finanziario, ecc.).
Mentre i protocolli di condotta implementati all’interno del modello organizzativo di gestione e controllo perseguono la finalità di prevenire la commissione di reati presupposto nell’interesse e a vantaggio di un ente da parte dei rispettivi destinatari, i codici etici mirano a raccomandare, promuovere o vietare determinati comportamenti, al di là ed indipendentemente da quanto previsto a livello normativo e quindi dalla rilevanza penale delle condotte.
Iter procedurale per l’elaborazione di un modello organizzativo di gestione e controllo ex d.Lgs 231/01
Non esiste una soluzione standard di elaborazione di un modello organizzativo di gestione e controllo ex D. Lgs. n. 231/01.
Il “decalogo 231”
Un riferimento per capire quali debbano essere le caratteristiche di un modello organizzativo 231 è l’ordinanza cautelare del Giudice per le indagini preliminari del Tribunale di Milano (dott.ssa Secchi) depositata il 9 novembre 2004, conosciuta anche come “decalogo 231”, in cui vengono delineate le dieci caratteristiche che un modello organizzativo deve avere per essere effettivamente considerato valido ai fini 231.
Modello Organizzativo per i reati informatici
L’art. 7 della legge 18 marzo 2008 n. 48, mediante l’inserimento nell’ambito del D. Lgs. 231/01 dell’art 24 bis sui delitti informatici e trattamento illecito dei dati, ha introdotto nuove fattispecie di reato che possono generare una responsabilità in capo alle aziende.
L’adozione di un “Modello di Organizzazione, Gestione e Controllo” ai sensi del D.Lgs 231/01 in grado di prevenire adeguatamente le differenti ipotesi di illecito introdotte con tale normativa, trova il proprio presupposto fondamentale nella volontà di gestire la propria rete informatica attraverso l’adozione di regole e procedure alla cui osservanza tutti i propri dipendenti sono chiamati.
A tale proposito, le aziende potrebbero adottare specifiche procedure e misure operative finalizzate a garantire una gestione ed un utilizzo lecito e sicuro del proprio sistema informatico.
A tale scopo le aziende dovrebbero appositamente designare un soggetto qualificato, al quale attribuire la funzione di Responsabile IT, con lo specifico incarico di gestire i sistemi informatici della rete, anche attraverso un costante monitoraggio avente ad oggetto un corretto e sicuro utilizzo dei medesimi.
Per ciò che specificamente attiene i controlli aziendali, l’Ente dovrebbe istituire la funzione Security Operations Center (SOC).
Cap.8 Le Conseguenze di un Attacco Cyber
I danni provocati da un attacco cyber all’interno di un computer privato o una rete aziendale possono risultare di natura ed entità completamente diverse: si va da un lieve aumento del traffico in uscita (nel caso in cui il computer sia stato infettato da un trojan preposto all’invio di messaggi di spam) al crollo completo del network aziendale, o alla perdita di dati sensibili di vitale importanza. In alcuni casi i risultati di un’infezione da malware possono essere impercettibili all’utente, altre volte possono avere conseguenze ben evidenti e di particolare gravità.
Le conseguenze potenziali di un evento cibernetico (accidentale o deliberato) posso essere ad esempio:
interruzione dell’attività,computer e reti di sistemi inutilizzabili, guasti hardware;
danno reputazionale/di immagine;
diffusione di informazioni sensibili (clienti, pazienti, impiegati, fornitori);
violazione informazioni finanziarie;
violazione conti bancari;
violazione proprietà intellettuale;
perdita quote di mercato;
appropriazione identità;
azioni legali da terzi;
frodi e social engineering.
Difronte alla moltitudine di danni causati da un attacco cyber è possibile tutelarsi con un’assicurazione
Cap.9 La Possibilità di Copertura Assicurativa del Rischio
Nel Report Clusit 2016, con un approfondimento dedicato allo strumento assicurativo a supporto della gestione del cosiddetto Cyber Risk, si sono date le indicazioni basilari su terminologia, aspetti chiave ed utilità delle polizze cyber.
È emerso che si può affidare la gestione del Cyber Risk e in particolare l’aspetto del trasferimento del rischio, alle Assicurazioni attraverso un tavolo collaborativo che ha nel CIO[33] e nel CFO[34], gli attori principali.
I cyber-danni
Avvalendoci della terminologia e delle definizioni tratte dalle polizze tradizionali, per calarci nel mondo dei danni cyber, si possono distinguere tre grandi famiglie di danni:
danni materiali diretti, riguardano i danni (distruzione parziale o totale, furto) subiti da beni materiali (un server, la fibra ottica, i PC, un cellulare o altro device elettronico) e direttamente causati dall’evento che sarà normalmente di natura “analogica” o tradizionale (incendio, terremoto, fulmine, furto, atto maldestro o doloso, ecc.); per la loro natura essi rientrano già nella polizza Incendio, nella polizza Trasporti, nella polizza All Risks (che proprio “tutti i rischi” non copre …), e naturalmente nella Polizza storicamente definita “Elettronica”. I danni materiali e diretti possono anche non essere previsti nella Polizza Cyber, se si è provveduto alla corretta strutturazione delle coperture assicurative tradizionali;
danni materiali indiretti (o consequenziali), si tratta ugualmente di danni a beni materiali, ma conseguenza di danni diretti: per esempio, un fenomeno elettrico che abbia danneggiato una scheda, il cui malfunzionamento danneggi a sua volta la macchina di produzione da essa controllata. I danni materiali indiretti possono rientrare sia nelle polizze tradizionali che nella Cyber, ma vanno esplicitamente inclusi;
danni immateriali diretti e indiretti, sono tutti quelli che non riguardano la materialità delle cose assicurate e che sono conseguenzadi un evento garantito in polizza, anche di tipo Cyber. L’evento dannoso distrugge, compromette l’integrità di un software e/o l’insieme logico di informazioni – ovvero rende indisponibili i dati aziendali.
Il mercato degli assicuratori e metodologie di indennizzo
Il mercato assicurativo delle polizze cyber risks oggi è in rapida evoluzione e offre la possibilità di creare tutele ad hoc per il cliente. Tale personalizzazione offre un ottimo livello di aderenza al rischio cyber reale cui è esposta l’azienda, ma presuppone ovviamente un precedente processo di analisi e valutazione, così come descritto precedentemente. Tuttavia va tenuto presente che, ancorché in rapida evoluzione, il mercato assicurativo italiano si trova ancora in una fase embrionale. Ciò perché, come sempre in questo tipo di mercato, la risposta a un rischio si attua nel momento in cui tale rischio diviene conosciuto e valutabile. La situazione di novità riguarda però il solo mercato italiano in quanto, nei paesi dell’America settentrionale e anglosassoni, le problematiche afferenti i rischi cibernetici vengono affrontate da circa una decina d’anni. Delle circa 50 compagnie di assicurazioni operanti in Europa che specificamente si dichiarano pronte a sottoscrivere rischi cibernetici, soltanto un terzo opera direttamente in Italia, la restante parte opera fondamentalmente dal Regno Unito (a copertura di rischi italiani).
Guida all’implementazione di una copertura assicurativa cyber risk
Ai fini dell’implementazione di una copertura assicurativa cyber risk, sarebbe opportuno che l’azienda seguisse i seguenti 4 passaggi:
coinvolgimento di un consulente assicurativo: il settore dei rischi cyber non è ancora maturo né ha standard di riferimento in ambito assicurativo, il coinvolgimento di uno o più consulenti specializzati nel trasferimento dei rischi al mercato assicurativo diventa fondamentale per il trasferimento delle specifiche necessarie agli assicuratori. Interpellare direttamente le compagnie assicurative potrebbe portare le stesse a fornire prodotti non rispondenti alle esigenze dell’assicurando;
risk assessment: ai fini di isolare correttamente il massimo danno probabile e di stimare correttamente l’esposizione al rischio, sarebbe opportuno, prima di stipulare la polizza, effettuare un’analisi e quantificazione del rischio stesso;
compilazione del questionario assicurativo: il questionario in ambito assicurativo ha lo scopo di raccogliere le informazioni base necessarie per una prima valutazione del rischio da parte degli assicuratori. La compilazione del questionario ha come risultato il fatto che possano essere apprezzate le varie ipotesi di limite di indennizzo che stanno alla base del contratto assicurativo e, parallelamente, fa prendere coscienza all’assicurando di quelli che sono i suoi punti di forza e di debolezza;
implementazione della copertura assicurativa: una volta esaurito il processo di valutazione tramite questionario e/o tramite risk assessment strutturato, sarà possibile richiedere una quotazione formale al mercato assicurativo. Anche in questo caso l’apporto negoziale di un consulente specializzato è perlomeno consigliabile, in quanto la conoscenza del settore e la capacità negoziale di chi opera continuativamente nel settore permettono risultati più performanti rispetto a quelli ottenibili dal singolo cliente direttamente con gli assicuratori, oppure da un consulente non specializzato con gli assicuratori.
Cap.10 Protezione Cibernetica e Sicurezza Informativa
I trend di difesa: il contrasto a questo tipo di minacce dovrebbe basarsi su tre elementi chiave:
il contrasto a più livelli della minaccia attraverso la comprensione delle sue modalità operative;
la prevenzione attiva, grazie all’acquisizione di informazioni sui trend di attacco più probabili;
l’adozione di una mentalità – e conseguentemente di un’organizzazione – che consideri sempre presente l’eventualità della violazione.
Di conseguenza, data l’enormità del suo ambito di applicazione, la Cyber Security in primo luogo non può che basarsi su logiche di prevenzione, riduzione e trasferimento del rischio e su processi di Risk Governance, applicati però ad un dominio caotico, dai confini e dalle dinamiche sempre cangianti, il quale pertanto va presidiato costantemente, 24×7, da personale qualificato dotato di metodologie di Risk Management e strumenti adeguati (p.es. tool di analisi comportamentale, big data analytics, intelligenza artificiale, ecc), capaci di operare in tempo reale.
In secondo luogo, per definire puntualmente la componente esogena del rischio, ovvero la probabilità che una minaccia esterna si realizzi, è necessario impiegare metodologie e strumenti di Cyber Intelligence capaci di osservare, tramite un monitoraggio continuo, l’esterno e l’interno con altrettanta attenzione, e di correlare i due domini. Anche in questo caso si tratta di sviluppare competenze sofisticate e di implementare processi nuovi, diversi rispetto alle prassi consolidate, considerando che oggi, nel migliore dei casi, le organizzazioni sono strutturate solo per osservare ciò che avviene nell’ambito di propri confini prestabiliti (i quali peraltro stanno ormai diventando sempre più porosi, a causa delle nuove tecnologie).
In terzo luogo è necessario definire e costantemente aggiornare il proprio modello di minaccia, ovvero individuare quale tra le diverse tipologie di attaccanti vorrà aggredire quale asset, perché, sfruttando quale vulnerabilità, con quali strumenti, atteggiamento, risorse ecc. Anche questa attività di Threat Modeling[35]non può che essere continuativa ed integrarsi opportunamente con i processi di Risk Management e Cyber Intelligence, per fornire al primo delle metriche precise ed aggiornate su cui ragionare, ed alla seconda indicazione in merito a quale ago cercare nel pagliaio del cyberspazio.
[1] Quadro Strategico Nazionale Per La Sicurezza Dello Spazio Cibernetico, Presidenza del Consiglio dei Ministri. Dicembre 2013.
[2] Il problema della Cyber Security e il Framework Nazionale. CIS-Sapienza http://www.cis.uniroma1.it
[3] International Organization for Standardization.
[4] Valutazione della minaccia di criminalità organizzata in Internet. https://www.europol.europa.eu/activities-services/main-reports/internet-organised-crime-threat-assessment-iocta-2016
[5] Una botnet è una rete controllata da un botmaster e composta da dispositivi infettati da malware specializzato, detti bot o zombie.[
[6] Ci si riferisce principalmente agli artt. 2, 3, 4, 5, 6, 7, 8 della convenzione ed alle corrispondenti norme incriminatici del codice penale nazionale.
[7] Il concetto di software on-premises, in contrapposizione al software come servizio (o Saas), si traduce in pratica nell’installazione ed esecuzione del software direttamente su macchina locale, sia essa aziendale che privata, intesa sia come singola postazione di lavoro che come server raggiungibile esclusivamente dall’interno della rete aziendale
[8] Più specificatamente, secondo la Corte di Cassazione (Sez. VI, n. 3067/1999; Sez. V, n. 31135/2007):
“… deve ritenersi “sistema informatico”, … , un complesso di apparecchiature destinate a compiere una qualsiasi funzione utile all’uomo, attraverso l’utilizzazione (anche parziale) di tecnologie informatiche, che sono caratterizzate – per mezzo di un’attività di “codificazione” e “decodificazione”– dalla “registrazione” o “memorizzazione”, per mezzo di impulsi elettronici, su supporti adeguati, di “dati”, cioè di rappresentazioni elementari di un fatto, effettuata attraverso simboli (bit), in combinazione diverse, e dalla elaborazione automatica di tali dati, in modo da generare “informazioni”, costituite da un insieme più o meno vasto di dati organizzati secondo una logica che consenta loro di esprimere un particolare significato per l’utente …”;
“… è “sistema telematico” l’insieme di più sistemi informatici collegati tra loro per lo scambio di informazioni, purché siano connessi in modo permanente, e purché lo scambio di informazioni sia il mezzo necessario per conseguire i fini operativi del sistema. …”.
[9] Cass, sez. VI, 14 ottobre 1999, in Foro it., 2000, II, 133.
[10] Il lettore attento avrà notato che non è stato utilizzato il termine “estero”.
[11] Secondo il NIST (http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf) con il termine cloud è da intendersi “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction”, che, tradotto in italiano, potrebbe essere inteso come “un modello di elaborazione, che abilita un accesso in rete, su richiesta, ubiquo e conveniente ad un insieme di risorse di calcolo (CPU, memorie di massa, reti, sistemi operativi, servizi e/o applicazioni) condivise e configurabili, le quali possono essere acquisite e rilasciate rapidamente ed in modo dinamico con uno sforzo di gestione minimo, o comunque con un’interazione minima con il fornitore del servizio”.
[12] È responsabile della gestione, manutenzione ed esercizio dei sistemi informativi dell’organizzazione all’interno della quale opera. Identifica esigenze organizzative e di gestione delle informazioni, pianifica e controlla progetti di miglioramento dei sistemi ICT, garantisce una buona operatività del sistema informativo nel rispetto dei requisiti di legge e di qualità validi nel contesto in oggetto.
[13] Con il provvedimento n. 1712680 del Garante per la Privacy in materia di videosorveglianza datato 8 aprile 2010, le immagini registrate possono essere conservate per periodo limitato e fino a un massimo di 24 ore, fatte salve speciali esigenze di ulteriore conservazione in relazione a indagini di Polizia e giudiziarie. Per attività particolarmente rischiose (ad esempio, banche, videosorveglianza esercitata dai Comuni per esigenze di sicurezza urbana ecc.) è ammesso un tempo più ampio, che non può superare comunque la settimana.
[14] In informatica e telecomunicazioni una sottorete, o subnet, è una parte della suddivisione di una singola rete IP (Internet Protocol). Tale suddivisione è realmente visibile solo dalla parte logica della rete, ciò vuol dire che la differenza tra una rete e una sottorete sta nel tipo di configurazione di rete che si dà al proprio computer. Il processo di subnetting è la divisione di una singola rete in gruppi di computer che hanno in comune nell’indirizzo IP un determinato prefisso di instradamento (routing).
[15] Un’associazione statica può essere utile al supermercato dei limiti di data retention.
[16] Un firewall è un componente di difesa perimetrale di una rete informatica, originariamente passivo, che può anche svolgere funzioni di collegamento tra due o più tronconi di rete, garantendo dunque una protezione in termini di sicurezza informatica della rete stessa.
[17] Un Intrusion Detection System è un dispositivo software e/o hardware utilizzato per identificare accessi non autorizzati ai computer o alle reti locali.
[18] Una DMZ (demilitarized zone) è un segmento isolato di LAN (una “subnet”) raggiungibile sia da reti interne sia esterne, ma caratterizzata dal fatto che gli host (o nodi) attestati sulla DMZ hanno possibilità limitate di connessione verso host specifici della rete interna.
[19] L’autenticazione a due fattori richiede, oltre alla conoscenza della username e password, anche un terzo codice, che potrebbe essere generato tramite un sistema OTP (one time password) tramite SMS o apposita APP.
[20] Il paradigma è basato su qualcosa che sappiamo (es. PIN), qualcosa che abbiamo (es. smart card), qualcosa che siamo (es. elemento biometrico).
[21] Un computer security incident response team (ISO 27035 pt.3.2) è un’unità organizzativa incaricata di raccogliere le segnalazioni di incidenti informatici e potenziali vulnerabilità nei software che provengono dalla comunità degli utenti.
[22] Con la locuzione inglese “data retention” ci si riferisce al periodo di conservazione di dati o documenti elettronici (generalmente dei file di log). A meno che oggetto di indagine non sia un fornitore di connettività (es. un Internet Service Provider), sia i soggetti fisici che giuridici hanno alcun vincolo di memorizzazione.
[23] Elemento di prova: l’informazione che si ricava dal mezzo di prova come dato grezzo, non ancora valutato dal giudice: v. art. 65 comma 1 c.p.p.
[24] Pubblico (statico e dinamico) e privato. NAT Network Address Translation, tecnica che consiste nel modificare gli indirizzi IP dei pacchetti in transito su un sistema che agisce da router.
[26] Così il CREST, http://www.crest-approved.org/, un organizzazione no-profit di base inglese per il supporto al mercato della sicurezza informatica definisce i penetration test.
[28] La Convenzione sul Cyber Crime, firmata a Budapest il 23 novembre 2001 ed entrata in vigore l’1 luglio 2004, è stata ratificata dall’Italia con la legge 18 marzo 2008 n. 48 (GU n.80 del 4-4-2008 – Suppl. Ordinario n. 79 ) entrata in vigore il 5-4-2008.
[29] “Regolamento (UE) 2016/679 del Parlamento europeo e del Consiglio, del 27 aprile 2016, relativo alla protezione delle persone fisiche con riguardo al trattamento dei dati personali, nonché alla libera circolazione di tali dati e che abroga la direttiva 95/46/CE (regolamento generale sulla protezione dei dati)”, 2016, in http://eur-lex.europa.eu/legal-content/IT/TXT/?uri=CELEX%3A32016R0679.
[30] La pseudonimizzazione, ovvero il principio per cui le informazioni di profilazione debbano essere conservate in una forma che impedisce l’identificazione dell’utente. Le informazioni personali contengono elementi identificativi come nome, data di nascita, sesso e indirizzo. Quando le informazioni personali vengono pseudonimizzate, gli elementi identificativi sono sostituiti da uno pseudonimo, che si ottiene, per esempio, crittografando gli elementi identificativi contenuti nei dati personali. Il dato pseudonimo è diverso dal dato anonimo: i dati sono anonimizzati quando non contengono più alcun mezzo identificativo, mentre sono pseudonimizzati se i mezzi identificativi sono criptati.
[31] Il decreto 231 indica come destinatari “gli enti forniti di personalità giuridica, le società fornite di personalità giuridica e le società e le associazioni anche prive di personalità giuridica” (art. 1, comma 2). La disciplina, invece, non si applica “allo Stato, agli enti pubblici-territoriali, agli altri enti pubblici non economici nonché agli enti che svolgono funzioni di rilievo costituzionale” (art. 1, comma 3).
[32] Il reato presupposto è il delitto non colposo da cui provengono danaro, beni o altre utilità.
[33] Direttore informatico (Chief Information Officer, in sigla CIO) è il manager responsabile della funzione aziendale tecnologie dell’informazione e della comunicazione.
[34] Direttore finanziario (in sigla CFO – Chief Financial Officer) è il manager responsabile della gestione generale delle attività finanziarie di un’azienda. È una delle cariche più importanti all’interno dell’azienda.