Cyber Security: attacco e difesa

Cyber Security: attacco e difesa

I software usati dai cracker per violare la sicurezza di PC e reti sono gli stessi che permettono di blindare un sistema
I software usati dai cracker per violare la sicurezza di PC e reti sono gli stessi che permettono di blindare un sistema

GNU/Linux supporta una tonnellata di strumenti e utilità per il cracking delle password, per scovare eventuali vulnerabilità di rete, scansionare gli host connessi a una rete e rilevare eventuali intrusioni. Uno dei grandi vantaggi delle distribuzioni GNU/Linux è che la sua sicurezza tende ad essere migliore di quella offerta dai concorrenti “proprietari” . Ciò è dovuto in gran parte al modo in cui il kernel Linux assegna i permessi, ma è anche vero che l’OS open source viene preso di mira dagli autori di malware molto meno frequentemente di Windows. Resta il fatto, tuttavia, che nessun sistema operativo è perfettamente sicuro.

GNU/Linux è molto popolare tra hacker e cracker per due ragioni principali. In primo luogo, il codice sorgente del kernel Linux è liberamente disponibile. Pertanto, è facilmente modificabile e personalizzabile. In secondo luogo, esistono numerose distribuzioni GNU/Linux specializzate in sicurezza che includono nella dotazione software strumenti di hacking a fini di penetration testing , che potrebbero, però, essere impiegati per una vasta gamma di attacchi da parte di malintenzionati.


Esempi di attacchi alla sicurezza di un sistema operativo

Un password cracker , ad esempio, è sviluppato per la decodifica di chiavi di sicurezza in una varietà di formati, come password criptate o hash. Molte distribuzioni di cracking, inoltre, offrono funzionalità aggiuntive come rilevatori di rete e packet sniffing wireless . Grazie a questi tool, un malintenzionato potrebbe scoprire un modo semplice per ottenere accessi non autorizzati a reti aziendali, database, directory private e tanto altro ancora. Gli scanner di rete , poi, vengono usati per rilevare altri dispositivi connessi ad una rete: in tal modo, gli aggressori sono in grado di sviluppare una mappa virtuale della rete stessa. Oltre a scoprire i dispositivi collegati, molti scanner sono in grado di raccogliere dettagli inerenti ai device, come il tipo di sistema operativo installato, i software in esecuzione ed eventuali firewall attivi. Tutte informazioni che un malintenzionato potrebbe usare per conseguire attacchi ancora più mirati.

Fortunatamente, esistono varie contromisure che si possono adottare per ridurre il rischio di minacce. E molte di queste, ironia della sorte, richiedono l’uso degli stessi strumenti impiegati dai malintenzionati per forzare i sistemi altrui. Con gli stessi tool pocanzi citati, infatti, è possibile testare il software installato nel proprio PC e, più in generale, la sicurezza della propria rete locale. Solo conoscendo le mosse del nemico è possibile attuare adeguati piani di difesa .

Quali sono le minacce più comuni?
Alcune tecniche sono ben note, altre, invece, vengono sottovalutate o del tutto ignorate dagli utenti. In linea di massima, però, si tratta quasi sempre di software (installati nel PC della vittima) capaci di memorizzare e trasmettere in remoto le credenziali dell’utente o, in alternativa, causare disagi senza compromettere la privacy dei dati memorizzati nel computer.
Di seguito, un l’elenco di minacce note.
Trojan Horse : memorizza i dati per inviarli a un malintenzionato che può in seguito loggarsi al PC e accedere alle risorse del sistema;
Trap door : se un programma ha un buco di sicurezza nel suo codice, può eseguire un’azione illegale senza che l’utente ne venga a conoscenza;
Logic Bomb : è una situazione in cui un programma si comporta diversamente dai suoi canoni solo quando determinate condizioni vengono soddisfatte, altrimenti funziona come un software vero e proprio;
Virus : può modificare/cancellare i file degli utenti. Un virus è generalmente un piccolo codice incorporato in un software. Non appena l’utente vi accede, il virus può rendere il sistema inutilizzabile;
Worm : genera molteplici copie di sé stesso impedendo a tutti gli altri processi di ottenere le risorse necessarie. I processi worm possono anche spegnere un’intera rete;
Port Scanning : è un meccanismo o mezzo attraverso il quale un hacker può rilevare le vulnerabilità del sistema per attuare un attacco;
Denial of Service : è una tecnica che impedisce all’utente di utilizzare normalmente il sistema.

All’interno dell’architettura di un PC, la trasmissione di messaggi è sicura semplicemente perché il sistema operativo conosce esattamente il destinatario e il mittente del messaggio (comunicazione fra periferiche e componenti). Ma su una rete (locale o globale che sia) le cose cambiano: un PC “canaglia” può falsificare la propria identità e smistare a destinatari differenti un messaggio in realtà indirizzato ad altri. La criptografia può aiutare a risolvere questi problemi, specialmente se associata ad un sistema di chiavi pubbliche e private.


