[Articolo] L’indirizzo IP e la Rete

Ho deciso di scrivere un post che cercherà di spiegare cos’è un indirizzo IP e quale visibilità ha un dispositivo collegato a Internet rispettivamente dietro ad un modem, un router, e un firewall.

Difficoltà articolo (0->10): 3

Requisiti: nessuno in particolare.

Ho deciso di scrivere un post che cercherà di spiegare cos’è un indirizzo IP e quale visibilità ha un computer su Internet, dopo che molte volte mi sono state rivolte domande a riguardo. Buona lettura ;-).

Ogni dispositivo collegato ad Internet (computer, palmare, cellulare, …), e più in generale a qualsiasi rete, è dotato di un proprio indirizzo che lo identifica in modo univoco. Possiamo pensare ai cellulari: ogni cellulare ha un proprio numero univoco, e quindi diverso da tutti gli altri (anche se in realtà il numero viene assegnato alla scheda sim, ma questo è un altro argomento), e questo numero ha una struttura fissa composta da 10 numeri. E’ naturale pensare che non possano esistere due cellulari diversi con lo stesso numero X, altrimenti se entrambi fossero accesi e qualcuno volesse chiamare proprio il numero X cosa succederebbe? La rete telefonica non saprebbe a quale dei due cellulari inoltrare la telefonata! Quello che succede per i cellulari può essere paragonato ai computer e a Internet. Ogni computer, al momento che si collega ad una qualunque rete (sia su Internet che all’interno di una rete locale (LAN)), deve possedere un proprio indirizzo IP, assegnato dal suo Internet Service Provider – ISP (Alice, Tele2, Tiscali, …) ed avente la forma X.X.X.X, dove ogni X può essere un qualsiasi numero da 0 a 255 (con alcune eccezioni). Esempi di indirizzi IP sono 192.168.3.45, oppure 155.123.111.13, ma anche 2.3.4.5 è un indirizzo valido.

indirizzo_ip

Per conoscere il proprio indirizzo è possibile utilizzare un comando specifico da terminale. In caso di windows è necessario aprire il prompt dei comandi e digitare:

ipconfig

e tra i dati visualizzati si potrà vedere proprio l’indirizzo IP. Ovviamente facciamo attenzione a controllare la scheda giusta, se abbiamo più schede di rete all’interno del computer, e solitamente la scheda di rete è identificata come “Ethernet Adapter”, “LAN Adapter”, “Ethernet Wireless Adapter” nel caso di una scheda wireless, ecc. Ecco un esempio (l’indirizzo IP è 192.168.1.2, assegnato appunto alla scheda “Ethernet Adapter”):

ipconfig
ipconfig su Windows

Da notare che aggiungendo l’opzione /all al comando verranno visualizzate tutte le informazioni relative alla rete (server DNS, gateway, …).

Nel caso di Linux invece il comando da digitare all’interno della shell è:

# ifconfig

(per maggiori dettagli vedere l’articolo rete in Linux).

A questo punto, possiamo provare a controllare l’IP visibile da Internet attraverso uno dei tanti siti che si trovano in giro sul web, ad esempio www.ip-adress.com. L’indirizzo visibile sul sito non corrisponde a quello della macchina? Potrebbe essere così, perché c’è il trucco :-). Come ho scritto su, è vero che ogni computer collegato ad Internet riceve un indirizzo univoco, ma solo se questo è collegato direttamente alla Rete. Molto spesso invece un computer si trova dietro ad un router, come nei sistemi casalinghi, o addirittura all’interno di una LAN più o meno complessa e comunque sempre dietro ad un router e/o firewall, come nei sistemi aziendali dove i pc sono molti. Dunque, esistono due tipi di indirizzi IP: pubblici e privati. La figura mostra un esempio tipico di connessione, dove i singoli computer (PC1, PC2, PC2) sono collegati ad Internet attraverso un router. E’ possibile osservare che ogni computer ha assegnato un indirizzo IP privato, e poi tutti sono collegati allo stesso router (passando per un hub/switch) che funge da punto di contatto tra i pc e Internet. A questo punto è naturale pensare che al router venga assegnato un indirizzo IP pubblico, essendo l’unico punto visibile sulla Rete “esterna”.

topologia_rete
Topologia di una rete

Più in generale, ogni computer o dispositivo collegato direttamente ad Internet (come utilizzando un modem, e non un router!) avrà un indirizzo pubblico, altrimenti se è posto dietro ad un router/firewall avrà un IP privato, ossia visibile solo nella rete locale. I motivi per cui viene assegnato un IP diverso ai computer che si trovano dietro ad un router sono molteplici:

  • utilizzando un router è possibile collegare ad Internet un elevato numero di computer o in più in generale dispositivi, altrimenti per ognuno servirebbe un modem diverso. Inoltre il numero di dispositivi collegati ad Internet sta aumentando sempre più, e poiché il numero totale dei possibili indirizzi IP è limitato (ricordiamo la struttura X.X.X.X, con numero massimo 255 per ogni X), un po’ come le targhe delle macchine, ai computer dietro ad un router vengono assegnati degli indirizzi privati, ossia non visibili da Internet. Ciò significa che due computer diversi, che si trovano dietro a router diversi, possono avere lo stesso indirizzo IP privato;
  • i computer collegati ad Internet attraverso un router risultano anche più protetti, in quanto solo il router risulterà visibile sul web, ma non i computer dietro ad esso e con gli indirizzi privati.

