L’insicurezza dei sistemi Informatici

“I cretini sono sempre piu’ ingegnosi delle precauzioni che si prendono per impedir loro di nuocere”

( “La legge di Murphy”)

system_down

PREMESSE

 NON ESISTONO SISTEMI SICURI

Ripeto : Non esistono sistemi sicuri. Il mito del sistema inviolabile deve essere assimilato a quello del caveau non svaligiabile o della nave inaffondabile

Il grado di sicurezza e’ dato dal tempo necessario per violare il sistema, dall’investimento necessario e dalla probabilita’ di successo.

UN SISTEMA PIU’ E’ COMPLESSO PIU’ E’ INSICURO

Empiricamente si nota come la crescita di complessita’ porti necessariamente alla creazione di sistemi insicuri. Inoltre risulta evidente come la funzione sia piu’ che proporzionale.

Un buon punto di partenza per la creazione di sistemi sicuri e’ l’applicazione metodica della KISSrule :Keep It Simple and Stupid !!

Questo non significa che i sistemi da proteggere non possano essere molto complessi o articolati ma che il sistema di protezione deve essere quanto piu’ semplice possibile, se possibile estremamente semplice (“quello che non c’e’ non si rompe”)

Quattro Chiacchere

Una definizione, ormai consolidata, per la definizione del sistema aziendale di sicurezza informatica è quella che va  ad intendere tutte quelle misure tecniche ed organizzative rivolte a garantire la protezione dell’integrita’, della disponibilita’ e della confidenzialita’ dell’informazione e delle risorse atte a elaborarle, memorizzarle e acquisirle.

Gli obiettivi base delle sicurezza informatica sono di conseguenza:

Riservatezza garanzia che un determinato dato sia preservato da accessi impropri e sia utilizzato esclusivamente dai soggetti autorizzati. Le informazioni riservate devono essere protette sia nella fase di trasmissione sia nella fase di memorizzazione/conservazione, in modo tale che l’informazione sia accessibile esclusivamente a coloro i quali sono autorizzati a conoscerla.

Integrità garanzia che ogni dato aziendale sia realmente quello originariamente immesso nel sistema informatico e sia stato modificato esclusivamente in modo legittimo. Si deve garantire che le informazioni vengano trattate in modo tale che non possano essere manomesse o modificate da soggetti non autorizzati.

Disponibilità garanzia di reperibilità di dati aziendali in funzione delle esigenze di continuità dei processi e nel rispetto delle norme che ne impongono la conservazione.

(OCSE, Guidelines for the Security of Information Systems; BCE, Information Technology Committee,ESCB Information Systems Security Policy.)

Principi base delineati dalla BCE.

  • Le misure di sicurezza devono essere conformi ai requisiti di business aziendali
  • Le misure di sicurezza devono essere conformi ai requisiti di business aziendali, nonché alle normative vigenti.
  • La sicurezza riguarda tutti e la consapevolezza individuale gioca un ruolo fondamentale nel conseguimento degli obiettivi di sicurezza prefissati.
  • Le misure di sicurezza devono essere efficaci e comprensibili e bilanciate rispetto ai relativi costi.
  • La sicurezza richiede una combinazione di misure tecniche e organizzative.
  • Le autorizzazioni devono essere basate sul principio del “need-to-know” correlato al business aziendale.
  • La sicurezza deve essere continuamente monitorata.

Analiziamoli