Un esempio di una comunicazione sicura

Meccanismi di protezione
Un sistema di sicurezza informatica è concepito per fornire una protezione alle risorse del PC (CPU, memoria, disco, software e soprattutto informazioni memorizzate). Se un programma è gestito da utenti non autorizzati può provocare gravi danni al PC e/o ai dati in esso contenuti. Resta inteso, dunque, che un sistema informatico che si rispetti deve essere protetto contro accessi non autorizzati. Per fare ciò, è bene adottare politiche di autenticazione (ovvero, identificare ciascun utente del sistema associando i programmi in esecuzione a tali utenti).
I sistemi operativi, generalmente, identificano gli utenti con metodi differenti: username/password (è necessario inserire un nome utente e la relativa chiave di accesso per accedere al sistema), scheda utente/chiave (l’utente deve immettere la chiave generata dal generatore di chiavi del sistema operativo), attributo utente (l’utente deve identificarsi mediante una Webcam o un lettore di impronte digitali). Ma c’è anche la one-time password , che fornisce una sicurezza aggiuntiva. Si tratta di una password unica richiesta ogni volta che l’utente tenta di accedere al sistema. Dopo aver utilizzato la password, quest’ultima non potrà essere utilizzata una seconda volta (monouso).

Rilevare intrusioni nel sistema
Tiger è uno strumento di sicurezza che ci permette di rilevare eventuali intrusioni nel sistema. Esso supporta più piattaforme Unix ed è distribuito con licenza GPL. A differenza di altri tool, ha alcune caratteristiche abbastanza interessanti, tra cui un design modulare facilmente espandibile. Tiger integra un sistema IDS (Intrusion Detection System) capace di controllare anche l’integrità e lo stato del sistema. Per la sua configurazione, è necessario agire su due differenti file: cronrc e tigerrc . A configurazione ultimata, Tiger ci fornisce un documento HTML facilmente consultabile da qualsiasi PC o smartphone equipaggiato con un browser.

Il software Tiger in azione

Per installare Tiger nella nostra distribuzione GNU/Linux digitiamo il comando: sudo apt-get install tiger e quindi sudo tiger -H per conoscere tutte le opzioni disponibili. Tiger è installato in locale, viene eseguito come root, e controlla il localhost per problemi comuni di configurazione di sistema in materia di sicurezza. Tiger non è un monitor di rete (come ad esempio Nagios ) o un sistema di gestione dei pacchetti (come apt ). Tiger ha una serie completa di controlli incorporati ed è portatile con requisiti minimi. Esso viene eseguito come root, in modo che possa fare un’analisi molto approfondita del sistema che programmi come Nagios non riescono a fare. Al tempo stesso, Tiger è molto leggero: non ci sono demoni, database o connessioni di rete necessarie.

Testare la robustezza di una password
John the Ripper è un software gratuito di password cracking inizialmente sviluppato per il sistema operativo UNIX. Si tratta di uno dei più popolari programmi di test in quanto unisce una serie di password cracker in un unico pacchetto, rileva automaticamente i tipi di hash di password e comprende un cracker personalizzabile. Può essere eseguito contro vari formati di password criptate tra cui diversi tipi di hash password più comunemente utilizzati (DES, MD5 o Blowfish). Grazie a dei moduli aggiuntivi, poi, è possibile estendere la sua capacità di comprendere gli hash delle password MD4-based e anche quelle memorizzate in LDAP, MySQL e altri.
Una delle tecniche usate da questo tool per testare la sicurezza di una password è l’attacco di tipo “dizionario”. In poche parole, vengono utilizzate delle stringhe di testo (incluse in un file contenente parole di uso comune o sequenze casuali di numeri e lettere) come campione che viene poi confrontato con l’output della stringa crittografata. Se la sequenza corrisponde, la password è stata scovata.

Fase di installazione di John the Ripper

Ma l’attacco di tipo dizionario, non è l’unica tecnica adottata da John the Ripper. Il tool offre anche una modalità “forza bruta” (bruteforce). In questo tipo di attacco, il programma passa attraverso tutti i possibili testi in chiaro per poi confrontarli con l’hash di ingresso: usa tabelle per cercare testi in chiaro contenenti caratteri utilizzati più frequentemente. È evidente, dunque, che questo tipo di attacco è utile per il cracking delle password che non compaiono negli elenchi di parole contenute nei dizionari abitualmente usati dai malintenzionati. Di contro, però, questo metodo è molto costoso in termini di tempo: a seconda della complessità della chiave, potrebbero essere necessarie settimane (mesi o anni) per scovare la giusta chiave.

