Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

30
#LINUX DAY NAPOLI 2012 Security && Hacking Engineering - metodologie di attacco e difesa informatica con strumenti opensource - A CURA DI MARCO FERRIGNO - Security & system independent researcher - - International Cyber Threat Task Force member - - Developer of the Italian Debian GNU/Linux HOWTOs -

description

 

Transcript of Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Page 1: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

#LINUX DAY NAPOLI 2012

Security && Hacking Engineering- metodologie di attacco e difesa informatica con

strumenti opensource -

A CURA DI MARCO FERRIGNO

- Security & system independent researcher -- International Cyber Threat Task Force member -

- Developer of the Italian Debian GNU/Linux HOWTOs -

Page 2: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

root@host:/# intro

PROPEDEUTICITA':

Nozioni basilari sulle architetture di elaborazione e di rete

Nozioni basilari sull'utilizzo dei sistemi operativi

Curiosità e spirito di iniziativa

Think Evil

COSA IMPAREREMO DA QUESTO TALK:

Sicurezza dell'informazione. Cos'è?

Come ragiona un attacker

Attacco e difesa: casi studio e casi reali

Limiti e ostacoli

Page 3: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Sicurezza informatica: cos'è?

Non riguarda solo le grandi aziende

Non riguarda solo i governi

Ma i dati di tutti noi

Le nostre informazione (in special modo le

più sensibili) sono memorizzate on-line

in vasta quantità.

Page 4: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Security market

Analisi al 30 settembre 2012 rispetto ai sei mesi precedenti

Spam: +75%

Phishing via mail: 1 su 245 (vs 1 su 424)

Tutto questo ha un costo

E l'Italia? Detentrice di un triste primato: manca totalmente di una reale politica aziendale in fatto di sicurezza

Page 5: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Sicurezza informatica: un'attitudine mentale

Attacco vs difesa

… sono davvero inscindibili?

Black Hat vs White Hat

… una differenza etica (e non solo)

Page 6: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

L'evoluzione della sicurezza: il rischio

Perchè ”think evil”?

”perchè per catturare un ladro devi pensare come un ladro”

Cosa serve?

a) passione incrollabile

b) capacità di prevedere le minacce

c) difendersi in maniera pro-attiva

Senza la giusta mentalità la ”sicurezza” sarà limitata ad una verifica meccanica delle liste di controllo ricavate in base all'esperienza del passato. E sarete destinati a ripetere i fallimenti del passato.

Page 7: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Il nemico principale della sicurezza è ...

… la compiacenza!

Sappiamo solo reagire e non pro-agire.Non facciamo prevenzione ma aspettiamo che succeda qualcosa. E allora è tardi.

… meglio evitare situazioni del genere

Page 8: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Come ragiona un attacker

Footprinting

Scansione

Enumerazione

Hacking

… ma prima di esaminare le singole fasi ...

Page 9: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Bersaglio individuato! Un caso di studio

repetita iuvant: Think Evil

Step 1. l'anonimato è fondamentale il caso Tor (The Onion Router), Freenet e TailsStep 2. individuare il bersaglioStep 3. analisi del bersaglio

”the swiss army”: nmap

Il 'nostro' caso studio:L'attacker protagonista del nostro caso studio è particolarmente attratto dalle vulnerabilità sui server web.

Utilizzare {motore di ricerca ad personam} !!

intitle:Test.Page.for.Apache ”It worked!” ”this Web site!”

Page 10: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Bersaglio individuato! Un caso di studio

Viene visualizzato un elenco di sistemi che utilizzano l'installazione di default del server web Apache

#Ora l'attacker conosce:

Server web (è quello che voleva!)

Nome di dominio associato

#Cosa vuole:

L'indirizzo ip corrispondente

#In che modo:

hostoppuretor-resolve

#Esempio:

user@host:~$ tor-resolve www.casostudio.com10.10.10.100

Page 11: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Bersaglio individuato! Un caso di studio

Dopo il dovuto footprinting, l'attacker passa ad analizzare il bersaglio tramite una scansione

modus operandi: proxychains feat. nmap

user@host:~$ proxychains nmap -sT -PN -n -sV -p 21,22,53,80,110,139,143,443 10.10.10.100

|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:139-<--denied|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:110-<--denied|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:21-<--OK|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:143-<--denied|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:443-<--denied|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:22-<--denied|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:80-<--OK|S-chain|-<>-127.0.0.1:9050-<><>-10.10.10.100:53-<--OK

Nmap scan report for 10.10.10.100Host is up (0.00032s latency).

