Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Sicurezza Informatica

Tesina Sicurezza Informatica - ABACUS 2013
by

Luca Pellegrino

on 18 October 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Sicurezza Informatica

SICUREZZA
INFORMATICA

CHE COS'è?
Con sicurezza informatica (o Information Security) si fa riferimento a quel ramo dell'informatica che si occupa delle analisi delle vulnerabilità, del rischio, delle minacce o attacchi e della successiva protezione dell'integrità fisica (hardware) e logico-funzionale (software) di un sistema informatico e dei dati in esso contenuti o scambiati in una comunicazione con un utente (interno o esterno alla propria rete).
Chi sono?
hacker blablabla
cracker blublublu
lamer brbebrereger
qua metti il simbolo
Spesso in ambito di sicurezza informatica sentiamo parlare degli attaccanti con un appellattivo piuttosto comune: ci si riferisce a loro con termine di Hacker. E' forse uno dei luoghi comuni più diffusi in quest'ambito, alimentato dai mass media sin dagli anni '80. Parlando di Information Security andiamo a distinguere principalmente tre "razze":
Hacker
Cracker
Lamer
Cracker
Chi sono?
Hacker
Il termine viene erroneamente usato per riferirsi a criminali informatici. In realtà il termine hacker si riferisce ad una persona con spiccate doti intellettuali e ampie conoscenze in ambito elettrinico-informatico, che analizza sistemi informatici nelle loro componenti hardware e software spinto da semplice curiosità intellettuale.
Il glinder, il simbolo degli hacker
Origini del termine
Per comprendere al meglio cosa realmente è un hacker, può essere utile analizzarne ulteriori aspetti, come ad esempio l'origine del termine e a cosa esso era riferito.

Il termine "hacker" viene per la prima volta usato da studenti del MIT (il Massachusetts Institute of Technology), che cominciarono ad usare il verbo "to hack" per descrivere forme di divertimento che oggi potremmo descrivere con il verbo "to goof", che tradotto significa "prendere in giro qualcuno".

Bravate giovanili degli studenti del campus, o il semplice passare le giornate aggiustando radio divennero hacking. A testimonianza della forte componente creativa dell'hacker, si noti che i primi gruppi di coloro che venivano definiti "hacker" erano appassionati di modellismo ferroviario.
L'etica hacker
''Hacker è un nuovo stile di vita, con una filosofia, un'etica, ed un sogno''
da Hackers. Gli eroi della rivoluzione informatica Steven Levy, 1984
Gli hacker sono tutti uniti da un etica, un vero e proprio codice morale che deve essere rispettato. Per distinguerli da coloro che usano le conoscenze informatiche a scopo criminale, è stato coniato il termine di "hacker etico".

Come scritto da Levy nella prefazione del libro
Hackers. Gli eroi della rivoluzione informatica
, i principi generali su cui si basa l'etica hacker sono:
Condivisione
Apertura
Decentralizzazione
Libero accesso alle tecnologie informatiche
Miglioramento del mondo
Altri fondamenti dell'
etica hacker
L'accesso ai computer - e a tutto ciò che potrebbe insegnare qualcosa su come funziona il mondo - dev'essere assolutamente illimitato e completo. Dare sempre precedenza all'imperativo "Hands on!" ("metterci su le mani!"; si intende un approccio empirico e curioso verso i problemi, sperimentando e apprendendo dal sistema che si sta studiando).
Secondo Levy, occorre permettere agli hacker di esaminare sistemi già esistenti perché possano capirli e conoscerli; in questo modo sarà possibile sia migliorare i detti sistemi, che permetterne la creazione di nuovi. L'accesso permette lo sviluppo di nuova tecnologia.



Tutta l'informazione dev'essere libera:
Le idee e informazioni sono necessarie per migliorare, correggere e creare nuovi sistemi; per questo devono essere libere ed accessibili. Secondo il punto di vista hacker, ogni sistema può trarre beneficio dal libero scambio di informazioni.



Dubitare dell'autorità. Promuovere il decentramento.
Il miglior metodo per promuovere un libero scambio di informazioni è quello di avere un sistema aperto, privo di ogni ostacolo tra un hacker e quello che sta cercando di imparare. Per questo motivo gli hacker sono contrari a ogni forma di burocrazia (indipendentemente dal fatto che sia di tipo aziendale, governativo o universitario), che ritengono non abbia nessun'altra funzione se non quello di rallentare ed ostacolare la conoscenza.



Gli hacker dovranno essere giudicati per il loro operato, e non sulla base di falsi criteri quali ceto, età, razza, sesso o posizione sociale:
In una comunità hacker, l'abilità conta più di ogni altra sua caratteristica. Levy descrive il caso di L. Peter Deutsch che, seppur appena dodicenne, venne accettato dagli altri hacker del TX-0 nonostante non fosse neppure uno studente del MIT.



Con un computer puoi creare arte.
Uno degli aspetti maggiormente apprezzati dagli hacker è quello di realizzare software anche molto complesso funzionante con il minor numero di istruzioni possibile. Il codice sorgente di un programma, se particolarmente curato e ben scritto, è considerato un'opera d'arte. Tra i primi hackers rappresentava quasi una sorta di gioco e di sfida il riuscire a creare programmi che fossero il più possibile sintetici.



I computer possono cambiare la vita in meglio.
Gli hackers considerano i computer come parte integrante delle loro vite. Essi pensano che se i computer venissero utilizzati nel modo giusto, l'etica hacker si espanderebbe nel mondo, migliorandolo. L'hacker, dunque, attraverso il computer riesce a trasformare una possibilità in realtà; tra gli obiettivi primari di un hacker c'è quello di insegnare alla società che il mondo, grazie allo sviluppo informatico, non presenta più limiti.
IL GLINDER
Il Glider è rappresentazione della navicella aliante (in inglese appunto glider) nella teoria degli automi cellulari. Il simbolo fu proposto nel 2003 da
Eric Steven Raymond
come emblema degli hacker: il suo scopo principale è quello di unire sotto un unico simbolo tutti i sostenitori della comunità hacker indipendentemente dal linguaggio di programmazione preferito e/o sistema operativo più usato.

