Bibliografia:
Computer Networking. Autori: James F. Kurose (University of Massachusetts, Amherst) Keith W. Ross (Polytechnic Institute of NYU).
Una rete aziendale, connessa alla rete pubblica, è esposta ad attacchi alla sicurezza che possono provenire sia da utenti interni alla rete aziendale, sia da utenti che usano la rete pubblica.
Gli attacchi che hanno origine dall'interno della rete stessa possono essere particolarmente gravi, per le seguenti ragioni:
gli utenti interni hanno una conoscenza della rete e delle risorse disponibili;
gli utenti interni, a seconda del ruolo, posseggono un certo grado di autorizzazione ad accedere alle risorse;
le misure di sicurezza poste a protezione della rete, quali i firewall e i sistemi anti intrusione, sono inefficaci contro gli attacchi provenienti dall'interno.
Un attaccante esterno alla rete aziendale, non dovrebbe avere nessuna conoscenza della rete e non dovrebbe avere nemmeno le credenziali di accesso, deve possedere però le conoscenze tecniche che gli consentono di studiare la rete. Ad esempio, chi intende attaccare una rete ha bisogno di conoscere gli indirizzi dei computer della rete e dei servizi che essi offrono. Queste informazioni può ottenerle generando una sequenza di ping e osservando gli indirizzi dai quali riceve la risposta. Dopo avere ottenuto l'elenco degli indirizzi IP della rete, per ogni host, l'attaccante esegue una scansione delle porte alla ricerca dei servizi disponibili. Quando l'attaccante scopre che su un host è disponibile un servizio, del quale ` nota una vulnerabilità, può sfruttare quel servizio per acquisire il controllo dell'host e attaccare anche ad altri host della rete.
La sicurezza deve garantire che i dati siano:
disponibili: deve essere garantito l'accesso ai dati; la disponibilità dei dati potrebbe essere compromessa temporaneamente per indisponibilità del sistema o definitivamente perchè i dati sono stati cancellati, oppure si è guastato il supporto di memorizzazione; entrambe le situazioni potrebbero essere accidentali o causate intenzionalmente; un attaccante può compromettere la disponibilità dei dati in vari modi, ad esempio, invia dei dati che provocano un errore che il sistema non riesce a gestire, oppure genera un traffico elevato, verso la rete, che impedisce il traffico lecito.
riservati: protetti da letture non autorizzate; la riservatezza o segretezza consiste nel fare in modo che utenti non autorizzati non possano accedere ad informazioni riservate, o comunque non possano comprenderle. Tra i mezzi disponibili per assicurare la riservatezza dei dati, la rete:
può essere dotata di meccanismi di controllo degli accessi alle risorse delal rete (firewall e Access Control List),
richiedere le credenziali di accesso (username e password),
criptare il traffico
integri: protetti da modifiche non autorizzate, mentre viaggiano attraverso la rete. Un possibile metodo per garantire l'integrità dei dati è l'utenticazione della sorgente, allo scopo di verificare che i dati provengano da quel mittente.
Quando i dati viaggiano in rete, inoltre, è richiesta l'autenticazione delle parti in comunicazione. Il mittente ed il ricevitore devono essere in grado di confermare reciprocamente la loro identità, nel senso che entrambi devono essere sicuri di scambiare dati con chi realmente dichiara di trovarsi all'altro estremo della comunicazione. Sulla rete non si può essere sicuri di sapere con chi si stanno scambiando dati.
Alcune semplici norme di prevenzione sono:
usare tecniche di fault tolerance per non interrompere l'attività del sistema, ad esempio avere apparecchiature di riserva;
pianificare le operazioni di copia dei dati, in modo da poterli ripristinare in caso di guasti. Le copie di riserva possono anche servire a dimostrare se le informazioni attualmente su disco sono state alterate da un attaccante.
installare, ed aggiornare, i software per prevenire le infezioni da virus;
definire quali utenti possono accedere e quali operazioni possono effettuare, usando sistemi che permettano di autenticare gli utenti connessi, e implementare politiche di protezione (l'autenticazione permette di determinare chi è l'autore di una operazione; assicura che qualcuno non possa eseguire operazioni spacciandosi per qualcun altro);
definire una politica di sicurezza e sensibilizzare gli utenti a seguirla.
Ci sono varie tecniche per consentire l'accesso ad un computer solo a personale autorizzato, per esempio usando smart card o misure di sicurezza biometriche (tecniche di autenticazione basate su caratteristiche fisiche come: impronte digitali, scansione della retina o analisi della voce).
Una vulnerabilità in un sistema informativo è una debolezza che un utente malintenzionato potrebbe sfruttare per ottenere accesso non autorizzato al sistema o ai suoi dati. In alcuni casi, dopo avere scoperto una vulnerabilità, l'aggressore scrive un programma per sfruttare questa occasione di accesso al sistema o ai dati. questo tipo di programma maligno si chiama un exploit.
Tuttavia, anche se un sistema ha una vulnerabilità, bisognerebbe quantificare la probabilità che qualcuno possa sfruttarla per causare danni. Ad esempio, un Data Center potrebbe essere vulnerabile ad un incendio nell'edificio. Ma se il Data Center ha sistemi antincendio avanzati e supporti di backup ubicati in un altro edificio, il rischio per i dati viene ridotto.
Il rischio si può quantificare come il prodotto tra la gravità delle conseguenze di un evento e la probabilità che l'evento si verifichi: R=GxP.
La gravità delle conseguenze normalmente si può esprimere in termini di danno economico subito dall'azienda.
La probabilità che l'evento si verifichi dipende dalla vulnerabilità del sistema e, per minacce di tipo deliberato dalla motivazione dell'attaccante, mentre per minacce di tipo accidentale dalla probabilità intrinseca che l'evento accada.
La gestione del rischio si effettua attraverso modalità che prevedono l'eliminazione o la riduzione di una o di entrambe le variabili, attraverso l'utilizzo di contromisure di sicurezza.
Il rischio può essere gestito anche cedendolo a terzi (stipulando polizze di assicurazione).
incendi, terremoti, alluvioni;
errori di progetto del sistema;
debolezze dei protocolli di comunicazione usati
mancanza di controlli dell'input nel codice eseguito dal sistema
errori umani
Gli errori umani sono vulnerabilità soggette a vari attacchi. Un attaccante potrebbe entrare in possesso di informazioni riservate sia in modo diretto, chiedendole esplicitamente, sia in modo indiretto, deducendole da altre informazioni. L'attacco "Social engineering" è un esempio di come ottenere informazioni risevate, carpendo la fiducia delle persone. Tipicamente, l'attaccante si spaccia per un altro e convince una persona a rivelargli le credenziali per accedere alla rete.
Per limitare le possibilità che una persona interna attacchi la rete, deliberatamente o involontariamente, alcune operazioni potrebbero richiedere le credenziali di due utenti.
Alcune operazioni potrebbero diventare noiose a causa del rispetto delle norme di sicurezza. Per questo motivo le persone potrebbero escogitare dei metodi per eludere i controlli, allo scopo di terminare molto rapidamente i propri compiti. Le persone, quindi dovrebbero essere sensibilizzate al rispetto delle norme.
Chi e perchè può sferrare un attacco ad un sistema informatico:
(Hacker) Colui che ha le competenze per entrare nei sistemi informatici e testa la sicurezza di una rete per scoprire vulnerabilità che potrebbero procurare danni.
(Cracker) Un esperto che usa le sue abilità per fini fraudolenti.
Un hacker incaricato di sorvegliare e monitorare la sicurezza di una rete, potrebbe agire da insospettato per trarre vantaggi personali.
Un utente privo di conoscenze tecniche sui sistemi informatici e sulla sicurezza delle reti, che entra in possesso di strumenti software per analizzare il traffico di rete, potrebbe usare quegli strumenti per attaccare una rete.
Un hacker esperto di sicurezza informatica conosce sia gli aspetti tecnici dei sistemi di sicurezza che quelli della rete. Ad esempio, questa persona potrebbe tentare di attaccare un sistema protetto da un dispositivo anti-intruzione in modo che il traffico sembri lecito.
Le motivazioni che potrebbero spingere un hacker ad attaccare una rete, si possono riassumere nei seguenti scopi: un attaccante cerca di acquisire informazioni riservate o cerca di danneggiare gli interessi di un'azienda concorrente, oppure vuole ottenere un guadagno economico attraverso il suo attacco, oppure, semplicemente, prova soddisfazione a compromettere la protezione di un sistema.
Passivo: un attacco passivo non può essere rilevato, perchè l'attaccante non genera traffico, ma si limita a studiare il traffico dei pacchetti in transito, alla ricerca di informazioni riservate.
Attivo: un attacco attivo può essere facilmente riconosciuto, perchè l'attaccante tenta di accedere a informazioni riservate o cerca di modificare dati protetti.
Ravvicinato: un attacco ravvicinato avviene quando l'attaccante si trova in prossimità del sistema che ospita i dati riservati, e quindi riesce ad accedere senza doversi autenticarsi sul router o sul server di rete.
Interno: un attacco interno proviene da utenti che sfruttano le credenziali per accedere legittimamente alla rete e traggono profitto personale da informazioni riservate.
Distribuito: l'attaccante introduce delle "back door" in alcuni sistemi. Si tratta di software che l'attaccante può usare per raggirare la protezione applicata per accedere al sistema, oppure modificare i dati, o per rendere il sistema inutilizzabile.
Chi intende attaccare una rete segue alcuni criteri molto generali per studiare le vulnerabilità della vittima.
Fase di ricognizione. In questo passaggio l'hacker cerca di acquisire quante più informazioni possibili sul sistema. Ad esempio, può scoprire i nomi di dominio della rete della società e l'intervallo di indirizzi IP che questa utilizza. Potrebbe eseguire una scansione delle porte per vedere quali porte sono aperte sugli host della rete interna.
Identificare le applicazioni e il sistema operativo installati sugli host. Esistono molti strumenti per inviare una richiesta di apertura connessione ad un sistema. Normalmente, questi software propongono un prompt di login dal quale si può risalire al sistema operativo in esecuzione. Inoltre gli strumenti di scansione delle porte permettono di individuare le applicazioni installate sul sistema.
Conquistare l'accesso al sistema. Il Social engineering è la più diffusa tecnica per ottenere le credenziali di login. Ad esempio, i record DNS forniscono le informazioni per contattare gli host di una rete. Un attaccante potrebbe essere in grado di sfruttare queste informazioni per convincere l'amministratore di dominio a rivelargli informazioni sulla rete, magari spacciandosi per un tecnico del provider.
Accesso con le credenziali ottenute, e aumento dei privilegi. Un hacker potrebbe introdurre un cavallo di Troia (un software che sembra un'applicazione legittima, ma che svolge anche una funzione maligna invisibile) ed acquisire privilegi di accesso ai dati.
Scoprire account. Una volta che un sistema è stato violato, gli hacker possono scoprire le credenziali di utenti in possesso di particolari autorizzazioni.
Configurare una "back door". Un hacker non ha convenienza ad accedere ad un sistema mediante un account regolare. Infatti le password hanno una validità temporanea, ed il sistema potrebbe esigerne la modifica periodica. Oppure il sistema potrebbe registrare gli accessi degli utenti, e di conseguenza l'intestatario dell'account potrebbe accorgersi che qualcuno ha usato le sue credenziali. Per questi motivi gli hacker tentano di installare una "back door", ovvero un'applicazione che gli consente di acquisire il controllo del sistema, senza possedere alcun account.
Usare il sistema. Dopo avere acquisito il controllo del sistema, l'hacker passa alla ricerca di informazioni riservate, oppure potrebbe manipolare i dati del sistema, oppure potrebbe usare il sistema per lanciare attacchi verso altri sistemi con cui la macchina compromessa ha una relazione di fiducia.