PORT STATE SERVICE VERSION21/tcp open ftp PureFTPd22/tcp closed ssh53/tcp open domain80/tcp open http Apache httpd110/tcp closed pop3139/tcp closed netbios-ssn143/tcp closed imap443/tcp closed https

Page 12: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Bersaglio individuato! Un caso di studio

Una miniera di informazioni che devono essere scremate.

Altro step: l'attacker si concentra su delle specifiche vulnerabilità.

Sfruttare le vulnerabilità di Apache!

Come si procede:

Identificare versione in uso Scelta dello swiss army: netcat | proxychains + netcat | socat

user@host:~$ socat TCP4-LISTEN:8080, forkSOCKS4a:127.0.0.1:10.10.100:80, socksport=9050 &

user@host:~$ nc 127.0.0.1 8080HEAD / HTTP/1.0

HTTP/1.1 200 OKDate: Sun, 21 Oct 2012 16:42:48 GMTServer: Apache/1.3.19 (Unix) (SuSE/Linux) PHP/4.3.4Last-Modified: Mon, 15 Oct 2012 07:41:30 GMTETag:””8549c-304-2deb0e32””Accept-Rangers: bytesContent-Length: 773Connection: close

Content-Type: text/html

Page 13: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Bersaglio individuato! Un caso di studio

In conclusione:

il caso studio trattato ha evidenziato come il web servertrovato sia fermo ad una versione piuttosto vecchia evulnerabile … il resto è cosa nota ...

Page 14: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Footprinting: cos'è?

”Se conosci il tuo nemico e conosci te stesso, non devi temere il risultato di cento battaglie. Se conosci te stesso ma non il tuo nemico, per ogni vittoria subirai anche una sconfitta.Se non conosci il tuo nemico e nemmeno te stesso, perderai ogni battaglia”

