• Non ci sono risultati.

Seminario per il corso di Sicurezza e Privacy a.a. 2007 / 2008

N/A
N/A
Protected

Academic year: 2021

Condividi "Seminario per il corso di Sicurezza e Privacy a.a. 2007 / 2008"

Copied!
30
0
0

Testo completo

(1)

Seminario per il corso di Sicurezza e Privacy a.a. 2007 / 2008

Docente: prof. Stefano Bistarelli

Studentessa: Paola Campli

(2)

Indice

Malicious Logic (codice maligno)

Trojan horses

Computer viruses

Boot sector infector, Executable infectors,

Multipartite viruses, TSR viruses, Stealth viruses, Encrypted viruses, Polymorphic viruses, Macro viruses

Computer worms

Altre forme di malicious logic Rabbit e Bacteria

Logic Bombs

(3)

Malicious Logic

Insieme di istruzioni che provocano la violazione di policy di sicurezza

cp /bin/sh /tmp/.xxsh

chmod u+s,o+x /tmp/.xxsh rm ./ls

ls $*

Script ls in Unix : si trova nella directory bin/sh.

 Crea una copia della Shell dell’utente che esegue il programma.

 Cancella il programma originario e viene eseguito un nuovo comando ls.

 Se qualcuno esegue ls, viene provocata una violazione implicita della policy di sicurezza.

Classi di referenza

u=utente proprietario del file o=altri utenti non proprietari Modi

s= setuit=flag che permette l’esecuzione con i privilegi dell’utente proprietario del file x= esecuzione

+ = aggiunge i modi alla classe

Esempio di malicious logic

Problema: il sistema non può determinare se l’istruzione è stata

(4)

Trojan Horses

Un trojan Horse è un programma con un effetto esplicito ed un effetto nascosto

effetto esplicito: elencare i files di una directory;

effetto implicito: creare una nuova shell con i privilegi dell’utente

Il programma dell’esempio precedente era un trojan horse

Propagatin Trojan Horse (o replicating trojan horse):

può duplicarsi, e le copie si diffondono rapidamente occupando risorse

Le sue funzionalità sono nascoste all'interno di un programma

apparentemente utile; è l'utente stesso che installando ed eseguendo un certo programma, inconsapevolmente, installa ed esegue anche il codice trojan nascosto. Es: Netbus

(5)

Trojan Horses

Il Trojan Horse di Thompson

Obiettivo: inserire un trojan horse nel programma di login, in modo da accedere al sistema con una password speciale.

1° approccio: cambiare il binario del login

Facile da effettuare: basta cambiare il codice di login.c Chi legge il codice può individuare il trojan horse

2° approccio: cambiare il compilatore (compiler.c) per login.c e lasciare login.c intatto.

Quando il compilatore compila login.c , aggiunge automaticamente il trojan nel file di login

Cosa accade se qualcuno legge compiler.c? Si accorge del trojan.

3° approccio: cambiare compiler.c in modo che il trojan horse sarà aggiunto al binario, solo se compiler.c e login.c vengono compilati.

Dopo aver compilato compiler.c corrotto, verrà ripristinato il file (compiler.c) originale.

• A meno che qualcuno analizzi il binario del compilatore, il trojan è difficile da scopirire

• Per rimuovere il trojan bisogna ricompilare il compilatore originarioNessuno scoprì questo trojan: rimase nel sistema fino a quando non

(6)

Computer viruses

Quando un trojan horse si propaga liberamente e inserisce copie di se stesso in altri files diventa un virus.

Un virus è un programma che si inserisce in uno o più files ed esegue delle azioni.

(7)

Computer viruses

beginvirus;

If spread-condition then begin

for some set of target files do begin If target is not infected then begin

determine where to place virus instructions

copy instructions from beginvirus to endvirus into target

alter target to execute added instructions end;

end;

end;

perform some action(s)

goto beginning of infected program endvirus;

Insertion fase

Execution fase

(8)

Computer viruses: Boot sector infectors