Scansionare la LAN a caccia di porte aperte
Nei precedenti paragrafi abbiamo accennato che al fatto che gli scanner di rete potrebbero consentire ad estranei di ottenere informazioni relative alla nostra rete locale (domestica o aziendale che sia). Tra i più apprezzati (sia dai malintenzionati, sia da chi ha intenzione di proteggere la propria LAN) troviamo Nmap . Questo software viene utilizzato per rilevare computer e, più in generale, dispositivi connessi alla stessa rete, creandone così una “mappa”. Proprio come molti altri software dello stesso genere, Nmap è in grado di scoprire i servizi attivi/passivi di una LAN, includendo anche quelli che non sono dotati di un protocollo di rilevamento. Inoltre, Nmap è anche in grado di determinare numerosi dettagli relativi ai PC connessi: questi includono il sistema operativo utilizzato, il tipo di dispositivo, il tempo di attività e software che utilizzano particolari servizi di rete. Caratteristica abbastanza importante è anche il rilevamento di eventuali firewall attivi su ogni singolo PC della LAN.

Opzioni utilizzabili in Nmap

Altro tool del tutto simile a Nmap è Nessus . Il suo obiettivo è quello di rilevare potenziali vulnerabilità sui sistemi collaudati come “misconfiguration” (ovvero configurazioni di sicurezza mancanti) o password di default non modificate dagli utenti. E la sua affidabilità è dimostrata dal numero di organizzazioni che si affidano proprio a Nessus per testare la sicurezza delle proprie reti: stiamo parlando di circa 75.000 installazioni attive.

Un rapporto di sicurezza ottenuto grazie a Nessus

Analizzare il traffico di rete “sniffando” pacchetti
Fra questa categoria di software, Wireshark è senza dubbio alcuno l’applicazione più utilizzata per la risoluzione di problemi di rete o per l’analisi e lo sviluppo di protocolli di comunicazione. Grazie a una semplice GUI e alle molte opzioni di filtraggio, l’utilizzo di questo software appare il più delle volte abbastanza banale. Wireshark consente all’utente di osservare tutto il traffico in transito sulla rete (sia quello in ingresso che quello in uscita). Il tutto sta nel settare la cosiddetta modalità promiscua sull’interfaccia di rete utilizzata.

Wireshark in azione durante l'analisi di una rete senza fili

Simile a Wireshark è Kismet . Kismet
è famoso per essere un packet sniffer per reti cablate e senza fili. È compatibile con qualsiasi scheda wireless che supporta la modalità di monitoraggio, può fiutare traffico 802.1a/b/g e, a differenza di molti altri rilevatori di rete, funziona passivamente. Ciò significa che senza l’invio di alcun pacchetto conforme al protocollo, è in grado di rilevare la presenza di entrambi i punti di accesso (hotspot e client) e associarli tra loro.


I packet sniffer sono disponibili anche per Android: Intercept-NG è una delle tante app di questo genere

Monitorare le intrusioni nella rete
Snort è un Network Intrusion Prevention System (PIN) ma è capace anche di rilevare eventuali intrusioni (NIDS). Snort segue la registrazione dei pacchetti e analizza il traffico in tempo reale sulla rete in esame. Snort esegue l’analisi di protocollo, il contenuto di ricerca/corrispondenza ed è comunemente utilizzato per bloccare attivamente o rilevare passivamente una varietà di attacchi e scansioni, come buffer overflow, scansioni di porte invisibili, attacchi alle applicazioni Web, sonde SMB e tentativi di OS fingerprinting. Il software è in gran parte utilizzato per scopi di prevenzione delle intrusioni, facendo cadere gli attacchi in corso. Snort può essere combinato con altri software come SnortSnarf , Sguil , OSSIM e Basic Analysis and Security Engine (BASE) per fornire una rappresentazione visiva dei dati di intrusione

Le statistiche raccolte da Snort

Ma, che sia Nmap, Nessus, Snort o qualsiasi altro programma, non dobbiamo mai dimenticare una costante: nessun software ci può garantire l’affidabilità massima. Basta un rootkit scritto a dovere per bypassare il controllo di qualsiasi tool atto a difendere il nostro sistema o la nostra rete locale.