(Sun Tzu – L'arte della guerra)

Footprinting: l'arte di raccogliere informazioni sull'obiettivo a cui si è interessati

Cosa occorre?

Tecnica

Pazienza

Riflessione

Qual'è l'obiettivo?

Ridurre il bersaglio ad una serie specifica di nomi di dominio, blocchi di rete, sottoreti, router e singoli indirizzi IP

Page 15: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Footprinting: informazioni accessibili al pubblico

Caso studio: PMI (… e non solo). Elementi ”utili” ed eventuali azioni da compiere

Pagine web aziendali → mirroring (uso di wget) dell'intero sorgente HTML con particolare attenzione alle righe di commento; ricerca di indirizzi VPN ...

Organizzazioni correlate → possono trovarsi sia in chiaro che a mezzo codice

Dettagli sulla sede → Google Earth / Maps, Terraserver

Dipendenti: vita, morte && miracoli →networking sociale (Facebook, G+ …); networking professionale (Linkedin …); carriera lavorativa (Monster, Careerbuilder …); genealogia familiare (Ancestry)

Eventi correnti → fusioni, acquisizioni, scandali, licenziamenti, outsourcing … e il sito della CONSOB

Politiche di sicurezza → ogni dettaglio fa la differenza

Informazioni archiviate → cache di Google (http://google.com/search?q=cache:www.esempio.com)

Dipendenti (o clienti) scontenti → azioni di dubbia moralità!

Motori di ricerca → il caso GHDB: le stringhe di ricerca

ed altro ancora, come ...

Page 16: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Footprinting: informazioni accessibili al pubblico

Caso studio: PMI (… e non solo). Elementi ”utili” ed eventuali azioni da compiere

Enumerazione dei server WHOIS e DNS → whois da terminale oppure whois.iana.org

Interrogazione del DNS →tecnica del trasferimento di zona (tecnica obsoleta) tramite nslookup: distinzione tra DNS interni ed esterni

Riconoscimento della rete → tecnica del tracerouting (traceroute nomehost da terminale): consente di visualizzare il percorso seguito da un pacchetto IP nel suo viaggio da un host all'altro

user@host:~$ traceroute esempio.it

traceroute to esempio.it (173.194.35.159), 30 hops max, 60 byte packets 1 10.220.0.1 (10.220.0.1) 10.157 ms 11.051 ms 11.416 ms 2 172.31.190.29 (172.31.190.29) 11.580 ms 11.890 ms 19.408 ms 3 143.225.190.82 (143.225.190.82) 118.120 ms 118.313 ms 118.446 ms 4 ru-unina-l1-rx1-na1.na1.garr.net (193.206.130.5) 20.217 ms 20.580 ms 20.671 ms 5 rx1-na1-rx1-rm2.rm2.garr.net (90.147.80.161) 21.109 ms 27.706 ms 28.013 ms 6 rx1-rm2-rx1-mi2.mi2.garr.net (90.147.80.62) 28.644 ms 24.772 ms 19.223 ms 7 rt-mi2-rx1-mi2.mi2.garr.net (90.147.94.46) 19.509 ms 22.120 ms 22.580 ms…

Page 17: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Footprinting: contromisure

Dall'attacco alla difesa

Contromisure per la sicurezza dei database pubblici

Site security Handbook - http://www.faqs.org/rfcs/rfc2196.html

Utilizzo costante di alias

Funzioni di anonimato offerte dal provider del dominio

Sistema di autenticazione forte

Contromisure per la sicurezza del DNS

Caso d'uso: BIND: upgrade e allow-transfer in named.conf

Configurazione di un router/firewall con blocco a connessioni non autorizzare su TCP 53

TSIG – Transaction SIGnature

Record HINFO: sconsigliato! Permette di individuare con precisione il sistema operativo usato

Page 18: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Footprinting: contromisure

Dall'attacco alla difesa

Contromisure contro il tracerouting

NIDS – Network Intrusion Detection System

IPS – Intrusion Prevention System – come Snort - http://www.snort.org/

RotoRouter – www.usseback.com - registra richieste di traceroute in arrivo e genare risposte fasulle

E ancora:

Configurazione dei router di confine in modo da limitare il traffico ICMP e UDP solo a sistemi specifici, al fine di ridurre al minimo l'esposizione al pubblico

Page 19: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Scansione: cos'è?

”picchiettare” contro le pareti per trovare tutte le porte e le finestre (magari già aperte) tecniche adottate

ping sweep tramite: fping → invia in parallelo ping in raound-robin nmap → con l'opzione -sP icmpenum → enumerazione ICMP per il rilevamento di sistemi attivi

query ICMP tramite: icmpquery icmpush

Individuare servizi in esecuzione | ascolto tramite: strobe → cattura il banner di ogni porta TCP udp_scan → come strobe, per UDP … ma genera ”rumore” netcat → l'arma definitiva nmap → scansione di base per TCP e UDP

Page 20: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Scansione: un particolare caso d'uso

Lo strumento nmap mette a disposizione un'altra funzionalità di scansione così detta ”civetta”, pensata per sommergere un sito bersaglio con informazioni superflue, tramite l'opzione -D.

Queste scansioni civetta vanno lanciate conteporanemante ad una scansione reale, falsificando l'indirizzo di origine dei messaggi indicando server legittimi e mescolando a queste scansioni di disturbo la scansione della porta reale.

Il sistema bersaglio risponderà agli indirizzi falsificati e anche alla scansione di porta reale; inoltre, dovrà tenere traccia di tutte le scansioni per determinare quali sono legittime e quali no

ATTENZIONE: l'indirizzo civetta deve essere un indirizzo valido altrimenti si giunge ad una condizione di indisponibilità del servizio

Page 21: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Scansione: strumenti di rilevamento

Cheops - http://cheops-ng.sourceforge.netStrumento onnicompresivo per la mappatura di rete. Integra funzionalità di ping, traceroute, scansione di porte e rilevamento del sistema operativo.

Tkined:Integra vari strumenti di gestione dellarete per consentire il rilevamento dellereti IP.Estensibile e dotato di GUI.Non consente il rilevamento del SO

Page 22: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Scansione: contromisure

Diverse metodologie:

Rilevamento:a) firewall e/o proxy ben configuratob) utilizzo massiccio di IDS (Snort, Scanlog, Protolog)

Esempio: ecco come Snort evidenzia una scansione di tipo Query ICMP

[**] PING-ICMP Timestamp [**]10/25-22:04:40.535502 192.168.0.2 → 192.168.0.5ICMP TTL:255 TOS:0X0 ID:4321TIMESTAP REQUEST