Utilizzarlo non significa definirsi un hacker, anche perché è buona regola non autoproclamarsi tale: significa piuttosto esprimere rispetto verso gli ideali, la cultura e lo stile di vita hacker, riconoscendosi gli uni con gli altri
Eric Steven Raymond, ideatore del Glinder e attuale amministratore del Jargon File
Jargon File
Oltre ad avere una propria etica, un proprio codice morale e delle proprie regole, il gruppo degli Hacker dispone anche di un proprio linguaggio. A tal proposito è stato creato il Jargon File, che altro non è se non un vocabolario del gergo usato dagli hacker e dai professionisti dell'IT.
Inizialmente redatto da
Raphael Finkel
della
Stanford University
, è attualmente mantenuto e amministrato da
Eric Steven Raymond
, uno dei massimi esponenti della cultura hacker nel mondo
.
Il documento contiene anche definizioni e regole di buona educazione da rispettare in rete (le cosìdette
netiquette
)

Il Jargon File è attualmente accessibilie e visualizzabile da tutti all'indirizzo
http://www.catb.org/jargon/
La sicurezza informatica è un problema sempre più diffuso, a causa della spinta informatizzazione della società e della parallela diffusione e specializzazione degli attaccanti.
Screen dell'attuale Jargon file
Lamer
Un lamer è sostanzialmente un aspirante cracker con conoscenze informatiche limitate. Per questo la maggior parte dei lamer usa software creati da terzi, non usando le proprie -alcune volte inesistenti- conoscenze in ambito informatico.

Il termine, che in inglese significa letteralmente "zoppo" o "rozzo", ha origini nell'ambiente del Commodore 64, uno dei primi home computer, durante la metà degli anni ottanta ma la sua popolarità è dovuta ad un famoso virus per Amiga, una delle prima macchine incentrate sulla multimedialità, che gradualmente danneggiava floppy non protetti da scrittura con settori non validi. I settori corrotti, se letti, apparivano sovrascritti con la ripetizione della stringa
"LAMER!"
.
schermata del Lamer Exterminator, il virus per Amiga
Sostanzialmente quindi, i lamer cercano di provocare danno a puro scopo di vandalismo. Non seguono un etica come gli hacker, nè svolgono il ruolo di cattivi in una cyberguerra. L'unico loro scopo è l'appagamento personale.

L'invio di virus o la modfica di pagine web in modo non autorizzato sono alcune degli attacchi più popolari in questa categoria.

I lamer vengono tradizionalmente disprezzati dagli hacker perché sono ritenuti, almeno in parte, responsabili della connotazione negativa del termine hacker, che viene tutt'oggi associato alla criminalità informatica ogni qualvolta i media danno la notizia di un attacco digitale.
La non-etica dei lamer
Il termine

cracker
fa riferimento ad un individuo che si ingegna per eludere blocchi imposti da qualsiasi software al fine di trarne profitto.

Il termine cracker viene spesso confuso con quello di hacker, il cui significato è tuttavia notevolmente diverso.
Alcune tecniche sono simili, ma hacker è colui che sfrutta le proprie capacità per esplorare e apprendere senza creare reali danni. Al contrario, cracker è colui che sfrutta le proprie capacità al fine di
distruggere
e arricchirsi.

Tipicamente, quando ci riferiamo ad un
criminale informatico
, ci stiamo riferendo effettivamente ad un
cracker
Nonostante il modus operandi di un cracker sia difficile da "standardizzare", è comunque possibile definire due macro-categorie di attacchi al sistema informatico: l'
attacco esterno
(o remoto) e
quello locale
.
Attacco esterno
Il fine di un attacco esterno è quello di:
sfruttare le vulnerabilità di un servizio internet, causate da un bug di programmazione.
utilizzare programmi che, eseguiti da un server web consentono l'esecuzione di comandi.
lo sfruttamento di determinate configurazioni insicure dei software web.


















Attacco locale
L'attacco locale viene portato a compimento da individui che hanno accesso fisico alla macchina, e ha principalmente lo scopo di ottenere lo stato di root (superuser), per avere privilegi illimitati.
Parte importante dell'attacco è l'eliminazione delle tracce del proprio passaggio o della propria presenza per rendersi totalmente invisibile all'amministratore di sistema. Ciò è possibile con alcuni accorgimenti:
l'eliminazione o modifica dei file di log, che sono i registri che tengono traccia delle operazioni degli utenti
Modificando le chiamate di sistema (system call) tramite l'inserimento di codice direttamente all'interno del kernel (il nucleo del sistema operativo).
-Hacker, di McClure Stuart, Kurtz George, Scambray Joel,
Un buon sistema di sicurezza si misura proprio con 'non succede niente'.
I DIVERSI TIPI DI SICUREZZA
Nell'Information Secutity si distinguono due tipi di sicurezza: la
sicurezza attiva
e la
sicurezza passiva.

Sicurezza Passiva
Sicurezza Attiva
Per sicurezza passiva normalmente si intendono le tecniche e gli strumenti di tipo difensivo il cui obiettivo è quello di impedire che utenti non autorizzati possano accedere fisicamente a risorse di natura riservata. Esempi di sicurezza passiva possono essere l'utilizzo di porte blindate per l'accesso ad un server dati o sistemi di autenticazione per il personale
Per sicurezza attiva si intendono le tecniche e gli strumenti mediante i quali le informazioni ed i dati di natura riservata sono resi digitalmente sicuri, proteggendo gli stessi sia dalla possibilità che un utente non autorizzato possa accedervi (confidenzialità), sia dalla possibilità che un utente non autorizzato possa modificarli (integrità).
Parametri di protezione
I principali aspetti di protezione del dato sono:
la disponibilità, ossia la capacità di rendere disponibile un dato in seguito ad una richiesta di un programma utente.
l'integrità dei dati, garantire che il dato non possa essere modificato o corrotto in seguito a un guasto o una modifica da un utente interno (accidentale) o esterno.
la confidenzialità (o riservatezza): in un sistema che garantisce la confidenzialità, una terza parte che entri in possesso delle informazioni scambiate tra mittente e destinatario, non è in grado di ricavarne alcun contenuto informativo, o almeno non in modo chiaramente leggibile.
Principali cause di perdita di dati
Eventi accidentali
Eventi indesiderati
Gli eventi accidentali non fanno riferimento ad un attacco da parte di terzi, ma fanno riferimento a generali guasti e malfunzionamenti del sistema informatico. A volte si preferisce agire anche in maniera preventiva tramite piani di cosidetti
disaster prevention
,
Questi piani prevedono solitamente misure di
prevenzione
di un possibile disastro informatico che potrebbe compromettere l’erogazione di servizi e ingenti perdite di dati da parte di relativi sistemi informatici, con il conseguente rischio del
fallimento dell’impresa.
Secondo uno studio pubblicato sulla rivista Computer World, il 36% di disastri avviene a causa di errori hardware e/o software, il 26% per cali di tensione o interruzioni di corrente e il 23% per cause naturali.