Boot sector: parte del disco usata nella fase di avvio del sistema

Boot sector infector: virus che si inserisce nel boot sector del disco Esempio: Brain virus

Si inserisce nel boot sector

Sposta i files dal boot sector in un’altra posizione del disco

viene eseguito all’avvio;

continua la fase di bootstrap richiamando i files spostati dal boot sector

(9)

Computer viruses: Executable infectors

Executable infector: virus che infetta programmi eseguibili

 Com virus

 Exe virus

Il virus di Gerusalemme:

Il virus risponde ai servizi di interrupt (Dos service interrupt vector);

 Se la data è venerdì 13 e l’anno è diverso da 1987 il virus cancella tutti i files

 Il virus infetta tutti i file .com (eccetto command.com) e .exe che vengono richiesti

(10)

Computer viruses: TSR viruses

Un terminate and state resident è un virus che resta in

memoria dopo che l’applicazione, o il bootstrapping terminano I TSR possono essere boot sector infectors o executable

infectors;

Si differenziano dagli altri virus poiché vengono eseguiti solo all’esecuzione dell’applicazione

(11)

Computer viruses: Stealth viruses

Stealth virus: virus che nascondo l’infezione dei files

Intercettano le chiamate dal S.O. che accede ai files.

Modifica il gestore degli interrupt (e non il vettore, come nel caso degli executable infectors); in questo modo se si

controllano i valori del vettore la presenza del virus non viene rilevata.

Se le richieste sono:

• Attributi del file (ad es. la lunghezza), viene restituita la lunghezza del file non infetto

• Lettura del file : il file viene temporaneamente ripristinato, per poi essere di nuovo infettato alla chiusura;

•Esecuzione del file: viene eseguito il file infetto

(12)

Computer viruses: Encrypted viruses

Encrypted virus: codificano la maggior parte del loro codice

Gli antivirus spesso cercano sequenze note di codice per identificare i virus. Per nascondere queste sequenze alcuni virus codificano il loro codice, lasciando solo una piccola routine e una chiave di decodifica in chiaro

Virus code

Deciphering routine

Enciphered virus code

Deciphering key

Informazioni di decriptazione

Difetto: l’algoritmo di decriptazione può essere scoperto!!

(13)

Computer viruses: Polimorphic viruses

Polimorphic virus: cambia forma ogni volta che si inserisce in altri programmi

 Sono evoluzioni degli encrypted virus;

 Cambiano il codice del virus sostituendolo con del codice equivalente

Ad es: add 0 to operand;

no operation;

subtract 0 to operand;

Il polimorfismo può avvenire su più livelli:

un algoritmo di decrittografia può avere due implementazioni completamente diverse

Due algoritmi diversi possono produrre lo stesso risultato

(14)

Computer viruses: Macro viruses

Macro virus: virus composto da una sequenza di istruzioni che vengono interpretate, piuttosto che eseguite direttamente

 Possono essere eseguiti su ogni sistema che può interpretare le istruzioni.

 Usano programmi specifici (es. MS Word) ma il risultato può essere diverso

Es. Il virus Melissa (scritto in Visual Basic) infettò documenti Word 97 e 98;

•Viene invocato quando un programma apre un file infetto.

•Si installa come macro di apertura e si copia nel template Normal, in modo da infettare ogni file aperto.

•Apre il programma di emails e spedice copie di se stesso a tutte le persone in rubrica.

(15)

Computer Worms

Worm: programma che copia se stesso da un computer all’altro

 Analizzano le workstation

 Se sono inattive viene copiato un segmento in memoria che comunica con un Worm’s controller.

 Se ci sono altre attività il worm sospende la sua esecuzione Father Christmas Worm:

 Inserito all’interno di una mail di auguri che diceva al destinatario di eseguire il file

 Visualizzava un albero di natale e la scritta “Merry Christmas !”

 Analizzava gli indirizzi di tutte le email ricevute e quelli in rubrica e spediva una copia a tutti gli indirizzi.

 Provocò sovraccarico delle reti IBM