Prevenzione:a) disabilitare i servizi non indispensabili [un'occhiata al nostro init system non fa male]b) Occorre considerare con attenzione quali tipi di traffico ICMP consentirec) ACL verso specifici indirizzi IPd) uso di pingd: demone userland che gestisce il traffico ICMP a livello host rimuovendo dal kernel il supporto dell'elaborazione del suddetto protocollo

Page 23: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Enumerazione: cos'è?

Esame dettagliato dei servizi identificati, mirato alla ricerca di eventuali punti deboli al fine di valutarne il livello di intrusività.

L'enumerazione comporta l'utilizzo di connessioni attive verso i sistemi bersaglio e di interrogazioni dirette, che potrebbero/dovrebbero essere registrate nei file di log (fatevi aiutare da logcheck)

Tra le informazioni che gli attacker cercano attraverso l'enumerazione vi sono

Nomi di account utente

Risorse condivise mal configurate

Vecchie versioni di software con note vulnerabilità

Una volta che il servizio è stato enumerato, solitamente è solo questione di tempo prima che l'intruso comprometta il sistema in qualche modo, se non del tutto.

Chiudendo queste falle, che si riparano facilmente, si elimina il primo appiglio dell'attacker

Page 24: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Enumerazione: la tecnica

Le tecniche di enumerazione sono specifiche per singola piattaforma e quindi dipendono fortemente dalle informazioni raccolte tramite footprinting e scansione.

Molti software includo scansione ed enumerazione in un unico pacchetto, anche perchè, umanamente, enumerare 65535 porte TCP e UDP potrebbe essere leggermente difficoltoso

Gli strumenti

telnet www.sito.com 80 → sessioni di login remoto di tipo riga di comando tra hostnetcat nc [luuuunga lista di opzioni] www.sito.com 80 → comunicazione remota TCP/UDP ftp ftp.sito.com → … ci si diverte quando l'accesso è anonimonslookup → enumerazione del DNS con trasferimento di zonadig @192.168.0.9 sito.com [opzioni] → come nslookup (con qualche dettaglio in più)tftp 192.168.0.9 → ftp senza autenticazione sulla UDP 69finger [opzioni] @sito.com → nomi utenti, tempi di login e di inattività….

e qualche altro migliaio di comandi!

Page 25: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Enumerazione: contromisure

In pratica … le stesse trattate per la scansione!

Particolare attenzione va rivolta verso:

Architettura di base del sistema operativo

Servizi in esecuzione|ascolto non sicuri

Firewall e/o Proxy

e ancora …

Strumenti di scansione da remoto - https://www.grc.com/x/ne.dll?bh0bkyd2

Elenco e spiegazione sulle porte - http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

Page 26: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Hacking: cos'è?

E' l'insieme dei metodi (conclusivi), delle tecniche e delle operazioni volte a conoscere, accedere e/o modificare un sistema hardware o software.

Hacking in 3 macroaree:

Hacking del Sistema Operativo

Hacking delle infrastrutture

Hacking di applicazioni e dati

… perdonatemi, sarò breve!

Page 27: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Mappatura delle vulnerabilità

Router di confine

Controllo accessi mal configurati

Firewall

Postazione di lavoro

Controllo accessi mal configurati

Funzionalità dilog/monitoraggio/rilevamentonon attive

Sala serverServizi non necessari Servizi mal configurati, mancato monitoraggio delle vulenerabilità, directory scrivibili

Mancanza di politiche per la sicurezza

Mancanza di politiche per la sicurezza

LAN

LAN

Software senza patch o vulnerabile

Software senza patch o vulnerabile

Mancanza di autenticazionePassword deboliUtenti con eccessivi privilegi

Mancanza di autenticazionePassword deboliUtenti con eccessivi privilegi

Postazione di lavoro

Ufficio periferico

Eccessive politiche di fiducia

Server accesso remoto

Router interno

Punti di accessoremoto non protetti

Utente mobile/da casa

Page 28: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

Strumenti per la messa in sicurezza: limiti e ostacoli

Crittografia: scegliamo al meglio il protocollo di codifica

Attenzione a:

→ file temporanei → file cancellati

→ backup

Steganografia: inserire informazioni nascoste all'interno di un file vettore

Data hiding: saper nascondere i dati all'interno di un sistema informativo

Virtualizzazione: perchè no!?

Diavolerie geek: provate ad installare una distro gnu/linux su … ;)

Page 29: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

La palestra degli hacker

Creata ad-hoc per lo studio della sicurezza del sistema operativo GNU/Linux

Contiene volutamente ogni sorta di bug e problema di sicurezza

Creata dall'International Institute for Training, Assessment and Certification (IITAC) e dal Secure Software Engineering (S2E)

ATTENZIONE: è INUSABILE (meglio virtualizzare)

Le esercitazioni sono divise in 3 macroaree

Binary exploitation

Web exploitation

Reverse code engineering

… il premio finale?

NB: lo stato di sviluppo di DVL è discontinuo eattualmente il sito di riferimento risulta offline. Si consiglia il download ”per via alternative”

Page 30: Security and hacking engineering - metodologie di attacco e difesa con strumenti open source

root@host:/# exit

Note a margine

Le immagini nelle slides 3-7, 13 sono state curate dal International Cyber Threat Task Force in occasione del Cyber Threat Summit 2012

Riferimenti e contatti:

Marco Ferrigno- Security & system independent researcher -- International Cyber Threat Task Force member - - Developer of the Italian Debian GNU/Linux HOWTOs -

http://marcoferrigno.wordpress.com

Grazie. Best regards :)