Un’altra precisazione, per chi non sapesse la differenza tra modem e router… Il modem (contrazione di modulator-demodulator) è un dispositivo che traduce i dati inviati da un solo computer in modo tale da trasmetterli sulla Rete, quindi un dispositivo un po’ stupido che esegue solamente questo compito. Quindi se avessimo 10 computer da collegare ad Internet avremmo bisogno di 10 modem. Un router invece è una sorta di “mini-computer”, che non solamente trasmette i dati a/da Internet, ma che ha in genere molte altre funzionalità, tipo quella di firewall (per la protezione dalle intrusioni esterne), di access point (per la creazione di una rete wireless), e la possibilità di collegare ad esso più computer. Quindi con un router è possibile collegare ad Internet un numero elevatissimo di dispositivi, ovviamente in base al tipo e qualità del router. Ci possono essere router casalinghi, da poche decine di euro (TP-Link, Netgear, …), o router professionali dal costo di migliaia di euro (Cisco, Juniper, …). Per maggiori approfondimenti (oltre alla consueta wikipedia):

roghan

Modalità promiscua sotto i riflettori

In questo articolo spiegherò cos’è la modalità promiscua, come funziona, in quali situazioni ha senso utilizzarla, e quando invece è del tutto inutile.

Vediamo innanzitutto cos’è un indirizzo MAC e come funziona la modalità promiscua. Ogni scheda di rete (o NIC) di un pc/server ha associato direttamente nell’hardware un codice alfanumerico chiamato indirizzo MAC (Media Access Control), che è costituito da 48 bit univoci definiti dal produttore della scheda di rete. Di default, ogni scheda è configurata in modo tale da accettare solamente i pacchetti che sono destinati alla scheda stessa, rifiutando tutti quelli destinati ad indirizzi MAC differenti. E’ adesso che entra in gioco la modalità promiscua :-). Questa è una tecnica che permette di abilitare una scheda di rete alla ricezione di TUTTI i pacchetti in transito sulla rete a cui è collegata, non solo quelli destinati alla scheda di rete in oggetto. Mettere la propria scheda in modalità promiscua, e più in generale osservare il traffico in transito all’interno di una rete, prende il nome nel gergo informatico di sniffing (sniffare in italiano), tradotto letteralmente con “annusare, fiutare”. Da notare però che questa modalità è sempre disattivata al momento che una scheda di rete esce di fabbrica (per ovvie ragioni ;-)).

In questo articolo spiegherò cos’è la modalità promiscua, come funziona, in quali situazioni ha senso utilizzarla, e quando invece è del tutto inutile.

Vediamo innanzitutto cos’è un indirizzo MAC e come funziona la modalità promiscua. Ogni scheda di rete (o NIC) di un pc/server ha associato direttamente nell’hardware un codice alfanumerico chiamato indirizzo MAC (Media Access Control), che è costituito da 48 bit univoci definiti dal produttore della scheda di rete. Di default, ogni scheda è configurata in modo tale da accettare solamente i pacchetti che sono destinati alla scheda stessa, rifiutando tutti quelli destinati ad indirizzi MAC differenti. E’ adesso che entra in gioco la modalità promiscua :-). Questa è una tecnica che permette di abilitare una scheda di rete alla ricezione di TUTTI i pacchetti in transito sulla rete a cui è collegata, non solo quelli destinati alla scheda di rete in oggetto. Mettere la propria scheda in modalità promiscua, e più in generale osservare il traffico in transito all’interno di una rete, prende il nome nel gergo informatico di sniffing (sniffare in italiano), tradotto letteralmente con “annusare, fiutare”. Da notare però che questa modalità è sempre disattivata al momento che una scheda di rete esce di fabbrica (per ovvie ragioni ;-)).

Spesso si pensa che sniffare il traffico possa rientrare nei crimini informatici, anzi in molti contesti viene proprio etichettato come “attacco hacker”. Tuttavia, l’azione di osservare il traffico può al massimo rientrare nella categoria di attacchi passivi, se proprio vogliamo essere pignoli, ed è del tutto legale. E’ un po’ come se una persona si mettesse davanti alla casa di qualcuno ad aspettare: ogni volta che arriva il postino osserva la posta prima che venga imbucata. E’ chiaro che se la posta ricevuta è chiusa in una busta, il curioso non potrà leggere niente, ma se ci sono delle cartoline ad esempio tutto quello che vi è scritto potrà essere tranquillamente letto. Ciò che invece è illegale è quando si penetra in un sistema, spesso dopo aver prima sniffato i dati e aver ottenuto le credenziali di accesso. In definitiva può star tranquillo chiunque abbia usato almeno una volta nella sua vita qualche software per sniffare il traffico come Wireshark.

Adesso che sapete cosa permette di fare la modalità promiscua, vediamo in quali contesti ha senso utilizzarla, e in quali invece è del tutto inutile.

Come detto, la modalità promiscua permette di catturare tutti i pacchetti in transito in una rete, e poiché il protocollo MAC opera a livello 2, ha senso utilizzarla solamente nella stessa sottorete in cui ci troviamo (in linguaggio tecnico, nello stesso dominio di broadcast). Ciò significa che se vogliamo sniffare il traffico ci dobbiamo trovare necessariamente all’interno di una LAN, in cui saranno presenti dispositivi switch/hub ad esempio, mentre non è possibile sniffare traffico su una rete di dimensioni maggiori come Internet. In parole povere, per sniffare il traffico dobbiamo essere fisicamente “vicini” alla vittima o alle vittime, cosa tipicamente verificata in una rete locale.

