Gli attacchi alla sicurezza variano considerevolmente in termini di raffinatezza e capacità di causare danni. Man mano che impari di più sui protocolli che gestiscono le reti odierne, ti renderesti conto che la maggior parte delle minacce alla sicurezza sono il risultato di qualche debolezza o inadeguatezza nella progettazione del protocollo stesso. Quando è stata creata Internet, ha collegato tra loro varie entità governative e università con il solo scopo di facilitare l’apprendimento e la ricerca. Gli architetti originali di Internet non avevano mai anticipato il tipo di adozione diffusa che Internet ha raggiunto oggi. Di conseguenza, nei primi tempi del networking, la sicurezza non era progettata nelle specifiche del protocollo di rete. Per questo motivo la maggior parte delle implementazioni di TCP/IP sono intrinsecamente insicure. Questo è un grande motivo per cui la sicurezza è un problema così oggi e in assenza di meccanismi di sicurezza integrati, dobbiamo fare affidamento su misure di sicurezza aggiuntive per rendere sicure le comunicazioni.
Vulnerabilità è una debolezza in un sistema o nella sua progettazione che può essere sfruttata da una minaccia . Le vulnerabilità si trovano nei sistemi operativi, nelle applicazioni e persino nei protocolli di rete stessi.
Classi di attaccanti
Un utente malintenzionato si riferisce a qualcuno che tenta di ottenere un accesso non autorizzato a una rete o a un sistema informatico. È utile identificare diversi tipi di attaccanti e comprenderne le motivazioni per poter caratterizzare gli attacchi e rintracciare tali individui. Esiste una varietà di gruppi in cui gli aggressori sono classificati e talvolta i membri della comunità della rete hanno opinioni contrastanti sulle definizioni di queste classificazioni. Qui, vorrei citare tre grandi categorie:
Gli hacker sono quegli individui che entrano nei sistemi e nelle reti di computer per conoscerli o semplicemente per dimostrare la loro abilità. Alcuni hacker di solito non significano danni e non cercano guadagni finanziari.
Cracker
I cracker sono hacker criminali che intendono danneggiare i sistemi di informazione. I cracker di solito lavorano per guadagno finanziario e sono anche conosciuti come hacker black hat.
Script Kiddies
Gli script kiddies si considerano hacker ma non hanno le conoscenze e le competenze necessarie. Non possono scrivere il proprio codice; invece, eseguono script scritti da altri per attaccare sistemi e reti. È un dato di fatto, strumenti software molto sofisticati sono diventati liberamente disponibili su Internet che consentono ai principianti di eseguire attacchi con facilità punta e clicca. Oggi, una percentuale molto elevata di aspiranti hacker rientra in questa categoria.
Minaccia
Una minaccia è un pericolo esterno per il sistema che ha una vulnerabilità.
Exploit Si dice che esiste un exploit quando il codice del computer viene effettivamente sviluppato per sfruttare una vulnerabilità. Supponiamo che esista una vulnerabilità in un software, ma nessuno ha ancora sviluppato un codice per abusarne. Poiché non esiste alcun exploit, non esiste ancora alcun problema reale, sebbene la vulnerabilità esista in teoria.
Classi di attacchi
I tre principali tipi di attacchi di rete, ciascuno con il proprio obiettivo specifico, sono i seguenti:
Attacchi di ricognizione
Ricognizione significa letteralmente l’osservazione militare di una regione per localizzare un nemico o per stabilire caratteristiche strategiche della regione. Un attacco di ricognizione non ha lo scopo di infliggere danni immediati a un sistema o una rete, ma solo di raccogliere informazioni sulla rete per prepararsi a un attacco successivo. Viene utilizzato per mappare la rete e scoprire quali intervalli di indirizzi IP vengono utilizzati, quali sistemi sono in esecuzione e quali servizi o applicazioni risiedono su tali sistemi. L’attaccante deve essere in grado di raggiungere un sistema o una rete in una certa misura per eseguire la ricognizione, ma normalmente nessun danno è causato in quel momento. Gli attacchi di ricognizione più comuni includono sweep ping, scansioni delle porte e query DNS. Ecco alcuni esempi di attacchi di ricognizione:
Ricerca delle informazioni Un intruso in rete può utilizzare strumenti come nslookup e whois per determinare lo spazio degli indirizzi IP assegnato a un’organizzazione. Trovare un indirizzo IP di destinazione è uno dei primi passi nella ricognizione. Una volta che un intervallo di indirizzi IP è noto, un intruso può cercare host che sono attivi utilizzando le analisi del ping. Infine, è possibile utilizzare la scansione delle porte per scoprire quali servizi o applicazioni sono in esecuzione su tali host attivi.
Ping sweep Un ping sweep è una tecnica di scansione utilizzata nella fase di ricognizione dell’attacco, per determinare host o computer attivi in una rete. Una scansione del ping invia richieste di eco ICMP a più host uno dopo l’altro. Se un determinato indirizzo è attivo, verrà restituita una risposta dell’eco ICMP a conferma della sua esistenza.
Scansioni delle porte
La scansione delle porte è un metodo utilizzato per enumerare quali servizi e applicazioni sono in esecuzione su un sistema. Un intruso invia richieste casuali su porte diverse e se l’host risponde alla richiesta, l’intruso ottiene la conferma che la porta è attiva e il servizio o l’applicazione associati sono in ascolto. L’attaccante può quindi procedere allo sfruttamento di eventuali vulnerabilità prendendo di mira i servizi attivi. Uno scanner di porte è un software progettato per cercare porte aperte in un host di rete. I ping sweep e le scansioni delle porte sono due tecniche di ricognizione principali utilizzate per scoprire host e servizi che possono essere sfruttati.
Sniffer di pacchetti
Uno sniffer di pacchetti è un programma software che utilizza una scheda di interfaccia di rete cablata o wireless (NIC) in modalità promiscua per acquisire tutti i pacchetti di rete inviati attraverso un determinato dominio di collisione. La modalità promiscua è una modalità in cui la scheda di rete invia tutti i pacchetti ricevuti sulla rete a un’applicazione per l’elaborazione. Si può ricordare che, una scheda di interfaccia di rete normalmente invierebbe solo frame indirizzati all’indirizzo MAC della scheda o frame broadcast/multicast a un’applicazione mentre tutti gli altri frame vengono semplicemente ignorati. Esistono applicazioni legittime degli sniffer di rete nella risoluzione dei problemi e nell’analisi del traffico di rete. Tuttavia, esistono diverse applicazioni di rete come Telnet, FTP, SMTP e HTTP che inviano dati in chiaro. Uno sniffer di pacchetti può acquisire tutti i dati inviati da queste applicazioni, comprese informazioni riservate, come nomi utente e passowrds. Lo sniffing dei pacchetti è essenzialmente intercettare le informazioni raccolte che possono essere utilizzate per eseguire altri attacchi.
Ottenere l’accesso
Ottenere l’accesso ha lo scopo di sfruttare una vulnerabilità e ottenere l’accesso non autorizzato a un sistema sulla rete. Le informazioni raccolte dagli attacchi di ricognizione vengono utilizzate per eseguire un attacco per ottenere l’accesso. Quando si ottiene un accesso non autorizzato, l’aggressore può recuperare, modificare o distruggere i dati e le risorse di rete incluso l’accesso degli utenti. Ancora peggio, l’attaccante può impiantare altri exploit sul sistema compromesso che possono essere utilizzati in seguito per ottenere l’accesso al sistema o alla rete con relativa facilità. Di seguito sono riportati alcuni esempi di attacchi di accesso.
Cracking delle password
Il crack delle password è molto interessante per gli aggressori poiché le password vengono utilizzate per proteggere tutti i tipi di informazioni, inclusi i conti bancari online. Gli attacchi con password possono essere realizzati utilizzando diversi metodi, tra cui brute force, trojan, spoofing IP e sniffer di pacchetti.
Attacchi man-in-the-middle
L’ attacco man-in-the-middle (MITM), noto anche come dirottamento TCP, si verifica quando un intruso intercetta la comunicazione tra due punti e può persino modificare o controllare la sessione TCP senza la conoscenza di nessuno dei due. Il dirottamento TCP interessa applicazioni basate su TCP come sessioni Telnet, FTP, SMTP (e-mail) o HTTP (Web).
Trojan
Un cavallo di Troia o Trojan è un programma dannoso nascosto all’interno di un’altra utile applicazione. I trojan sono programmi apparentemente innocui che nascondono programmi dannosi come un key logger in grado di catturare tutte le sequenze di tasti, comprese le password, all’insaputa dell’utente. Il termine Cavallo di Troia ha avuto origine dalla statua cava in legno di un cavallo in cui si dice che alcuni greci si siano nascosti per entrare e conquistare l’antica città di Troia.
Key Logger
Un key logger è uno strumento progettato per registrare ogni singola sequenza di tasti sul computer di destinazione, in modo che la persona che utilizza la tastiera non sia a conoscenza del fatto che le loro azioni vengono monitorate. Qualsiasi tipo di informazione, comprese le informazioni sensibili come la password, sostanzialmente digitata su un computer. I keylogger possono registrare e archiviare tutte queste informazioni sullo stesso computer che possono essere recuperate manualmente o inviate come e-mail automatizzata dal keylogger stesso. I keylogger possono essere sia software che hardware. Numerosi istituti finanziari utilizzano tastiere su schermo per l’accesso online agli account dei clienti come precauzione contro i keylogger.
Sfruttamento della fiducia L’obiettivo dell’attacco è compromettere un host fidato, in modo che possa essere utilizzato per organizzare attacchi su altri host in una rete. In genere, gli host all’interno della rete di un’azienda sono protetti da un firewall posizionato al limite della rete. Quindi è difficile attaccare questi host interni dall’esterno. Ma questi host sono talvolta resi accessibili a un host fidato al di fuori del firewall per scopi legittimi. Se questo host esterno è compromesso, può essere utilizzato per attaccare gli host interni con relativa facilità.
Reindirizzamento delle porte
Un attacco di reindirizzamento delle porte è un tipo di attacco di sfruttamento della fiducia che utilizza un host compromesso ma affidabile per passare il traffico attraverso un firewall che altrimenti verrebbe bloccato. Gli host esterni possono raggiungere legittimamente la DMZ e gli host nella DMZ possono raggiungere legittimamente sia gli host interni che quelli esterni. Se un utente malintenzionato è in grado di compromettere un host nella DMZ, potrebbe installare un software per reindirizzare il traffico dall’host esterno direttamente all’host interno. Ciò comporterebbe l’accesso esterno illegittimo agli host interni senza violare le regole implementate nel firewall. Un esempio di utility che può fornire questo tipo di accesso è netcat.
Rootkit
Il termine rootkit è costituito dalla parola root, che è il nome tradizionale dell’account privilegiato sui sistemi operativi Unix/Linux, e dal kit di parole che si riferisce ai componenti software che implementano lo strumento. Quando un software dannoso che fornisce accesso non autorizzato è installato su un sistema, è anche importante nascondere l’esistenza di tale software per consentire l’accesso continuo privilegiato. Un rootkit è progettato per fare proprio questo: nascondere l’esistenza di determinati processi o programmi ai normali metodi di rilevamento. Un utente malintenzionato può installare un rootkit dopo aver ottenuto l’accesso come amministratore o root al sistema di destinazione a seguito di un attacco diretto.
Virus
Un virus è un programma o codice software dannoso che può causare danni ai dati o ad altri programmi sul sistema di destinazione.
Worm
Un worm è simile a un virus ma è in grado di auto-replicarsi aumentando la portata del suo danno. I worm sono in realtà virus che possono risiedere nella memoria attiva di un sistema e possono auto-replicarsi e auto-propagarsi da un computer all’altro sulla rete.
Overflow buffer
I buffer sono posizioni nella memoria del computer che vengono utilizzate per conservare temporaneamente dati e codice. Si verifica un overflow del buffer quando un programma tenta di archiviare i dati in un buffer, ma i dati sono maggiori della dimensione del buffer allocato.
IP spoofing
Lo spoofing IP si verifica quando un intruso tenta di mascherarsi fingendo di avere un indirizzo IP di origine di un host attendibile al fine di ottenere l’accesso alle risorse su una rete fidata. Utilizzando un indirizzo IP di un altro host noto o di una rete nota, l’attaccante tenta di inviare e ricevere traffico sulla rete. L’attaccante è quindi in grado di utilizzare le risorse di rete associate a quell’indirizzo IP specifico. Una volta che l’attaccante ha accesso con lo spoofing IP, può utilizzare questo accesso per vari scopi.