(16)

Altre forme di Malicious Logic

Rabbits o Bacteria: programmi che assorbono alcune o tutte le risorse provocando un DoS

while true do

mkdir x chdir x done

Script Unix

Esaurisce lo spazio nel disco

(17)

Altre forme di Malicious Logic

Logic Bomb: programma che esegue un azione che viola una policy di sicurezza, al verificarsi di eventi esterni

Esempio:

 un software postato su un news network prometteva di facilitare l’amministrazione del sistema;

 per poter essere utilizzato bisognava eseguirlo come utente root.

All’interno del files c’erano le linee di codice seguenti:

cd /

rm –rf * cancella tutti i files del sistema

(18)

Può essere scritto un software in grado di individuare tutte le forme di Malicious Logic?

 Non c’è una tecnica generica per scoprire tutti i tipi di malicious logic

A volte è necessario utilizzare difese multiple

 Bisogna focalizzarsi su ogni tipo di malware

Come difendersi

(19)

Presupposto: i virus agiscono sia su dati che su istruzioni.

Obiettivo: separare dati dalle istruzioni

 Un programma scritto viene considerato di tipo data e non può esserer eseguito

 Un programma può essere cambiato in executable solo da una autorità di certificazione, prima dell’esecuzione

Malicious Logic che agiscono sia su dati che istruzioni

(20)

Un utente può eseguire inconsapevolmente dei malware e il codice può accedere e infettare oggetti all’interno del dominio dell’utente.

Soluzione: Limitare gli oggetti accessibili da un dato processo dell’utente

Malicious Logic che assumono l’identità di un utente

 information flow metrics

 riduzione diritti

 sandboxing

(21)

Information flow metrics (Cohen)

Limitare la distanza di diffusione del virus

fd(x)= flow distance metric dell’ informazione x

All’inizio fd(x)=0

Se x è condiviso => fd(x)=1

Se x è usato come input di un programma, fd(x) viene incrementato.

L’informazione è accessibile solo se la sua flow distance è minore di una soglia prefissata.

Se questa soglia è 0 ogni utente è isolato all’interno del proprio dominio e non c’è nessuna condivisione.

(22)

Max Flow distance <3 <2 <2

Ann Bil

l

Cathy

dovirus

fd(dovirus)=0

dovirus

fd(dovirus)=0

safefile

fd(dovirus)=1 fd(safefile)=1

infetta

safefile

fd(safefile)=1

Altri files

fd(safefile)=2

infetta

Information flow metrics

crea esegue esegue

Cathy non può essere infettata da virus acquisiti da Bill, ma solo da quelli che Bill ha scritto.

(23)

Ridurre i diritti

 ACLs: insieme di regole per prendere decisioni

 Knowledge based subsystem (Karger)

•Tra il kernel e le applicazioni

•Contiene informazioni sui nomi dei files ai quali ogni programma può accedere

Programma Lettura Scrittura Esecuzione

Compilatore *.c, *.h *.s, /tmp/ctm* Assembler, loader

Assembler *.s *.o

Linking loader *.o, *.a *.out

Il subsystem, controlla se l’accesso è consentito.

Se non lo è nega l’accesso o chiede all’utente se permettelo o meno.

(24)

Ridurre i diritti

Versione modificata del modello di Karger (Lai and Gray)

• I processi sono divisi in 2 gruppi: trusted e untrusted

• Ogni processo untrusted ha una valid access list (VAL) formata dagli argomenti del processo e alcuni files

temporanei.

• La VAL contiene files ai quali il processo può accedere

• Quando un processo untrusted cerca di accedere ad un file, il kernel, verifica se è nella VAL ed esegue opportune policy

(25)

Sandboxes

Macchine virtuali che riducono implicitamente i diritti.

Implementazione: aggiungere restrizioni sui programmi

Es: sostituire librerie standard con librerie sottoposte a restrizioni

(26)