In realtà già con uno switch la sola modalità promiscua è praticamente inutile (a meno di aggiungere tecniche di attacco come l’ARP poisoning). Lo switch, rispetto ad un hub che invia ogni pacchetto ad ogni porta, memorizza dinamicamente al suo interno le porte su cui sono presenti determinati indirizzi MAC, o meglio associa ogni porta ad uno o più indirizzi MAC “permessi”. Il traffico diretto ad un particolare host viene quindi indirizzato sulla specifica porta in modo che il dominio di collisione non corrisponda più all’intera rete. In questo caso ogni host collegato allo switch riceve solo il proprio traffico al quale può sommarsi qualche raro pacchetto inviato in broadcast per determinare la corrispondenza tra indirizzo MAC e porta dello switch. Dunque una scheda di rete in modalità promiscua in uno scenario come questo serve a ben poco, senza l’aggiunta, come già detto, di altre tecniche. Da tener conto che anche attacchi di ARP poisoning possono avere esiti diversi a seconda della grado di sofisticazione e della configurazione dello switch (un conto è uno switch Cisco, un altro uno switch acquistato all’Ipercoop :-().

In linea generale si può dire che una cosa analoga valga anche per le VLAN. Sono possibili attacchi di ARP poisoning all’interno di una stessa VLAN, mentre è decisamente più improbabile un attacco che permetta di compromette un host appartenente ad una VLAN diversa. In definitiva, la messa in ascolto di una scheda di rete con il solo uso della modalità promiscua è utile solo con dei semplici ed obsoleti hub, ed è invece del tutto inutile con gli switch.

Per approfondimenti, consiglio di visitare i link seguenti:

roghan

Lavorare nel settore “sicurezza informatica”

Da quando ho finito l’università e mi sono laureato ho iniziato seriamente ad interessarmi al settore della sicurezza in rete, o più in generale della sicurezza informatica. Non che prima non mi interessasse questo ambito, anzi, mi attirava molto il mondo un po’ underground degli hacker, degli worm e dei cavalli di troia, quello visto nei film in cui il ragazzino adolescente riesce in pochi attimi ad entrare in qualche mega computer della CIA. Il problema è che non avevo mai avuto veramente il tempo ma anche la voglia durante tutto il periodo universitario di interessarmi a questo mondo, dato che il carico di studio era davvero moooooooolto elevato! Solo con la tesi finale sono riuscito a scegliere un argomento che mi interessasse davvero (strumenti per l’anonimato in Rete), e da lì ho capito quale sarebbe stato il mio futuro :-D… Finita l’università ho deciso poi di cercare un master/corso che avesse come argomento principale proprio la sicurezza, ma data l’impossibilità di frequentare un master a Roma o Milano (quota dai 6000/7000 euro in su più i soldi necessari per vitto e alloggio!) ho optato per un corso disponibile a Firenze: il Cisco CCNA Security. […]

(in costante aggiornamento)

Da quando ho finito l’università e mi sono laureato ho iniziato seriamente ad interessarmi al settore della sicurezza in rete, o più in generale della sicurezza informatica. Non che prima non mi interessasse questo ambito, anzi, mi attirava molto il mondo un po’ underground degli hacker, degli worm e dei cavalli di troia, quello visto nei film in cui il ragazzino adolescente riesce in pochi attimi ad entrare in qualche mega computer della CIA.

Il problema è che non avevo mai avuto veramente il tempo ma anche la voglia durante tutto il periodo universitario di interessarmi a questo mondo, dato che il carico di studio era davvero moooooooolto elevato! Solo con la tesi finale sono riuscito a scegliere un argomento che mi interessasse davvero (strumenti per l’anonimato in Rete), e da lì ho capito quale sarebbe stato il mio futuro :-D… Finita l’università ho deciso poi di cercare un master/corso che avesse come argomento principale proprio la sicurezza, ma data l’impossibilità di frequentare un master a Roma o Milano (quota dai 6000/7000 euro in su più i soldi necessari per vitto e alloggio!) ho optato per un corso disponibile a Firenze: il Cisco CCNA Security. Solo dopo aver iniziato il corso però ho compreso due cose: la prima è che il corso era rivolto unicamente agli amministratori di rete, in modo da fornire loro delle basi relative alla sicurezza sui router/switch; secondo che era necessaria la certificazione CCNA per sostenere quella relativa alla security :-O, e in più la notevole difficoltà che ho incontrato a seguire il corso! Le conoscenze fornitemi dalla laurea non erano proprio sufficienti :-(, e ho dovuto faticare non poco per sostenere l’esame per la certificazione… Comunque ora che ho iniziato a muovere i primi passi nel settore IT posso cercare di fare una lista di quelle che sono le figure principali che ruotano attorno al settore della sicurezza informatica:

  • (Network) Security Administrator: è la persona che lavora parallelamente all’amministratore di rete, e si occupa di rendere sicura una certa rete configurando firewall/ACL, gestendo le autenticazioni degli utenti, crittografando le connessioni, e più in generale opera sulle configurazioni di router/switch/server/pc al fine di rendere la rete sicura. Una scheda che descrive il profilo (anche se orientato a soluzioni Microsoft) è disponibile al link profilo Security Administrator.
  • (Network) Security Manager:  è colui che si occupa di configurare  l’infrastruttura di rete e di applicare le procedure di sicurezza definite dall’azienda per cui lavora e conformi alle misure normative italiane. Inoltre deve garantire la sicurezza e la disponibilità dei dati, monitorare le performance, i database e gli eventi sospetti. E’ una figura centrale nell’infrastruttura informatica aziendale in quanto si occupa di gestire trasversalmente le procedure e le diverse soluzioni implementate con il compito specifico di assicurare quotidianamente l’affidabilità e la sicurezza dell’intero sistema informatico. Rispetto al Network Security Aministrator è una figura dalla preparazione più ampia (non solo configurazione di router/server).
  • Penetration Tester: è colui che determina il reale grado di sicurezza di una rete, cercando di violarla con una grande varietà di attacchi e non. L’obiettivo è quello di individuare eventuali vulnerabilità sfruttabili da terzi per ottenere accessi non autorizzati ai servizi e ai sistemi analizzati. Oltre ai problemi di sicurezza, devono essere rilevati, quali possibili punti deboli, i problemi relativi alla configurazione, che incidono sulla robustezza e le performance del sistema, e gli errori di progettazione della rete. A volte una cattiva configurazione è più pericolosa di un bug. Una descrizione di questo profilo e di cosa sono i penetration test è al link Penetration Tester.
  • (Network) Security Consultant: è il libero professionista, o colui che lavora assieme ad un piccolo team di persone (in genere da 2 a 4) o anche come dipendente di un’azienda, che viene ingaggiato da terze parti per configurare e gestire la sicurezza delle reti o dei sistemi.

Inoltre ci sono altre figure che possono operare a stretto contatto con la sicurezza, come:

  • System Administrator: è l’esperto di sistemi, come Linux e Windows, generalmente lato server, con buone conoscenze spesso anche di ambienti virtualizzati, di networking, e di sicurezza. Si occupa di amministrare i sistemi in questione, configurandone spesso anche gli aspetti di networking e hardening.
  • Network Administrator: è colui che gestisce tutto ciò che riguarda le reti, dalla configurazione di router e switch, a quella dei server, dei proxy, dei firewall, sia dal lato LAN che WAN. Oltre a ciò, molto spesso si occupa anche della parte di sicurezza inerente alle reti che gestisce, o comunque lavora a stretto contatto con le figure che si occupa di sicurezza di rete.

roghan

[Virtualizzazione] Cluster in HA e Disaster Recovery

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

* attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
* attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
* attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato. […]

Sempre più diffusi sono i sistemi cluster, costituiti da gruppi di computer (tipicamente server) collegati tra loro ed in grado di lavorare insieme. Il sistema cluster minimo prevede l’utilizzo di due nodi collegati tra loro. Nello specifico esistono tre tipi di cluster:

  • attivo/passivo, detto anche cluster in HA (High Availability), o anche cluster failover;
  • attivo/attivo ad alte performance, o cluster di nodi che lavorano in parallelo;
  • attivo/attivo con bilanciatore di carico (NLB, Network Load Balancing).

Il primo tipo di cluster viene anche definito HA (High Availability), e la sua funzionalità è quella di garantire sempre un determinato servizio. Tale servizio viene erogato dal computer attivo, ma qualora dovesse verificarsi un malfunzionamento, il sistema cluster provvederebbe ad avviare immediatamente uno degli altri nodi, che entrerebbe in sostituzione di quello appena guastato. Generalmente questo tipo di cluster adotta il supporto dei dischi di Quorum per condividere con tutti i nodi i dati precedentemente utilizzati dalla macchina che è andata in failure. Il secondo tipo di cluster è costituito da nodi che lavorano in parallelo per garantire elevate prestazioni. Ogni processo sottomesso al sistema cluster viene suddiviso tra le macchine che compongono il sistema. L’ultimo tipo di cluster è quello attivo/attivo, in cui tutti i nodi che lo compongono sono sempre attivi, e vi è un bilanciatore di carico che distribuisce le richieste al nodo meno occupato.

I sistemi cluster sono fondamentali in un mondo in cui le persone vogliono sempre tutto e subito; sono fondamentali per molte aziende che devono rendere costantemente disponibili i propri servizi, e dove per costantemente si intende 24h su 24, tutti i giorni dell’anno! Ecco che entra in gioco il ruolo del cluster HA appena descritto, o meglio un insieme di più nodi organizzati in modo tale da offrire un servizio quanto più possibile continuo.laptop-fire L’errore che molto spesso viene fatto nelle aziende (ho saputo di casi reali avvenuti a clienti dell’azienda in cui lavoro :-(!), è quello di acquistare come nodo primario un sistema ultra-veloce, come potrebbe essere una Ferrari, ed adoperare invece come nodo secondario un vecchio computer, paragonabile ad una memorabile Panda. Mai commettere questo errore! In caso di disaster recovery il sistema super-veloce smetterebbe di funzionare, e tutte le richieste verrebbero dunque inoltrate al secondo nodo, la vecchia Panda: siamo sicuri che la Pandina una volta entrata in funzione sia in grado di gestire tutto il carico in arrivo? Molto spesso infatti il secondo nodo non è in grado di supportare neppure metà dei servizi di quello principale, con il risultato che tutto il sistema si potrebbe bloccare dopo non molto.

Pertanto, la soluzione migliore è di configurare il cluster con nodi tutti identici. Nel caso dell’esempio precedente la soluzione è di usare due belle BMW in grado di raggiungere buone prestazioni, anche se inferiori alla Ferrari, ma prestazioni sicuramente costanti (con e senza failover)!

Inoltre, un altro errore molto diffuso nelle aziende è quello di non simulare mai un disaster recovery, un po’ come avviene per i dati di backup. Quanti di voi controllano che i dati appena salvati sia coerenti e privi di errori?? Quindi, prevenire piuttosto che curare, e pianificare con attenzione ogni scelta da fare!

Alla prossima…

Matteo

Security ed Anti-Forensic nell’ambito della rete aziendale

Al convegno e-privacy del 28 maggio 2010 mi ha particolarmente interessato una discussione riguardante le tecniche di anti-forensic presentata da Daniele Martini, alias cyrax. Le tecniche di anti-forensic sono tutte quelle tecniche, opposte alle forensic (o investigazioni forensi), che mirano a nascondere le informazioni e a proteggere i dati da potenziali controlli e investigatori.

forensic science

Le tecniche presentate durante la relazione non sono state descritte nei dettagli, ma vogliono essere solo un pretesto per illustrare il panorama attuale in materia, e sono le seguenti:

* Artifact wiping
Questa tecnica prevede la cancellazione dei dati utilizzando ad esempio più riscritture dei blocchi in memoria, da un minimo di 3, arrivando addirittura a 14 o anche molte più riscritture. Tuttavia esistono sistemi che permettono di recuperare i dati anche in seguito a numerose riscritture, e per questo motivo è consigliabile effettuare sempre un elevato numero di riscritture dei blocchi. L’eliminazione definitiva dei dati può passare anche da azioni “definitive” come la rottura fisica del dispositivo di archiviazione, oppure l’utilizzo di campi magnetici in modo da rendere illeggibile il contenuto. Tra le tecniche mostrate che permettono il recupero dei dati c’è stato il Cold Boot Attack (link1 e link2), che, lo ammetto, non avevo mai sentito nominare! E’ un particolarissimo tipo di attacco fisico (ossia l’attaccante deve avere accesso fisico al dispositivo bersaglio), in cui viene congelata la RAM e quindi tolta dal dispositivo. Il congelamento è necessario per permettere ai dati di rimanere in memoria alcuni minuti, dal momento che la RAM per definizione è un tipo di memoria volatile, in cui i dati vanno persi non appena il sistema viene spento.
[…]

Al convegno e-privacy del 28 maggio 2010 mi ha particolarmente interessato una discussione riguardante le tecniche di anti-forensic presentata da Daniele Martini, alias cyrax. Le tecniche di anti-forensic sono tutte quelle tecniche, opposte alle forensic (o investigazioni forensi), che mirano a nascondere le informazioni e a proteggere i dati da potenziali controlli e investigatori.

Le tecniche presentate durante la relazione non sono state descritte nei dettagli, ma vogliono essere solo un pretesto per illustrare il panorama attuale in materia, e sono le seguenti:

  • Artifact wiping
    Questa tecnica prevede la cancellazione dei dati utilizzando ad esempio più riscritture dei blocchi in memoria, da un minimo di 3, arrivando addirittura a 14 o anche molte più riscritture. Tuttavia esistono sistemi che permettono di recuperare i dati anche in seguito a numerose riscritture, e per questo motivo è consigliabile effettuare sempre un elevato numero di riscritture dei blocchi. L’eliminazione definitiva dei dati può passare anche da azioni “definitive” come la rottura fisica del dispositivo di archiviazione, oppure l’utilizzo di campi magnetici in modo da rendere illeggibile il contenuto. Tra le tecniche mostrate che permettono il recupero dei dati c’è stato il Cold Boot Attack (link1 e link2), che, lo ammetto, non avevo mai sentito nominare! E’ un particolarissimo tipo di attacco fisico (ossia l’attaccante deve avere accesso fisico al dispositivo bersaglio), in cui viene congelata la RAM e quindi tolta dal dispositivo. Il congelamento è necessario per permettere ai dati di rimanere in memoria alcuni minuti, dal momento che la RAM per definizione è un tipo di memoria volatile, in cui i dati vanno persi non appena il sistema viene spento.
  • Data Hiding
    Questa è l’arte di nascondere le informazioni all’interno di “luoghi” improbabili, che si suppone non saranno controllati dall’eventuale indagatore. Tra queste tecniche vi è quella di celare i dati in determinati blocchi della memoria, per poi etichettarli come bad block, oppure in spazi riservati del filesystem (come ad esempio la directory /dev sui sistemi Linux), o ancora nello slack space.
  • Encryption
    Il metodo “classico” per nascondere i dati, attraverso la cifratura dell’intero filesystem, o di determinate directory (viene citato come esempio il noto TrueCrypt). Infine viene discussa la tecnica della steganografia, l’arte di nascondere un messaggio in un determinato contesto, come l’occultamento di un testo in una foto o in un video/audio.
  • Trail obfuscation
    Qui sono state discusse le tecniche per offuscare i dati come la modifica dell’hash di un file o degli attributi di un file (data modifica, ultimo accesso, …). Un’azione invece più deplorevole potrebbe essere di installare un po’ di diavolerie sul proprio sistema, come worm, virus o cavalli di troia, al fine di dire “non sono stato io perché ho preso un virus!”. In questo modo è possibile cercare di confondere chi vuole accedere ai dati e controllarli.
  • Attacks against CF
    Questa categoria infine racchiude tutte le azioni che cercano di nascondere e/o rimuovere certi dati al verificarsi di particolari condizioni. Ad esempio potrebbero essere creati degli script che eliminano dei dati se viene effettuato il login da un certo utente, o se si verificano particolari procedure di avvio, o in alternativa potrebbe essere avviata una Virtual Machine. Un’altra tecnica, però molto pericolosa :-P, è anche quella di controllare la rete a cui è collegato il dispositivo, e nel caso cambi effettuare determinate operazioni.

L’intervento è liberamente distribuito e scaricabile dal sito del convegno e-privacy, sia come file pdf che come audio in formato mp3. Ecco il link:

e-privacy.winstonsmith.org/interventi.html#martini

Altrimenti il pdf è scaricabile direttamente dal seguenti link:

download pdf

roghan

Pericolo hacker: è davvero così?

Alcuni giorni fa è stato trasmesso da Le Iene un video in cui veniva intervistato un giovane hacker, anzi nemmeno tanto giovane ;-). Anche se vi siete persi la puntata non preoccupatevi, su youtube si trova sempre tutto, eccolo. Nell’intervista l’hacker dice, e poi dimostra, quanto sia facile entrare nel pc di una qualunque persona, e dunque quanto sia facile poter rubare dati sensibili o altro ad ignari utenti. Il tipo afferma che non ha mai usato le password e i dati che ha recuperato per nessun motivo, ma sarà davvero così? Personalmente non gli credo, perché dice anche che impiega giorni se non mesi per pianificare un attacco! Quindi trascorre dei mesi a pensare ad un possibile attacco solo per puro divertimento?? Mah! Comunque, tornando allo scopo dell’articolo, il pericolo di essere attaccati è davvero così elevato come vogliono farci credere nel video? Nella realtà non è proprio così…
Per quanto riguarda i cracker, ossia gli hacker “cattivi” (che attaccano i pc e i sistemi non per divertimento o passione ma solo per scopo di lucro o peggio), si possono categorizzare in due tipologie:

* quelli che non vogliono attaccare una persona in particolare, e l’obiettivo è semplicemente attaccare qualcuno, come nel caso dei virus/worm/trojan trasmessi ad utenti sconosciuti tramite i software p2p
* quelli che invece prendono di mira una persona specifica (o un’azienda ad esempio), che conoscono, o comunque possono essere a conoscenza che questa persona ha dei dati che a loro potrebbe interessare. […]

Alcuni giorni fa è stato trasmesso da Le Iene un video in cui veniva intervistato un giovane hacker, anzi nemmeno tanto giovane ;-). Anche se vi siete persi la puntata non preoccupatevi, su youtube si trova sempre tutto, eccolo. Nell’intervista l’hacker dice, e poi dimostra, quanto sia facile entrare nel pc di una qualunque persona, e dunque quanto sia facile poter rubare dati sensibili o altro ad ignari utenti. Il tipo afferma che non ha mai usato le password e i dati che ha recuperato per nessun motivo, ma sarà davvero così? Personalmente non gli credo, perché dice anche che impiega giorni se non mesi per pianificare un attacco! Quindi trascorre dei mesi a pensare ad un possibile attacco solo per puro divertimento?? Mah! Comunque, tornando allo scopo dell’articolo, il pericolo di essere attaccati è davvero così elevato come vogliono farci credere nel video? Nella realtà non è proprio così…

Per quanto riguarda i cracker, ossia gli hacker “cattivi” (che attaccano i pc e i sistemi non per divertimento o passione ma solo per scopo di lucro o peggio), si possono categorizzare in due tipologie:

  • quelli che non vogliono attaccare una persona in particolare, e l’obiettivo è semplicemente attaccare qualcuno, come nel caso dei virus/worm/trojan trasmessi ad utenti sconosciuti tramite i software p2p
  • quelli che invece prendono di mira una persona specifica (o un’azienda ad esempio), che conoscono, o comunque possono essere a conoscenza che questa persona ha dei dati che a loro potrebbe interessare.

Rientrano nella prima categoria quasi unicamente gli attacchi definiti phishing, quando il cracker X invia una mail all’utente contenente un link ad un sito fasullo, o quando la mail contiene un allegato che in realtà è un virus o un trojan. Questo tipo di cracker non conosce solitamente molte informazioni sulla vittima, e quindi la pericolosità dell’attacco sta tutta nella mail! Per quanto riguarda invece il secondo gruppo di cracker, la situazione è ben diversa. In questo caso l’attaccante ha più informazioni sulla vittima, o si trova fisicamente vicino (ad esempio un vicino di casa che vuole crakkare il router wireless, o in luoghi pubblici con un accesso wifi libero), e il metodo di attacco può anche essere diverso dal semplice phishing, anzi quasi sicuramente.

Dopo questa breve spiegazione sui possibili hacker “cattivi”, vediamo se e quando bisogna preoccuparci e come possiamo proteggerci! Tornando ancora al primo gruppo di cracker, possiamo proteggerci da essi con un minimo di accortezza:

  1. installare un firewall sul proprio pc (a meno che non abbiate un router ADSL, che generalmente incorpora e ha attivo un firewall)
  2. avere un antivirus aggiornato (non importa avere una suite super costosa, ma è sufficiente anche un antivirus freeware)
  3. aggiornare costantemente il proprio sistema operativo (che sia Windows, Linux, Mac, o altro)
  4. fare attenzione alle mail ricevute. Disabilitare sempre la visualizzazione delle mail in formato HTML, e visualizzare in semplice modalità testuale in modo da evitare il caricamento di eventuali script nascosti. Non dobbiamo mai rispondere a mail sospette, e soprattutto non aprirne gli allegati!
  5. non dobbiamo visitare siti potenzialmente dannosi, come ad esempio siti warez/crack, contenenti codici seriali o materiale pirata in generale, o a volte anche fasulli siti di gruppi hacker
  6. attenzione anche a ciò che si scarica tramite software p2p.

Seguendo questi accorgimenti le possibilità di subire un attacco sono prossime allo zero. Diversa è la situazione nel caso in cui un utente sia preso di mira da un cracker, che è fisicamente vicino alla vittima nel caso di connessioni wireless, oppure quando conosce ad esempio il suo indirizzo IP. In questo caso non esiste difesa sicura, e dipende tutto dal livello di abilità dell’attaccante nel portare a termine un attacco diretto! Firewall e antivirus non servono a molto purtroppo :-(… Per un maggiore approfondimento su ciò, consiglio di leggere l’intervista a Joanna Rutkowska, esperta di sicurezza informatica, al seguente link:

Contro i veri hacker non c’è firewall che tenga

Concludendo, il numero di attacchi maggiormente diffusi viene effettuato da cracker appartenenti al primo gruppo (a volte semplici ragazzini, in gergo definiti script-kiddies), mentre sono molto rari quelli relativi al secondo gruppo, diciamo 10 a 1. Dunque possiamo tutti dormire sonni tranquilli e non c’è da preoccuparsi per quello che hanno detto a Le Iene se seguiamo gli accorgimenti scritti su, e ricordiamo… La miglior difesa siamo sempre e solo noi stessi!

Vi consiglio anche di leggere la guida che ho scritto:

Come proteggere la privacy in Rete

roghan

E’ utile avere una certificazione?

Da quando ho finito l’università, lo scorso aprile, mi sono messo alla ricerca per mesi di un corso/master sulla sicurezza che mi permettesse di mettere le basi per poter poi lavorare in questo settore. Mi sono informato presso amici e conoscenti, ho girato sul web ore ore e ore, e le opzioni che mi si sono presentate sono state queste:

* master organizzati dalle grandi università, come a Milano e Roma, della durata di un anno e in grado di fornire ottime conoscenze di base, ma dal costo non irrisorio (dai 5000 euro in su, anche fino a 10000). E’ da considerare anche il fatto che avrei dovuto studiare fuori sede, e dunque avrei dovuto sommare il costo di vitto e alloggio. Risultato: opzione scartata subito.
* stage, in modo da entrare velocemente nel mondo del lavoro e provare “con mano” cosa significa lavorare nella sicurezza. Il problema di questa opzione era che mi mancavano le basi per poterlo fare! Anche se è proprio lo scopo di uno stage quello di formare un giovane, però sono necessarie delle conoscenze di base, che la mia laurea purtroppo non mi ha fornito :-(. Se ad esempio si vuole diventare programmatori, e si pensa di fare uno stage in azienda come programmatore Java, saranno necessarie almeno alcune conoscenze sull’informatica e sulla programmazione in generale. Non si può guidare senza aver fatto alcune lezioni di guida…
* la terza opzione era quella di seguire un corso dalla cifra modica, e organizzato da quante scuola/università nella mia regione (la Toscana), per evitare i costi dovuti a vitto e alloggio. I corsi (in genere della durata di qualche mese, 3-6) che avevo trovato erano tutti di poche ore, coprivano aspetti generali sulla sicurezza (che si possono apprendere anche con un po’ di studio da autodidatta e con un po’ di buona volontà) e non rilasciavano alcun titolo. Quindi ho ripiegato su un corso che mi permettesse alla fine di ottenere una certificazione!
[…]

Da quando ho finito l’università, lo scorso aprile, mi sono messo alla ricerca per mesi di un corso/master sulla sicurezza che mi permettesse di mettere le basi per poter poi lavorare in questo settore. Mi sono informato presso amici e conoscenti, ho girato sul web ore ore e ore, e le opzioni che mi si sono presentate sono state queste:

  • master organizzati dalle grandi università, come a Milano e Roma, della durata di un anno e in grado di fornire ottime conoscenze di base, ma dal costo non irrisorio (dai 5000 euro in su, anche fino a 10000). E’ da considerare anche il fatto che avrei dovuto studiare fuori sede, e dunque avrei dovuto sommare il costo di vitto e alloggio. Risultato: opzione scartata subito.
  • stage, in modo da entrare velocemente nel mondo del lavoro e provare “con mano” cosa significa lavorare nella sicurezza. Il problema di questa opzione era che mi mancavano le basi per poterlo fare! Anche se è proprio lo scopo di uno stage quello di formare un giovane, però sono necessarie delle conoscenze di base, che la mia laurea purtroppo non mi ha fornito :-(. Se ad esempio si vuole diventare programmatori, e si pensa di fare uno stage in azienda come programmatore Java, saranno necessarie almeno alcune conoscenze sull’informatica e sulla programmazione in generale. Non si può guidare senza aver fatto alcune lezioni di guida…
  • la terza opzione era quella di seguire un corso dalla cifra modica, e organizzato da quante scuola/università nella mia regione (la Toscana), per evitare i costi dovuti a vitto e alloggio. I corsi (in genere della durata di qualche mese, 3-6) che avevo trovato erano tutti di poche ore, coprivano aspetti generali sulla sicurezza (che si possono apprendere anche con un po’ di studio da autodidatta e con un po’ di buona volontà) e non rilasciavano alcun titolo. Quindi ho ripiegato su un corso che mi permettesse alla fine di ottenere una certificazione.

Fino a qualche mese fa non sapevo neppure dell’esistenza delle certificazioni, né cosa fossero, né tanto meno come fosse possibile ottenerle! Una certificazione si ottiene in seguito al conseguimento di uno o più esami presso una scuola (in alcuni casi è possibile anche sostenere gli esami online, ma io eviterei questa opzione :-|), ha durata di qualche anno (dopodiché scade e va rinnovata), e permette di ottenere un “titolo” da aggiungere al proprio curriculum. A differenza di un diploma o di una laurea, in cui gli esami devono essere sostenuti una sola volta (e vorrei anche vedere!), nelle certificazioni, come ho scritto sopra, è necessario restare aggiornati e pertanto dopo qualche anno andrà nuovamente sostenuto l’esame/i. Dopotutto il settore dell’informatica, e quindi anche quello della sicurezza, è un settore in costante aggiornamento, no?! Nel giro di pochi mesi tutto diventa obsoleto, dal pc, ai programmi… tutto deve rimanere aggiornato!

Una certificazione, in definitiva, attesta le capacità di fare “qualcosa” e le conoscenze per farlo al meglio, a differenza della laurea che fornisce perlopiù solo conoscenze teoriche. Nel mio corso di laurea c’era un corso che si chiamava “Sicurezza delle Reti” in cui non venivano neppure citati i termini firewall, IDS, virus. Doveva chiamarsi “Fondamenti di criptografia”, oppure, non so, “Criptografia e criptanalisi”, e allora sarebbe stato corretto il materiale del corso, ma non “Sicurezza delle Reti”!! Ai fini pratici a cosa servono esami di questo tipo? Solo per arrivare alla laurea e per mostrare gli aspetti matematici dietro agli algoritmi criptografici, ma del tutto inutili per entrare nel mondo del lavoro! Una certificazione sulla sicurezza invece è pratica, o meglio “real-world” come spesso viene definita. Permette di studiare la teoria, ma anche di fare pratica e vedere che cosa significa “mettere un sistema in sicurezza”. Questo è il vero vantaggio secondo me!

Personalmente la scorsa settimana ho fatto e superato il mio primo esame per una certificazione Cisco, la CCNA Security. L’esame che ho superato è stato “Implementing Cisco IOS Network Security”, e l’ho sostenuto dopo aver seguito un corso presso una scuola di Firenze, da settembre a prima di Natale. Posso dire che adesso ho una visione di insieme della sicurezza molto più ampia di prima, sia perché il corso è stato molto pratico, sia perché permette di entrare in questo settore molto rapidamente (cosa che raramente fa un esame universitario). Purtroppo però studiare non è stato molto facile, anzi è stato molto ma molto faticoso, e tante sono state le ore che ho dovuto passare sui libri e al pc a fare pratica. Questo perché il CCNA Security è un esame che andrebbe sostenuto solo dopo aver conseguito il CCNA (o almeno dopo aver seguito un corso analogo), per avere le conoscenze base sul networking. Nel mio corso di laurea non esiste esame che spiega cos’è un router, cos’è concretamente una LAN, o cos’è un virus, ma dico io!!!!

Concludendo posso dire che una certificazione secondo me è utile in due casi:

  1. quando non si hanno conoscenze reali o esperienze sul campo, ma solo teoriche, e purtroppo questa è una situazione molto diffusa nelle università italiane (almeno per quanto riguarda informatica, e le ingegnerie corrispondenti).
  2. quando la laurea o comunque il titolo di studio non è idoneo (tipo in lettere, in biologia, solo per fare un esempio).

Matteo

“Il nucleo della conoscenza è questo: se la possiedi, applicala; se non la possiedi, confessa la tua ignoranza.” (Confucio)

Guadagnare con i social network?!

Giorni fa sono capitato su quello che pare essere un nuovo social network, o meglio un altro… ma con una particolarità! Il titolo della homepage recita infatti “Il Network Sociale che Ricompensa i Suoi Membri”, che ottima trovata vi starete dicendo! Davvero una bella novità, e finalmente una ventata di aria fresca… tenendo conto di quanto siano sempre più utilizzati ultimamente i social network, facebook su tutti! Ma sarà davvero così? Forse sì, o forse no? Cosa ci guadagna il sito oltre la popolarità? Andiamo per ordine e partiamo dal sito, che è raggiungibile al seguente indirizzo:

Klikot

Per curiosità sono andato a leggere la pagina Privacy, che si trova in basso nella home, e l’arcano è stato svelato: guadagno per gli utenti in cambio dei loro dati! E poi si parla sempre di privacy… Infatti basta fermarsi al primo paragrafo della pagina (quello intitolato “Personal information that We collect”), e in particolare alla seguente parte:
[…]

Giorni fa sono capitato su quello che pare essere un nuovo social network, o meglio un altro… ma con una particolarità! Il titolo della homepage recita infatti “Il Network Sociale che Ricompensa i Suoi Membri“, che ottima trovata vi starete dicendo! Davvero una bella novità, e finalmente una ventata di aria fresca… tenendo conto di quanto siano sempre più utilizzati ultimamente i social network, facebook su tutti! Ma sarà davvero così? Forse sì, o forse no? Cosa ci guadagna il sito oltre la popolarità? Andiamo per ordine e partiamo dal sito, che è raggiungibile al seguente indirizzo:

Klikot

Per curiosità sono andato a leggere la pagina Privacy, che si trova in basso nella home, e l’arcano è stato svelato: guadagno per gli utenti in cambio dei loro dati! E poi si parla sempre di privacy… Infatti basta fermarsi al primo paragrafo della pagina (quello intitolato “Personal information that We collect”), e in particolare alla seguente parte:

“For example, we may record the frequency and scope of your use of the services, the duration of your sessions, the web pages that you visit, information that you read, content that you use or create, advertisements that you view or click on, your communications with other users and third parties on Klikot, the Internet protocol (IP) address and the name of the domain that serve you to access Klikot, or any of the Services, and the geographic location of the computer system that you are using to log-in on Klikot. We may automatically gather this information, through the use of log files. If you are registered with Klikot, the information we gather may be anonymous or in some instances personally identifiable. If you are not a registered user, than we will not knowingly make use of any information which personally identifies you, except as specifically indicated in the policy.”

Praticamente vengono registrate quasi tutte le azioni effettuate dall’utente sul sito :-|, anche se in teoria più avanti nella pagina vengono specificati i termini di utilizzo dei dati raccolti (non so però quanto possano essere ritenuti affidabili e precisi). Vengono memorizzati i file log delle pagine visitate dagli utenti, i contenuti creati o usati, tutte le comunicazioni, e l’indirizzo IP! Quest’ultimo è ciò che identifica in Rete una qualsiasi persona o più in generale un dispositivo collegato alla Rete, e può essere paragonato al numero della carta d’identità di una persona, anche se risalire al nome dell’intestatario dell’indirizzo IP non è una cosa praticamente possibile (dovrebbe essere inoltrata una richiesta all’ISP dell’utente), eccetto che per enti del tipo NSA, FBI, Polizia Postale, o comunque grandi organizzazioni.

Questo credo sia solo uno dei tanti esempi che circolano sul web, non solo per quanto riguarda i social network, ma anche per tanti altri servizi. Spesso un servizio, un software, o qualunque altra cosa liberamente distribuita sul web cela al suo interno un arcano segreto, simile a quello di questo sito, se non peggiore! Non è una novità sentire di siti e aziende che hanno venduto i dati raccolti nei loro database a terze parti, di programmi contenenti spyware al loro interno (da non confondere con il termine più generale malware, ossia tutto quel software che ha come obiettivo quello di danneggiare il pc su cui viene eseguito). Con questo non voglio dire di non usare servizi e siti free, o software freeware, anzi l’open source dovrebbe fare da scuola a molti, però dico di fare molta attenzione a ciò che all’apparenza può sembrare “tutto oro”…

Matteo

“Gli onesti da nessun guadagno sono indotti all’inganno, i disonesti anche da uno piccolo.” (Cicerone)