Un efficace disaster prevention idovrebbe quindi prevedere:

Monitoraggio di temperatura, fumi ed allagamento all'interno delle sale CED;
Monitoraggio dei parametri di prevenzione hardware failure per ogni server;
Monitoraggio dei parametri di prevenzione software failure per ogni server;
Monitoraggio dell'assorbimento elettrico di ogni singolo server e degli UPS;
Procedura di spegnimento corretto, sicuro e graduale degli apparati (shutdown sequenziale).
Questa è la causa più inaspettata, e anche quella più difficile da prevedere, dato il continuo sviluppo di nuove metodologie di attacco. In questa categoria rientrano infatti gli attacchi da parte di
utenti non autorizzati
al trattamento di dati o all’utilizzo di servizi.
Attacchi hacking
Gli attacchi hacking vengono fatti attraverso la rete internet, tramite l’uso di software particolari, a volte creati dagli attaccanti stessi, al fine di intrufolarsi abusivamente all’interno del sistema, riuscendo ad ottenere piena disponibilità della macchina, per gestire risorse e dati.

L'obiettivo di un attacco di hacking è quello di sottrarre dei dati da un sistema informatico al fine di manipolarli o rendere publiche informazioni sensibili.
Accesso a sistemi da parte di utenti non autorizzati
Questo tipo di attacco è sostanzialmente simile ad un Attacco Hacking, ma con l'unica differenza è che stavolta viene usata la macchina e non la rete.
SICUREZZA DEI PROGRAMMI
Il problema della sicurezza dei programmi e soprattutto dell'invio e ricezione di dati confidenziali protetti, è la diretta conseguenza della sensibile crescita dell'uso degli strumenti informatici e di internet. Anche in ambito di sviluppo software ci troviamo di fronte alla questione "sicurezza": nel produrre un programma infatti, è fondamentale garantire la sua capacità di "sopravvivenza" ad attacchi esterni e ad errori più o meno critici che si possono verificare in runtime, in esecuzione.
Un programma per essere definito sicuro deve rispettare due caratteristiche fondamentali, ovvero quelle di:

Safety
(sicurezza): eliminare la produzione di danni irreparabili all'interno del sistema stesso
Reliability
(affidabilità): prevenzione da eventi che possono produrre danni di qualsiasi gravità al sistema.

Un software (o programma) è tanto più sicuro quanto minori sono le probabilità che si verifichi un guasto e la gravità del danno conseguente al guasto stesso.

ERRORI DI PROGRAMMA
L'
IEEE
(Institute of Electrical and Electronics Engineers) ha catalogato gli errori nel software in tre diverse voci a seconda della natura degli errori stessi:

Error
: è un errore umano verificatosi durante il processo di interpretazione delle specifiche oppure durante l'uso di un metodo o nel tentativo di risoluzione di un problema

Failure
: è un comportamento del software imprevisto ed incongruo rispetto alle specifiche del programma stesso

Fault
: è un difetto del codice sorgente.
Le tecniche di attacco e le tecniche di difesa di un sistema informatico sono molteplici: a scopo illustrativo, supponiamo di avere 2 pc, il pc "attaccante" e il pc "vittima".
Attaccante...
...e la vittima
VIRUS
Un virus è un software che è in grado, una volta eseguito, di infettare dei file in modo da riprodursi facendo copie di se stesso, generalmente senza farsi rilevare dall'utente, in modo del tutto analogo ai virus in campo biologico.
TROJAN (o TROJAN HORSE)
Un trojan (in italiano cavallo di troia) deve il suo nome al fatto che le sue funzionalità sono nascoste all'interno di un programma
apparentemente utile
; è dunque l'utente stesso che installando ed eseguendo un certo programma, inconsapevolmente, installa ed esegue anche il codice trojan
nascosto
.
WORM
Un worm (letteralmente "verme") è una particolare categoria di malware in grado di autoreplicarsi. È simile ad un virus, ma a differenza di questo
non necessita di legarsi ad altri eseguibili per diffondersi
.
BACKDOOR
Le backdoor in informatica sono paragonabili a porte di servizio (
porte sul retro
) che consentono di superare in parte o in tutto le procedure di sicurezza attivate in un sistema informatico o un computer entrando nel sistema stesso.
SPYWARE
Uno spyware è un malware che, come suggerisce la parola, svolge come funzione principare quella di
spiare l'utente
, al fine di ricavare informazioni sulla navigazione internet (preferiti, home-page, tempo medio di navigazione...) o anche (e soprattutto) dati sentibili come
e-mail e password
, trasmettendo i dati ricavati tramite Internet ad un'organizzazione che le utilizzerà per trarne profitto, solitamente attraverso l'invio di pubblicità mirata (
spam
).
SCAREWARE
Per scareware si intende un software dannoso (o comunque di poca utilità) che viene installato dall'utente in seguito ad attacchi di social engineering o, più comunemente, in seguito ad una campagna di "marketing scorretto".
EXPLOIT
Il termine exploit è usato per identificare un codice che, sfruttando un bug o una vulnerabilità, porta all'acquisizione di privilegi o al malfunzionamento di un computer.
TECNICHE DI ATTACCO
Le tecniche di attacco di un sistema informatico sono varie e moltepici: alcune utilizzano falle presenti nel sistema, altre sono più dirette e aggirano le protezioni imposte dall'amministratore della rete e altre ancora permettono l'acquisizione di dati personali senza ricorrere a nessun attacco telematico.
SOCIAL ENGINEERING
Nel campo della sicurezza delle informazioni, l'ingegneria sociale (dall'inglese social engineering) è lo studio del comportamento individuale di una persona al fine di carpire informazioni utili.

