- Réaliser un environnement virtuel en installant tous les serveurs et postes clients nécessaires
- Sécuriser le réseau en installant un pare-feu Pfsense et le mettre en épreuve par des testes d'intrusions
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi ToplamaBGA Cyber Security
Ağ haritalama (Enumeration), sızma testi metodolojilerinden biridir. Hedef ile aktif bir bağ oluşturulduğunda ve hedefe saldırıda bulunurken giriş noktasını tespit etmek amacıyla sistemin ağ yapısının detaylı belirlenmesidir:
Açık sistemler ve üzerindeki açık portlar, servisler ve servislerin hangi yazılımın hangi sürümü olduğu bilgileri, ağ girişlerinde bulunan VPN, Firewall, IPS cihazlarının belirlenmesi, sunucu sistemler çalışan işletim sistemlerinin ve versiyonlarının belirlenmesi ve tüm bu bileşenler belirlendikten sonra hedef sisteme ait ağ haritasının çıkartılması Ağ haritalama adımlarında yapılmaktadır.
- Réaliser un environnement virtuel en installant tous les serveurs et postes clients nécessaires
- Sécuriser le réseau en installant un pare-feu Pfsense et le mettre en épreuve par des testes d'intrusions
Aktif Dizin (Active Directory) Güvenlik Testleri - I: Bilgi ToplamaBGA Cyber Security
Ağ haritalama (Enumeration), sızma testi metodolojilerinden biridir. Hedef ile aktif bir bağ oluşturulduğunda ve hedefe saldırıda bulunurken giriş noktasını tespit etmek amacıyla sistemin ağ yapısının detaylı belirlenmesidir:
Açık sistemler ve üzerindeki açık portlar, servisler ve servislerin hangi yazılımın hangi sürümü olduğu bilgileri, ağ girişlerinde bulunan VPN, Firewall, IPS cihazlarının belirlenmesi, sunucu sistemler çalışan işletim sistemlerinin ve versiyonlarının belirlenmesi ve tüm bu bileşenler belirlendikten sonra hedef sisteme ait ağ haritasının çıkartılması Ağ haritalama adımlarında yapılmaktadır.
This presentation "Threat hunting on the wire" is part of a a series of courses on the subject of Threat Hunting. It covers command-line packet analysis, and network forensics.
Conservazione digitale e fascicolo elettronicoAlfonso Pisani
Una breve sintesi dei concetti fondamentali della conservazione elettronica dei documenti ai sensi delle regole tecniche approvate nel 2013 e della fascicolazione elettronica
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...Guillaume MOCQUET
Cet article traite d’une part, de la solution de virtualisation d’infrastructure serveurs via la plateforme VMware vSphere / vCenter et d'autre part, de la plateforme open source d’analyse de logs des frontaux web en temps réel basée sur Rsyslog (extension du protocole basique Syslog), ElasticSearch, Logstash et Kibana (ELK Stack).
Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015festival ICT 2016
Definire un framework per una gestione standard e delle linee guida per la pianificazione, la realizzazione e la manutenzione di un livello di sicurezza onnicomprensivo per i dispositivi mobili in un contesto aziendale sono le finalità principali che inducono ad applicare COBIT5 alla sicurezza dei dispositivi mobili.
Lo scopo secondario è quello di fornire una guida su come includere la sicurezza dei dispositivi mobili nella strategia della governance d’impresa, della gestione del rischio e della compliance (GRC), utilizzando COBIT 5 come l’asse portante della GRC.
This presentation "Threat hunting on the wire" is part of a a series of courses on the subject of Threat Hunting. It covers command-line packet analysis, and network forensics.
Conservazione digitale e fascicolo elettronicoAlfonso Pisani
Una breve sintesi dei concetti fondamentali della conservazione elettronica dei documenti ai sensi delle regole tecniche approvate nel 2013 e della fascicolazione elettronica
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...Guillaume MOCQUET
Cet article traite d’une part, de la solution de virtualisation d’infrastructure serveurs via la plateforme VMware vSphere / vCenter et d'autre part, de la plateforme open source d’analyse de logs des frontaux web en temps réel basée sur Rsyslog (extension du protocole basique Syslog), ElasticSearch, Logstash et Kibana (ELK Stack).
Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015festival ICT 2016
Definire un framework per una gestione standard e delle linee guida per la pianificazione, la realizzazione e la manutenzione di un livello di sicurezza onnicomprensivo per i dispositivi mobili in un contesto aziendale sono le finalità principali che inducono ad applicare COBIT5 alla sicurezza dei dispositivi mobili.
Lo scopo secondario è quello di fornire una guida su come includere la sicurezza dei dispositivi mobili nella strategia della governance d’impresa, della gestione del rischio e della compliance (GRC), utilizzando COBIT 5 come l’asse portante della GRC.
Anomaly detection in network traffic flows with big data analysis techniques Maurizio Cacace
Tesi magistrale in Ingegneria Informatica.
Per un ulteriore approfondimento sull'attività svolta, visitare il mio profilo Linkedin: https://www.linkedin.com/in/mauriziocacace/
Publish/Subscribe EDI with Content-Based RoutingNicola Mezzetti
"Progettazione e sviluppo di un sistema di comunicazione Publish/Subscribe con routing content-based di contenuti XML" - tesi di laurea di Roberto Santi, correlatore dr. Nicola Mezzetti, relatore prof. Fabio Panzieri
Python è un linguaggio di programmazione potente e di facile apprendimento. Utilizza efficienti strutture dati di alto livello e un semplice ma efficace approccio alla programmazione orientata agli oggetti. L’elegante sintassi di Python e la tipizzazione dinamica, unite alla sua natura di linguaggio interpretato, lo rendono ideale per lo scripting e lo sviluppo rapido di applicazioni in molte aree diverse e sulla maggior parte delle piattaforme.
L’interprete Python e l’ampia libreria standard sono liberamente disponibili, in file sorgenti o binari, per tutte le principali piattaforme sul sito web di Python, http://www.python.org/, e possono essere liberamente distribuiti. Lo stesso sito contiene anche, oltre alle distribuzioni, puntatori a molti moduli Python liberi e gratuiti di terzi, interi programmi, strumenti di sviluppo e documentazione addizionale.
L’interprete Python è facilmente estendibile con nuove funzioni o tipi di dato implementati in C o C++ (o altri linguaggi richiamabili dal C). Python è anche adatto come linguaggio di estensione per applicazioni personalizzabili.
Questo tutorial introduce informalmente il lettore ai concetti e alle caratteristiche base del linguaggio e del sistema Python. È di aiuto avere un interprete Python a portata di mano per fare esperienza diretta, ma tutti gli esempi sono autoesplicativi, quindi il tutorial può essere letto anche a elaboratore spento.
Per una descrizione degli oggetti e dei moduli standard, si veda il documento La libreria di riferimento di Python. Il manuale di riferimento di Python fornisce una definizione più formale del linguaggio. Se s’intendono scrivere estensioni in C o C++, si legga Extending and Embedding the Python Interpreter e Python/C API Reference. Ci sono anche numerosi libri che si occupano in modo approfondito di Python.
Questo tutorial non si propone di essere onnicomprensivo e di coprire ogni singola funzionalità o anche solo quelle più comunemente usate. Vuole essere piuttosto un’introduzione alle caratteristiche più notevoli di Python e fornire un’idea precisa dello stile del linguaggio. Dopo averlo letto si sarà capaci di leggere e scrivere moduli e programmi in Python, e quindi pronti ad imparare di più sui vari moduli della libreria Python descritta nel documento La libreria di riferimento di Python.
[Thesis] IBSS: Intelligent Brake Support System Stefano Bonetta
Prototipazione di un sistema intelligente di collision detection/avoidance tramite visione artificiale a camera monoculare per il supporto alla frenata di automezzi
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Idriss Riouak
La continua evoluzione dei linguaggi di programmazione ha reso difficile mantenere i software aggiornati con le ultime convenzioni dettate dagli standard. Come ogni processo aziendale, la modernizzazione del software rappresenta un costo. Nasce così l’esigenza d’avere strumenti che automatizzino tale processo.
Clang Tidy è uno software scritto in C++. Il suo scopo è quello di mettere a disposizione degli sviluppatori, un framework flessibile per diagnosticare e correggere i più comuni errori di programmazione e l’utilizzo obsoleto
dei costrutti del linguaggio.
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Francesco Komauli
L’idea del progetto di questa tesi è applicare all’addestramento di reti neurali artificiali le funzionalità di uno strumento di gestione di progetti software, in questo caso Maven, per rendere configurabili e componibili in modo dichiarativo, e possibilmente estendibili, sia l’algoritmo di addestramento che le componenti di supporto, come la persistenza della rete neurale e la gestione dei dati dell’insieme di addestramento. Tale idea è nata dall’analogia tra progetti software e addestramento di reti neurali artificiali. Prima dell’introduzione di strumenti di gestione, ciascun progetto software possedeva una propria organizzazione del processo di compilazione, test, deploy, di versionamento e di gestione delle dipendenze. Maven introduce un’interfaccia comune ed un insieme di convenzioni che, oltre a rendere portabile il progetto, ne semplifica il processo di build. Le reti neurali vengono costruite e addestrate usando strumenti di calcolo matematico o scrivendo un eseguibile che utilizzi una libreria dedicata. Il codice per l’addestramento è sviluppato per lo specifico problema, talvolta scartato una volta terminato il suo compito. Nonostante l’addestramento di reti neurali non sia deterministico come un processo di compilazione, ma adotti una serie di tecniche ed euristiche per trovare soluzioni non ottime, sono state cercate delle caratteristiche comuni ai due processi. Si vuole quindi introdurre Maven per definire un prototipo di interfaccia comune all’addestramento di reti neurali artificiali, tenendo conto delle problematiche di questo tipo di processo. Il meccanismo sviluppato per consentire configurabilità e componibilità delle componenti introduce il concetto di servizi: tipologie di oggetti a ciascuna delle quali è associata una factory col compito di configurare le istanze create. Nella configurazione da iniettare attraverso una factory sono tenuti distinti i puri dati, come parametri numerici o stringhe, e servizi collaboratori dotati di comportamento. Attraverso questa distinzione è possibile rappresentare in formato puramente testuale la gerarchia di composizione di un qualunque servizio. Le responsabilità del gestore di progetti sono importare le factory da librerie dichiarate come dipendenze, costruire i servizi in base alla struttura gerarchica specificata nel descrittore di progetto ed utilizzarli per effettuare l’addestramento.
Openfisca Managing Tool: a tool to manage fiscal sistemsLorenzo Stacchio
This article, written in italian, describes my thesis work focused on the creation of Openfisca managing tool (https://github.com/LorenzoStacchioDev/Openfisca-Managing-Tool). The main goal of this software is to manage different Openfisca country systems.
GaPiL - Guida alla Programmazione in LinuxAmmLibera AL
GaPiL - Guida alla Programmazione in Linux - Simone Piccardi
GaPiL - Guida alla Programmazione in Linux - Simone Piccardi
"Questo progetto mira alla stesura di un testo il più completo e chiaro possibile sulla programmazione di sistema su un kernel Linux. Essendo i concetti in gran parte gli stessi, il testo dovrebbe restare valido anche per la programmazione in ambito di sistemi Unix generici, ma resta una attenzione specifica alle caratteristiche peculiari del kernel Linux e delle versioni delle librerie del C in uso con esso; in particolare si darà ampio spazio alla versione realizzata dal progetto GNU, le cosiddette le GNU C Library o glibc, che ormai sono usate nella stragrande maggioranza dei casi.
L'obiettivo finale di questo progetto è quello di riuscire a ottenere un testo utilizzabile per apprendere i concetti fondamentali della programmazione di sistema della stessa qualità dei libri del compianto R. W. Stevens (è un progetto molto ambizioso ...).
Infatti benché le pagine di manuale del sistema (quelle che si accedono con il comando man) e il manuale delle librerie del C GNU siano una fonte inesauribile di informazioni (da cui si è costantemente attinto nella stesura di tutto il testo) la loro struttura li rende totalmente inadatti ad una trattazione che vada oltre la descrizione delle caratteristiche particolari dello specifico argomento in esame (ed in particolare lo GNU C Library Reference Manual non brilla per chiarezza espositiva).
Per questo motivo si è cercato di fare tesoro di quanto appreso dai testi di R. W. Stevens per rendere la trattazione dei vari argomenti in una sequenza logica il più esplicativa possibile, corredando il tutto, quando possibile, con programmi di esempio.
Dato che sia il kernel che tutte le librerie fondamentali di GNU/Linux sono scritte in C, questo sarà il linguaggio di riferimento del testo. In particolare il compilatore usato per provare tutti i programmi e gli esempi descritti nel testo è lo GNU GCC. Il testo presuppone una conoscenza media del linguaggio, e di quanto necessario per scrivere, compilare ed eseguire un programma.
Infine, dato che lo scopo del progetto è la produzione di un libro, si è scelto di usare LATEX come ambiente di sviluppo del medesimo, sia per l'impareggiabile qualità tipografica ottenibile, che per la congruenza dello strumento con il fine, tanto sul piano pratico, quanto su quello filosofico.
Il testo sarà, almeno inizialmente, in italiano. Per il momento lo si è suddiviso in due parti, la prima sulla programmazione di sistema, in cui si trattano le varie funzionalità disponibili per i programmi che devono essere eseguiti su una singola macchina, la seconda sulla programmazione di rete, in cui si trattano le funzionalità per eseguire programmi che mettono in comunicazione macchine diverse."
Gapil - Home page: http://gapil.gnulinux.it/
Gapil - Download: http://gapil.gnulinux.it/download/
Similar to Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità (20)
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
1. DIPARTIMENTO DI MATEMATICA E INFORMATICA
Corso di Laurea Triennale in Informatica
Tesi di Laurea
Sicurezza delle Reti Informatiche:
Le vulnerabilit`a
Candidato:
Riccardo Melioli
Matricola 247967
Relatore:
Chiar.mo Prof. Roberto Alfieri
Anno Accademico 2015–2016
6. Abstract
La Sicurezza informatica è il ramo dell’informatica che si occupa dell’analisi delle
vulnerabilità, del rischio, delle minacce e della successiva protezione dell’integrità
logico-funzionale. In particolare, nella sicurezza delle reti si valutano l’eventuale
presenza di vulnerabilità dei singoli nodi che compongono la rete, la sicurezza dello
scambio di informazioni tra i nodi e tutto quello che riguarda l’interfacciarsi di un
nodo in una rete.
Negli ultimi anni ha acquisito progressivamente maggiore interesse a causa della
crescente informatizzazione della società e dei servizi, in particolare per i settori dove
le informazioni conservate, scambiate o create sono di importanza critica.
La problematica della sicurezza delle reti consiste nel compromesso tra le misure di
sicurezza da adottare per proteggere la rete da accessi indesiderati e la versatilità
con cui essa opera. Particolarmente critica è la problematica legata alla presenza
di vulnerabilità che può compromettere l’intero funzionamento della rete stessa e
l’integrità dei nodi da cui è composta.
Il seguente documento ha lo scopo di analizzare dettagliatamente i metodi utilizzati
per l’attacco e la difesa delle reti informatiche, illustrando con particolare attenzione
le vulnerabilità, come rilevarle, verificarne l’effettivo pericolo ed agire di conseguenza
per rimuoverle, portando i singoli nodi della rete e, conseguentemente la rete stessa,
in uno stato sicuro. Vengono inoltre descritti, un caso d’uso alla rete INFN di Parma,
effettuando un vulnerability assessment ed un esempio completo di attacco ad un
host vulnerabile e la creazione di programmi, in linguaggio NASL, dimostrativi di
diversi tipi di attacchi informatici, svolti durante il periodo di tirocinio.
v
7. Capitolo 1
Introduzione
Nei primi decenni della loro esistenza le reti informatiche vennero utilizzate
prevalentemente dai ricercatori universitari per inviare e-mail e dalle aziende per
condividere le stampanti. In quelle applicazioni non essendo tendenzialmente critiche,
non si prestava particolare attenzione alla sicurezza. Negli ultimi anni è diventato
un problema molto sentito in ambito tecnico-informatico per via della crescente
informatizzazione della società e dei servizi (pubblici e privati) in termini di apparati
e sistemi informatici.
La sicurezza informatica è un argomento vasto, che copre una moltitudine di
problemi. Nella forma più semplice, riguarda come fare in modo che intrusi non
riescano a leggere (o modificare di nascosto) i messaggi destinati a terzi. Si occupa
inoltre di impedire che determinate persone possano accedere a servizi remoti che non
sono autorizzati ad usare. La sicurezza si occupa anche di come accertarsi dell’identità
dei mittenti dei messaggi, di come impedire l’intercettazione e la ripetizione di
messaggi legittimi catturati sulla rete e di come perseguire chi afferma di non aver
mai spedito certi messaggi.
1.0.1 Definizione di Sicurezza delle reti informatiche
Con il termine sicurezza informatica si intende quel ramo dell’informatica che si
occupa dell’analisi delle vulnerabilità, del rischio, delle minacce e della successiva
protezione dell’integrità logico-funzionale. In particolare, nella sicurezza delle reti
si valutano l’eventuale presenza di vulnerabilità dei singoli nodi che compongono la
rete, la sicurezza dello scambio di informazioni tra i nodi e tutto quello che riguarda
l’interfacciarsi di un nodo in una rete.
1.0.2 Politiche di Sicurezza
La realizzazione di un sistema che garantisca un’assoluta protezione da abusi
è impossibile, ma è possibile attivare meccanismi di sicurezza tali da limitare e
scoraggiare i tentativi.
La politica di sicurezza è quindi un compromesso, dettato dalle proprie necessità, tra
il costo per attivarla ed il beneficio ottenuto in termini di diminuzione del rischio.
Le politiche variano a seconda delle dimensioni delle reti, comportandone diverse
necessità, elenchiamo di seguito una possibile categorizzazione delle dimensioni:
1
8. CAPITOLO 1. INTRODUZIONE 2
• Domestica (Home): Rete di dimensioni limitate, utilizzata tipicamente al-
l’interno dello stesso edificio, la quale si interfaccia con internet tramite un
modem-router, solitamente non professionale, che può avere anche le funziona-
lità di AP Wireless e di Firewall. Il numero di servizi attivati è basso, dato
che generalmente non vi sono installati Server (Web, mail, DNS, ...). L’utenza
necessità quasi univocamente di collegarsi verso l’esterno o a dispositivi locali
alla rete: NAS, dispositivi di Casting, Mediaserver.
La Sicurezza è data dal firewall, che di default è bloccante per ogni servizio
proveniente dall’esterno.
• Aziendale (Corporate): Rete di dimensioni variabili a seconda delle necessità
dell’azienda, tendenzialmente superano la dimensione di una rete domestica, è
composta da più dispositivi professionali che gestiscono tutta l’infrastruttura
della rete, permettendo la suddivisione in zone e il controllo del traffico di ogni
zona. Il numero di servizi attivati è elevato, dato che nell’ambito aziendale, per
rispondere al fabbisogno informatico richiesto dall’attività, sono spesso forniti
servizi: VPN, Web, mail, DNS, ...
Questa necessità di servizi comporta ad un alto fabbisogno di sicurezza, perciò
sono spesso impiegati dispositivi di controllo del traffico, anti-virus di rete e
controlli periodici per verificcare la presenza di eventuali vulnerabilità.
• Fornitore di servizio (Provider): Rete di grande dimensione, svolge il ruolo
di fornire connessione a utenti pubblici e privati, è composta da dispositivi ad
altissime prestazione che connettono le reti assegnate agli utenti, sia fra di loro
che con internet. Il numero di servizi è alto dato dipende dal tipo di utenza.
La Sicurezza si limita a monitorare e analizzare superficialmente il traffico, per
non gravare sulle prestazioni, bloccando le connessioni a certi indirizzi presenti
in una determinata blacklist, che spesso contiene siti bloccati dallo stato di
apparenza del provider, inoltre potrebbe essere presente un anti-virus di rete,
che impedisce il download di file che potrebbero compromettere l’integrità del
sistema.
Riassumiamo nella tabella 1.1 le precedenti categorie:
Rete Numero di Host Numero di Servizi Protezione
Domestica Piccola (∼ 1-254) Basso Base
Aziendale Media (∼ 255-1024) Alto Elevata
Fornitore di servizio Grande (∼ > 1024) Alto Minima
Tabella 1.1: Categorizzazione della dimensione delle reti
1.1 Normative e Standard
Nella seguente sezione verranno trattate le Normative e Standard vigenti e inerenti
all’abito informatico, facendo riferimento ad organi internazionali come IETF (Inter-
net Engineering Task Force), ISO (International Organization for Standardization).
9. CAPITOLO 1. INTRODUZIONE 3
1.1.1 Servizi di Sicurezza (RFC2828)
L’Internet Engineering Task Force (IETF), organismo internazionale, libero,
composto da tecnici, specialisti e ricercatori interessati all’evoluzione tecnica e
tecnologica di Internet definisce e classifica i servizi di sicurezza nel seguente modo
(RFC2828 (Internet Security Glossary – Maggio 2000):
• Autenticazione: un servizio che consente di accertare l’identità dichiarata da
un’entità (origine dei dati o peer in una comunicazione) mediate la verifica di
credenziali.
• Autorizzazione: protegge l’accesso ad una risorsa mediante l’applicazione di
“Security Policy”.
• Audit: registrazione di eventi di sistema o di rete. Consente di rintracciare,
ricostruire (ed eventualmente addebitare) l’utilizzo delle risorse.
• Confidenzialità/Riservatezza: impedisce l’utilizzo delle informazioni da
accessi non autorizzati.
• Integrità dei dati: consente di garantire che i dati acceduti non sono stati
modificati.
• Integrità dei sistemi: protegge le risorse del sistema contro modifiche,
distruzioni accidentali o non autorizzate.
• Non ripudio: fornisce protezione contro il ripudio nel coinvolgimento in una
comunicazione. Può essere:
– Non ripudio della sorgente: prova chi è il mittente dei dati in una
transazione.
– Non ripudio della destinazione: prova che i dati sono arrivati ad uno
specifico destinatario.
• Disponibilità: fornisce una protezione per garantire accessibilità di una risorsa
di sistema o di rete.
1.1.2 La prevenzione dei guasti accidentali e dagli attacchi infor-
matici (ISO 27001)
Lo standard internazionali di sicurezza ISO 27001, è una norma che definisce
i requisiti per impostare e gestire un Sistema di Gestione della Sicurezza delle
Informazioni, ed include aspetti relativi alla sicurezza logica, fisica ed organizzativa.
L’obiettivo di questo standard è la salvaguardia dei dati e dei sistemi che li contengono
per difenderli da guasti tecnici accidentali o in caso di danneggiamenti fisici subiti
dai sistemi. Spesso le tecniche di protezione da eventi accidentali sono un’ottima
risposta anche a problemi di sicurezza dovuti a attacchi informatici, dato che gli
obiettivi di tali standard sono:
• protezione dei dati contenuti nei sistemi;
• garanzia di continuità di servizio (business continuity).
10. CAPITOLO 1. INTRODUZIONE 4
1.1.3 Protezione dei dati personali (Decreto Legislativo 196/2003)
il Decreto legislativo n. 196 emanato il 30 giugno 2003, è una norma della
Repubblica Italiana riguardante la protezione dei dati personali (comunemente noto
anche come codice della privacy), il quale, tutela il diritto del singolo sui propri dati
personali e, conseguentemente, alla disciplina delle diverse operazioni di gestione
(tecnicamente "trattamento") dei dati, riguardanti la raccolta, l’elaborazione, il
raffronto, la cancellazione, la modifica, la comunicazione o la diffusione degli stessi.
Il contenuto del decreto fa chiarezza fornendo precise definizioni:
• Trattamento dei dati: qualunque operazione o complesso di operazioni,
effettuati anche senza l’ausilio di strumenti elettronici, concernenti la raccolta, la
registrazione, l’organizzazione, la conservazione, la consultazione, l’elaborazione,
la modifica, la selezione, l’estrazione, il raffronto, l’utilizzo, l’interconnessione,
il blocco, la comunicazione, la diffusione, la cancellazione e la distruzione di
dati, anche se non registrati in una banca dati.
• Dato personale: identificano le informazioni relative alla persona fisica, iden-
tificati o identificabili, anche indirettamente, mediante riferimento a qualsiasi
altro dato, ivi compreso un numero di riconoscimento personale.
• Dati identificativi: dati personali che permettono l’identificazione diretta
dell’interessato.
• Dati sensibili: 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;
– lo stato di salute e la vita sessuale.
• Dati giudiziari: dati personali in materia di casellario giudiziale, di anagrafe
delle sanzioni amministrative dipendenti da reato e dei relativi carichi pendenti.
Inoltre possono essere quei dati personali indicanti la qualità di imputato o di
indagato.
Lo Stato Italiano tutela il cittadino in caso di lesione nei diritti sui propri dati a
mente del d. lgs. 196/03 (ad esempio: raccolta dei dati senza il consenso, consenso
acquisito senza fornire la preventiva informativa di legge, trattamento dei dati oltre i
limiti del consenso dato, negazione o limitazione al diritto di accesso) il quale può
ricorrere al Garante per la protezione dei dati personali (con una procedura piuttosto
rapida e costi contenuti) o al giudice civile (con costi e tempi maggiori). Se invece si
è addirittura subito un danno per trattamento dei dati non conforme alla legge (non
necessariamente economico) il risarcimento può essere concesso in via esclusiva solo
dal giudice civile.
11. CAPITOLO 1. INTRODUZIONE 5
1.2 Sicurezza dei dati
La protezione dei dati è uno degli aspetti centrali della sicurezza informatica,
in particolare nell’ambito aziendale, l’informazione è considerata un bene aziendale.
La maggior parte delle informazioni sono custodite su supporti informatici, ogni
organizzazione (Università, Ente di ricerca, Banca, Azienda Commerciale, ...) deve
essere in grado di garantire la sicurezza dei propri dati, in un contesto dove i rischi
informatici causati dalle violazioni dei sistemi di sicurezza sono in continuo aumento.
Per questo esistono, a carico delle imprese, precisi obblighi in materia di privacy, tra
cui quello di redigere annualmente uno specifico documento programmatico sulla
sicurezza.
I rischi diretti per un’azienda possono essere riassunti in:
• furti di denaro, informazioni, dati sui propri clienti;
• perdita di produttività dovute a corruzioni dei dati o danneggiamento dei
sistemi, con in aggiunta il danno economico dovuto al ripristino delle normali
condizioni di operatività.
Accanto ad essi sono presenti numerosi rischi indiretti come:
• perdita di potenziali clienti;
• svantaggi sui propri prodotti;
• impatto negativo sul proprio brand name;
• esposizioni legali al non rispetto delle clausole di riservatezza e al non rispetto
delle leggi della privacy.
Ogni tipo di aziende necessita di differenti gradi di sicurezza per ogni tipo di dato
trattato, a seconda di quanto le informazioni da loro create, scambiate o ottenute
siano critiche a livello di privacy, come trattato nella sezione 1.1.3, perciò si può
affermare che è la tipologia del dato che da importanza alla sicurezza.
Per fornire un quadro più completo della tipologia di dati presenti nelle aziende
vengono definiti, in aggiunta a quelli visti nella sezione 1.1.3, i seguenti tipi di dati:
• Dati amministrativi: dati relativi alla gestione dell’organizzazione.
• Dati economici: dati relativi alla situazione economica di un individuo.
• Dati di ricerca: dati relativi a studi e ricerche effettuate da ricercatori in
ambito universitario o negli enti di ricerca.
• Dati di produzione: dati relativi alla fase di produzione, ad esempio i dati
rilevati dalle macchine.
Nella tabella 1.2 si confrontano alcune tipologie di aziende e i dati trattati in
esse.
12. CAPITOLO 1. INTRODUZIONE 6
Tipologia di azienda Tipologia di dato trattato Livello di criticità dei dati
Banca Personali Medio
Giudiziari Medio
Identificativi Medio
Monetari Alto
Ospedale Personali Medio
Identificativi Medio
Amministrativi Medio
Sensibili Alto
Azienda Commerciale Personali Medio
Identificativi Medio
Amministrativi Medio
Produzione Medio/Alto
Università/Ente di ricerca Personali Medio
Identificativi Medio
Amministrativi Medio
Ricerca Basso
Tabella 1.2: Criticità dei diversi tipi di dati presenti nelle aziende
Come anticipato dalla tabella 1.2 aziende come le banche contengono informazioni
critiche di ogni individuo, come i dati personali, necessari per poter intestare conti
o svolgere attività relative alla banca e dati monetari inerenti alle situazioni dei
conti correnti e altri servizi offerti, quest’ultima tipologia di dato è di particolare
importanza dato che il core business delle banche si basa proprio su questi dati
interni. Perciò è di fondamentale importanza tutelare queste informazioni, in modo
che non vi siano accessi da persone non autorizzate o nel caso più grave che possano
essere modificate.
Similmente gli ospedali trattano dati particolarmente critici, dal punto di vista della
situazione sanitaria dell’individuo(dati sensibili), perciò anche per tali strutture è
fondamentale tutelare tali dati.
Differente è la situazione dei dati nelle Aziende Commerciali, oltre a dipendere
ovviamente dal tipo di attività commerciale svolta, perciò più il core business di tale
attività è incentrato sui dati, più il livello di criticità dei dati aumenta, dipende inoltre
dalla quantità di dati personali e identificativi richiesti all’individuo per svolgere
tale attività. Quindi la necessità di sicurezza informatica in questo caso può variare.
Infine per le Università e Enti di Ricerca si ha un livello di criticità tendenzialmente
basso dato che spesso il materiale viene divulgato alla comunità, però si necessita di
proteggere l’identità dei dipendenti e l’autenticità del materiale prodotto da essi.
13. Capitolo 2
Metodi di Attacco
Un attacco è un tentativo di accesso non autorizzato al sistema e di utilizzo non
autorizzato dei dati che può compromettere la riservatezza, l’integrità o anche la
disponibilità dei dati o del sistema stesso. Gli attacchi si possono suddividere in
passivi e attivi; gli attacchi passivi compromettono l’autenticazione e la riservatezza
per entrare in possesso di dati privati; gli attacchi attivi compromettono l’integrità
e la disponibilità, cioè hanno come obiettivo l’alterazione delle informazioni o il
danneggiamento del sistema per renderlo non utilizzabile. Spesso quando un sistema
viene compromesso l’intruso inserisce programmi o virus per mascherare l’attacco, in
modo che non possa essere individuato, per procurarsi informazioni aggiuntive e per
creare un accesso (backdoor) da sfruttare successivamente.
2.1 Attacco passivo
Questi attacchi sono finalizzati ad ottenere informazioni dai computer e stimare
le possibili modalità di intrusione remota.
2.1.1 Raccolta di informazioni su possibili obiettivi
Attacco alla Confidenzialità/Riservatezza, i principali tipi di attacco sono:
• Network Monitor: sistema che analizza costantemente il traffico di rete.
L’amministratore della rete, spesso, configura allarmi (via email o SMS) per
l’avviso di eventuali situazioni critiche.
• Port Scanner: tecnica per sondare un server o un host stabilendo quali porte
siano in ascolto sulla macchina. Questo è spesso utilizzato dagli amministratori
per verificare le politiche di sicurezza delle loro reti, e dagli hacker per identificare
i servizi in esecuzione su un host e sfruttarne le vulnerabilità.
Un portscan è un processo che invia le richieste dei client a un intervallo
di indirizzi di porte su un host, con l’obiettivo di trovare una porta aperta.
Elaborando le risposte è possibile stabilire quali servizi di rete siano attivi su
quel computer. Una porta si dice "in ascolto" ("listening") o "aperta" quando
vi è un servizio, programma o processo che la usa.
7
14. CAPITOLO 2. METODI DI ATTACCO 8
2.1.2 Intercettazione delle comunicazioni
Attacco alla Confidenzialità/Riservatezza, i principali tipi di attacco sono:
• Sniffing: attività di intercettazione passiva dei dati che transitano in una
rete telematica che permette l’intercettazione fraudolenta di password o altre
informazioni sensibili. I prodotti software utilizzati per eseguire queste attività
vengono detti sniffer, ed oltre ad intercettare e memorizzare il traffico, offrono
funzionalità di analisi del traffico stesso. Gli sniffer intercettano i singoli
pacchetti, decodificando le varie intestazioni di livello datalink, rete, trasporto,
applicativo. Inoltre possono offrire strumenti che analizzano ad esempio tutti i
pacchetti di una connessione TCP per valutare il comportamento del protocollo
o per ricostruire lo scambio di dati tra le applicazioni.
Lo sniffing si può applicare in più modalità:
– Sniffing del traffico locale: il traffico può essere intercettato da uno
degli host coinvolti nella comunicazione, indipendentemente dal tipo di
interfaccia di rete su cui viene inviato.
– Sniffing in reti locali: per intercettare i dati in una rete locale è
necessario possedere od ottenere l’accesso fisico al mezzo trasmissivo.
– Sniffing in reti ethernet non-switched: in questo tipo di reti ethernet
il mezzo trasmissivo (cavo coassiale o, attualmente, cavo UTP o STP
connesso ad un hub) è condiviso, quindi tutte le schede di rete dei com-
puter nella rete locale ricevono tutti i pacchetti, anche quelli destinati
ad altri, selezionando i propri a seconda dell’indirizzo MAC (indirizzo
hardware univoco della scheda di rete). Lo sniffing in questo caso consiste
nell’impostare sull’interfaccia di rete la cosiddetta modalità promiscua,
che disattivando questo "filtro hardware" permette al sistema l’ascolto di
tutto il traffico passante sul cavo.
– Sniffing in reti ethernet switched: in questo caso l’apparato centrale
della rete, definito switch, si occupa di inoltrare su ciascuna porta solo il
traffico destinato al dispositivo collegato a quella porta: ciascuna interfac-
cia di rete riceve, quindi solo i pacchetti destinati al proprio indirizzo ed i
pacchetti di broadcast. L’impostazione della modalità promiscua è quindi
insufficiente per poter intercettare il traffico in una rete gestita da switch.
In questo caso ci si può collegare ad una porta chiamata "SPAN" nella
terminologica di Cisco, "Roving Analysis" per 3Com e "port mirroring"
per gli altri produttori, che riceve il traffico circolante su tutte le porte
dello switch. Alcuni metodi per poter ricevere tutto il traffico dallo switch
da una porta qualunque sono il MAC flooding, l’ARP poisoning e il port
stealing.
– Sniffing in reti geografiche: per intercettare i dati che transitano su
reti geografiche si utilizzano tecniche Man in the middle analoghe a quelle
accennate in precedenza, operanti però a livello più alto: possono inter-
venire a livello di instradamento del traffico IP (routing), oppure inviare
alle vittime informazioni fittizie per quanto riguarda la corrispondenza tra
dominio e indirizzi IP sfruttando l’assenza di autenticazione del sistema
DNS.
15. CAPITOLO 2. METODI DI ATTACCO 9
• Eavesdropping: attività di intercettazione passiva dei segnali radio decodifi-
cando, o cercando di decodificare, i dati trasmessi da terzi. Le stesse componenti
hardware che sono utilizzate (schede di rete) per trasmettere e ricevere dati,
possono essere modificate in modo da intercettare il traffico trasmesso su un
particolare canale o sua una certa frequenza della rete. Questo attacco necessita
che la periferica modificata si trovi nel raggio di trasmissione wireless e, con
questi apparecchi "scanner", si possono raccogliere i dati relativi alla trasmis-
sione: range del segnale, utilizzatori della rete, periodo di attività e inattività
della stessa e altro ancora, che possono essere impiegati per pianificare un
attacco mirato alla rete, anche se le comunicazioni sono crittografate.
2.2 Attacco attivo
Questi attacchi sono finalizzati alla penetrazione remota del computer, al furto o
alterazione dei dati o al danneggiamento del sistema.
2.2.1 Fabbricazione dell’identità di un’altra entità
Attacco all’autenticazione, il principale tipo di attacco è lo spoofing, tipo di at-
tacco informatico dove viene impiegata la falsificazione dell’identità (spoof). Quando
la falsificazione non avviene in campo informatico si parla di social engineering. I
tipi di spoofing sono:
• User account spoofing: usare nome utente e password di un altro utente
senza averne il diritto. Può avvenire utilizzando strumenti come sniffer e
password crackers.
• IP Address spoofing: si basa sul fatto che la maggior parte dei router
all’interno di una rete controllino solo l’indirizzo IP di destinazione e non quello
sorgente. Le finalità di tale tecnica sono:
– superare alcune tecniche difensive contro le intrusioni, in particolare quelle
basate sull’autenticazione dell’indirizzo;
– realizzare attacchi DDoS, ad esempio NTP reflection.
• MAC Address forging: il MAC address viene modificato impersonando
l’indirizzo della vittima. Diversi sistemi di autenticazione/autorizzazione sono
basati su MAC address, ad esempio:
– autenticazione verso DHCP server;
– sessioni attive su Captive Portal (session Hijacking).
• ARP Spoofing / Poisoning: consiste nell’inviare intenzionalmente e in
modo forzato risposte ARP contenenti dati inesatti. In questo modo la tabella
ARP di un host conterrà dati alterati.
16. CAPITOLO 2. METODI DI ATTACCO 10
2.2.2 Interruzione/compromissione di servizi
Attacco alla disponibilità del servizio, i principali tipi di attacco sono:
• Denial of Service (DoS): in questo tipo di attacco si cerca di portare il
funzionamento di un sistema informatico che fornisce un servizio, ad esempio
un sito web, al limite delle prestazioni, fino a renderlo non più in grado di
erogare il servizio.
Gli attacchi possono essere:
– diretti (l’attaccante interagisce direttamente con la vittima);
– indiretti (l’attaccante sfrutta terze parti).
Gli attacchi vengono abitualmente attuati inviando molti pacchetti di richieste,
di solito ad un server Web, FTP o di posta elettronica saturandone le risorse e
rendendo tale sistema instabile, quindi qualsiasi sistema collegato ad Internet e
che fornisca servizi di rete basati sul TCP è soggetto al rischio di attacchi DoS.
I principali attacchi sono:
– Flooding:
∗ Ping floods: invio di pacchetti ICMP, in numero maggiore a quel-
li gestibili dal sistema attaccato; l’aggressore invia un grosso flus-
so di traffico ICMP echo verso una serie di indirizzi di broadcast
attribuendosi come indirizzo sorgente quello della vittima.
∗ TCP SYN Floods: funziona se un server alloca le risorse relative
alla connessione dopo aver ricevuto un SYN, ma prima di aver ricevuto
un messaggio ACK.
– Invio di pacchetti malformati:
∗ Ping di grandi dimensioni (ping of death): può causare buffer
overflow con conseguente blocco del servizio o, nei casi più gravi, crash
del sistema.
∗ UDP bombs: pacchetti UDP costruiti con valori illegali in certi
campi. In qualche sistema operativo la ricezione di tali pacchetti
imprevisti causa il crash.
• Distributed DoS (DDoS): per rendere più efficace l’attacco in genere vengono
utilizzati molti computer, talvolta inconsapevoli sui quali precedentemente è
stato inoculato un programma appositamente creato per attacchi DoS e che si
attiva ad un comando proveniente dall’hacker creatore.
2.2.3 Sfruttamento di bug nel software o vulnerabilità nel sistema
Attacco all’integrità dei sistemi e all’autenticazione, il principale tipo di attacco
è l’applicazione degli exploit noti.
Un exploit è un termine usato in informatica per identificare un codice che, sfruttando
un bug o una vulnerabilità, porta all’acquisizione di privilegi o al denial of service di
un computer. L’argomento degli esploit verrà approfondito nel capitolo 4.
17. CAPITOLO 2. METODI DI ATTACCO 11
2.2.4 Diffusione intenzionale di vulnerabilità: Malware
Attacco all’integrità dei sistemi, software che indeboliscono la sicurezza di una
risorsa, cioè interferiscono con le operazioni svolte da un computer, rubarono in-
formazioni sensibili, accedono a sistemi informatici privati, o mostrano pubblicità
indesiderata. L’informatizzazione della società e delle tecniche pubblicitarie, avvenuta
negli ultimi anni, ha scaturito un forte aumento dei malware presenti in rete, come
mostrato dalla figura 2.1
Figura 2.1: Diffusione Malware
Riguardo la diffusione di malware per tipo, PandaLabs, nota software house di
antivirus riporta i seguenti dati del Q2 2015 (tabella 2.1 e grafico 2.2):
Tipologia di Malware Infezioni Percentuali
Trojans 76,25%
Viruses 1,53
Worms 2,40
Adware/Spyware 5,43
Other 14,39
Tabella 2.1: Infezioni Malware Q2 2015
18. CAPITOLO 2. METODI DI ATTACCO 12
Figura 2.2: Infezioni Malware Q2 2015
I principali tipi di malware 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. Un virus può sfruttare le
vulnerabilità (exploit) di un sistema operativo arrecando danni al sistema,
rallentando o rendendo inutilizzabile il dispositivo infetto.
Un Virus è solitamente composto da un numero molto ridotto di istruzioni, (da
pochi byte ad alcuni kilobyte, per rendersi più difficile da individuare e facile
da copiare), ed è specializzato per eseguire soltanto poche e semplici operazioni
e ottimizzato per impiegare il minor numero di risorse, in modo da rendersi il
più possibile invisibile.
Caratteristica principale di un virus è quella di riprodursi e quindi diffondersi
nel computer ogni volta che viene aperto il file infetto, perciò per essere attivato,
deve infettare un programma ospite, o una sequenza di codice che viene lanciata
automaticamente, come ad esempio nel caso dei boot sector virus.
La tecnica solitamente usata dai virus è quella di infettare i file eseguibili: il virus
inserisce una copia di sé stesso nel file eseguibile che deve infettare, pone tra le
prime istruzioni di tale eseguibile un’istruzione di salto alla prima linea della
sua copia ed alla fine di essa mette un altro salto all’inizio dell’esecuzione del
programma. In questo modo quando un utente lancia un programma infettato
viene dapprima impercettibilmente eseguito il virus, e poi il programma.
I virus informatici più semplici sono composti da due parti essenziali, sufficienti
ad assicurarne la replicazione:
– Routine di ricerca: si occupa di ricercare dei file adatti ad essere infettati
dal virus e controlla che gli stessi non ne contengano già una copia, per
evitare una ripetuta infezione dello stesso file.
– Routine di infezione: copia il codice virale all’interno di ogni file selezionato
dalla routine di ricerca, affinché venga eseguito ogni volta che il file infetto
viene aperto, in maniera trasparente rispetto all’utente.
19. CAPITOLO 2. METODI DI ATTACCO 13
Molti virus sono progettati per eseguire del codice estraneo alle finalità di
replicazione del virus stesso e contengono dunque altri due elementi:
– Routine di attivazione: contiene i criteri in base ai quali il virus decide se
effettuare o meno l’attacco (es. una data, o il raggiungimento di un certo
numero di file infetti).
– Payload: una sequenza di istruzioni in genere dannosa per il sistema ospite,
come ad esempio la cancellazione di alcuni file o la visualizzazione di mes-
saggi pop-up sullo schermo (gli adware sono malware che si specializzano
nel far apparire banner pubblicitari su computer della vittima).
I virus possono essere criptati e magari cambiare algoritmo e/o chiave ogni
volta che vengono eseguiti, quindi possono contenere altri tre elementi:
– Routine di decifratura: contenente le istruzioni per decifrare il codice del
virus.
– Routine di cifratura: di solito criptata essa stessa, che contiene il procedi-
mento per criptare ogni copia del virus.
– Routine di mutazione: si occupa di modificare le routine di cifratura e
decifratura per ogni nuova copia del virus.
• Worms: è una particolare categoria di malware in grado di autoreplicarsi. E’
simile ad un virus, ma a differenza di questo non necessita di legarsi ad altri
eseguibili per diffondersi.
Tipicamente un worm modifica il computer che infetta, in modo da venire
eseguito ogni volta che si avvia la macchina e rimanere attivo finché non si
spegne il computer o non si arresta il processo corrispondente. Il worm tenta
di replicarsi sfruttando Internet in diversi modi.
Il mezzo più comune impiegato dai worm per diffondersi è la posta elettronica:
il programma maligno ricerca indirizzi e-mail memorizzati nel computer ospite
ed invia una copia di se stesso come file allegato (attachment) a tutti o parte
degli indirizzi che è riuscito a raccogliere. I messaggi contenenti il worm
utilizzano spesso tecniche di social engineering per indurre il destinatario ad
aprire l’allegato, che spesso ha un nome che permette al worm di camuffarsi
come file non eseguibile.
Questi eseguibili maligni possono anche sfruttare i circuiti del file sharing per
diffondersi. In questo caso si copiano tra i file condivisi dall’utente vittima,
spacciandosi per programmi ambiti o per crack di programmi molto costosi o
ricercati, in modo da indurre altri utenti a scaricarlo ed eseguirlo.
La tipologia più pericolosa di worm sfrutta dei bug di alcuni software o sistemi
operativi, in modo da diffondersi automaticamente a tutti i computer vulnerabili
connessi in rete.
• Bot: (o robot) è un’applicazione software che esegue attività automatizzate
(script) su Internet . Solitamente, svolgono compiti che sono semplici e struttu-
ralmente ripetitivi, ad un tasso più elevato di quanto sarebbe possibile per un
essere umano.
20. CAPITOLO 2. METODI DI ATTACCO 14
Vengono largamente utilizzati nel web spidering (web crawler), in quanto auto-
matizzano le operazioni di recupero e analisi delle informazioni dai server web,
più rapidamente di quanto possa fare un umano. Uno dei punti di forza dei
bot risiede nella difficoltà di identificarli dagli esseri umani.
• Spyware: è un tipo di software che raccoglie informazioni riguardanti l’attività
online di un utente (siti visitati, acquisti eseguiti in rete, ...) senza il suo con-
senso, trasmettendole tramite Internet, il più delle volte, ad organizzazioni che
le utilizzeranno per trarne profitto, solitamente attraverso l’invio di pubblicità
mirata.
Gli spyware, a differenza dei virus e dei worm, non hanno la capacità di dif-
fondersi autonomamente, quindi richiedono l’intervento dell’utente per essere
installati. In questo senso sono dunque simili ai trojan.
Uno spyware può essere installato sul computer di un ignaro utente sfruttando
le consuete tecniche di ingegneria sociale. Molti programmi offerti "gratuita-
mente" su Internet nascondono in realtà un malware di questo tipo: il software
dunque non è gratuito, ma viene pagato attraverso un’invasione della privacy
dell’utente, spesso inconsapevole.
Gli spyware costituiscono innanzi tutto una minaccia per la privacy dell’utente,
in quanto sottraggono senza autorizzazione informazioni sul suo comportamento
quando connesso ad Internet: tempo medio di navigazione, orari di connessione,
siti Web visitati, se non dati più riservati come gli indirizzi e-mail e le password.
Questi malware portano con sé anche delle conseguenze sul funzionamento
del computer su cui sono installati. I danni vanno dall’utilizzo di banda della
connessione ad Internet, con conseguente riduzione della velocità percepita
dall’utente, all’occupazione di cicli di CPU e di spazio nella memoria RAM.
Nessuno spyware ha lo scopo di rendere inutilizzabile il sistema su cui è in-
stallato, dato che esso deve essere funzionante per consentire la raccolta e
l’invio delle informazioni. Malfunzionamenti sono tuttavia piuttosto comuni,
soprattutto nel caso si accumulino molti spyware. Un sintomo comune di una
grave infezione da spyware è la difficoltà di connettersi ad Internet, oppure la
presenza di tentativi di connessione non richiesti dall’utente.
Esistono specifici programmi antispyware concepiti appositamente per rilevare
e cancellare spyware dal sistema. Bisogna tuttavia considerare che la rimozione
di un componente spyware potrebbe causare il malfunzionamento del software
di cui esso faceva parte, e che non tutti gli spyware vengono sempre riconosciuti
o rimossi da antivirus e antispyware.
• Keylogger: è uno strumento in grado di intercettare tutto ciò che un utente
digita sulla tastiera del proprio, o di un altro computer. Esistono vari tipi di
keylogger:
– Hardware: vengono collegati al cavo di comunicazione tra la tastiera ed il
computer o all’interno della tastiera.
– Software: programmi che controllano e salvano la sequenza di tasti che
viene digitata da un utente.
• Trojan: (o trojan horse, dall’inglese "Cavallo di Troia") è un tipo di malware
che deve il suo nome al fatto che le sue funzionalità sono nascoste all’interno di
21. CAPITOLO 2. METODI DI ATTACCO 15
un programma apparentemente utile; è dunque l’utente stesso che installando
ed eseguendo un certo programma, inconsapevolmente, installa ed esegue anche
il codice trojan nascosto.
In genere col termine Trojan ci si riferisce ai trojan ad accesso remoto (detti
anche RAT dall’inglese Remote Administration Tool), composti generalmente
da 2 file: il file server, che viene installato nella macchina vittima, ed un file
client, usato dall’attaccante per inviare istruzioni che il server esegue. In questo
modo, la vittima è indotta ad eseguire il programma.
I trojan non si diffondono autonomamente come i virus o i worm, quindi
richiedono un intervento diretto dell’aggressore per far giungere l’eseguibile
maligno alla vittima. A volte agiscono insieme: un worm viene iniettato in
rete con l’intento di installare dei trojan sui sistemi. Spesso è la vittima stessa
a ricercare e scaricare un trojan sul proprio computer, ad esempio inseriti
all’interno di programmi piratati.
Vengono in genere riconosciuti da un antivirus aggiornato come tutti i malware;
nel caso il trojan in questione non sia ancora stato scoperto dalle software house
degli antivirus, è possibile che esso venga rilevato, con la scansione euristica,
come probabile malware.
• Backdoor: sono "porte" di servizio (cioè le porte sul retro) che consentono di
superare in parte o totalmente le procedure di sicurezza attivate in un sistema
informatico.
Queste "porte" possono essere intenzionalmente create dai gestori del sistema
informatico per permettere una più agevole opera di manutenzione dell’infra-
struttura informatica mentre più spesso da cracker intenzionati a manomettere
il sistema. Possono anche essere installate autonomamente da alcuni malware
(come virus, worm o trojan), in modo da consentire ad un utente esterno di
prendere il controllo remoto della macchina senza l’autorizzazione del pro-
prietario. Oltre ad essere molto pericolosi per l’integrità delle informazioni
presenti sul sistema, le backdoor installate dai virus possono essere utilizzate
per condurre degli attacchi di tipo DDoS.
• Ransomware: è un tipo di malware che limita l’accesso del dispositivo che
infetta, richiedendo un riscatto da pagare per rimuovere la limitazione. Ad
esempio alcune forme di ransomware bloccano il sistema richiedendo all’utente
il pagamento per sbloccarlo, altri invece cifrano i file dell’utente chiedendo di
pagare per riportare i file cifrati in chiaro.
I ransomware più sofisticati utilizzano sistemi ibridi di criptazione (che non
necessitano di condivisione di chiavi fra i due utenti) sui documenti della vittima,
adottando una chiave privata casuale e una chiave pubblica fissa. L’autore del
malware è l’unico a conoscere la chiave di decriptazione privata.
I Ransomware sono in continua diffusione come riporta Kaspersky in figura 2.3
22. CAPITOLO 2. METODI DI ATTACCO 16
Figura 2.3: Numero di utenti attaccati da Ransomware (Q4 2014 - Q3 2015)
2.2.5 Ingegneria Sociale
Nel campo della sicurezza delle informazioni per ingegneria sociale (dall’inglese
social engineering) si intende lo studio del comportamento individuale di una persona
al fine di capire informazioni utili. Le principali tecniche sono:
• Phishing: è una attività illegale che sfrutta una tecnica di ingegneria sociale,
ed è utilizzata per ottenere l’accesso a informazioni personali o riservate con la
finalità del furto d’identità mediante l’utilizzo delle comunicazioni elettroniche,
soprattutto messaggi di posta elettronica fasulli o messaggi istantanei, ma
anche contatti telefonici.
Grazie a messaggi che imitano grafico e logo dei siti istituzionali, l’utente è
ingannato e portato a rivelare dati personali, come numero di conto corrente,
numero di carta di credito, codici di identificazione.
• Spam: lo spamming è l’invio di messaggi, anche verso indirizzi generici, non
verificati o sconosciuti, ad alta frequenza o a carattere di monotematicità tale da
renderli indesiderati (generalmente commerciali o offensivi). Può essere attuato
attraverso qualunque sistema di comunicazione, ma il più usato è Internet,
attraverso messaggi di posta elettronica, chat, tag board, forum, Facebook e
altri servizi di rete sociale.
Il principale scopo dello spamming è la pubblicità, il cui oggetto può andare
dalle più comuni offerte commerciali a proposte di vendita di materiale por-
nografico o illegale, come software pirata e farmaci senza prescrizione medica,
da discutibili progetti finanziari a veri e propri tentativi di truffa. L’80% delle
email inviate oggi nel mondo è Spam.
In merito alla proporzione di spam nel traffico mail (Figura 2.4) e alla prove-
nienza dello spam (Figura 2.5), Kaspersky, nota software house di antivirus
riporta i seguenti dati del Q2 2015.
23. CAPITOLO 2. METODI DI ATTACCO 17
Figura 2.4: Spam in proporzione al traffico mail, Gennaio - Giugno 2015
Figura 2.5: Paesi da cui proviene lo spam, Q2 2015
24. Capitolo 3
Metodi di Difesa
Per proteggere una rete da tali fattori di rischio, visti nel capito 2, vi sono varie
tecniche o approcci, come impostare policy per gli utenti e gli amministratori, impo-
stare sistemi di difesa della LAN o dell’host interessato e rinforzare l’autenticazione
e la riservatezza nelle comunicazioni.
3.1 Policy per l’utente e l’amministratore
• Password Policy: metodo di difesa all’autenticazione, sono un insieme di
regole volte a migliorare la sicurezza del computer, incoraggiando gli utenti
a utilizzare password complesse e non prevedibile. Le password policy sono
spesso parte del regolamento ufficiale di un’organizzazione e possono essere
insegnate come parte della formazione di sensibilizzazione alla sicurezza.
Alcuni governi hanno quadri di autenticazione nazionali che definiscono i
requisiti per l’autenticazione degli utenti per i servizi pubblici, inclusi i requisiti
per le password. I componenti tipici di una password policy include:
– Lunghezza e composizione password: molte Policy richiedono una
lunghezza minima della password, dato che le password più lunghe sono le
più sicure; certi sistemi impongono una lunghezza massima della password
per compatibilità con i sistemi legacy. Vengono inoltre suggeriti o imposti
requisiti del tipo di password che l’utente può scegliere, come ad esempio:
∗ l’uso di caratteri maiuscoli e minuscoli (Case Sensitivity);
∗ includere numeri e caratteri speciali (@, #, $);
∗ proibire parole presenti nella password blacklist e nelle informazioni
personali dell’utente;
∗ proibire password formate da date, numeri di telefono o numeri
comuni.
– Password Blacklist: lista di password bloccate per l’uso. Contiene
password costituite da combinazioni di caratteri che soddiferebbero la
policy, ma non dovrebbero essere utilizzate, perché ritenute insicure per
uno o più motivi, ad esempio essere facilmente prevedibile.
– Password duration: richiede all’utente di cambiare la password perio-
dicamente, ogni 90 o 180 giorni. Certi sistemi inseriscono la password
18
25. CAPITOLO 3. METODI DI DIFESA 19
precedente alla modifica nella blacklist, in modo che non sia più possibile
riutilizzarla.
• Antivirus/Antispam: metodo di difesa all’integrità di sistema e alla dispo-
nibilità, è un software programmato per funzionare su un computer atto a
prevenire, rilevare ed eventualmente rendere inoffensivi codici dannosi, noti
anche come malware, spiegati nel capitolo 2.2.4. Solitamente non si limita alla
funzione di eliminazione dei programmi malevoli ma ha anche una funzione
preventiva, impedendo che un virus possa entrare in un sistema ed infettarlo.
Gli antivirus non sono una protezione totale contro la totalità dei virus infor-
matici esistenti al mondo. Inoltre, un antivirus si basa su determinate regole e
algoritmi scritti da esseri umani, e pertanto queste possono portare a errori
("falsi positivi", ossia file riconosciuti come infetti quando non lo sono, e "falsi
negativi", il caso opposto) e a decisioni sbagliate. Un’ulteriore limitazione è
dovuta al fatto che un virus potrebbe essere ancora non abbastanza diffuso, e
quindi non essere ancora stato studiato da tutti i produttori di antivirus.
Gli antivirus utilizzano tecniche di analisi statica, che si basano esclusivamente
sull’analisi di codice e dati dei file binari e analisi dinamica (sandbox e honey-
pot), che si basano sull’esecuzione dinamica di un file per capire se è maligno o
benigno.
Uno dei principali metodi di funzionamento degli antivirus si basa sulla ricerca
nella memoria RAM o all’interno dei file presenti in un computer di uno schema
tipico di ogni virus: in pratica ogni virus è composto da un numero ben preciso
di istruzioni e il programma non fa altro che cercare se questa sequenza è
presente all’interno dei file o in memoria. Uno schema di questo tipo viene
anche detto "virus signature". Il successo di questa tecnica di ricerca si basa sul
costante aggiornamento degli schemi che l’antivirus è in grado di riconoscere,
aggiornamento effettuato solitamente da un gruppo di persone in seguito alle
segnalazioni degli utenti e da gruppi specializzati nell’individuazione di nuovi
virus.
• Aggiornamenti automatici: metodo di difesa all’integrità di sistema, è il
processo di sostituzione di un componente software di un sistema informatico
con un componente di uguale funzione più recente, avente lo scopo di risolvere
dei difetti riscontrati nel precedente componente, migliorarne le prestazioni
oppure aggiungere nuove funzioni. Questo permette di rimuovere bug presenti
sul software e vulnerabilità, e di conseguenza impedire l’utilizzo di exploit.
• Analisi dei Log: metodo di difesa all’auditing, consiste nella gestione e
nell’analisi degli eventi di sistema e di rete, come ad esempio: azioni eseguite
dal sistema, cambiamento di una password, login di un certo utente e messaggi
di errore di una applicazione, questo permette:
– Warning: individuare rapidamente eventuali attacchi in corso.
– Trouble-shooting: mantenere uno storico degli eventi per tracciare le
attività.
• CERT: (o CSIRT – Computer Security Incident Response Team) metodo di
difesa alla disponibilità, è un servizio offerto all’interno di una comunità di
26. CAPITOLO 3. METODI DI DIFESA 20
utenti Internet per la gestione di emergenze in seguito ad attacchi informatici. I
CERT si pongono come un punto di riferimento per gli utenti della rete, in grado
di aiutarli a risolvere qualunque problema legato alla sicurezza informatica.
Di norma un CERT è composto da persone specializzate in diversi ambiti,
per esempio amministratori di rete, amministratori di sistema ed esperti in
sicurezza informatica. Essi sono a conoscenza di come dovrebbero apparire,
in condizioni normali, i settori di loro competenza, e dunque sono in grado di
accorgersi immediatamente dell’eventuale verificarsi di un’anomalia.
I compiti fondamentali di un CERT consistono nel rispondere alle segnalazioni
degli utenti vittime di incidenti informatici e nell’analizzare i sistemi hardware
e software per individuarvi eventuali vulnerabilità.
3.2 Difesa della LAN o dell’Host
• Vulnerability scanner: è un programma progettato per ricercare e mappare
le vulnerabilità(debolezze) di un’applicazione, di un computer o di una rete.
Questo argomento viene trattato principalmente dalla presente tesi (Sezione
4.3).
• Sniffer: metodo visto nella sottosezione 2.1.2 può essere utilizzato anche come
metodo di difesa alla disponibilità, considerandolo un programma di utilità che
intercetta passivamente i dati che transitano nella rete, permettendo l’analisi e
l’individuazione di problemi di comunicazione o di tentativi di intrusione.
• Firewall: metodo di difesa all’integrità di sistema, è una entità hardware o
software che si pone tra internet e la rete (LAN firewall) o host (Personal
Firewall) che si vuole proteggere. Il firewall svolge una funzione di filtro,
consentendo il transito solamente alle connessioni ritenute lecite mediante una
opportuna “Policy”. Gli obiettivi principali dei firewall sono:
– monitorare, limitare e autenticare l’accesso alla rete da proteggere, nei
confronti di accessi provenienti dall’esterno (Internet);
– monitorare, limitare e autenticare l’accesso all’esterno (Internet) da parte
dell’utenza interna.
Un firewall filtra il traffico sulla base di un insieme di regole che definiscono
una policy di sicurezza. Esistono due politiche per l’applicazione delle regole:
– policy default-deny: viene permesso solo ciò che viene dichiarato esplicita-
mente, il resto viene vietato.
– policy default-allow: viene vietato solo ciò che viene dichiarato esplicita-
mente, il resto viene permesso.
Tutti i firewall utilizzano la politica default-deny poiché garantisce una maggiore
sicurezza e una maggiore accuratezza nella definizione delle regole rispetto alla
politica default-allow, anche se quest’ultima consente una configurazione più
semplice.
L’analisi dei pacchetti che costituiscono il traffico, secondo i criteri di sicurezza
formalizzati dalle regole, si traduce in una delle seguenti azioni:
27. CAPITOLO 3. METODI DI DIFESA 21
– allow: il firewall lascia passare il pacchetto.
– deny: il firewall blocca il pacchetto e lo rimanda al mittente.
– drop: il firewall blocca il pacchetto e lo scarta senza inviare alcuna
segnalazione al mittente.
Figura 3.1: LAN e Personal Firewall
I firewall possono essere di 2 tipi:
– I packet filter: agiscono a livello rete e trasporto, analizza tutti i pacchet-
ti in transito e applica azioni del tipo permit/deny sulla base di politiche
basate sugli indirizzi IP e le porte di provenienza e/o di destinazione. Gli
obiettivi dei firewall packet filter sono:
∗ rendere visibili ad internet solamente i servizi di rete destinati ad
un accesso pubblico (protezione dei servizi intranet e dei servizi
“inconsapevoli”);
∗ bloccare il traffico indesiderato (es: P2P, ...);
∗ strumento per la gestione delle emergenze (bloccare un host ostile o
contaminato da virus).
Agisce a livello di pacchetti IP, ma deve leggere anche i primi byte del
livello 4 per leggere le porte TCP o UDP.
– I proxy: agiscono a livello applicazione, sono programmi applicativi con
funzioni di tramite tra client e server. In modo implicito o esplicito il
client deve rivolgersi al proxy per poter raggiungere il server. Occorre un
proxy specifico per ogni applicazione. Gli obiettivi dei firewall proxy sono:
∗ mettere in comunicazione client e server che non hanno visibilità
diretta (ad esempio se il client è in una intranet);
∗ migliorare le prestazioni (es: Web Caching);
∗ aggiungere funzionalità di security (monitoraggio, autenticazione,
filtro).
• IDS(Intrusion detection system): metodo di difesa alla disponibilità, è un
dispositivo software/hardware per identificare accessi non autorizzati a host
o LAN. L’IDS generalmente si appoggia su un database per memorizzare le
28. CAPITOLO 3. METODI DI DIFESA 22
regole utilizzate per individuare le violazioni di sicurezza.
Gli IDS consistono in un insieme di tecniche e metodologie realizzate ad-hoc per
rilevare pacchetti dati sospetti a livello di rete, di trasporto o di applicazione;
sono infatti utilizzati per rilevare tutti gli attacchi alle reti informatiche e
ai computer. Questi attacchi includono gli attacchi alle reti informatiche
tramite lo sfruttamento di un servizio vulnerabile, attacchi attraverso l’invio di
dati malformati e applicazioni malevole, tentativi di accesso agli host tramite
innalzamento illecito dei privilegi degli utenti, accessi non autorizzati a computer
e file, e i classici programmi malevoli come virus, trojan e worm.
Gli IDS sono classificabili nel seguente modo:
– Host IDS (HIDS): software che analizza file di log del sistema, le system
call, le modifiche al file system del computer (modifiche nel file delle
password, nel database degli utenti e della gestione dei privilegi, ...) e
altre componenti del computer. Si basa sulla differenza tra lo stato
analizzato ed uno stato iniziale.
– Network IDS (NIDS): è un sistema che analizza il traffico che passa su
un segmento di rete dov’è attestato, cercando tracce di attacchi. Il suo
funzionamento è regolato in base a due principi:
∗ Signature matching: con cui l’ids cattura il traffico e lo confronta con
un database di firme di attacchi.
∗ Network analysis: che entra in funzione quando il signature matching
fallisce e che è in grado di rilevare anomalie nei flussi di traffico e
quindi di rilevare anche quegli attacchi che non sono ancora stati
scoperti come tali.
– Network Node IDS (NNIDS): analizza il traffico di rete che passa su
un unico nodo. Differente da Host-based IDS, dato che NNIDS non opera
nei file all’interno del sistema.La differenza tra NNIDS e NIDS è che nel
NNIDS il traffico analizzato è dell’unico nodo e non quello dell’intera rete.
Un applicazione del NNIDS è quella di installarlo in un dispositivo VPN
in modo tale che il traffico venga analizzato una volta decriptato.
– Hybrid IDS: combina HIDS e NIDS. Le informazioni recuperate dagli
agenti in esecuzioni negli Host vengono integrate con le informazioni
prelevate dalla rete locale.
Un IDS non può bloccare o filtrare i pacchetti in ingresso ed in uscita, né tanto
meno può modificarli, quindi non cerca di bloccare le intrusioni, ma si limita a
rilevarle e segnalarle.
• Port scanner: è una tecnica informatica progettata per rilevare quali porte
siano in ascolto su una macchina, permettendo di verificare se lo stato di tali
porte rispettino le politiche di sicurezza della rete di appartenenza di quella
macchina. Questo argomento viene trattato in modo approfondito nella sezione
4.3.2.7.
• Honeypot: è un sistema o componente hardware o software usato come "trap-
pola" o "esca" a fini di protezione contro gli attacchi informatici. Solitamente
29. CAPITOLO 3. METODI DI DIFESA 23
consiste in un computer o un sito che sembra essere parte della rete e conte-
nere informazioni preziose, ma che in realtà è ben isolato e non ha contenuti
sensibili o critici; potrebbe anche essere un file, un record, o un indirizzo IP
non utilizzato.
Il valore primario di un honeypot è l’informazione che esso dà sulla natura e la
frequenza di eventuali attacchi subiti dalla rete. Gli honeypot non contengono
informazioni reali e quindi non dovrebbero essere coinvolti da nessuna attività;
rilevazioni in senso opposto possono rivelare intrusioni non autorizzate o male-
vole in corso.
Gli honeypot possono portare dei rischi ad una rete, e devono essere maneggiati
con cura. Se non sono ben protetti, un hacker potrebbe usarli per entrare in
altri sistemi.
• Tecniche Antispam: le tecnica principale per limitare la ricezione di spam è
il filtraggio delle email mediante l’utilizzo di una lista con determinate regole,
vi sono diversi tipi di liste, elenchiamo di seguito le principali:
– Black list: lista di server classificati spammers che viene attivata sul mail
server rifiutando mail che provengono da questa lista. L’amministratore
del mailserver può costruire manualmente una propria lista o può avvalersi
di servizi in Internet che distribuiscono automaticamente le liste.
– Gray-List: si basano sul fatto che i mailer usati dagli spammer general-
mente tentano l’invio di una email una sola volta: Il GrayListing consiste
nel rigetto della ricezione della mail al primo tentativo, che verrà accettata
ad un successivo tentativo, dopo un tempo stabilito (tipicamente 300 sec.).
– White List: liste di mittenti “fidati” su cui non vengono effettuati con-
trolli antispam. Include gli host accettati da Gray-list e host inseriti
manualmente dall’amministratore.
– Filtri Bayesiani: sono filtri che cercano di classificare le mail in arrivo
assegnando un punteggio numerico a frasi o modelli che si presentano
nel messaggio. Ogni messaggio riceve quindi un punteggio compressivo
(tra 0 e 1) che, dopo aver stabilito una soglia, ci consente di classificare il
messaggio. Il filtro richiede un addestramento con mail spam e no-spam
con cui viene creato un database di riferimento.
3.3 Rinforzo di autenticazione e riservatezza
• Crittografia: tecnica che permette di "cifrare" un messaggio rendendolo
incomprensibile a tutti fuorché al suo destinatario.
In generale i due processi principali che vengono applicati in crittografia sono:
– Cifratura: trasformazione carattere per carattere(o bit a bit), senza
considerare la struttura linguistica del messaggio.
I sistemi di cifratura possono lavorare per:
∗ Trasposizione: chiamata anche permutazione significa mescolare i
caratteri di un messaggio in un nuovo ordine.
30. CAPITOLO 3. METODI DI DIFESA 24
∗ Sostituzione: scambiando un carattere con un altro carattere in
accordo con una regola specifica
Una cifratura che implementa entrambe le tecniche (trasposizione e
sostituzione) è chiamata "cifratura composta".
– Codifica: opera a livello di parola o frase.
Ogni sistema di crittografia ha due parti essenziali: un algoritmo (per codificare
e decodificare) e una "chiave", la quale data in input con il testo "in chiaro"
all’algoritmo, darà poi il testo codificato. In ogni moderno sistema di crittografia
si assume che l’algoritmo sia conosciuto dai potenziali "nemici", quindi la
sicurezza di un sistema risiede solo ed esclusivamente nella segretezza della
chiave.
Le principali tecniche di crittografia sono:
– Crittografia simmetrica: metodo con algoritmi che usano la stessa
chiave per cifrare e decifrare i messaggi. La chiave è detta segreta o
privata ed è un parametro di una funzione invertibile, servendo sia nella
fase di cifratura sia in quella decifratura, rende necessario che sia il mittente
che il destinatario sia a conoscenza di tale chiave.
Il principio di funzionamento si compone di tre fasi:
1. Il mittente cifra il messaggio con la chiave segreta.
2. Si trasmette il messaggio cifrato attraverso un canale.
3. Il destinatario riceve il messaggio cifrato e lo decifra con la chiave
segreta.
Figura 3.2: Crittografia Simmetrica
I vantaggi dell’utilizzo di tale metodo sono la velocità di funzionamento,
dato che gli algoritmi per cifrare e decifrare sono molto veloci, di conse-
guenza permettono l’utilizzo di chiavi molto lunghe, comportando una
maggiore sicurezza, e riguardo l’autenticità, l’integrità e la riservatezza,
ipotizzando che il gruppo di persone che possiedono la chiave sia quello
voluto, possiamo affermare che siano strettamente soddisfatte.
Gli svantaggi dell’utilizzo di tale metodo sono inerenti alla semplicità delle
operazioni utilizzate dagli algoritmi simmetrici, che diventano possibili
sempre in minor tempo, dato l’aumento dei tassi di velocità dei processori
degli elaboratori e dall’utilizzo di una chiave identica sia per il mittente che
31. CAPITOLO 3. METODI DI DIFESA 25
per i destinatari, questo comporta, nel caso il destinatario non disponesse
della chiave, al problema di fornirgliela mediante un canale sicuro e nel
caso il destinatario avesse già tale chiave, ai problemi legati all’affidabilità
di esso, cioè la possibilità che la chiave venga persa o data ad altri non
autorizzati.
Tra i vari algoritmi a chiave privata o segreta, quello che ha ottenuto
maggiore sviluppo e successo è stato il DES(Data Encryption Standard)
– Crittografia asimmetrica: metodo con algoritmi la cui chiave di crip-
tazione è diversa da quella di decrittazione: cosi facendo è possibile
distribuire la chiave di decrittazione (chiave pubblica) e mantenere segreta
la chiave di criptazione (chiave privata).
I concetti su cui si basa è che un messaggio criptato con una chiave può es-
sere decrittato solo con l’altra chiave e che è matematicamente improbabile
ricavare una chiave dall’altra, ovvero le chiavi devono essere indipendenti;
la conoscenza di una non deve concedere nessuna informazione utile alla
ricostruzione dell’altra. Vi sono due modalità di funzionamento:
∗ Modalità Autenticazione: solo il possessore della chiave privata può
aver cifrato il file. Ciò garantisce anche l’integrità del documento (una
volta decifrato e modificato, solo il possessore della chiave privata può
cifrarlo di nuovo) e il non ripudio da parte del firmatario, tuttavia
non è garantita la riservatezza per il destinatario dato che chiunque
sia in possesso della chiave pubblica può decifrare il file.
∗ Modalità Confidenziale: la confidenzialità e l’integrità del file sono
garantite dal fatto che solo il possessore della chiave privata può
decrittare il file.
Figura 3.3: Crittografia Asimmetrica
I vantaggi della crittografia asimmetrica, risolvono i problemi tipici della
crittografia a chiave simmetrica, ad esempio lo scambio delle chiavi non
32. CAPITOLO 3. METODI DI DIFESA 26
è più critico, anzi dato che le chiavi sono da considerarsi pubbliche non
esiste più alcun problema in merito, inoltre il problema dell’autenticità
del mittente viene risolto, in quanto solo il titolare di quella chiave pri-
vata potrà aver generato il messaggio corrispondente alla relativa chiave
pubblica. Si risolve il problema della riservatezza, poiché l’algoritmo è
simmetrico dal punto di vista delle chiavi (ciò che viene criptato con la
chiave privata va decrittato con quella pubblica, ma anche viceversa) è
sufficiente criptare un messaggio con la chiave pubblica affinché solo il
titolare della corrispondente chiave privata possa leggerlo.
Lo svantaggio principale della crittografia asimmetrica consiste nel fatto
che gli algoritmi utilizzati svolgano numerosi e complessi calcoli renden-
do la loro implementazione poco efficiente, soprattutto quando occorre
garantire una lunghezza minima della chiave superiore ai 1024 bit.
– Crittografia quantistica: consiste in un approccio alla crittografia che
utilizza peculiari proprietà della meccanica quantistica nella fase dello
scambio della chiave per evitare che questa possa essere intercettata da un
attaccante senza che le due parti in gioco se ne accorgano. Si utilizza questo
principio per realizzare un cifrario perfetto del tipo One Time Pad(la
chiave di cifratura è lunga quanto il testo e non riutilizzabile), senza il
problema di dover scambiare la chiave (anche se lunga quanto il messaggio)
necessariamente su un canale sicuro. Questo perché se attraverso il canale
passassero microparticelle e un potenziale nemico cercasse di intercettarle
dovrebbe compiere un’osservazione e quindi modificherebbe lo stato della
comunicazione, facendosi scoprire.
La crittografia ha diverse applicazioni, le principali sono:
– Message Digest: il Message Digest (MD) e’ una sequenza di bit di
lunghezza limitata e fissa associata ad un messaggio (P) del quale ne
rappresenta la firma (o impronta), si ottiene mediante una funzione crit-
tografica di hash, che è un algoritmo matematico che trasforma dei dati
di lunghezza arbitraria (messaggio) in una stringa binaria di dimensione
fissa. Inoltre tale funzione non è invertibile, ovvero non e’ possibile risalire
al messaggio originale avendo come unico elemento il MD. Se il massaggio
cambia anche di un solo bit il MD diventa completamente diverso.
L’algoritmo deve essere “Collision Free” , ovvero deve evitare (o minimiz-
zare) la possibilità che 2 messaggi generino lo stesso MD. Per questo il
MD non può essere troppo breve. Le principali applicazioni sono:
∗ Verificare l’integrità di messaggi o file: il messaggio P viene spedito
assieme al MD; chi li riceve ricalcola i MD e lo compara con quello
ricevuto, se corrisponde allora il messaggio è quello corrispondente al
MD spedito.
∗ Verifica della password: viene memorizzato il MD della password in
chiaro e per verificare che la password inviata sia quella corrispondente,
bisogna confrontare l’MD memorizzato in chiaro con l’MD ricavato
calcolando la funzione di hash con la password ricevuta.
33. CAPITOLO 3. METODI DI DIFESA 27
Le funzioni crittografiche di hash comunemente utilizzate in diversi stan-
dard e applicativi sono MD5 e SHA-1.
– Certificati: è un documento elettronico che attesta l’associazione uni-
voca tra una chiave pubblica e l’identità di un soggetto (una persona,
una società, un computer, ...) che dichiara di utilizzarla nell’ambito delle
procedure di cifratura asimmetrica e autenticazione tramite firma digitale.
Il certificato è fornito da un ente terzo fidato e riconosciuto come au-
torità di certificazione (CA), è a sua volta autenticato per evitarne la
falsificazione sempre attraverso firma digitale ovvero cifrato con la chiave
privata dell’associazione la quale fornisce poi la rispettiva chiave pubblica
associata per verificarlo.
I certificati risolvono l’impraticabilità dello scambio di chiavi pubbliche
utilizzate per la crittografia tra gli utenti, garantendo che una chiave
pubblica sia associata alla vera identità del soggetto che la rivendica
come propria. X.509 è lo standard Internazionale emanato da ITU per
il formato dei Certificati. Questo standard stabilisce quali informazioni
possono comporre un certificato, i principali campi sono:
∗ Version: numero della versione di X.509 (v1, v2 o v3).
∗ Serial Number: numero univoco di emissione da parte della CA.
∗ Signature Algorithm: algoritmo usato per firmare il certificato.
∗ Issuer: Distinguished Name DN della CA che ha emesso il certificato.
∗ Validity: inizio e fine del periodo di Validità.
∗ Subject: Distinguished Name DN del proprietario del Certificato.
∗ Subject Public Key Info : chiave pubblica (Modulo + Esponente) e
algoritmo utilizzato.
∗ X509v3 Extensions: estensioni opzionali (solo v3).
∗ Signature: firma da parte della CA (MD del Certificato, cifrato con
la chiave privata della CA).
Figura 3.4: Certificato X.509
La CA è un ente che firma le richieste di certificato da parte di una
comunità di utenti/host/software garantendone l’identità. La CA possiede
una propria coppia di chiavi e autofirma la propria richiesta (self-signed).
Per identificare univocamente i certificati esiste un name-space gerarchico
di certificati, in cui ogni nodo ha un attributo e un valore.
I certificati X.509 possono essere rappresentati in diversi possibili formati,
i principali sono:
∗ DER: formato binario utilizzato in ambiente Windows e Java con
estensioni .DER o .CER.
34. CAPITOLO 3. METODI DI DIFESA 28
∗ PEM: formato testuale (base64) ed e’ utilizzato prevalentemente in
ambiente Unix. Può contenere certificati, richieste di certificati, chiavi
private e PKCS12.
∗ PKCS (Public Key Cryptography Standards): e’ un gruppo si Stan-
dard creati da “RSA Data Security” con lo scopo di creare formati di
interoperabilità.
• Protocolli di Autenticazione: l’autenticazione è un servizio di sicurezza
che consente di accertare l’identità dichiarata da una entità (origine dei dati
o peer in una comunicazione), mediate la verifica di credenziali. Le tecniche
possono basarsi sulla conoscenza di un segreto (password, PIN, ..), tecniche
crittografiche o caratteristiche biometriche (se si tratta di una persona). Le
principali tecniche di autenticazione sono:
– Autenticazione tramite password: è un protocollo largamente utiliz-
zato perché facile da implementare e da usare. E’ insicuro specialmente
quando la password non viene modificata regolarmente, è individuabile
con attacco a dizionario, viene trasmessa in chiaro. I principali protocolli
di autenticazione significativi basati su password:
∗ PAP (Password Authentication Protocol): è usato esclusivamente dal
protocollo PPP e presume che il canale sia sicuro (non intercettabile);
Le fasi sono:
1. Il client manda al server il proprio nome e la password.
2. Il server cerca in una tabella il nome utente e verifica la correttezza
della password applicando una funzione di trasformazione (che
consente di evitare che il server memorizzi la password in chiaro).
Figura 3.5: Autenticazione tramite password: PAP
∗ CHAP (Challenge Handshake Authentication Protocol): è usato in
PPP e Windows; Le fasi sono:
1. Il server invia un numero casuale, in figura 3.6 corrisponde a "c"
(challenge) utilizzato dal client come salt.
2. La funzione di trasformazione, in figura 3.6 corrisponde ad "r", è
calcolata sia dal server che dal client.
35. CAPITOLO 3. METODI DI DIFESA 29
Figura 3.6: Autenticazione tramite password: CHAP
Il vantaggio è che la password non viene scambiata tra client e server,
ma il problema è che il DB delle password deve essere salvato in
chiaro, quindi vulnerabile ad attacco.
∗ OTP (One-Time Password): simile a CHAP, l’unica differenza è che
"c" non è più un numero casuale, ma diventa un numero progressivo.
Una OTP non può essere memorizzata da una persona, quindi richiede
una tecnologia supplementare per poter essere utilizzata.
L’algoritmo OTP principale è TOTP(Time based OTP), le password
sono generate con un algoritmo funzione di una chiave segreta e il
tempo corrente.
– Autenticazione con challenge e chiave simmetrica: le fasi sono:
1. Il client e il server , che condividono una chiave simmetrica S, creano
un numero casuale, detto Challenge (c1 e c2).
2. Il server invia la propria identità (B) e il proprio Challenge (c1).
3. Il client risponde inviando la propria identità (A) e la cifratura di c1,
c2 e B.
4. Il server chiude il protocollo inviando la cifratura di c1, c2 e A.
Figura 3.7: Autenticazione con challenge e chiave simmetrica
Il vantaggio è che i messaggi cifrati non sono esposti ad attacco al dizionario,
ma il problema è che se abbiamo N nodi ogni nodo deve conoscere N-1
chiavi.
36. CAPITOLO 3. METODI DI DIFESA 30
– Autenticazione con KDC: il modello del “Centro di Distribuzione delle
Chiavi” (KDC, Key Distribution Center) si applica ad una comunità di N
entità (persone/host/servizi) che devono autenticarsi reciprocamente. In
questo schema ogni utente ha una singola chiave condivisa con il KDC.
Le fasi, quando A deve comunicare con B, sono:
1. A condivide con KDC la chiave Ka, B condivide con KDC la chiave
Kb.
2. A sceglie una chiave di sessione Ks, invia a KDC la chiave e B, in
modo cifrato.
3. KDC decifra Ks e la invia a B.
Il vantaggio è che basta la singola chiave Ka per comunicare con N entità,
ma il problemi è che A deve inserire la chiave Ka per ogni connessione.
– Autenticazione Kerberos: Kerberos e’ un protocollo di Autenticazione
(progettato al MIT) che implementa il modello del “Centro di Distribuzione
delle Chiavi”. Un sistema Kerberos gestisce una comunità di utenti
(REALM) in cui ogni utente ha una singola chiave condivisa Ka con il
KDC, ma il KDC si compone del AS (Authentication Server) che gestisce
il LOGIN e del TGS (Ticket Granting Server) che gestisce la sessione.
La password di A (Ka) viene usata una sola volta per tutte le autenticazioni
della sessione (Single Sign On - SSO) e rimane sul computer del client solo
per pochi millisecondi. La chiave di sessione che A presenta a B serve solo
a dimostrare l’identità di A (autenticazione). B deciderà cosa consentire
di fare ad A (autorizzazione).
Le fasi sono:
1. A chiede all’AS la chiave di sessione Ks (Login sul REALM). (Frecce
rosse in figura 3.8).
2. A deve comunicare con B, quindi chiede al TGS un Ticket Kab da
usare con B. (Frecce Gialle in figura 3.8).
3. A si rivolge a B comunicandogli la chiave di sessione Kab. (Frecce
verdi in figura 3.8).
37. CAPITOLO 3. METODI DI DIFESA 31
Figura 3.8: Autenticazione Kerberos
– Autenticazione con PKI (Public Key Infrastructure): è un insieme di
processi e mezzi tecnologici che consentono a terze parti fidate di verificare
o farsi garanti dell’identità di un utente, oltre che di associare una chiave
pubblica a un utente, normalmente per mezzo di software distribuito in
modo coordinato su diversi sistemi. L’utilizzo di una PKI (Public Key
Infrastructure) ha il vantaggio di non richiedere preventivamente chiavi
condivise. Le fasi per la comunicazione, considerando che i nodi A e B
hanno una coppia di chiavi(pubblica e privata) sono:
1. A invia la propria Identità e un Challenge Ra a B, cifrati con la chiave
pubblica di B.
2. B decifra il messaggio, sceglie una chiave di sessione Ks e la invia ad
A.
3. A risponde con il Challenge di B cifrato con la chiave di sessione Ks.
Questo protocollo garantisce, come servizi di sicurezza, la confidenzialità,
dato che la chiave di sessione Ks è condivisa e l’autenticazione, dato che
gli host hanno verificato l’identità reciproca.
• Sicurezza nelle comunicazioni: la cifratura di una comunicazione può
avvenire a diversi livelli:
– Applicazione: alcune applicazioni cifrate si appoggiano sull’applicazione
in chiaro. Il payload viene cifrato e quindi veicolato da applicativo non
cifrato.
– Sessione: il protocollo SSL/TLS fornisce un Layer intermedio tra TCP
e applicazione che consente di cifrare le applicazioni. Questo richiede la
riscrittura delle applicazioni che devono interfacciarsi al Layer SSL anziché
TCP.
38. CAPITOLO 3. METODI DI DIFESA 32
– Rete: IPsec e’ un Layer di cifratura che viene posizionato a livello rete,
rendendo la cifratura trasparente al livello delle applicazioni, che non
devono essere modificate. Anche se funziona a livello rete, è orientato
alla connessione, a causa della cifratura con chiave, ne consegue che le
comunicazioni UDP attraverso IPsec sono poco efficienti per l’ OverHead
elevato.
Una “connessione” IPsec chiamata SA (Security Association), e’ una
connessione Simplex e ha un identificatore di sicurezza associato. Per una
connessione Duplex è necessario attivare un SA per ciascuna direzione.
L’Identificatore, scritto in ogni pacchetto, consente al ricevente individuare
la SA e quindi di reperire la chiave di decifratura.
IPsec, analogamente a SSL, è formato da:
Un protocollo per lo scambio delle chiavi necessarie per la cifratura del
canale:
∗ IKE (Internet Key Exchange): è utilizzato per stabilire una SA, è a
livello applicazione e usa UDP come trasporto sulla porta 500.
L’obiettivo e’ stabilire una Shared Session Secret da cui poi derivare la
chiave per cifrare la SA. Viene utilizzato l’algoritmo di Diffie-Hellman.
Due protocolli alternativi per la cifratura dei dati sul canale:
∗ AH (Authentication Header): gestisce integrità, ma non confiden-
zialità, dato che non ha la cifratura. Il protocollo determina una
intestazione di 24 Byte che contiene l’HMAC del Datagramma IP
(Header+payload) e può essere inserita nelle estensioni dei protocolli
IPv4 e IPv6 (Transport Mode) o nell’estensione di un nuova intesta-
zione IP che come payload incapsula il pacchetto IP originale (Tunnel
Mode).
∗ ESP (Encapsultating Security Payload): rispetto a AH, aggiunge
la confidenzialità poiché il payload viene cifrato. Il campo HMAC
(diversamente da AH) non copre l’Header IP ed è accodato al payload
cifrato, cosi può essere calcolato mentre il pacchetto sta uscendo.
La cifratura avviene in modalità Transport, cioè viene cifrata la trama
di trasporto (TCP Header + Payload) o in modalità Tunnel, che viene
cifrato il pacchetto IP (old IP header+TCP header+payload).
Figura 3.9: Sicurezza nelle comunicazioni
39. CAPITOLO 3. METODI DI DIFESA 33
• VPN(Virtual Private Network): è una rete di telecomunicazioni privata, instau-
rata tra soggetti che utilizzano, come infrastruttura di trasporto, un sistema di
trasmissione pubblico e condiviso, come ad esempio la rete Internet. Lo scopo
delle reti VPN è quello di offrire alle aziende, a un costo inferiore, le stesse
possibilità delle linee private in affitto, ma sfruttando reti condivise pubbliche.
Una VPN è come l’estensione, a scala geografica, di una rete locale privata
aziendale che colleghi tra loro siti interni all’azienda stessa variamente dislocati
su un ampio territorio, sfruttando l’instradamento tramite IP per il trasporto su
scala geografica e realizzando di fatto una rete LAN, detta appunto "virtuale"
e "privata", logicamente del tutto equivalente a un’infrastruttura fisica di rete.
I protocolli più utilizzati per realizzare i tunnel cifrati della VPN sono: IPsec
con ESP in tunnel mode e SSL/TLS
40. Capitolo 4
Vulnerabilità
Nel presente capitolo verrà affrontato l’argomento centrale di questa tesi, le
vulnerabilità. Illustrando e dettagliando cosa sono, quando si presentano, cosa
comporta la loro presenza, come si possono rilevare e come funzionano i software per
la rilevazione di vulnerabilità.
4.1 Vulnerabilità ed Exploit
In questa sezione vedremo cosa sono le vulnerabilità e gli esploit, cercando di
definirli, categorizzarli e spiegarne l’ambito in cui possiamo trovarli.
4.1.1 Vulnerabilità
Secondo la terminologia CVE del MITRE, società statunitense senza fini di
lucro, che svolge ricerca e crea soluzioni in particolare nel campo della sicurezza
informatica per gli Stati Uniti d’America, si definisco le vulnerabilità come uno stato
degli elaboratori in cui si permette ad un attaccante di:
• eseguire comandi come un altro utente;
• accedere a dati ai quali esso non è autorizzato;
• assumere un identità altrui;
• condurre un denial of service.
Quindi le vulnerabilità di un sistema informatico consistono nelle sue, varie ed
eventuali, falle di sicurezza, che il sistema può presentare, sotto diverse forme. Queste
falle di sicurezza possono essere sfruttati dagli exploit per poi condurre attacchi
informatici, definiamo un exploit come un frammento di codice, una sequenza
di comandi, o un insieme di dati, che prendono vantaggio da un bug o da una
vulnerabilità per acquisire privilegi di accesso, eseguire codice o creare DoS su di una
risorsa.
L’informatizzazione della società e quindi maggiori necessità informatiche, hanno
comportato ad un aumento dei prodotti e di conseguenza delle vulnerabilità, come
si può osservare dalla figura 4.1 dove vengono mostrate il numero di vulnerabilità,
suddivisione per anno, rilevate in internet dal 1999 al 2016.
34
41. CAPITOLO 4. VULNERABILITÀ 35
Figura 4.1: Vulnerabilità per anno, dal 1999 al 2016
4.1.2 Categorie delle vulnerabilità
Le categorie delle vulnerabilità sono identificate in base al tipo di disservizio che
possono causare, elenchiamo i principali tipi di vulnerabilità:
• Denial of Service: vulnerabilità che rende una macchina o i servizi da essa
offerti non disponibili, impedendone l’utilizzo ai suoi utenti.
• Arbitrary Code Execution: vulnerabilità data da un bug software che
permette all’attaccante di eseguire codice arbitrariamente sulla macchina della
vittima.
• Buffer overflow: condizione di errore che si verifica a runtime quando in un
buffer di una data dimensione vengono scritti dati di dimensioni maggiori.
• XSS(Cross-site scripting): vulnerabilità che affligge siti web dinamici che
impiegano un insufficiente controllo dell’input nei form. Permette di inserire o
eseguire codice lato client al fine di attuare un insieme variegato di attacchi
(raccolta, manipolazione e reindirizzamento di informazioni riservate, ...).
• Directory Traversal: vulnerabilità che permette di accedere a file e directory
che sono memorizzate fuori dalla web root folder.
• Bypass Something: vulnerabilità data da un bug che permette di aggirare il
sistema o meccanismi di sicurezza, permettendo di ottenere l’accesso al sistema
o alla rete.
• Gain Information: vulnerabilità che permettono all’attaccante di ottenere
informazioni sulla macchina o servizi della vittima.
• Gain Privilege (Privilege escalation): tramite un bug, dovuto a un errore di
programmazione o all’assenza di un controllo in un sistema operativo o in un
42. CAPITOLO 4. VULNERABILITÀ 36
applicazione software, permette di ottenere i privilegi di accesso a risorse che
normalmente non sarebbero accessibili.
• SQL Injection : vulnerabilità data dall’inefficienza dei controlli sui dati
ricevuti in input e permette l’inserimento di codice maligno all’interno di una
query SQL.
• File Inclusion: vulnerabilità presente nei siti web e permette all’attaccante di
includere un file, a causa di assenza di controlli sull’input immesso dall’utente.
Questo può portare ad esempio al Code Execution sul server web.
• Memory Corruption: vulnerabilità che permette la modifica di contenuti
in certe locazioni di memoria, permettendo di cambiare il comportamento del
programma o leggere valori interni.
• CSRF:(Cross-site request forgery) vulnerabilità dei siti web dinamici quando
sono progettati per ricevere richieste da un client senza meccanismi per con-
trollare se la richiesta è stata invitata intenzionalmente dall’utente o da un
sistema automatico del browser.
• Http Response Splitting: vulnerabilità delle applicazioni web, il quale
attaccante invia request http che forzano il server web nel generare un output,
il quale viene interpretato dalla vittima(un altro client) come due response
http invece che una(come dovrebbe essere), quindi eseguendo codice come se
arrivasse unicamente dall’applicazione web.
In figura 4.2 vengono mostrate il numero di vulnerabilità, suddivise per tipo,
rilevate in internet dal 1999 al 2016
Figura 4.2: Vulnerabilità per tipo, dal 1999 al 2016
4.1.3 Ciclo di vita delle vulnerabilità
Una vulnerabilità attraversa diverse fasi della sua evoluzione che ne determinano
la criticità e la diffusione.
43. CAPITOLO 4. VULNERABILITÀ 37
1. Creazione: durante la fase di sviluppo viene introdotto nel codice un errore.
2. Scoperta: un esperto di sicurezza scopre l’errore all’interno del codice, intuisce
che questo ha una o più conseguenze negative sulla sicurezza del software o del
sistema.
Da questo momento si parla di vulnerabilità e non più di errore nel codice;
3. Condivisione: la conoscenza della vulnerabilità scoperta viene fatta prima
circolare in ambito ristretto, poi si diffonde anche grazie allo sviluppo di tool
automatici che ne fanno uso.
4. Pubblicazione Patch/Upgrade: il produttore del sistema viene a conoscen-
za della vulnerabilità, quindi corregge l’errore emettendo una patch o una nuova
versione del codice. La presenza di tale vulnerabilità, insieme alla presenza
della patch disponibile viene resa pubblica.
5. Installazione Patch/Upgrade: i sistemisti installano la patch/upgrade nei
sistemi per risolvere le vulnerabilità.
Tutti i sistemi sono soggetti a una finestra di esposizione, anche se gestiti al
meglio. Infatti la scoperta di nuove vulnerabilità è impredicibile. Inoltre, la cono-
scenza dell’individuazione delle nuove vulnerabilità circola velocemente e altrettanto
velocemente la disponibilità di tool automatici atti all’utilizzo delle vulnerabilità
trovate. Purtroppo, le patch rappresentano una soluzione spesso inefficace in quanto
vi è scarsa consapevolezza di molti sistemisti, la frequenza di emissione troppo elevata
e spesso causa di malfunzionamenti o nuovi problemi.
Figura 4.3: Finestra temporale di una vulnerabilità
E’ interessante notare che la curva di figura 4.3 cresce rapidamente nonostante il
fatto che sfruttare alcune vulnerabilità sia complesso. Questo è dovuto principalmente
a due fattori:
• Scripting: dopo le prime intrusioni, compiute da esperti, la tecnica per
realizzarle viene automatizzata (scrittura di script, descrizione delle procedure).
44. CAPITOLO 4. VULNERABILITÀ 38
• Script Kiddies: la disponibilità di exploit (tool automatici) permette di sfrut-
tare con successo vulnerabilità nei sistemi anche a persone dotate di scar-
se competenze tecniche, aumentando drasticamente il numero dei potenziali
attaccanti.
4.1.4 Exploit
Un exploit è un frammento di codice, una sequenza di comandi, o un insieme di
dati, che prendono vantaggio da un bug o da una vulnerabilità per acquisire privilegi
di accesso, eseguire codice o creare DoS su di una risorsa.
Ci sono diversi modi per classificare gli exploit. Il più comune è una classificazione
a seconda del modo in cui l’exploit contatta l’applicazione vulnerabile, quindi si
possono distinguere in:
• Exploit remoto: compiuto attraverso la rete e sfrutta la vulnerabilità senza
precedenti accessi al sistema.
• Exploit locale: richiede un preventivo accesso al sistema e solitamente fa
aumentare i privilegi dell’utente oltre a quelli impostati dall’amministratore.
Gli exploit possono anche essere classificati a seconda del tipo di vulnerabilità che
sfruttano, quindi prendendo il nome della categoria dove rientra la vulnerabilità,
come visto nella sezione della categorizzazione delle vulnerabilità (4.1.2).
Lo scopo di molti exploit è quello di acquisire i privilegi di amministratore su un
sistema, per poi poter svolgere qualsiasi azione voluta. Normalmente un exploit
sfrutta solo una specifica falla, e quando viene pubblicato questa falla è riparata e
l’exploit diventa inutile per le nuove versioni del programma. Per questo motivo
alcuni hacker non divulgano gli exploit trovati ma li tengono riservati per loro o per
la loro comunità. Questi exploit sono chiamati zero day exploit, altrimenti detti
script kiddie.
Nella figura 4.4 dove è rappresentata la distribuzione degli esploit usati negli attacchi,
per tipo di applicazione, nel corso dell’anno 2015, si può notare che la maggior parte
degli attacchi usa exploit inerenti ai browser. Questo può dipendere, in parte dalla
presenza di bug nel codice dei browser, ma principalmente dal fatto che, oltre ad
essere una delle applicazione sicuramente presente in un elaboratore e una delle più
utilizzate, è l’applicazione che permette all’utente di interfacciarsi direttamente su
internet, questo la rende l’applicazione più interessante su cui effettuare attacchi.
4.2 Vulnerability Assessment
Volendo valutare il livello di sicurezza di una certa configurazione di un sistema, il
primo passo da compiere è sicuramente quello di eseguire un vulnerability assessment.
Tale valutazione delle vulnerabilità consiste di un processo volto a valutare l’efficacia
dei meccanismi di sicurezza e quindi alla individuazione, alla quantificazione e all’as-
segnazione di priorità riguardo le eventuali vulnerabilità di un sistema. Le operazioni
appena descritte hanno lo scopo, una volta trovate le falle di sicurezza, di migliorare
il sistema e prevenire eventuali attacchi basati sui dati riscontrati.
Questa ricerca può essere effettuata da vari strumenti, ad esempio gli scanner di
45. CAPITOLO 4. VULNERABILITÀ 39
Figura 4.4: Distribuzione degli exploit usati negli attacchi, per tipo di applicazione, 2015
vulnerabilità, che saranno spiegati in modo approfondito nella sezione 4.3.
In questa attività, non si simula il malintenzionato, quindi, è necessario facilitare
il più possibile l’attività di Vulnerability assessment. Ad esempio, se la rete presa
in considerazione ha un firewall, le varie scansioni è preferibile farle oltre il firewall.
Questo perché, farle prima dell’apparato genererebbe molti falsi positivi, in quanto il
firewall blocca le richieste.
E’ importante, sottolineare che questo genere di attività, pur portando sicuramente un
valore aggiunto alla sicurezza attuale dell’infrastruttura aziendale presa in considera-
zione, ha anche delle limitazioni. Questa attività soffre del problema di degradazione,
ossia, nel tempo nuove vulnerabilità verranno scoperte, nuove macchine verranno
aggiunte o tolte dalla rete, nuove patch verranno installate sulle macchine, nuovi
servizi verranno attivati, e dato che il Vulnerability assessment è "una fotografia"
della situazione del momento, è quindi fondamentale ripeterlo ogni qual volta sia
necessario verificare il livello di sicurezza del sistema, prestando attenzione che i vari
apparati, che si vuole analizzare, siano accesi e collegati alla rete.
Dato che spesso le workstation sono multi-utente, ed ogni utente abilita servizi
personali, ovviamente durante l’attività di Vulnerability assessment essendo attivo un
solo utente, solo quest’ultimo verrà analizzato. E’ quindi fondamentale, che durante
l’attività di analisi, la macchina sia loggata con l’utenza più usata, o comunque
di maggior interesse. Inoltre a volte è possibile che alcune workstation, abbiano
installata una o più macchine virtuali, e anche quest’ultime potrebbero essere messe
in rete, queste macchine, se non sono attive, non saranno analizzate.
4.3 Vulnerability Scanner
Un vulnerability scanner è un programma progettato per ricercare e mappare le
debolezze di un’applicazione, di un computer o di una rete, eseguendo scansioni. Le
scansioni possono essere in modo "non invasivo" o "invasivo".