Scarica Sicurezza Informatica: Difesa dalle Minacce Informatiche e più Appunti in PDF di Sicurezza Dei Sistemi Informativi solo su Docsity!
Appunti di Sistemi di Sicurezza Informatici in
internet
Alan Bimbati
Telegram: @AlanBimbati
Questo lavoro ´e sotto la licenza Creative Commons BY-SA 4.
Contents
1 Introduzione
Un attacco informatico ´e qualsiasi azione che comprometta la confiden- zialit´a, l’integrit´a o la disponibilit´a di un computer o delle informazioni che contiene:
- Confidenzialit´a: Garanzia che i sistemi forniscano l’informazione so- lamente a chi ´e autorizzato a ottenerla
- Integrit´a: Garanzia che l’informazione sia mantenuta e trasmessa inalterata
- Disponibilit´a: Garanzia che l’informazione risulti accessibile quando previsto a chi pu´o e deve usufruirne Percezione e Misdirection: quando noi vediamo qualcosa agiamo secondo 4 passaggi:
- Percepiamo gli input (es. Vediamo un serpente)
- Applichiamo uno schema (es. Riconosciamo che ´e un serpente)
- Correliamo con un modello noto (es. Siamo in universit´a)
- Reagiamo di conseguenza (es. Non ci spaventiamo perch´e siamo in universit´a)
Il compito di un hacker ´e quello di capire come ragiona il malcapitato e fregarlo attraverso una Misdirection, ovvero cercare di fargli applicare un modello in modo che la sua reazione sia quella di farci entrare. E bene per´´ o pensare alla sicurezza sia a lato hardware che a lato software. I device, i server, i rack devono essere protetti e inaccessibili.Si deve rispettare il protocollo HVAC (Heating Ventilation Air Condition), i computer devono essere raffreddati e sicuri. In caso di black out ci deve essere un raffreddamento ad aria.
2 Crittografia
Ci possono essere diversi tipi di crittografia:
- A chiave simmetrica: attraverso l’utilizzo di chiavi di cifratura e decifratura.
- A chiave asimmetrica: algoritmi complessi ma rapidi dove la si- curezza dipende solo dalla chiave. Il problema consiste proprio in scambiarsi la chiave.
- Crittografia ellittica: Nuova tipologia di crittografia in cui si utilizza una curva.
Pu´o essere comodo utilizzare una crittografia simmetrica per iniziare una discussione e passare a una chiave asimmetrica.
Steganografia: crittografia nascosta. Viene utilizzato un file multi- mediale come veicolo del messaggio nascosto. Il destinatario deve avere lo stesso file multimediale e compararli.
Certificato digitale: associazione della chiave pubblica dell’utente alla sua identit´a fisica. Questa associazione viene data da delle Certification Authority, ha una scadenza temporale ma pu´o anche essere revocata prima, sia dall’emettitore che dal richiedente. I certificati contengono:
- Periodo di validit´a
- Soggetto
- Nome dell’autorit´a emittente
- Chiave pubblica
- Firma digitale dell’autorit´a
Il percorso ´e il seguente:
- L’utente va dal Registration Authority, si fa riconoscere e gli da la chiave pubblica.
- Il Registration Authority dice al Certificate Authority che l’utente ´e ok.
- Il Certificate Authority da una copia del certificato all’utente e salva i certificati nel Validation Authority.
- L’utente presenta il suo certificato al sito.
- Il sito manda il certificato al Validation Authority per vedere se effet- tivamente ce l’ha.
- Il Validation Authority da la conferma.
Funzioni di hash: algoritmo unidirezionale che preso un dato sensibile restituisce un hash, questo hash deve essere univoco, es. Stesse password devono avere stesse hash, ma password diverse no. Algoritmi come MD5, ma sono facili da bucare, si aggiunge il salt (algoritmi tipo bcrypt), il salt ´e diverso da password a password e rende quindi l’hash difficile da bucare.
- Source quence: un protocollo che rallenta la rete. Utilizzato ripetutamente si crea deny of service
- Time exceeded for a datagram: ogni paccetto ha un TTL di 255, ogni volta che passa per un nuovo nodo il TTL diminuisce di
- Se arriva a 0 il server riceve un time exceeded for a datagram. Se un server crea un pacchetto time exceeded for a datagram il client crede che il server sia irraggiungibile.
- Smurf Attack: un ping broadcast (quindi l’ultimo numero dell’indirizzo IP `e 255) che richiede un pacchetto grande per esempio 64kb. ping 1.1.1.255 -s 64k, se poi si fa ip spoofing il destinatario del ping diventa un altro PC che riceve da tutta la rete 2ˆ16 pacchetti da 64kb.
- Ping Flood: utilizzare il ping -f. richiede un pacchetto di ve- locit
a massima. Unito con un ping -f -s 64ke un macello! - Syn Flood: il protocollo TCP prevede un 3-way handshake per allacciare una sessione attraverso i tre pacchetti: SYN (client), SYN/ACK (server) e ACK (client). Tuttavia se il client non risponde con un ACK, ma continua ad inviare SYN, si riduce la banda del server (possibile DoS) e il server alloca di con- tinuo uno spazio in attesa dell’ACK, occupando quindi memo- ria. e probabilmente, non avendo mai creato una sessione intera, l’attacco non viene salvato nei file di log.
‘
- ARP: ´e possibile rispondere ad un ARP reply con un ARP request malevolo per creare un attacco di ARP spoofing. Si associa ad un indirizzo IP non il MAC address corretto, ma uno malevolo (veicolo il traffico).
- DHCP
- Insider: all’interno della rete, ´e possibile fingersi DHCP, quando uno chiede un indirizzo IP, l’attaccante restituisce un un indirizzo IP valido, dando per´o un default getway errato (veicolato il traf- fico).
- Shadow Server: entro nella rete mi fingo un DNS e cambio le tabelle di traduzioni, quindi di nuovo veicolo il traffico verso siti fake.
- Client malevolo: effettuo delle richieste al DHCP chiedendo un indirizzo IP. Cambio MAC e chiedo di nuovo un altro indirizzo IP finch`e il DHCP non esaurisce gli indirizzi IP disponibili.
- DNS
- DNS Shadow Server
- Cache Poisoning: inserisco nella cache del client dei risolver DNS errato, quindi i domini degli indirizzi ora puntano a server malevoli.
- Risposte senza domande: il DNS server pu
o inviare delle risposte al client. E quindi possibile creare delle risposte finte anche senza che il browser client abbia richiesto nulla
4 SO e infrastrutture virtuali
4.1 Hardening
E un processo che riduce la vulnerabilit´^ ´ a riducendo l’accesso. Less is better, utilizzare solo il necessario. Le tecniche di hardening includono:
- disattivazione di programmi e servizi non utilizzati
- controllo delle configurazioni del software
- controllo dei permessi e delle ACL sui file e verifiche di appropriatezza
- configurazione di parametri di sistema
4.2 Accesso
Per acecsso si intende:
- Identificazione: ”chi sei?”, identificare la persona di fronte.
- Autenticazione: ”dimostramelo”, tipicamente attraverso password. L’accesso pu´o essere: - Semplice: un dispositivo solo, bancomat concactless. - A 1-2-3 fattori: password (logica), bancomat o SIM (fisica), impronta digitale (biometrica)
- Autorizzazione: ”conferma”, verifica nel database il permesso.
4.2.1 Access Control
Il controllo di accesso pu´o essere di tipo:
- Discretionary: politica per cui ogni persona ha un livello di permessi preimpostato.
- Mandatory: vengono gestite delle policy pi´u complesse su tutti gli accessi in termini di processi e device.
ripristino di fronte ad un disastro. Si utilizzano due parametri per calcolare la performance di un sistema di backup:
Figure 2: RTO-RPO
- RPO recovery point objective, ultimo punto di ripristino stabile.
- RTO Recovery time objective, tempo per ripartire.
6 Intrusion Detection System (IDS)
Con Intrusion Detection si identificano metodologie e tecniche per scoprire attivit´a anomale, scorrette o non appropriate nei sistemi e nelle reti.
- Networkbased IDS: Il network intusion decection system vede i pac- chetti arrivare da porte diverse, di conseguenza capisce che vi ´e una anomalia. Un analizzatore di pacchetti normalmente vede solo i pac- chetti che lo coinvolgono quindi provenienti da lui, in arrivo a lui o broadcast. Alcune schede di rete possono decidere di mandare i pac- chetti in modo promiscuo: legge tutti i pacchetti della rete. Sotware utilizzati per difesa: SNORT, SURICATA che fanno da logging e da network intrusion detection.
- Host-based IDS: gira a livello di sistema operativo
Debolezze intrsion dectection: vengono segnalate le intrusioni senza per´o agire. Dunque si applica l’intrusion prevention: agisco appena mia accorgo che qualcosa non va. Se un utente fa analisi dei pacchetti della rete, immediatamente viene bloccata la sua porta per impedire attacchi.La difficolt`a sta nel reagire velocemente ed interpretare nel modo corretto le intenzioni dell’attaccante.
6.1 Gestione dei log
Una versione centralizzata dei log fornisce la possibilit`a di vedere esatta- mente ci´o che ´e successo a patto che tutti siano sincronizzati nel scrivere sul log. I SIEM (Security information e event management) effettuano delle Networkbased IDS dei dati di log per comprendere se vi sono delle anomalie. Dunque effettuare delle analisi predittive dall’esterno, e analisi predittive dall’interno attraverso delle analisi comportamentali degli utenti, capire il comportamento medio di una persona.
6.2 SIEM
SIEM Security information e event management effettuano delle correlazioni dei dati di log per comprendere se vi sono delle anoma- lie. Dunque effettuare delle analisi predittive dall’esterno e dall’interno attraverso delle analisi comportamentali degli utenti, capire il comporta- mento medio di una persona.
7.2 Zero-day vulnerability
Le vulnerabilit´a vengono spesso calcolate in quanti giorni ´e stata riconosci- uta senza averla risolta. Le zero-day vulnerability, sono dunque quelle non conosciute, irrisolte.
7.3 Come evitare le vulnerabilit´a
- L’anello debole: la sicurezza viene intesa come sicuro quanto l’anello pi´u debole. Attenzione quindi alle backdoor.
- Minimi privilegi: ogni utente, ogni device deve avere i minimi priv- ilegi necessari a svolgere i loro compiti. Oltre il rischio di andare in ambienti che non dovrebbero toccare, vi ´e il rischio che se attaccati, l’attaccante ottenga pi´u privilegi del previsto. Spesso si lasciano privilegi SQL, utente con permessi di amministratore o password di default.
- Separazione dei privilegi: meglio progettare componenti diversi che accedono a dati diversi (grande complessit´a)
- Chiamate di sistema: attenzione a linguaggi che invocano il sistema operativo, quindi hanno privilegi di root (possibili attacchi injection).
- Validazione dell’I/O: controllare bene il contenuto di un messag- gio, se vengono accettate delle stringhe, in realt´a quelle potrebbero essere anche numeri. Cos´ı come l’inserimento di nome e cognome in realt´a potrebbe essere uno script (attenzione anche alla lunghezza della stringa).
- Kiss (Keep It Simple Secure/Stupid): la sicurezza la si ha se ´e un sistema semplice, a prova di stupido.
- Riuso di componenti gi´a testati e verificati (ottica a micro servizi).
- Commenti o versione obsolete: i commenti agli errori non devono vantaggiare l’attaccante, spesso gli errori SQL danno informazioni all’intero database.
- Consentire il listing delle directory: rischio che vengano esposti file e script non in uso o altri documenti utili per l’attaccante.
- Esporre solo il necessario: verificare con un crawler^1 di non aver lasciato online qualcosa di eliminabile.
- Data Validation: validare sempre i dati, il che significa controllare il tipo, la sintassi, la lunghezza. (^1) software che analizza in automatico i contenuti di una rete
8 Security by design
Dal GDPR, la sicurezza e la privacy devono essere grestiti gi´a di default dal design.Il SDLC (Software Development Live Cycle), il ciclo di vita dello sviluppo software, costa di pi´u aggiornarlo, aggiungere pezzi successi- vamente piuttosto che in fase di progettazione.
8.1 OWASP
Organizzazione internazionale non a scopo di lucro dedicata a promuovere lo sviluppo di software sicuro tramite:
- Documentazione
- Software
- Gruppi di lavoro
- Coinvolgimento delle comunit´a (Open Source)
- Formazione, convegni, congressi Insieme di regole per scrivere un codice sicuro da attacchi. Modello di programmazione del codice a cascata. Classificazione dei progetti OWASP:
- Flagship Projects, strategici
- Tools: Zed Attack Proxy, Web Testing Environment (Kali), OWTF
- Coding: ModSecurity Core Rule Set (controll tutte le vulnera- bilit´a di tutte le libreria utilizzate)
- Lab Projects, stabili. Hanno prodotto dell’output
- Incubator Projects, immautri. Non adatti ad un ambiente di pro- duzione (tipicamente progetti di nerd, creati sul momento)
8.2 Gestione delle sessioni
HTTP ´e un protocollo stateless, per tanto gestisce le sessioni attraverso i cookie, tra i principali utilizzi:
- Tracking: tracciano le applicazioni dell’utente, utile sopratutto per il business. Per proteggere il tracking occorre utilizzare. HTTPS, openDNS, VPN e/o creare rumore di sottofondo. Esistono degli strumenti che girano per siti a caso facendo false ricerche Google.
- Sessione Management, garantisce la continuit´a della sessione. Esistono sia con login, sia senza login (per esempio si ricordano in che punto del video ero rimasto)
9 Tipi di attacchi
Prima di pensare agli attaccanti occorre definire i ”cattivi”, che spesso vengono pensati all’esterno dell’azienda, della rete, del sistema, ma pu´o occorre difendersi sopratutto dall’interno. Ottica della difesa immunitaria. Gli attacchi tipici sono:
- Phishing via email, fingere di essere qualcun altro rispondendo alle email per conto di altri. Solitamente succede cambiando i caratteri (le ”l” (elle) con ”I” (i maiuscole)).
- DoS e DDoS: Denial of service e distribuited denial of service. Si basa sul principio di attaccare attraverso flood un server per bloccarlo. Ad oggi con l’IoT si ´e evoluto nel DDoS, molto pi´u difficile da individuare, proteggere ed evitare.
- IoT: l’internet delle cose ha un grosso impatto nel mondo fisico, tut- tavia
e spesso poco sicuro (per mantenere prezzi bassi). Normalmente in informatica i punti in ordine di importanza sono: - Confidenzialita: conoscenza , lettura dei dati da part di terzi - Integrita: modifica dei dati - Disponibilita: deny o service
mentre nell’IoT i punti si ribaltano:
- Disponibilit`a: prima di tutto il device deve essere accessibile
- Integrit`a
- Confidenzialit`a
- Stuxnet attack: primo attacco informatico ad una centrale nucleare. Gli americani hanno superato l’air gap (distanza fisica) entrando in un computer della centrale ed iniettando un virus attraverso una chi- avetta USB.
- Problemi maggiori con i veicoli: V2V (tra veicoli), V2I (to in- frastrcuture), V2P (to peeople), V2N (to network of service),V2X (to everything)
- Rogue Access Point: dispositivo hardware (WiFI Pinapple), sono router che attaccano la rete. Anche a lato software si pu´´ o fare un attacco simile attraverso una Rogue Cell Phone Base Station che finge da antenna di rete (antenna TIM, WIND o Iliad), ma ´e un attacco molto complesso, spesso deriva da governi.
- Attacchi a protocolli cellulari (GSM, 2G, 3G, 4G, 5G...). La rete GSM non
e crittografata, solo dal 3G sı `e cominciato a cifrare le telefonate. Nel 1975 ´e nato il protocollo SS7 per migliorare la sicurezza delle reti GSM - Rogue Satellite (GPS Spoofing) Perturbare il segnale GPS, tipico esempio della Russia dove attorno a Putin i GPS non funzionavano. Il 50% delle transazioni finanziarie passano attraverso l’utilizzo del GPS per l’autenticazione.
- Man in the middle, connection hijacking: la pratica di inserirsi all’interno di una conversazione oppure modificarne il flusso o i dati stessi. Pu´o venire a livello fisico, di trasporto, applicativo, ma anche umano (social engiinering).
- Privilege Escalation: si accede ad un sistema o un servizio con mag- giori pribilegi previsti dall’utenza. Tipicamente sfrutta vulnerabilit´a, bug, crash del software.
- Buffer overflow: si accede ad aree di memoria a cui non si dovrebbe accedere. Pu´o capitare quando non si gestiscono i limiti di estrazione di un dato.
- Keylogging: memorizzare tutto ci´o che viene digitato da tastiera. Un malware che pu´o sgamare password anche criptate proprio per via della vulnerabilit´a della tastiera fisica.
- Command & Control: prendere il controllo del centro di comando, prendere un server che controlla tutti li altri. Tra i principali tipi di attacchi vi ´e la botnet, delle reti zombie.
- Advanced Persistent Threat: un complesso attacco basato su pi´u livelli per entrare nella rete e rimanerci in attesa. Sono attacchi silenti che sfruttano una serie di vulnerbilit´a. Prima per entrare, poi muovendosi orizzontalmente in cerca di nuovi privilegi fino ad arrivare all’obiettivo. Lo scopo di solito ´e il furto di dati, ecco perch´e ´e un attacco persistente. Solitamente ´e creato da una gruppo di attaccanti, proprio per la sua complessit´a.
- Analisi preventive dell’APT
- Vulnerability Scan: raccolgo informazioni, attraverso dotScan, nmap..
- Vulneravility Assesment: analisi pi´u accurata, si tolgono i falsi positivi, le rindondanze per capire quali sono le informazioni interessanti. Alla fine di questa fase si produce un report che dimostra le vulnerabilit´a
- CSS Injection nei comandi precisi come inserire un colore si inserisce uno script. Funzioni deprecate dagli ultimi browser (non sicuro su internet explorer)
- Cross-Site scriptin (CSS o XSS): mentre nell’injection vengo at- taccato perch´e non controllo l’input dell’utente, nel cross-site scripting il problema ´e che non controllo l’output. Effettuo il login e mi compare: ”ciao Alan”, perch´e il nome deriva da un campo, l’output non viene contrllato (si tiene per scontato che il nome sia vero). Il problema nasce quando invece di inserire il nome inserisco uno script. Classico esempio di un messaggio ”c’´e un video in cui compari”, ´e un link ad una pagina che manda davvero al sito di facebook, solo che come campo nome vi ´e uno script su un altro server che include anche il nome. Per esempio si prende tutti i cookie di sessione login. Ancora peggio se viene attaccato il web server e viene iniettato un cross site scripting statico.
Figure 4: Cross Site Scripting
- Cross-Site Request Forgery xxx.com richiede autenticazione, l’utente clicca un link malevolo che gli permette di cambiare password admin. L’utente malevole cambia password, entra e butta fuori l’utente buono dal sito.
10.1 Analisi
Controllare sempre la baseline, cio´e quelle tipiche azioni di base, un nome non pu´o avere 256 caratteri. La baseline viene spesso controllato attraverso delle tecniche di machine learning.
Analisi del codice sorgente: un altro programmatore controlla il codice dello sviluppatore Analisi greybox: dati una serie di input, si testano una serie di output. Vi ´e una informazione in pi`u rispetto la blackbox. Ambiente di test separati interni: effettuare test da due ambienti sep- arati (complesso e costoso, ma funzionale)
11 La difesa
La difesa deve avere un piano di gestione degli incidenti (unico), in caso di incedente come ottenere i backup (cartacei, crittografati...). il CISO (responsabile della sicurezza informatica) deve avere una visione a 360 gradi di tutto ci´o che accade e di quali sono le azioni in ordine da svolgere. Esistono di centri NOC (network operation control) o SOC (security oper- ation control) che ”accendono degli allarmi” in caso di incidenti.
La difesa durante l’attacco:
- mettere in sicurezza i dati (il carico pi´u critico). Nella pratica vengono scollegati dalla rete.
- Valutare il danno
- comunicare l’attacco all’interno, cosi che tutto il team possa difend- ersi, ma anche all’esterno (clienti, fornitori, stakeholders) per motivi legali.
- finito l’attacco mi devo blindare su quel tipo di attacco
- Pianificare le azioni di ripristino: utilizzo dei backup o di sistemi per riprendere al punto prima dell’attacco.
11.1 Sistemi di Difesa
- Protocollo di sicurezza delle reti fisiche Il protocollo `e 802.1x ed utilizza il port authentication: un client prima di connettersi ad una rete wifi deve prima essere autenticato. Pi´u precisamente: - Il Supplicant chiede l’accesso - Il supplicant viene collegato ad una VLAN con all’interno solo lui e l’autenticator - L’autenticator interroga il database e verifica se il supplicant ´e correttemente autenticato, in tal caso viene connesso alla rete