Siamo davvero al sicuro?
Tutto ciò che ci circonda è mosso da un sistema operativo, GNU/Linux o proprietario che sia. Basti pensare agli enormi cambiamenti attuati (e in corso d’opera) nel settore automotive: autoveicoli capaci di guidare in piena autonomia o, per ritornare alla vita di tutti i giorni, sistemi di sicurezza completamente computerizzati che frenano al posto nostro in caso di necessità. Appare evidente, dunque, come la sicurezza sia un elemento fondamentale che, a differenza di qualche anno fa, non solo ci difende da eventuali perdite di dati, ma nei casi più esasperati, ci può addirittura salvare la vita. In ambito prettamente informatico, poi, la sicurezza dovrebbe (il condizionale è d’obbligo) avere tre differenti obiettivi: riservatezza, integrità e disponibilità (il mancato rispetto di quest’ultimo prende il nome di “negazione del servizio”). Il più delle volte, però, l’unica caratteristica di sicurezza che viene presa in considerazione dagli utenti e dalle aziende è la password. Cosa non poi del tutto sbagliata, a patto di utilizzare delle chiavi sufficientemente complesse e difficili da indovinare. Eppure, basta fare una rapida ricerca sul Web per scoprire che numerosi rapporti di sicurezza mettono in luce un serio problema. Migliaia (se non milioni) di utenti in tutto il mondo si affidano a chiavi davvero banali (“1234”, il proprio nome o la data di nascita). È quasi inutile precisare quanto una misura di sicurezza del genere sia del tutto inutile ed errata. La maggior parte delle distribuzioni GNU/Linux includono programmi come pwgen che ci permettono di generare password di lunghezza variabile (e definita dall’utente) con caratteri del tutto casuali. Meglio affidarsi a soluzioni di questo tipo.

Il generatore di password pwgen

Al tempo stesso, però, non dovremmo cullarci sugli allori di una password apparentemente sicura. La maggior parte dei sistemi Unix (e GNU/Linux non fa accezione) utilizzano un algoritmo di crittografia delle password a senso unico, chiamato DES (Data Encryption Standard). La chiave crittografata, viene poi conservata (in genere) nel percorso /etc/passwd o, meno frequentemente in /etc/shadow . Quando si tenta un login, la password che si digita viene nuovamente crittografata e confrontata con la voce del file nella quale è memorizzata in locale. Se le due chiavi corrispondono, la password è evidentemente identica e l’accesso viene consentito. Per un utente malintenzionato che ha accesso locale (o remoto) al nostro PC, basta raggiungere la directory nella quale è memorizzata la chiave crittografata per semplificare (e non di poco) la sua ricerca. Per questo e per altri motivi (ad esempio alleggerire l’elaborazione generale della CPU) il supporto per funzioni di crittografia basate su hardware è in netta crescita e diversi nuovi algoritmi hanno ottimizzato implementazioni assembler su architetture comuni.

Che futuro ci attende?
Nel corso degli anni, numerose misure di sicurezza sono state implementate su diversi fronti. HTTPS , ad esempio, è ormai divenuto uno standard: offre privacy, autenticazione e integrità dei dati trasferiti, funzionalità molto utili, ad esempio, nello shopping on-line o nell’home banking. Così come il WEP (Wired Equivalent Privacy) risulta ormai obsoleto, proprio per la semplicità con la quale un malintenzionato è oggi in grado di scardinarne la sicurezza. Il WPA2 , invece, è ancora in grado di proteggere adeguatamente gli utenti, ma chissà ancora fino a quando. Sempre più dispositivi sono ormai collegati a Internet, ed è solo questione di tempo che nuove vulnerabilità facciamo scaturire nuove tipologie di attacco. Pensiamo all’ IoT , un futuro dove tutto sarà connesso: i dispositivi saranno “intelligenti” e pronti a svolgere le funzioni più disparate per le quali verranno sviluppati. Un cracker in grado di intrufolarsi farebbe solo “danni”, anche molto gravi.
Dispositivi di questo tipo sono progettati per riconoscere o “imparare” quando un utente si trova a casa o quando è a lavoro, in modo che possano ottimizzare, ad esempio, l’energia utilizzata per riscaldare e raffreddare le mura domestiche. Dispositivi di questo genere conosceranno dunque le nostre abitudini e monitoreranno la routine quotidiana: abbiamo idea di quanti dati personali potrebbero finire in mani sbagliate ? L’Internet delle cose (IoT) è appena iniziato a diffondersi e lo farà sempre più. Il 17 febbraio 2016, la Linux Foundation ha annunciato il progetto Zephyr , un piccolo e scalabile sistema operativo in tempo reale destinato a sistemi con risorse limitate. Zephyr supporta più architetture ed è reso disponibile attraverso la licenza open source Apache 2.0. La sicurezza è dunque la chiave per tutti i dispositivi dell’IoT: l’ultima cosa di cui gli utenti hanno bisogno è sapere che i loro device collegati a Internet possano essere manipolati da malintenzionati. La Linux Foundation comprende pienamente questa problematica ed è proprio per questo motivo che ha deciso di investire risorse e tempo realizzazione un sistema sicuro e che non faccia impensierire inutilmente gli utenti.

Schema generale di Zephyr, OS attualmente in sviluppo

fonte immagini: 1 , 2

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il
12 set 2016
Link copiato negli appunti