Nelle linee guida della BCE sopracitate sono messi in evidenza i cinque processi fondamentali che caratterizzano la gestione della sicurezza informatica, di seguito sinteticamente descritti:

  1. la gestione del rischio informatico, processo basilare, che consiste nell’identificazione, nel controllo, nell’eliminazione o nella minimizzazione dei rischi riguardanti il conseguimento, secondo criteri di economicità, degli obiettivi aziendali di business. Tale processo include una gestione pianificata e controllata delle risorse al fine di assicurare il contenimento dei rischi entro limiti accettabili
  2. il controllo dell’attività di change management, ovvero il controllo di qualunque modifica apportata ai sistemi e alle infrastrutture; tale controllo deve essere stringente, al fine di ridurre al minimo i problemi e garantire che la sicurezza non venga compromessa
  3. il controllo delle fasi di test e accettazione in produzione dei sistemi; le procedure di controllo devono essere particolarmente accurate al fine di garantire che vengano realizzate, e funzionino correttamente, tutte le funzionalità previste, incluse quelle concernenti le misure di sicurezza. Deve quindi essere formalizzata ed eseguita una procedura formale di accettazione in produzione. È responsabilità dell’utente proprietario assicurare che la procedura applicativa soddisfi tutti i criteri dell’accettazione in ambiente di produzione, ivi inclusa l’accettazione dei rischi residui, e che i livelli di responsabilità del sistema siano ben documentati e consegnati alla struttura di gestione competente
  4. la gestione degli incidenti di sicurezza; devono essere formalizzate procedure di controllo che prevedano la registrazione di ogni incidente e il reporting all’utente proprietario del sistema nell’ambito del quale si è verificato l’evento. L’esperienza ricavata da ogni accadimento dovrebbe essere acquisita nel processo di gestione del rischio come elemento utile ai fini di un eventuale aggiornamento del processo stesso

Inoltre

Definizione di piani riguardanti misure a garanzia della business continuity: tali piani, da sottoporre a costante aggiornamento, devono includere misure di sicurezza addizionali rispetto a  quelle ritenute sufficienti con riferimento ai rischi informatici, in modo da consentire all’azienda di fronteggiare eventuali accadimenti disastrosi; in tale ambito dovrebbe essere assicurata la disponibilità di ambienti di recovery e l’attivazione di procedure di ripristino dell’operatività corrente. Tali misure devono essere sottoposte a test periodici utilizzando scenari simulati.

Gestione del rischio informatico

 

Ricordando sempre che…

“I cretini sono sempre piu’ ingegnosi delle precauzioni che si prendono per impedir loro di nuocere”

 

La gestione del rischio informatico si svolge attraverso un articolato processo che mira a identificare le vulnerabilità del sistema informatico, le possibili minacce e la relativa probabilità di accadimento nonché a stimare i potenziali danni.

In particolare, possono essere individuate le seguenti fasi:

Identificazione e classificazione delle risorse e individuazione delle relative vulnerabilità – ovvero le carenze di protezione relativamente a una determinata minaccia – con riferimento alle seguenti componenti:

 

–         infrastrutture (incluse quelle tecnologiche quali le reti e gli impianti)

–         hardware

–         software

–         documentazione

–         dati/informazioni

–         risorse umane;

 

Individuazione delle minacce, interne ed esterne, cui possono essere esposte le risorse, raggruppabili nelle seguenti tipologie:

 

–         errori e malfunzionamenti

–         frodi e furti

–         software dannoso

–         danneggiamenti fisici

–         sovraccarico del sistema

–         mancato rispetto della legislazione vigente.

 

Individuazione dei danni che possono derivare dal concretizzarsi delle minacce, tenendo conto della loro probabilità di accadimento.

  • Rispetto la loro natura, si può distinguere tra danni economici e danni di immagine.
  • In relazione al collegamento causale con l’evento dannoso, poi, si distingue tra danni diretti (es. distruzione, perdita o danneggiamento dei dati e/o del software, ferimento delle persone) e danni indiretti,  conseguenti al blocco totale o parziale di un processo aziendale (es. perdita della produzione, risarcimenti a terzi, penali); in taluni casi, gli effetti prodotti dall’evento dannoso possono permanere anche dopo il ripristino dello status quo ante (è il caso, ad esempio, dei danni all’immagine aziendale).

Identificazione delle possibili contromisure

Le contromisure sono le funzioni di sicurezza che  devono essere adottate per contrastare le minacce e gli attacchi portati alle risorse informatiche e possono essere distinte in relazione all’obiettivo perseguito, che può essere di :

prevenzione: impedire che l’attacco venga perpetrato;

– rilevazione: rilevare, a fronte di un attacco, l’evento e/o le sue conseguenze dannose;

– ripristino: minimizzare i danni attraverso il ripristino, quanto più immediato possibile, dei sistemi.

Effettuazione di un’analisi costi/benefici degli investimenti per l’adozione delle contromisure;

Definizione di un piano di azioni preventive e correttive da porre in essere e da rivedere  periodicamente in relazione ai rischi che si intendono contrastare;