Questo può essere, secondo gli esperti, un modo sorprendentemente efficiente per ottenere la chiave di cifratura di un sistema, soprattutto se comparato ad altri metodi crittanalitici.
BUFFER OVERFLOW
Esempio di Exploit
Funzionamento:
Il buffer overflow è una vulnerabilità che può affliggere un programma software. Il programma non controlla in anticipo la lunghezza dei dati in arrivo, ma si limita a scrivere il loro valore in un buffer di lunghezza prestabilita, confidando che l'utente non immetta più dati di quanti esso ne possa contenere. Quando questo accade, i dati extra vanno a sovrascrivere le variabili interne del programma, o il suo stesso stack; come conseguenza di ciò, a seconda di cosa è stato sovrascritto e con quali valori, il programma può dare risultati errati o imprevedibili, bloccarsi, o (se è un driver di sistema o lo stesso sistema operativo) bloccare il computer.
Nota:
il buffer è una zona di memoria usata temporaneamente per l'input o l'output dei dati, oppure per velocizzare l'esecuzione di alcune operazioni, come ad esempio operazioni su stringhe.
STUDIO DELLO
"STILE VOCALE"
VERIFICA DELLE INFORMAZIONI
IL FOOTPRINTING
Le fasi di un attacco d'Ingegneria Sociale
L'ATTACCO
In questa fase, che può arrivare a durare settimane di analisi, l'ingegnere cercherà di
ricavare tutte le informazioni
di cui necessita sul suo bersaglio, come ad esempio un indirizzo e-mail e uno o più recapiti telefonici.
Superata la fase di footprinting, il compito dell'ingegnere è quello di
verificare
se le informazioni che ha ricavato sono più o meno attendibili, anche telefonando all'azienda del bersaglio e chiedendo cortesemente di parlare con la vittima.
E' probabilmente la fase più difficile e delicata di questa tipologia di attacchi. Consiste nello studio del modo di parlare, di interloquire e di porsi della vittima, studiandone le espressioni più usate e quelle meno, al fine di instaurare nella (ignara)vittima una sorta di
fiducia
verso l'ingegnere.
Solo dopo queste tre fasi ha inizio la vera e propria fase di attacco. Solitamente consiste nel chiedere alla vittima le credenziali di accesso ad un sito o ad una base di dati (attacco di
phishing
), anche in modo diretto, fingendosi un altra persona:
L'ATTACCO
Un esempio di azione di questo genere può essere una falsa e-mail, mandata da un aspirante ingegnere sociale fingendosi magari un amministratore di sistema, o un membro di qualche grosso ente. Vengono richiesti al malcapitato di turno
nome utente
e
password
di un suo account, ad esempio quello di posta elettronica, con la scusa di fare dei controlli sul database dell'azienda. Se la vittima cade nel tranello, il social engineer avrà ottenuto il suo obiettivo, ossia una breccia nel sistema della vittima, da cui potrà iniziare una fase di sperimentazione allo scopo di
violare il sistema
stesso.
MALWARE
Il termine deriva dalla contrazione delle parole inglesi
malicious
e
software
e ha dunque il significato letterale di
"programma malvagio"
; in italiano è detto anche codice maligno. Nella sicurezza informatica il termine malware indica genericamente un qualsiasi software creato con il solo scopo di causare danni più o meno gravi ad un computer, ai dati degli utenti del computer, o al sistema informatico su cui viene eseguito.
La diffusione di tali software risulta in continuo aumento: si calcola che nel 2008
siano girati circa
15 milioni
di malware, di cui quelli circolati tra i mesi di gennaio e agosto sono pari alla somma dei 17 anni precedenti, e tali numeri sono destinati sicuramente ad aumentare.
Quella dei MALWARE è quindi una grande
categoria
che racchiude vari software dannosi:
I virus possono essere o non essere direttamente dannosi per il sistema operativo che li ospita, ma anche nel caso migliore comportano comunque un certo spreco di risorse in termini di RAM, CPU e spazio sul disco fisso. Teoricamente, quello che deve fare il virus è colpire e danneggiare la parte software della macchina, ma questo non esclude un possibile danno hardware indiretto (es: causando il surriscaldamento o eseguendo comandi che fermino la ventola di raffreddamento).
STORIA DEL VIRUS
Nel 1949
John von Neumann
dimostrò matematicamente la possibilità di costruire un programma per computer in grado di replicarsi autonomamente. Per la sua applicazione pratica si dovette però aspettare i primi anni 60, con l'avvento del gioco "Core Wars", ideato da un gruppo di programmatori dei Bell Laboratories della AT&T. Nel gioco, più programmi si dovevano sconfiggere sovrascrivendosi a vicenda.

Era l'inizio della storia dei virus informatici.
John von Neumann (1903-1957)

Il primo virus per computer ad apparire al mondo fu un programma chiamato Elk Cloner (1982), che copiava i floppy inseriti dopo quello di Elk Cloner.

Il primo virus che si guadagnò una certa fama, fu però quello scritto nel 1986 da due fratelli pakistani proprietari di un negozio di computer per punire chi copiava illegalmente il loro software.
Il virus si chiamava Brain, e
fu il primo esempio di virus che
infettava il settore di avvio.
Un virus è composto da un insieme di istruzioni, come qualsiasi altro programma per computer.
Caratteristica principale di un virus è quella di
riprodursi
e quindi diffondersi nel computer ogni volta che viene aperto il file infetto. Tuttavia, un virus di per sé
non è un programma eseguibile
, così come un virus biologico non è di per sé una forma di vita.
La tecnica solitamente usata dai virus è quella di infettare i file eseguibili: il virus inserisce una copia di sé stesso nel file eseguibile che deve infettare, pone tra le prime istruzioni di tale eseguibile un'istruzione di salto alla prima linea della sua copia ed alla fine di essa mette un altro salto all'inizio dell'esecuzione del programma.

In questo modo quando un utente lancia un programma infettato viene dapprima impercettibilmente eseguito il virus, e poi il programma. L'utente vede l'esecuzione del programma e non si accorge che il virus è ora in esecuzione in memoria e sta compiendo le varie operazioni contenute nel suo codice.