Malicious logic che sfruttano la condivisione

 Vietare agli utenti la condivisione di programmi in determinati domini

 Posizionare i programmi da proteggere a livelli bassi nell’implementazione di policy di sicurezza multilivello

(27)

Malicious logic che alterano files

Cryptographic Checksum

• I Manipulation detection codes (MDCs) applicano delle funzioni ai files per ottenere un insieme di bits chiamati signature blocks e in seguito proteggono questi blocchi.

• Se dopo l’esecuzione il risultato è diverso dai blocchi memorizzati, allora il file è stato modificato

Es. Tripwire: verificatore di integrità

•calcola signature block per ogni file e li memorizza in un database

•La firma di ogni file è ricavata da attributi del file stesso e varie checksum crittografiche (es. MD-4, MD-5, HAVAL, SHS, CRC)

•Quando viene eseguito Tripwire ricalcola ogni signature block e confronta i blocchi ricalcolati con quelli nel database.

•Infine viene effettuato un report sui possibili files corrotti

Si assume che i files non siano corrotti prima di applicare la firma

(28)

Malware che compiono azioni oltre quelle specificate

Proof-Carrying Code (PCC)

•Code consumer (user) specifica un requisito di sicurezza

•Code producer (author) genera una prova (security proof) che attesta che il codice ha i requisiti di sicurezza e integrità richiesti, e inserisce questa prova all’interno del codice eseguibile.

•Viene prodotto un binario PCC, che viene consegnato al consumer.

•Il consumer valida la prova di sicurezza : se questa è corretta può eseguire il codice.

IDEA CHIAVE: la prova proviene dal codice originario: se il codice originario viene alterato, la prova non ha validità e verrà

respinta.

(29)

Malicious logics che alterano caratteristiche statistiche

I programmi hanno caratteristiche statistiche specifiche, che i malicious logic possono alterare.

Obiettivo: scoprire tali cambiamenti per individuare malicious logic.

Esempio: Ciascun programmatore ha un proprio stile nella scrittura di programmi (formattazione, struttura, commenti ecc). Se non vengono adottate forme di scrittura

standardizzate nel codice, si possono individuare difformità.

Gli Intrusion detector expert system individuano virus in base a:

• aumento dimensione file

• aumento frequenza di scrittura del file eseguibile

• variazione della frequenza di esecuzione di un programma specifico

(30)

Conclusioni

Progettare ogni meccanismo di sicurezza bilanciando i costi dell’implementazione con il livello di sicurezza desiderato Non si possono individuare virus sconosciuti:

I metodi utilizzati dagli antivirus analizzano files per individuare virus specifici

fine

Riferimenti

Documenti correlati

152/91, ai delitti dei pubblici ufficiali con- tro la pubblica amministrazione puniti con la pena della reclusione non inferiore nel massimo a cinque anni (art. 6, comma 1),

E queste semplici osservazioni, portano a chiedersi se, per la parte non disciplinata dalla normativa in tema di intercettazione, l’acquisizione di dati (messaggistica) in modo

n Se tagliamo un file (o una cartella), quando andremo ad incollare, il file (o la cartella) non sarà più presente nella posizione iniziale. n Se copiamo un file (o una

In realtà i virus più recenti mescolano le caratteristiche di diversi tipi di malware con lo scopo di diventare più difficili da individuare e più efficaci nel diffondere l'infezione

Inoltre alcuni malware sfruttano proprio questa impostazione di default per nascondere la loro reale estensione: ad esempio un file con estensione .exe. verrà eseguito dal Sistema

・ If you are using Windows, the location of the calculator drive will depend on your Windows Version.. Use Windows Explorer to open the

Rapporto Innovazione 2014 con un Focus per la provincia di Parma e approfondimento sugli strumenti di finanziamento dell’innovazione per le piccole e medie imprese.. Martedì

Subtyping the Autism Spectrum Disorder: Comparison of Children with High Functioning Autism and Asperger Syndrome. WISC-IV profile in high- functioning autism spectrum disorders: