Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
1) Introduzione 2) Concetto di Virus e sue Famiglie, Tipologie e Catalogazioni 3) Identificazione di Codici Infetti 4) Tecniche di Protezione dai Virus 5) Minacce Future 6) Conclusioni Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Importanza degli elaboratori per il progresso sociale Interazione tra elaboratori e Internet agevolano la diffusione dei virus Nascita dei virus negli anni ’80 con ‘Computer Viruses - Theory and Experiments’ di Fred Cohen Più di forme virali causano ingenti danni economici soprattutto alle aziende (es. SqHell per Poste Italiane) Il vecchio concetto di virus è diventato riduttivo. Oggi si considera virus tutto il codice malevolo in grado di arrecare danno ad un utente. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Definizione: porzione di codice che si diffonde copiandosi all'interno di altri programmi, o in una particolare sezione del disco fisso, in modo da essere eseguito ogni volta che il file infetto viene aperto Il nome di virus deriva dal fatto che il programma agisce come un vero e proprio virus biologico, cioè infetta altri soggetti sani (programmi), distruggendoli o coabitandoci virus transitorio: viene eseguito (e diffonde la sua infezione) quando il programma a cui è associato è in esecuzione e termina alla chiusura di tale programma virus residente: risiede in memoria, dunque è sempre attivo o si attiva autonomamente anche quando il programma associato è terminato Tipologie di Virus: Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
worm: modificano il sistema operativo della macchina ospite in modo da essere eseguiti automaticamente e tentare di replicarsi sfruttando per lo più Internet. cavalli di troia (trojan horse): eseguiti all'insaputa dell'utilizzatore, per diffondersi devono essere consapevolmente inviati alla vittima. Il nome deriva dal famoso cavallo di Troia. backdoor: letteralmente "porta sul retro“, è un software che consente un accesso non autorizzato al sistema su cui è in esecuzione. spyware: raccolgono informazioni dal sistema su cui sono installati per trasmetterle ad un destinatario interessato. dialer: modificano il numero telefonico chiamato dalla connessione predefinita allo scopo di trarne profitto all'insaputa dell'utente. hijacker: si appropriano di applicazioni di navigazione in rete (soprattutto browser) e causano l'apertura automatica di pagine Web indesiderate. rootkit: composti da un driver e da copie modificate di programmi presenti nel sistema sono utilizzati per mascherare spyware e trojan. rabbit, ossia coniglio, crea copie di sé stesso a grande velocità fino a saturare le risorse del computer (memoria o disco). batterio: programma che quando eseguito invia copie di se stesso ad altri sistemi e utenti; non infetta altri programmi. bomba logica: porzione di codice inserito in un programma che si attiva (“esplode”) al verificarsi di determinate condizioni (data, download, load di un programma o di un dato, apertura di un sito internet). Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Virus accodati, i più diffusi: inseriscono una copia di loro stessi in testa al file eseguibile di un programma. Così le istruzioni malevoli vengono eseguite prima della naturale esecuzione del programma infetto Virus che circondano il programma, eseguono il programma originale, ma ne prendono il controllo prima e dopo la sua esecuzione. Virus integrati, sono più complessi di altri: riconosce il programma da infettare per includere frammenti di virus al suo interno. Virus sostitutivi, operano una vera e propria sostituzione degli obiettivi del programma simulandone il compito. permettono di rilevare e rimuovere anche altre categorie di software maligno oltre ai virus propriamente detti. Un virus riunisce in sé tutte le caratteristiche dei programmi citati: un cavallo di troia nasconde la sua esistenza e si lega ad altri programmi, una bomba logica si attiva al verificarsi di una certa condizione determinata da una azione dell’utente, un rabbit si riproduce, worm e batteri si diffondono in altri sistemi. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Virus del settore avvio, molto diffusi in passato: sfruttano la fase di bootstrap dell’elaboratore. Virus residenti in memoria, codice associato ad un codice residente: viene attivato molte volte quando la macchina è in funzione e, rimanendo in esecuzione per più tempo, può provocare danni maggiori Virus polimorfici, codice parassita: in grado di creare maggiori problemi agli antivirus; cambia il proprio aspetto evitando, per esempio, che le stringhe che ne identificano la sua presenza compaiono nelle esatte posizioni in cui vengono ricercate. Un tipo particolare di virus polimorfico utilizza la crittografia ed è, pertanto, noto come virus crittografico. E’ composto da tre parti: una chiave di decifrazione, il codice oggetto del virus (crittografato) e la procedura di decifrazione (non crittografata). Virus Hoax (burla, bufala), di recente diffusione: consiste in messaggi (inviati per posta elettronica), contenenti comunicati o richieste di aiuto fasullo e ingannevole, che invitano ad essere rispediti al maggior numero di persone, in modo da aumentarne la diffusione in maniera esponenziale e congestionare la rete. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Firewall – prima barriera di difesa, possono essere sia di tipo software sia di tipo hardware Identificazione di Codici Infetti e Tecniche di Protezione dai Virus La sua funzionalità principale è fare da filtro sulle connessioni entranti ed uscenti. Il firewall: 1. agisce sui pacchetti in transito da e per la zona interna; 2. è capace di "aprire" il pacchetto IP per leggere le informazioni presenti sul suo header (l’inizio del pacchetto IP); 3. in alcuni casi è anche in grado di effettuare verifiche sul contenuto del pacchetto stesso.
Packet filter (anche detto stateless), si limita a valutare gli header di ciascun pacchetto, decidendo quali far passare e quali no sulla base delle regole configurate. Stateful inspection, tiene traccia di alcune relazioni tra i pacchetti che lo attraversano, ad esempio ricostruisce lo stato delle connessioni TCP, e analizza i protocolli che aprono più connessioni Deep inspection, effettua controlli fino al livello 7 della pila ISO/OSI, ovvero valutano anche il contenuto applicativo dei pacchetti. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus Intrusion Detection System o IDS – è un sistema che analizza il traffico e tenta di riconoscere possibili attacchi alla sicurezza della rete E’ composto da tre componenti: uno o più sensori che sono utilizzati per ricevere le informazioni dalla rete o dai computer, una console utilizzata per monitorare lo stato della rete e dei computer e un motore che analizza i dati prelevati dai sensori e provvede a individuare eventuali falle nella sicurezza informatica.
Signature Based Intrusion Detection System, identifica le intrusioni ricercando pattern nel traffico di rete o nei dati generati dalle applicazioni. Gli IDS si dividono in: Anomaly Based Intrusion Detection System, analizza il funzionamento del sistema alla ricerca di anomalie e definisce se sono pericolose per l'integrità del sistema stesso. Network Intrusion Detection System, analizza il traffico di rete per identificare intrusioni, permettendo di monitorare non solo un singolo host ma una rete. Host Based Intrusion Detection System, analizza l’host alla ricerca di intrusioni, analizzando file log del sistema, modifiche al file system del PC, ecc. Hybrid Intrusion Detection System, combina i due approcci: le informazioni ottenute dagli agenti in esecuzioni sugli host vengono integrate con quelle della rete. IDS passivi e IDS attivi (o IPS ossia Intrusion Prevention System): i primi quando rilevano una violazione della sicurezza la notificano all'operatore; gli IDS attivi provvedono anche a prendere delle opportune contromisure per eliminare o comunque isolare la violazione informatica. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
è un software che si basa sulla ricerca (in memoria RAM o sui file memorizzati) di uno schema tipico di uno o più virus. Si basa sulla cosiddetta definizione, firma o signature; l’efficacia di tali software è direttamente proporzionale al loro aggiornamento. A seconda del virus, il software può "disinfettare" il file o la memoria eliminando completamente il virus oppure è costretto a mettere in quarantena il file contagiato o a eliminarlo senza la possibilità di recuperare il file originario. Quarantena = isolamento dei file corrotti in speciali directory allo scopo di bloccarne la proliferazione ma consentendone eventualmente l'analisi. Esempi di programmi antivirus più diffusi: Avast! - sviluppato dalla Alwil software di Praga AntiVir - sviluppato dall'azienda tedesca Avira AVG - prodotto dall'azienda cèca Grisoft Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Consideriamo le tecniche di protezione dal codice malevolo in voga alla luce di alcuni esempi di attacchi particolarmente nuovi e funzionali. In particolar modo: gli Evasive Attacks (ossia Attacchi Elusivi), consentono di ridurre l’esposizione del malware andando così a diminuire enormemente la possibilità di individuazione e conseguentemente aumentando la possibilità di infezione; sono attacchi altamente sofisticati con lo scopo specifico di bypassare i sistemi di sicurezza basati sulle signature (firme elettroniche che identificano virus e malware). Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Web 2.0, uno stato di evoluzione di Internet è l'insieme di tutte le applicazioni online che permettono uno spiccato livello di interazione sito- utente (blog, forum, chat, sistemi quali Wikipedia, Youtube, Facebook, Myspace, Gmail). Maggiore e migliore è l’interattività e più comoda è la via dei malware. Nasce così l’attacco Trojan 2.0 che fornisce ai cybercriminali uno schema di controllo estremamente più semplice proprio utilizzando la tecnologia del Web 2.0 (con i suoi innumerevoli siti ed opportunità). Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
per analizzare e comprendere cosa il codice intenda effettivamente fare prima che lo faccia e, se ritenuto malevolo, bloccarlo. Antivirus con tecnologia euristica - tramite complessi algoritmi crea un ambiente protetto in cui rendere impossibile il contagio da parte dei virus; consente di identificare il codice malevolo anche di ultima generazione e non presente nelle signature che compongono il database degli antivirus. Prevenzione soprattutto in fase di programmazione, in modo da creare un codice ritenuto sicuro e dunque difficilmente infettabile. Proteggersi dallo spam, talvolta causa di veri e propri disastri finanziari (come ad esempio nel caso del ‘pump-and-dump‘). Stabilire Policy di Sicurezza aziendali accompagnate da campagne di sensibilizzazione e istruzione alla sicurezza informatica dei dipendenti. Conoscere e non farsi ingannare dal phishing - l’etimologia deriva da una variante di fishing (letteralmente "pescare" in lingua inglese) e allude all'uso di tecniche sempre più sofisticate per "pescare" dati finanziari e password di un utente; è utilizzato per ottenere l'accesso a informazioni personali o riservate con la finalità del furto di identità mediante l'utilizzo delle comunicazioni elettroniche. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Virus, worm e trojan sono illegali in quasi ogni parte del mondo, mentre non si può dire lo stesso per le altre categorie di malware. In Italia la legge n. 547 del 23 dicembre 1993, in linea con le direttive comunitarie, ha modificato il codice penale ed il codice di procedura penale introducendo nuovi articoli in tema di reati informatici. In particolare l'art. 635 del codice penale ("Diffusione di programmi diretti a danneggiare o interrompere un sistema informatico"), aggiunto dalla citata legge, recita: “.. Chiunque diffonde, comunica o consegna un programma informatico da lui stesso o da altri redatto, avente per scopo o per effetto il danneggiamento di un sistema informatico o telematico dei dati o dei programmi in esso contenuti o ad esso pertinenti, ovvero l'interruzione totale o parziale del suo funzionamento, è punito con la reclusione fino a due anni e con la multa sino a lire venti milioni.." La norma penale è chiaramente applicabile solo a chi diffonde virus informatici in modo doloso, ovvero con la consapevolezza di farlo e con la consapevolezza di poter creare dei danni. E’ necessario citare anche la legge 675/96 che è fondamentale per la tutela dei dati personali (persona fisica, giuridica, ente o associazione..) e in genere dei dati sensibili (origine razziale, religione, salute..). Tale legge è stata sostituita con la 196/2003 che include anche le tecniche biometriche. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Social Engineering o Ingegneria Sociale ossia lo studio del comportamento individuale di una persona al fine di carpire delle informazioni. Le principali fasi dell’attacco sono: 1) Footprinting, una prima fase di raccolta informazioni della vittima; 2) stabilire una base comune per guadagnare la fiducia dell’interlocutore. Botnet: un insieme di computer connessi tra loro tramite Internet controllati da un'unica entità, ossia il Botmaster. I computer costituenti la Botnet sono detti bot o zombie, poiché svolgono delle operazioni al di la della loro volontà a causa di virus (e più precisamente trojan) che sono stati inoculati durante una precedente infezione e consentono al botmaster di controllarli da remoto; i comandi vengono inviati tramite i canali IRC (Internet Relay Chat) oppure tramite la rete P2P ossia Peer–to–peer (per esempio tramite Skype); può avere vari obiettivi, tra cui inoculare malware, carpire informazioni e sferrare attacchi DDOS. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Il servizio di Monitoring, realizzato nel Network & Security Operations Center (N&SOC) agisce nel contesto delle attività di controllo e di rilevazione delle anomalie in real-time nella rete sulla base della raccolta, della correlazione e dell’interpretazione dei log generati da ogni singolo componente dell’infrastruttura di rete monitorata (su un’ampia scala di diverse tecnologie interconnesse: wireless, VoIP, digitale terrestre, computer palmari). Viene garantita, inoltre, la protezione del marchio aziendale mediante cui è possibile identificare e rivendicare velocemente un’eventuale appropriazione fraudolenta dell’identità aziendale dovuta a un uso illecito del marchio su Internet. Identificazione di Codici Infetti e Tecniche di Protezione dai Virus
Prevedere il futuro in uno scenario così mutevole è pressoché impossibile. Gli utenti continueranno a fronteggiare dure sfide per proteggere e controllare i propri computer, in quanto i criminali tenteranno di far leva sulle nuove tecnologie per i propri scopi e causare disagi. Efficaci norme di sicurezza, una protezione aggiornata e un forte impegno a sensibilizzare gli utenti possono contribuire a tutelare non soltanto le reti aziendali, ma anche quelle della singola persona. Come sempre la conoscenza porta alla corretta interpretazione e alla scelta della difesa più efficace. La sensibilizzazione fa comprendere la pesantezza del problema e responsabilizza gli utenti. Ancora una volta “prevenire è meglio che curare”. Anche se in termini informatici, sempre di virus si parla. E se fossero proprio le software-house, proprietarie degli antivirus, ad essere gli autori dei virus? Identificazione di Codici Infetti e Tecniche di Protezione dai Virus