Principalmente un virus esegue copie di sé stesso spargendo l'epidemia, ma può avere anche altri compiti molto più dannosi (cancellare o rovinare dei file, formattare l'hard disk, aprire delle backdoor, far apparire messaggi, disegni o modificare l'aspetto del video, ...)
Componenti di un virus
Una routine di ricerca
Una routine di infezione
I virus informatici più semplici sono composti da due parti essenziali, sufficienti ad assicurarne la replicazione:
si occupa di ricercare dei file adatti ad essere infettati dal virus e controlla che gli stessi non ne contengano già una copia, per evitare una ripetuta infezione dello stesso file
Ha il compito di copiare il codice virale all'interno di ogni file selezionato dalla routine di ricerca perché venga eseguito ogni volta che il file infetto viene aperto, in maniera trasparente rispetto all'utente.
CICLO DI VITA DI UN VIRUS
Attivazione
Estirpazione
Infezione
Creazione:
Riconoscimento
Propagazione
Incubazione:
È la fase in cui lo sviluppatore progetta, programma e diffonde il virus. Di solito i cracker per la realizzazione di virus utilizzano linguaggi di programmazione a basso livello (quali l'assembler e C) in modo da ottenere codice virale di pochi centinaia di byte.
Questa fase è stata resa "accessibile" anche ad utenti inesperti, tramite pacchetti software che permettono proprio la realizzazione di virus
In questa fase il virus è presente sul computer da colpire ma non compie alcuna attività. Rimane inerte fino a quando non si verificano le condizioni per la sua attivazione
Il virus infetta il file e di conseguenza il sistema
Il virus inizia l'azione dannosa al verificarsi delle condizioni prestabilite dal cracker.
Il virus propaga l'infezione, riproducendosi e infettando sia file nella stessa macchina che altri sistemi.
Il virus viene riconosciuto come tale e viene individuata la stringa di riconoscimento, ossia la firma che contraddistingue ciascun virus.
Nota: se il virus non viene riconosciuto dal sistema, questa e la successiva fase non avvengono.
È l'ultima fase del ciclo vitale del virus. Il virus viene
eliminato
dal sistema.
Sintomi di un infezione e descrizione degli effetti:
Rallentamento del computer
Impossibilità di eseguire un determinato programma o aprire uno specifico file
Scomparsa di file e cartelle
Impossibilità di accesso al contenuto di file
Messaggi di errore inattesi o insoliti
Riduzione di spazio nella memoria e nell'hard disk
Settori difettosi
Modifiche delle proprietà del file
Errori del sistema operativo
Duplicazione di file
Ridenominazione di file
Problemi di avvio del computer
Blocchi del computer
Interruzione del programma in esecuzione
Apertura e chiusura del lettore CD/DVD senza intervento dell’utente
Tastiera e/o mouse non funzionanti correttamente
Scomparsa di sezioni di finestre (pulsanti, menu, testi etc…)
Riavvio spontaneo del computer
Antivirus disattivato automaticamente
Programmi all'improvviso non più funzionanti o malfunzionanti
Lentezza della connessione Internet
Emissione da parte del computer di suoni insoliti
Il termine deriva da un romanzo di fantascienza degli anni 1970 di John Brunner: i ricercatori che stavano scrivendo uno dei primi studi sul calcolo distribuito notarono le somiglianze tra il proprio programma e quello descritto nel libro e ne adottarono il nome.
Uno dei primi worm diffusi sulla rete fu
Internet Worm
, creato da Robert Morris, figlio di un alto dirigente della NSA (National Security Agency) il 2 novembre 1988, quando internet era ancora agli albori. Tale virus riuscì a colpire tra le 4000 e le 6000 macchine, si stima il 4-6% dei computer collegati a quel tempo in rete.
Danni diretti
Danni indiretti
Danni causati dai worm
Un worm semplice, composto solamente dalle istruzioni per replicarsi, di per sé non crea gravi danni diretti al di là dello spreco di risorse computazionali.

La maggior parte dei worm, così come i virus, contiene una parte detta payload, che ha il solo scopo di causare dei danni al sistema infettato.
Molto di frequente un worm funge da veicolo (tecnica chiamata
DROPPING
) per l'installazione automatica sul maggior numero di macchine di altri malware, come per esempio backdoor o keylogger, che potranno poi essere sfruttati da un malintenzionato
cracker
o addirittura da un altro worm.
I danni indiretti sono gli effetti collaterali dell'infezione da parte di un worm di un elevato numero di computer connessi in rete, andando ad inficiare sulle prestazioni della rete stessa. I messaggi di posta elettronica inviati dai worm per replicarsi vanno infatti ad aumentare la mole di posta indesiderata che arriva nelle caselle e-mail, con conseguente
spreco di risorse
in termini di banda.
Tipicamente un worm
modifica il computer che infetta
, in modo da venire eseguito ogni volta che si avvia la macchina e rimanere attivo finché non si spegne il computer o non si arresta il processo corrispondente.
Perchè cavallo di Troia?
Un trojan è composto generalmente da 2 file:
il file server, che viene installato nella macchina vittima
il file client, usato dall'attaccante per inviare istruzioni che il server esegue.

In questo modo, analogamente allo stratagemma adottato da Ulisse nell'opera di Omero, la vittima è indotta a far entrare il programma nella "città", ossia ad eseguire il programma.
Il caso del "Tojan di Stato" tedesco
Nel 2011 scoppia il caso del
Trojan di Stato tedesco
, scoperto da un gruppo di hacker, chiamati
CCC (Chaos Computer Club)
. Questo Trojan veniva usato dalle regioni per controllare comunicazioni sospette, arrivando anche ad
intercettare chiamate
Skype o catturando lo screen dello schermo di un utente da remoto.
Nonostante la Germania affermi che non ci sia stato alcun
"Grande Fratello"
, e che il tutto sia stato fatto al solo scopo di difendersi dai cyber-crimini, resta ancora un forte dubbio sul fatto che il trojan, attivo dal 2008, abbia
violato la privacy
di molti cittadini tedeschi
Solitamente le backdoor non fanno altro che
permettere l'accesso fra 2 computer diversi
all'insaputa dell'infettato.

A tale scopo vengono utilizzate porte già aperte da programmi autorizzati dall'utente, come ad esempio programmi per il file sharing (es: eMule)
Caratteristiche di una BACKDOOR
Invisibilità
Versatilità
Capacità di eseguire comandi senza che la vittima se ne accorga e proceda con la sua eliminazione
Capacità di adattarsi per superare i diversi sistemi di sicurezza adottati da un
PC.
La loro diffusione può essere paragonata a quella di un trojan, in quanto
deve essere eseguito con il consenso dell'utente
per poter agire. A tale scopo, l'attaccante propone alla vittima, spesso con tecniche di
social engineering
, offerte allettanti di prodotti in modo del tutto gratuito dietro i quali si nasconde uno spyware. Alcune volte può succedere che prodotti spacciati per anti-spyware, siano essi stessi degli spyware.
Quello che accade infatti, è che alla vittima viene proposta l'installazione di un software, che si presenta come un miracoloso strumento per la manutenzione del sistema o un antivirus per un problema inesistente.
QUAL'È IL SUO SCOPO?
Per concretizzare la truffa, lo
scareware
,
una volta installato nel sistema, segnala continuamente errori inesistenti, e propone come soluzione ultima quella di scaricare un programma che metterà fine al problema...ovviamente la licenza d'uso del programma in questione, sarà a pagamento
BATCH
I Batch sono i cosiddetti "virus amatoriali". Non sono sempre dei file pericolosi in quanto esistono molti file batch tutt'altro che dannosi, il problema arriva quando un utente decide di crearne uno che esegua il comando di formattare il pc (o altre cose dannose) dell'utente a cui viene mandato il file. Non si apre automaticamente, deve essere l'utente ad aprirlo, Bisogna però anche dire che esistono modi per camuffare i Batch e farli sembrare dei file exe, aumentandone anche il peso per sedare ogni sospetto. L'utilizzo di questo particolare "malware" è spesso ricorrente nel Cyberbullismo.
KEYLOGGER
In informatica un keylogger è uno strumento di Sniffing, è in grado cioè di intercettare tutto ciò che un utente digita sulla tastiera del proprio, o di un altro computer.
Esempio di batch: apre tante finestre per quante volte compare start. E' uno scherzo molto comune e può essere fatto col blocco note.
Esistono due tipi di keylogger:
Hardware:
Software
vengono collegati al cavo di comunicazione tra la tastiera ed il computer o all'interno della tastiera stessa.
Keylogger hardware
I keylogger hardware sono molto efficaci in quanto la loro installazione è molto semplice e il sistema non è in grado di accorgersi della loro presenza e quando sono nascosti nella tastiera risultano del tutto invisibili.

Il vantaggio dei keylogger hardware risiede nel fatto che sono completamente indipendenti dal sistema operativo e sono in grado di intercettare anche le password di bootstrap, quelle usate cioè per accedere al sistema operativo.

Questi keylogger memorizzano i tasti premuti o li inviano a dispositivi wireless.
esempio di Keylogger hardware
Sono programmi che controllano e salvano la sequenza di tasti che viene digitata da un utente.
Keylogger software
I keylogger software sono invece semplici programmi o driver di periferica che rimangono in esecuzione captando ogni tasto che viene digitato e poi, in alcuni casi, trasmettono tali informazioni a un computer remoto.

Spesso i keylogger software sono trasportati e installati nel computer da worm o trojan e hanno in genere lo scopo di intercettare password e numeri di carte di credito e inviarle tramite posta elettronica al creatore degli stessi.
resoconto di un Keylogger software
SOCIAL NETWORK POISONING
Tecnica di recente introduzione, dato l'ampio uso che l'utenza fa delle piattaforme sociali (social network), questo attacco ha il solo scopo di "inquinare" appunto questi sistemi di comunicazione.

Questo può avvenire creando un profilo fittizzio, dando false informazioni su se stessi o sui propri interessi.
L'obiettivo che si pone quest'attacco è quello di rendere poco credibili queste piattaforme, con un sensibile impatto sul relativo valore economico.
ATTACCHI DoS
Gli attacchi DoS (Denial of Service, ovvero "negazione di servizio"), consistono nel richiedere ad un sistema informatico fornitore di un servizio, come può essere ad esempio un sito web, una grande mole di risorse al punto tale che esso non è più in grado di fornire tale servizio.
ATTACCHI DDoS
Una variante molto più usata per attacchi DoS sono gli attacchi
Distributed Denial of Service
, dal funzionamento identico ma realizzato utilizzando numerose macchine attaccanti.

Per avere un maggior numero di macchine a disposizione per l'attacco, il malintenzionato (o più spesso un intera organizzazione),
infetta
precedentemente un numero elevato di computer con dei virus o worm che lasciano aperte delle backdoor a loro riservate. I computer che sono controllati dall'attaccante vengono chiamati
zombie
.
rappresentazione di un attacco
DDoS
Dopo aver analizzato i vari attacchi a cui può essere soggetto un sistema informatico, si vanno ora ad analizzare le
contromisure
che se adottate garantiscono un certo livello di
sicurezza
del sistema
ANTIVIRUS
È il software di difesa più comune. Oggi, quasi ogni Personal Computer è dotato di un antivirus, con licenza gratuita o a pagamento, a seconda delle esigenze dell'utente.

Esso consente di proteggere il proprio computer da software dannosi conosciuti come virus.
Un buon antivirus deve essere costantemente aggiornato ad avere in continua esecuzione le funzioni di scansione in tempo reale, per notificare all'utente che il file che sta cercando di scaricare contiene una potenziale minaccia per il sistema.
Gli antivirus moderni riescono anche ad individuare e correggere altri tipi di minacce informatiche oltre ai virus, e generalmente sono la soluzione a molti tipi di
malware
Dal punto di vista tecnico ci sono svariati metodi che si possono utilizzare per prevenire e individuare malware. Quelli fondamentali sono:
Signatures
Sandbox
Il metodo delle signatures, ovvero delle firme, è forse ad oggi quello più utilizzato.

Questo metodo, sostanzialmente, prevede il confronto del file da analizzare con un
archivio
in cui sono schedati tutti i malware conosciuti, o meglio le loro firme.

Ovviamente l'efficienza di tale metodo si basa sulla
completezza dell'archivio
, diverso per ogni casa produttrice di software antivirus, e sulla velocità del software nell'eseguire il confronto tra il file e la firma.
Con questo metodi, gli antivirus provano ad eseguire i file sospetti in una
sandbox
, ossia un ambiente di prova slegato dal normale flusso del sistema, e tramite l'analisi del comportamento di tali eseguibili, riescono a capire se si tratti di programmi che contengono codice malevolo o meno.

Questo metodo, se basato su buoni algoritmi, può essere molto preciso.

Ovviamente, però, l'esecuzione all'interno di una sandbox
richiede prestazioni e tempi di esecuzione più elevati
rispetto ad un metodo basato sulle signatures.
IL FIREWALL
Un altra componente importante per la sicurezza dei sistemi informatici è il firewall (in inglese: "muro ignifugo", "parafiamma"); è quindi una componente passiva, che filtra i pacchetti provenienti da una WAN verso una LAN.
Il firewall svolge diversi compiti, essenzialmente questi sono:
Packet filtering: si occupa appunto di filtrare i pacchetti; questa funzione non è sempre legata a questioni di sicurezza vere e proprie, ma spesso alla tipologia della rete (es: bloccare l'arrivo di contenuti non adatti ai minori o non adatti all'attività lavorativa, oppure contenuti esclusi per motivi politico/religiosi)
Load Balance: bilanciamento del carico della rete; si sceglie di far passare il pacchetto su una linea piuttosto che un altra, tenendo conto del traffico che attraversa le linee
Fail safe: reindirizza i pacchetti su una linea quando una non è disponibile per un guasto tecnico
SQL Injection
In una realtà aziendale, spesso ci si trova a dover lavorare con dei database (base di dati), che consentono la gestione efficiente dei dati in essi contenuti e l'interfacciamento con le richieste dell'utente attraverso i cosiddetti query language (uno dei più comuni è il linguaggio SQL)
L'attacco di SQL injection si basa appunto sull'invio di query SQL (interrogazioni) al database che possano eludere la sicurezza o tramite le quali è possibile ricavare informazioni riservate;

A titolo di esempio, si supponga di avere un database di prova al quale è possibile accedere solo tramite login con relativo inserimento di un username e di una password (cifrata). La pagina di login, apparirà più o meno così:
Codice:

<html>
<head>
<title>Login</title>
</head>
<body>
<form action='login.php' method='post'>
<p> Username: <input type='text' name='user' /></p>
<p> Password: <input type='password' name='pwd' /></p>
<p> <input type='submit' value='Login' /></p>
</form>
</body>
<html>
Come si legge dal codice, il form html manda i dati immessi in input ad un pagina php (login.php) che dovrà occuparsi dell'accesso alla base di dati:
login.php
<?php
$query = "SELECT * FROM users WHERE user='".$_POST['user']."' AND pwd='".$_POST['pwd']."'";
$result = mysql_query($query,$db);
//Conta il numero di righe trovate (se questo numero è maggiore di 0 i dati immessi sono corretti)
if(mysql_num_rows($result)>0)
{
//Esegue la convalida dell'autenticazione e permette l'accesso a pagine protette
}
?>
Come funziona l'attacco
L'attacco di SQL injection consiste nell'iniettare nello script PHP dati fasulli tramite il form in HTML. In questo caso, se lo script non compie i dovuti controlli, basta immettere per esempio come user pippo e come password
' OR user='pippo
per accedere con le credenziali dell'utente pippo, dato che la query diventerebbe

SELECT * FROM users WHERE USER='pippo' AND pwd='' OR USER='pippo'

E' possibile sfruttare questa falla anche con operazioni di selezione (SELECT) per arrivare alla password dell'utente senza alcuna forzatura per il sistema, oppure, al solo scopo di far danni, è possibile inserire comandi di DROP per eliminare tabelle o in alcuni casi anche lo stesso database.
BACKUP
Più che una tecnica di difesa vera e propria, il backup (copia di sicurezza) è una sorta di prevenzione che può essere adottata per recuperare i dati in seguito ad un attacco o ad un malfunzionamento del sistema.

Quello che si fa solitamente è di trasferire su un supporto di memorizzazione, solitamente più capiente di quello originale, tutti i dati presenti in quest'ultimo. Il sistema potrà recuperare i dati quindi a partire dall'ultimo backup effettuato.

Spesso in una realtà aziendale, è necessario fare un backup dei dati periodicamente. Il backup periodico può essere di tre tipi:

backup completo
backup incrementale
backup differenziale
Backup completo
Backup incrementale
Backup differenziale
Tutti i dati vengono copiati su un altro supporto. Solitamente questo tipo di backup si esegue solo la prima volta, dato che già dalle successive si rischia di copiare dati che non sono stati modificati e che non hanno quindi bisogno di una copia di sicurezza
Backup di tutti i dati modificati e/o creati rispetto all'ultimo backup completo. Il Sistema Operativo assegna un bit ai file che sono già stati salvati, e annulla questo bit quando vengono modificati: in questo modo sa quali sono da copiare e quali no
Simile al backup incrementale, solo che in questo tipo di backup i dati vengono copiati non solo rispetto ad un backup completo ma anche rispetto all'ultimo backup differenziale.
LA CRITTOGRAFIA
La crittografia (dall'unione delle parole greche κρkryptós, che significa "nascosto", e γραφία graphía che significa "scrittura") è la branca della crittologia che tratta delle "scritture nascoste", ovvero dei metodi per rendere un messaggio "offuscato" in modo da non essere comprensibile e risultare intellegibile a persone non autorizzate a leggerlo. Un tale messaggio si chiama comunemente crittogramma e le tecniche usate tecniche di cifratura.
Queste tecniche basano il loro funzionamento sull'esistenza di una o più chiavi di cifratura. Chi la possiede può essere in grado di decifrare il messaggio ed è quindi intuitivo come queste devono restare tra mittente e destinatario, altrimenti si perderebbe il significato proprio di messaggio crittato.

Le problematiche di crittografia
vengono implementate sul livello 6 del
modello ISO/OSI (livello presentazione)
I metodi possibili sono:
Metodo della sostituzione
Sostituzione a traslazione fissa
E' il più elementare metodo di crittografia: dato un alfabeto di lunghezza L (tipicamente 26), e definita una quota di traslazione fissa K (che quindi è la chiave), per K<=L, si sostituisce ogni lettera con quella che la segue di K posti in ordine alfabetico.

Se per esempio vogliamo crittografare il messaggio "ABC" e abbiamo K = 3, il messaggio diventerà:
"A"
-> 1) B -> 2) C -> 3)
"D"
"B"
-> 1) C -> 2) D -> 3)
"E"
"C"
-> 1) D -> 2) E -> 3)
"F"

"ABC" -> "DEF"
Sostituzione a traslazione variabile
Il metodo lavora su una matrice LxL dove L è la lunghezza dell'alfabeto usato (tipicamente 26), e sostituisce ad ogni carattere del messaggio il corrispondente carattere sulla matrice all'altezza del relativo carattere della chiave. Ovvero, se per esempio abbiamo un messaggio di tipo "CBA", e la chiave è "GDB", otteniamo il messaggio codificato:
Prendendo di riferimento la matrice, si osserva che la parte orizzontale è relativa al carattere del messaggio, e verticale al carattere della chiave. Quindi, per codificare il primo carattere ('C' per il messaggio, 'G' per la chiave), otteniamo il carattere 'I'. Il procedimento va applicato a tutti i caratteri del messaggio
Metodo della trasposizione
Questi metodi non modificano il testo, ma modificano solo la posizione del messaggio. A tale scopo la chiave di cifratura è numerica.
Esempio: -Messaggio: "oggi c'è il sole"
-Chiave: 4213
si crea una matrice eliminando i caratteri speciali del messaggio, e si lavora invertendo le colonne:

Messaggio cifrato:

"GGIOIELCLOES"
Metodo a chiave privata
A questa categoria appartiene il metodo del DES (Date Encryption Standard). Esso si basa su una chiave da 56 bit che opera in 18 stadi in cascata su blocchi di testo da 64 bit, detti ECB (Electronic Code Book).

Descrizione:
Il primo e l'ultimo stadio operano solo una trasposizione indipendente dalla chiave, una inversa dell'altra. I sedici stadi intermedi effettuano la medesima operazione e eseguono l'operazione XOR bit a bit tra parte dei dati e porzioni diverse di chiave, in modo da generare una stringa di bit dipendenti sia dal messaggio che dalla chiave.
DES
Rappresentazione del primo e dell'ultimo stadio
Ain
Bout
Aout
Bin
32 bit
32 bit
Rappresentazione dei 18 stadi successivi
Ain
Bout
Aout
Bin
32 bit
32 bit
Ain XOR k
Metodo a due chiavi
Metodo del MIT
Questo si basa sul presupposto che è necessario distinguere tra la fase di crittografia e quella di decifrazione. Avremo quindi due chiavi, e se si fa in modo che una non è deducibile dall'altra (o facendo il modo che questo procedimento sia lungo e scoraggiante), si può rendere pubblica la chiave di trasmissione
Avremo quindi
due chiavi:
la
chiave di chi trasmette (pubblica)
e la
chiave di chi riceve (privata)
COME FUNZIONA
Supponiamo di avere due utenti, A e B, che si scambiano messaggi codificati.

L'utente A vuole ricevere messaggi codificati: a partire da due numeri primi
a
e
b
molto grandi, ne determina il prodotto, che rappresenta il generatore
g
del sistema. Calcolato ilvalore
h= (a-1)(b-1)
determina la sua chiave segreta
Key_R
(chiave di ricezione) che sceglie tra i numeri primi rispetto ad h, e la chiave (pubblica) di trasmissione
Key_T
, tale che:

(Key_R*Key_T) mod h = 1

Esempio
Si prendono due numeri primi banali, es a=3 e b=11. Il generatore g è uguale a a*b = 33 e h = (3-1)*(11-1)=20.
Key_R e Key_T si fissano rispettivamente a 3 e 7, in modo tale da soddisfare l'equazione enunciata in precedenza:

( 3 * 7 ) mod 20
A questo punto, se B vuole inviare un messaggio, ricerca la chiave pubblica Key_T e il generatore, e per ogni carattere del messaggio applica la formula:

T = M^(Key_t) mod g

dove M rappresenta il valore di un blocco di messaggio da trasmettere e T la relativa versione codificata da trasmettere. La dimensione del blocco deve essere tale da richiedere un numero n di bit tale che 2^n>g.
Nell'esempio proposto, con g=33 possiamo operare con blocchi di 6 bit ciascuno. Supponendo di avere un messaggio di tipo "ABC", si procede ricavando la codifica binaria di ciascun carattere, quindi avremmo:
A = 01000001
B = 01000010
C = 01000011

Dividendo in blocchi da 6 bit si ottengono 4 blocchi:

010000|01
0100|0010
01|000011

codificando in decimale ciascun blocco si ottengono: 16,20,9,3
L'ultimo passaggio consiste nell'applicare la formula per il messaggio cifrato, ossia

T = M^(Key_T) mod g

ad ogni blocco ricavato. Avremo quindi:

16^7 mod 33 = 25
20^7 mod 33 = 26
9^7 mod 33 = 15
3^7 mod 33 = 9

Il messaggio finale, codificato, sarà dunque:
25 26 15 9
IL GIOCO DELLA VITA
La teoria sugli automi cellulari, dalla quale è stato preso il simbolo del Glinder, è anche diventata un "gioco", sviluppato dal matematico John Conway sul finire degli anni sessanta. Il gioco mette a disposizione dell'utente una griglia, nella quale si possono far vivere o morire le cellule (rappresentate dalle celle) per poi osservarne il comportamento, che cambiava rispetto ad alcune regole:
Queste regole sono 4 e sono alla base della meccanica del gioco:
Ogni cella viva con meno di 2 celle vicine vive, muore
Ogni cella viva con 2 o 3 vicine vive, sopravvive
Ogni cella viva con più di 3 vicine vive, muore
Ogni cella morta con 3 vicine vive, vive.
Uno screen del gioco
Full transcript