1: Introduzione all’Ethical Hacking
Panoramica sulla sicurezza delle informazioni (Information Security)
Terminologia
- HACK VALUE — Nozione che indica quanto ne vale la pena ad acquisire il target.
- VULNERABILITY — Esistenza di una falla, errore di implementazione o di design che può essere sfruttato da un evento inaspettato per compromettere la sicurezza di un sistema.
- EXPLOIT — Una breccia nella sicurezza di un sistema IT tramite una vulnerabilità.
- PAYLOAD — Il payload è la parte di un codice exploit che esegue attività malevole come creare una backdoor, cifrare file.
- ZERO-DAY — Vulnerabilità non ancora patchata dal vendor. Un attacco 0-day sfrutta questo tipo di vulnerabilità prima del rilascio della relativa patch.
- DAISY CHAINING — Consiste nell’accedere ad una rete e/o computer e utilizzarli per accedere ad ulteriori reti e/o computer che contengono le informazioni desiderate.
- DOXING — Pubblicazione di informazioni personali di un soggetto raccolte da fonti aperte (es. Social Media).
- BOT — Un bot è un software che può essere controllato da remoto per eseguire o automatizzare determinati task.
Elementi di Information Security
- CONFIDENTIALITY — Assicura che l’informazione sia accessibile solo ai soggetti autorizzati.
- INTEGRITY — L’affidabilità di dati o risorse in termini di prevenzione alle modifiche improprie o non autorizzate.
- AVAILABILITY — Assicura che i sistemi responsabili della consegna, memorizzazione ed elaborazione delle informazioni siano accessibili quando un utente autorizzato lo richiede.
- AUTHENTICITY — L’autenticità si riferisce alla caratteristica di una comunicazione, documento o dato, di essere genuina.
- NON-REPUDIATION — Garantisce che il mittente di un messaggio non possa negare di averlo inviato e il destinatario di averlo ricevuto.
Comprendere le minacce alla sicurezza delle informazioni e i vettori di attacco
Motivi, scopi e obiettivi degli attacchi alla sicurezza delle informazioni
ATTACCO = MOTIVO + METODO + VULNERABILITÀ
- Il motivo nasce quando il sistema target memorizza o elabora qualche informazione preziosa e questo porta alla minaccia di un attacco al sistema.
- Gli attaccanti utilizzano vari strumenti e tecniche di attacco per sfruttare le vulnerabilità in un sistema e raggiungere il proprio scopo.
I motivi dietro un attacco possono essere: furto delle informazioni, manipolazione dei dati, interruzione alla business continuity, instillare paura e caos interrompendo il funzionamento di infrastrutture critiche, perdite economiche, propaganda religiosa o politica, raggiungimento di obiettivi governativi, rovinare la reputazione, vendetta, chiedere un riscatto.
Vettori di attacco più popolari
- CLOUD COMPUTING THREATS — Il cloud computing offre risorse IT on-demand dove spesso le organizzazioni memorizzano i propri dati e quelli dei propri clienti. Una falla in una cloud application di un cliente potrebbe garantire l’accesso ad un eventuale attaccante ai dati di altri clienti.
- ADVANCED PERSISTENT THREATS — APT è un tipo di attacco il cui scopo è rubare informazioni alle vittime senza essere rilevato, viene utilizzato anche per identificare gruppi hacker strutturati (APT38).
- VIRUS E WORM — I virus e i worm sono le minacce più popolari e sono capaci di infettare reti e sistemi molto velocemente.
- RANSOMWARE — I ransomware inibiscono l’accesso a computer o file cifrandoli e chiedendo un riscatto per il rilascio dei file.
- MOBILE THREATS — L’aumento dell’utilizzo di device mobili (smartphone e tablet) ha fatto aumentare le minacce verso questo tipo di dispositivi che ad oggi vengono utilizzati sia per scopi personali che aziendali.
Tipologie di attacchi ai sistemi
Panoramica sui concetti di hacking, tipologie e fasi
L’hacking è l’abilità di sfruttare le vulnerabilità di un sistema e compromettere i controlli di sicurezza per accedere alle risorse, può includere modifiche al sistema o alle feature delle applicazioni.
Chi è un hacker
- Ottime competenze informatiche
- Per alcuni hacker può essere solo un hobby
- Le intenzioni possono essere semplice curiosità per accrescere la propria conoscenza o fare qualcosa di illegale
- Blackhat — Hacker malevolo. L’intenzione è quella di fare qualcosa di illegale o arrecare danno.
- Greyhat — Un hacker che opera da ambo le parti. L’intenzione può essere malevola o no.
- Whitehat — Un hacker “bravo ragazzo”. Aiuta le organizzazioni a mettere in sicurezza i propri sistemi.
- Hacktivist — Ha uno scopo politico, spesso ribelle.
- State sponsored hacker — Sono hacker ingaggiati da governi per penetrare altri governi.
- Cyber Terrorists — Sono motivati da un credo religioso o politico.
- Suicide Hacker — Un hacker a cui non interessa finire in carcere o ricevere punizioni (multe).
- Script Kiddies — Un hacker con basse conoscenze tecniche che utilizza strumenti sviluppati da altri.
Fasi dell’hacking
- Reconnaissance — PASSIVE RECON: senza interazione con il target. ACTIVE RECON: con interazione diretta con il target.
- Scanning — PRE-ATTACK PHASE: Si effettua uno scan della rete alla ricerca di informazioni specifiche in base alle informazioni ottenute durante la fase precedente. PORT SCANNER: Si utilizzano strumenti come port scanner, vulnerability scanner e network mapper. EXTRACT INFORMATION: L’attaccante estrae informazioni quali le macchine attive e lo stato delle porte.
- Gaining Access — Fa riferimento all’ottenimento dell’accesso ad un OS o applicazione. L’attaccante può accedere al sistema operativo tramite il livello applicativo o il livello network, cerca di scalare i propri privilegi per ottenere il controllo completo del sistema. Vengono effettuati password cracking, sfruttati buffer overflow, session hijacking e DoS.
- Maintaining Access — L’attaccante cerca di mantenere il controllo del sistema, si assicura di mettere in sicurezza il proprio accesso privilegiato con backdoor, rootkit o trojan. Può manipolare i dati, le applicazioni e le configurazioni del sistema, inoltre utilizza il sistema compromesso per lanciare ulteriori attacchi.
- Clearing Tracks — Vengono nascoste le tracce dell’intrusione o dell’attacco. L’accesso ottenuto rimane nascosto. Vengono sovrascritti i log per eliminare i sospetti.
Concetti e scopi dell’Ethical Hacking
Cos’è l’Ethical Hacking
L’Ethical Hacking coinvolge strumenti e tecniche per identificare le vulnerabilità, si basa su tecniche che simulano il comportamento di un attaccante per verificare la possibilità di sfruttare tali vulnerabilità. Gli Ethical Hacker lavorano esclusivamente con il permesso del cliente (target).
Perché l’Ethical Hacking è necessario
Per sconfiggere un hacker devi pensare come tale!
L’Ethical Hacking previene che gli hacker possano accedere ai nostri sistemi, ci rende coscienti delle vulnerabilità presenti, migliora la sicurezza informatica delle aziende, evita eventuali violazioni, salvaguarda i dati dei clienti e aumenta la security awareness.
Un Ethical Hacker dovrebbe farsi queste domande:
- Cosa può trovare un attaccante nel sistema target?
- Cosa può fare con queste informazioni?
- Qualcuno noterebbe i tentativi di intrusione al sistema target?
- Sono protette tutte le componenti del sistema?
- Quanto sforzo è necessario per ottenere una protezione adeguata?
- Le misure di sicurezza adottate sono conformi con gli standard legali e industriali?
Controlli per la sicurezza delle informazioni
Garanzia dell’informazione
La garanzia dell’informazione fa riferimento alla garanzia che l’integrità (integrity), disponibilità (availability), riservatezza (confidentiality) e l’autenticità (authenticity) dell’informazione e dei sistemi informatici sia protetta durante l’utilizzo, l’elaborazione, la memorizzazione e la trasmissione delle informazioni.
Information Security Management Program
Sono programmi che abilitano le organizzazioni e le aziende ad operare in uno stato dove il rischio è ridotto, comprende tutti i processi organizzativi e operativi e i partecipanti rilevanti per la sicurezza delle informazioni. È una combinazione di policy, processi, procedure, standard e linee guida per stabilire il livello richiesto per la sicurezza delle informazioni.
Enterprise Information Security Architecture (EISA)
EISA fa riferimento ad un insieme di requisiti, processi, principi e modelli che determinano la struttura e il comportamento dei sistemi informatici delle organizzazioni.
Segregazione delle reti
Il “Network Security Zoning” aiuta a monitorare e controllare il traffico in entrata e uscita. Inoltre aiuta le organizzazioni a gestire le proprie reti sicure selezionando il giusto livello di sicurezza in base alle differenti zone delle reti internet e intranet.
Policy per l’Information Security
Le policy sono il fondamento dell’infrastruttura di sicurezza e definiscono i requisiti minimi di sicurezza e le regole, per permettere una corretta protezione dei sistemi.
Tipologie di policy
- PROMISCUOUS POLICY — Nessuna restrizione per l’utilizzo dei sistemi e delle relative risorse.
- PERMISSIVE POLICY — È una policy piuttosto permissiva, blocca soltanto i comportamenti che potrebbero arrecare danno, deve essere aggiornata regolarmente.
- PRUDENT POLICY — Fornisce un livello di sicurezza elevato, blocca tutti i servizi esclusi quelli necessari e/o riconosciuti, tutti i movimenti vengono tracciati.
- PARANOID POLICY — Questa tipologia di policy blocca tutto.
Progettare le policy di sicurezza
- Identificare i rischi tramite un Risk Assessment
- Imparare dagli altri e dalle linee guida
- Includere il management nello sviluppo delle policy
- Ammende/Multe chiare in caso di mancata conformità
- Fornire la versione finale della policy a tutti
- Assicurarsi che tutti abbiano compreso la policy
- Sviluppare strumenti per rinforzare le policy
- Formare i dipendenti
- Rivedere e aggiornare regolarmente le policy
Sicurezza fisica
È il primo livello di protezione, prevede la protezione degli asset aziendali da minacce ambientali o minacce da parte dell’uomo. Previene gli accessi non autorizzati, il furto di dati, spionaggio e attacchi di tipo “social engineering”.
Cos’è il rischio
Il rischio si riferisce al livello di incertezza o di aspettativa che un evento negativo possa causare danni al sistema. Viene usata una matrice di rischio per verificare l’effettiva dimensione considerando la probabilità, la verosimiglianza e le conseguenze (impatto) del rischio.
Risk Management
Il Risk Management è il processo che porta alla riduzione e al mantenimento del rischio ad un livello accettabile.
Fasi
Identificazione del rischio -> Risk Assessment -> Trattamento del rischio -> Tracciamento del rischio -> Revisione del rischio
Incident Management
L’incident Management è un insieme di processi definiti, volti ad identificare, analizzare, priorizzare e risolvere gli incidenti di sicurezza.
Le fasi si suddividono in:
- Vulnerability Handling,
- Incident Handling: Triage, Incident Response, Reporting e Detection, Analisi
- Artifact Handling,
- Announcements,
- Alerts
Incident Management Process
- Preparazione per Incident Handling e Response
- Detection e analisi
- Classificazione e priorizzazione
- Notifica
- Contenimento
- Forensic Investigation
- Eradication e Recovery
- Attività di Post-Incident
2: Footprinting e Reconnaissance
Concetti di Footprinting
Cos’è il Footprinting
Il footprinting è la prima fase di ogni attacco e mira ad acquisire quante più informazioni sulla rete target, in modo da identificare le possibili strade da percorrere per introdursi nel sistema. Le tipologie di footprinting si dividono in 2 categorie: Passive (non c’è interazione con il target) e Active (interazione diretta con il target). È possibile ottenere informazioni riguardanti l’azienda e la sua organizzazione interna, la rete aziendale e i sistemi utilizzati.
Obiettivi del Footprinting
Footprinting tramite motori di ricerca
Gli attaccanti utilizzano i motori di ricerca per estrarre informazioni sui propri target tra cui: piattaforme tecnologiche in uso, dettagli sui dipendenti e pagine di login.
Footprinting utilizzando tecniche avanzate di Google Hacking
Questa tecnica permette di fare ricerche avanzate con Google, utilizzando operatori per creare query più complesse in modo da ottenere informazioni nascoste, che possano aiutare l’attaccante a trovare vulnerabilità.
CACHE: Mostra le pagine salvate nella cache di Google (vecchie versioni dei risultati)
LINK: Elenca solo i risultati che hanno collegamenti con la pagina specificata
LOCATION: Trova informazioni per una location specifica
FILETYPE: Ricerca solo determinati tipi di file
Google Hacking Database
GHDB è una fonte indispensabile per ricerche ancora più ampie rispetto alle semplici ricerche su Google, infatti è un archivio pubblico di exploit e software vulnerabili. Noto anche con il nome di exploit-db.
Footprinting tramite servizi web
TLD e sottodomini
Per ricercare i Top Level Domain e sottodomini di un’azienda si possono utilizzare servizi online come netcraft.com, mentre tool come sublist3r (script python) servono ad enumerare i sottodomini che a loro volta possono dare informazioni sulla struttura interna delle aziende.
Posizione geografica del target
Un attaccante può utilizzare Google Earth/Maps per avere la posizione geografica del target, è utile quando si vuole effettuare un attacco social engineering. Spesso le informazioni circa la localizzazione non sono precise.
Information Gathering con LinkedIn
InSpy è un tool che permette l’enumerazione su LinkedIn e ha due funzionalità: TECHSPY che permette di analizzare le job description alla ricerca delle tecnologie utilizzate, EMPSPY invece analizza i dipendenti.
Determinare il sistema operativo
La determinazione del Sistema Operativo in utilizzo è essenziale quando vogliamo lanciare un attacco; alcuni tool indispensabili sono netcraft, shodan che è un motore di ricerca per qualsiasi device connesso alla rete e censys che permette di approfondire la superficie d’attacco conoscendo quali host sono in rete.
Tecniche di Footprinting per siti web
Il footprinting per siti web è inteso come il monitoraggio e l’analisi dei siti web del nostro target. Strumenti come BURP SUITE, ZAPROXY o altri tool servono a carpire gli header, fondamentali per l’analisi del codice HTML e dei cookie.
Web spiders
I web spider sono software che effettuano ricerche automatiche sul target in oggetto. Le informazioni che raccolgono possono essere utilizzate per ulteriori fasi di footprinting e attacchi di social engineering. Uno dei tool per lo spidering è WEBDATA EXTRACTOR.
Mirroring
È una tecnica che consente di copiare interamente un sito web in locale per un’analisi asincrona e offline.
Archive.org
Un attaccante utilizza archive.org per recuperare le vecchie versioni dei siti web che non sono più online, il funzionamento è simile a quello della cache di Google, ma archive.org contiene più istantanee temporali.
Estrarre metadati da documenti pubblici
L’estrazione dei metadati da documenti pubblici può essere utile per ricavare informazioni come i dati personali dei dipendenti così da eseguire ulteriori attacchi (phishing, social engineering).
Tecniche di email Footprinting
Tracciamento email
È una tecnica utilizzata per monitorare la consegna delle email al destinatario indicato e può essere utilizzata per raccogliere informazioni sul target. Con una email HTML è possibile rilevare informazioni come indirizzi IP, mail server e posizione geografica. Alcuni strumenti sono POLITEMAIL, YESWARE, CONTACTMONKEY e READNOTIFY.
Tecniche di Competitive Intelligence
Competitive Intelligence Gathering
Il Competitive Intelligence Gathering è il processo di identificazione, raccolta e analisi delle informazioni sui competitor, è un processo passivo.
Tracciare la reputazione online del target
Online Reputation Management (ORM) è un processo di monitoraggio della reputazione online di un’azienda (o soggetto in generale). Le recensioni negative sono, in genere, le più utili in quanto un utente arrabbiato tende ad essere più dettagliato: un eventuale attaccante potrebbe usare queste informazioni per un attacco di tipo social engineering.
Whois e DNS Footprinting
WHOIS
I database WHOIS sono mantenuti dai RIR (Regional Internet Registries) e contengono le informazioni personali dei proprietari dei domini: dettagli sul dominio, informazioni di contatto del proprietario, name server, data di scadenza e di creazione.
Lista RIR:
- ARIN — America
- AFRINIC — Africa
- RIPENCC — Europe
- LACNIC — America Latina e America centrale
- APNIC — Asia (pacifico)
DNS
Un attaccante può determinare, tramite DNS, quali host hanno un ruolo importante nella rete per eseguire attacchi più complessi.
Network Footprinting
Le informazioni riguardanti i range di IP assistono gli attaccanti nella creazione di una mappa della rete, i range di IP vengono trovati utilizzando “ARIN tools” e le subnet tramite i Regional Internet Registry.
Traceroute
Il traceroute funziona grazie al protocollo ICMP e l’utilizzo del campo TTL (time-to-live) presente all’interno dell’header dei pacchetti, ciò permette di scoprire i router che il pacchetto attraversa. L’attaccante può così estrarre informazioni riguardanti la topologia della rete, i router “trusted” e la posizione dei firewall; queste informazioni aiutano l’attaccante alla costruzione di una mappa di rete.
TOOLS: geospider, visualroute, path analyzer.
Footprinting tools
- Maltego (GUI, capace di disegnare grafici, esportazione pdf, integrazione con diversi servizi)
- recon-ng (tool a linea di comando)
- FOCA (Fingerprinting Organization with Collected Archives)
- recondog (tool a linea di comando, accessibile anche via API)
- OSRFramework (tool per OSINT)
- sn1per
- LHF (Low Hanging Fruit)
3: Scanning
Panoramica
Il network scanning è l’insieme di procedure atte ad identificare host, porte e servizi di un sistema, viene usato per creare un profilo del target.
TCP Flag
- URG — Indica che il contenuto del pacchetto ha carattere di urgenza e quindi necessita un’elaborazione immediata.
- PSH — Chiede di inviare immediatamente i dati bufferizzati.
- FIN — Indica che non ci saranno più trasmissioni.
- ACK — Indica la ricezione del pacchetto.
- RST — Resetta la connessione.
- SYN — Inizializza la connessione tra 2 host.
TCP/IP Handshake
(three-way handshake)
SYN -> SYN+ACK -> ACK
TCP/IP
Session Termination
FIN -> ACK & FIN -> ACK
Pacchetti custom
Esistono numerosi tool che permettono la personalizzazione dei flag dei pacchetti, nmap effettua questa operazione con alcuni argomenti specifici, mentre un packet crafter per windows è COLASOFT PACKET BUILDER. La customizzazione dei pacchetti permette di eseguire determinati tipi di attacchi e di fare evasion di firewall e IDS.
Tool per scanning
NMAP — È tra gli strumenti più utilizzati per il network scanning, è in grado di effettuare il discovery degli host attivi, porte aperte/chiuse/filtrate e servizi. Si può utilizzare sia via CLI che via GUI con Zenmap.
HPING — Generatore e analizzatore di pacchetti, il funzionamento è simile al comando ping, tuttavia con hping è possibile utilizzare protocolli diversi da ICMP e customizzare le parti del pacchetto IP.
AMAP — Next-generation scanning tool. Identifica applicazioni in ascolto sulle porte anche se il servizio non gira sulla porta di default.
Tecniche di scanning
Inverse TCP Flag Scanning
Viene inviato un pacchetto TCP con i flag FIN, URG, PSH impostati (oppure senza flag), se il target risponde (RST/ACK) la porta è chiusa, in caso non rispondesse allora la porta è aperta.
ACK Flag Probe Scanning
Questa tipologia di scan è effettuabile in due modi:
- TTL based — Se il TTL del pacchetto RST è minore di 64 la porta è aperta
- Window based — Se il valore della window del pacchetto RST è diverso da 0 (zero), allora la porta è aperta
Questa tecnica viene anche utilizzata per stabilire se una porta è filtrata o meno: l’attaccante invia un pacchetto ACK con un sequence number casuale, se non riceve risposta allora la porta è filtrata (quindi c’è un firewall), altrimenti non è filtrata ricevendo un pacchetto RST.
IDLE/IPID Header Scan
Ogni pacchetto IP ha un numero identificativo (IPID) per il frammento in questione, il sistema operativo si occupa di aumentare il IPID per ogni pacchetto inviato.
UDP Scanning
Nel protocollo UDP non esiste il three-way handshake e il target non invierà una risposta se la porta è aperta. Nel caso in cui un pacchetto UDP fosse inviato ad una porta chiusa, il target invierebbe un pacchetto ICMP Port Unreachable al mittente. Le porte UDP sono in genere molto utilizzate anche da spyware, trojan e altri malware.
PORTA APERTA UDP -> no response
PORTA CHIUSA UDP -> ICMP PORT UNREACHABLE
Tecniche di Scanning con evasione IDS/Firewall
Tecniche di evasione IDS/Firewall
- PACKET FRAGMENTATION — Vengono inviati dei pacchetti frammentati che solo il destinatario riassemblerà.
- SOURCE ROUTING — Si specifica il percorso di routing che il pacchetto modificato dovrà fare per raggiungere il target.
- IP ADDRESS DECOY — I pacchetti generati useranno un indirizzo IP “esca” in modo da rendere più difficile al IDS/firewall risalire al reale mittente. I pacchetti di risposta arrivano a tutti gli IP “utilizzati”.
- IP ADDRESS SPOOFING — Viene cambiato l’indirizzo IP del mittente così da far sembrare che il pacchetto provenga da qualcun altro. I pacchetti di risposta arrivano all’indirizzo spoofed.
- PROXY SERVER — Viene utilizzata una catena di proxy server per nascondere la reale provenienza di uno scan ed evadere alcuni controlli degli IDS/firewall.
Banner grabbing
Il banner grabbing può essere passivo o attivo, è il metodo utilizzato per determinare il sistema operativo del target o le versioni dei servizi esposti.
Identificazione OS target
L’identificazione del Sistema Operativo in uso dal target fornisce un aiuto per l’individuazione di vulnerabilità da poter sfruttare. Un attaccante può identificare il sistema operativo di un target in base al TTL o alla WINDOW SIZE del pacchetto TCP, infatti lo stack tcp/ip viene implementato in maniera diversa su ogni OS. Messaggi di errore sono altrettanto utili per l’identificazione.
Contromisure per il banner grabbing
- Modificare i banner originali con banner fasulli
- Spegnere i servizi non necessari per limitare le informazioni che il nostro sistema può fornire ad un attaccante
- Nascondere le estensioni dei file per nascondere le tecnologie in uso (web server)