Documentazione e accettazione del rischio residuo.

 

Il Firewall

 

Una prima definizione chiusa di firewall è la seguente: Apparato di rete hardware o software di ingresso-uscita bidirezionale che, opportunamente configurato o settato e agendo in maniera centralizzata o locale (single user), filtra tutti i pacchetti entranti ed uscenti, da e verso una rete o un computer, secondo regole prestabilite che contribuiscono alla sicurezza della stessa.

Un firewall può essere realizzato con un semplice computer (con almeno due schede di rete, una per l’input l’altra per l’output, e software apposito), può essere una funzionalità logica (software) inclusa in un router oppure può essere implementato su un apparato hardware dedicato. Esistono inoltre i cosiddetti “firewall personali”, che sono programmi installati sui normali calcolatori client, che filtrano solamente i pacchetti che entrano ed escono da quel calcolatore, utilizzando in tal caso sola una scheda di rete.

La funzionalità principale in sostanza è quella di creare un filtro sulle connessioni entranti ed uscenti, innalzando il livello di sicurezza della rete e permettere sia agli utenti interni che a quelli esterni di operare nel massimo della sicurezza. Il firewall infatti agisce sui pacchetti in transito da e per la zona interna potendo eseguire su di essi operazioni di:

  • controllo;
  • modifica;
  • monitoraggio.

“aprendo” in tutti i casi il pacchetto IP e leggendo le informazioni presenti sul suo header, e in alcuni casi anche sul suo contenuto o payload.

 

Alcune tipologie di “attacco” che il firewall potrebbe/dovrebbe contrastare

 

  • Intrusione

Accesso non autorizzato

Scalata privilegi

Modifca dei sistemi (installazione backdoors)

 

  • Denial of service

Network fooding

Resource exhaustion

Disabilitazione / danneggiamento dei servizi

 

  • Furto di informazioni

Sfruttamento servizi per accesso ad informazioni addizionali

Accesso agli archivi

Intercettazione attivita dei sistemi `

Monitoraggio traffco di rete (sniffing)

 Limitazioni

( la cosa brutta dei firewall che qualsiasi cosa si possa dire esistera’ sempre qualcuno che la smentira’ !!!)

 

  1. Nessuna protezione da utenti legittimi
  2. Nessuna protezione in caso di punti d’accesso non controllati
  3. Limitata protezione da tipi di attacchi non noti a priori
  4. Limitata protezione da codice maligno che raggiunge la rete con modalita ammesse
  5. Scaricamento software infetto (di difficile riconoscimento)
  6. Introduzione di codice maligno codificato (es. email attachments) mitigabile con tecniche di content filtering anche a livello del firewall
  7. Limitata protezione da attacchi a servizi pubblicamente accessibili
  8. Sfruttamento (exploit) di vulnerabilita di programmi server mediante richieste legittime (necessari content filtering ed informazioni a priori)
  9. Importante! Necessita di isolamento delle risorse potenzialmente compromissibili da quelle sensibili
  10. Limitata protezione da worms che sfruttano traffico “ammissibile” (email,www)

 

Regole che non possono e devono essere tradite !!

 

  • Fail-safe defaults

In caso di malfunzionamento, il comportamento predefinito deve essere sicuro

Default = deny: “prima si chiude tutto, poi si apre solo cio che serve”

Partecipazione universale: minimizzare le deroghe

Diversificazione dei sistemi hw/sw

  •  Semplicita’

Evitare l’uso di programmi e strutture complesse specialmente se non se ne sfruttano tutte le funzionalita`

E ricordarsi sempre che “Ogni catena e’ resistente quanto il suo anello piu’  debole”

I firewall si possono distinguere sostanzialmente in tre categorie: Application Level Firewall, Packet Filter Firewalle Hardware Firewall

APPLICATION LEVEL FIREWALL

Questo tipo di firewall gestisce il traffico a livello di applicazione. Ciò significa che il firewall si basa su delle regole, prestabilite dall’utente, le quali gestiscono le applicazioni che possono avere accesso ad Internet. Lavorando a livello di applicazione, questo tipo di firewall può riconoscere comandi specifici delle applicazioni; sono i più facili da configurare e gestire, offrono un alto livello di protezione a scapito però della velocità della rete, che può diminuire a volte anche di parecchio a seconda del traffico di dati da analizzare che essendo in alcuni casi considerevole, può rallentare la connessione.

Uno degli aspetti negativi poi di questi programmi è rappresentato dal fatto che per funzionare si appoggiano a terzi prodotti, come per esempio WinSock, NDIS e librerie C standard che al loro interno possono contenere dei bug. Infine la configurazione di questi tipi di firewall deve essere effettuata manualmente per ogni computer in cui vengono installati e ciò rende il loro utilizzo piuttosto macchinoso.

PACKET FILTER FIREWALL

Il packet Filter Firewall è una categoria di firewall molto più complicata rispetto ai sopracitati Application Level Firewall. Questo tipo di firewall lavora a livello dell’Internet Protocol dello schema TCP/IP. Il packet Filter Firewall quando riceve un pacchetto di dati lo compara con una serie di criteri prima di inoltrarlo o di rimandarlo al mittente. A seconda delle regole, il firewall può ignorare i pacchetti di dati, inoltrarli al sistema o rimandarli al mittente. I parametri che solitamente il packet Filter Firewall controlla nell’header del pacchetto sono l’indirizzo IP di origine e destinazione, numero della porta TCP/UDP di origine e destinazione e protocollo usato.
Solitamente i Packet Filter Firewall usano un processo chiamato Network Address Translation (NAT) che permette di reindirizzare correttamente i pacchetti di rete in uscita dal sistema verso internet. Questo permette di nascondere la struttura della rete interna di una LAN, mascherando il pacchetto uscente come se provenisse da un host differente dal computer della rete interna. Di solito il pacchetto nasconde dunque l’indirizzo ip assegnato al pc nella rete interna e assume l’indirizzo ip della connessione ad Internet.

Il packet Filter Firewall è la scelta migliore perché molto veloce e, proprio grazie a questa velocità e “superficialità” del controllo, non grava sulla connessione di rete e non la rallenta. Non è fondamentalmente legato al sistema operativo ma può essere configurato per funzionare su tutta la LAN, se messo alla fonte della connessione ad Internet.

Esempio

Quindi per esempio, una e-mail contenente un virus può tranquillamente passare attraverso il firewall, se è consentito il traffico POP/SMTP. Non ha grandi possibilità di gestione dei dati all’interno del pacchetto dati, non prende decisioni in base al contenuto del pacchetto. Tutto ciò si trasforma in mancanza di features quali HTTP object caching o URL filtering e non possono filtrare le informazioni che passano dai computer interni verso l’esterno.

FIREWALL HARDWARE

I firewall hardware solitamente sono simili ai Packet filter Firewall, in quanto lavorano principalmente con la tecnica del Packet filtering. Possono usare anche un’altra tecnica chiamata Stateful Packet Inspection (SPI). la SPI permette un controllo non solo dell’header del pacchetto dati, bensì permette anche di analizzarne il contenuto, per catturare più informazioni rispetto ai semplici indirizzi di origine e destinazione.

Un firewall che utilizza questo tipo di tecnologia può analizzare lo stato della connessione e compilare le informazioni ottenute su una tabella così le operazioni di filtraggio dei pacchetti sono basate non solo su impostazioni definite dall’amministratore, ma anche sulla base di regole adottate con pacchetti simili scansionati già precedentemente dal firewall. Per il resto, i pregi e i difetti sono sostanzialmente quelli del packet filter firewall.

 

COSA SONO le Advanced Evasion Techniques ( AET)

(giusto per sapere che nulla e’ sicuro)

Le tecniche di evasione sono un mezzo per dissimulare e/o occultare gli attacchi informatici in modo da evitarne il rilevamento (detection) e il conseguente intervento (Prevention) da parte dei sistemi di sicurezza. Le tecniche di evasione consentono ai cybercriminali di inviare qualunque tipo di contenuto pericoloso “exploitando” una vulnerabilità di sistema in modo da eludere i rilevamenti e i blocchi che altrimenti interverrebbero. I sistemi di sicurezza vengono resi inefficaci contro tali tecniche di evasione allo stesso modo in cui un velivolo “invisibile” ai radar è in grado di penetrare le difese aeree senza essere rilevato dai sistemi di scoperta.

 

L’Antivirus

 

Un antivirus da solo, per quanto affidabile ed efficiente, non è una protezione totale contro il 100% dei virus informatici esistenti al mondo. Inoltre, un antivirus si basa su determinate regole e algoritmiscritti da esseri umani, e pertanto queste possono portare a errori (falsi positivi) e/o a decisioni sbagliate.

Dal punto di vista tecnico ci sono svariati metodi che si possono utilizzare per prevenire e individuare malware. In generale, questi metodi possono essere suddivisi in tecniche di analisi statica, che si basano esclusivamente sull’analisi di codice e dati dei file binari (quali: signatures, analisi telemetriche e data mining), e analisi dinamica (quali: sandbox e honeypot), che si basano sull’esecuzione dinamica di un file per capire se è maligno o benigno.

Tuttavia, queste ultime tecniche sono raramente utilizzate nei prodotti antivirus destinati agli utenti finali, ma sono generalmente utilizzate solamente all’interno dei laboratori delle aziende produttrici di software antivirus, al fine di aiutare i ricercatori a studiare i campioni   malware . Questo è per via dei forti limiti dell’analisi dinamica, quali un alto overhead e il fatto che non può “vedere” tutto ciò che riguarda il programma. Tuttavia, esistono alcuni prodotti antivirus che effettivamente implementano queste tecniche.

Da tenere a mente

Bisogna ricordare che l’antivirus è in grado di eliminare prima di tutto soltanto i virus che riconosce, ossia quelli presenti nel database dei malware  dell’antivirus (questo non vale necessariamente per antivirus che utilizzano tecnologie euristiche e/o data-mining. Quindi tutti i nuovi virus (per nuovi si intende sia virus che il proprio antivirus non riconosce, sia quelli che non sono ancora stati scoperti) possono passare completamente inosservati e non essere rilevati dall’antivirus. Inoltre, l’antivirus riesce ad intercettare il virus soltanto quando questo è entrato all’interno del computer e quindi ha già infettato un file o la memoria; a questo punto, a seconda del virus, può “disinfettare” il file o la memoria eliminando completamente il virus o in alcuni casi è costretto a mettere in “quarantena” il file contagiato ed eliminarlo per l’impossibilità di recuperare il file originario.

Occorre aggiornare continuamente il proprio antivirus per evitare che malware già riconosciuti (cioè già immessi nella lista del database online del software) non siano riconosciuti e quindi possano infettare il proprio PC.

La scelta di un antivirus è una cosa molto complessa

E’ complessa perché antivirus diversi possono riuscire a rintracciare e quindi a controllare i nuovi virus prima di altri ma non è detto che un antivirus possa vedere tutti i virus.

La scoperta di un nuovo virus dipende molto da quanto è “infettivo”: più un virus si propaga velocemente, più veloce e semplice risulta essere la sua identificazione e quindi l’aggiornamento delle firme; se invece il virus tende ad essere molto poco “infettivo” ed a rimanere localizzato soltanto in una certa area, può passare molto tempo prima che venga intercettato e aggiunto alle firme.

Succede più volte che un antivirus consideri dei file o programmi come virali anche se in realtà non lo siano ( falso positivo ).

Questo è dovuto al fatto che un insieme di istruzioni che compongono un virus (o una sua parte) può essere presente anche in programmi e file “normali”.  o possono essere ottenuti come combinazione casuale in un file di dati salvati non in formato testo. Il problema principale è che si può non riuscire ad eseguire questo programma od aprire il file rilevato come infetto se prima non si disabilita  l’antivirus, sempre che l’antivirus non lo abbia cancellato o rovinato in modo irreparabile nel frattempo.

Ci sono numerosi metodi per criptare e compattare un codice malware rendendolo così non rintracciabile da un antivirus.

Su questo fronte molti antivirus non sono attrezzati e riescono a fare ben poco. Ma anche gli altri possono non essere in grado di rilevare un file infetto se non quando questo entra in esecuzione; il virus viene scompattato in RAM per essere eseguito e solo in questo momento l’antivirus sarà in grado di rintracciarlo.

Licenza Creative Commons
L’insicurezza dei sistemi informatici di Giovanni Popolizio è distribuito con Licenza Creative Commons Attribuzione – Condividi allo stesso modo 4.0 Internazionale