La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Seminario per il corso di Sicurezza e Privacy a.a. 2007 / 2008 Docente: prof. Stefano Bistarelli Corso di laurea Specialistica in Economia Informatica,

Presentazioni simili


Presentazione sul tema: "Seminario per il corso di Sicurezza e Privacy a.a. 2007 / 2008 Docente: prof. Stefano Bistarelli Corso di laurea Specialistica in Economia Informatica,"— Transcript della presentazione:

1 Seminario per il corso di Sicurezza e Privacy a.a / 2008 Docente: prof. Stefano Bistarelli Corso di laurea Specialistica in Economia Informatica, Università G.DAnnunzio Chieti-Pescara Studentessa: Paola Campli

2 2/30 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 Difese

3 3/30 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 dellutente 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 lesecuzione con i privilegi dellutente proprietario del file x= esecuzione + = aggiunge i modi alla classe Esempio di malicious logic Problema: il sistema non può determinare se listruzione è stata eseguita intenzionalmente dallutente

4 4/30 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 dellutente Il programma dellesempio 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 Malicious Locic > Trojan horses

5 5/30 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 originario Nessuno scoprì questo trojan: rimase nel sistema fino a quando non venne utilizzato un nuovo sistema operativo Malicious Locic > Trojan horses

6 6/30 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. Malicious Locic > virus

7 7/30 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; perform some action(s) goto beginning of infected program endvirus; Insertion fase Execution fase Malicious Locic > virus

8 8/30 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 unaltra posizione del disco viene eseguito allavvio; continua la fase di bootstrap richiamando i files spostati dal boot sector Malicious Locic > virus

9 9/30 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 lanno è diverso da 1987 il virus cancella tutti i files Il virus infetta tutti i file.com (eccetto command.com) e.exe che vengono richiesti Malicious Locic > virus

10 10/30 Computer viruses: TSR viruses Un terminate and state resident è un virus che resta in memoria dopo che lapplicazione, o il bootstrapping terminano I TSR possono essere boot sector infectors o executable infectors; Si differenziano dagli altri virus poiché vengono eseguiti solo allesecuzione dellapplicazione Malicious Locic > virus

11 11/30 Computer viruses: Stealth viruses Stealth virus : virus che nascondo linfezione 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 Malicious Locic > virus

12 12/30 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: lalgoritmo di decriptazione può essere scoperto!! Malicious Locic > virus

13 13/30 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 Malicious Locic > virus

14 14/30 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 s e spedice copie di se stesso a tutte le persone in rubrica. Malicious Locic > virus

15 15/30 Computer Worms Worm : programma che copia se stesso da un computer allaltro Analizzano le workstation Se sono inattive viene copiato un segmento in memoria che comunica con un Worms controller. Se ci sono altre attività il worm sospende la sua esecuzione Father Christmas Worm: Inserito allinterno 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 ricevute e quelli in rubrica e spediva una copia a tutti gli indirizzi. Provocò sovraccarico delle reti IBM Malicious Locic > virus

16 16/30 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 Malicious Locic > altre forme di malicious logic

17 17/30 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 lamministrazione del sistema; per poter essere utilizzato bisognava eseguirlo come utente root. Allinterno del files cerano le linee di codice seguenti: cd / rm –rf * cancella tutti i files del sistema Malicious Locic > altre forme di malicious logic

18 18/30 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 Malicious Locic > difese

19 19/30 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 dellesecuzione Malicious Logic che agiscono sia su dati che istruzioni Malicious Locic > difese

20 20/30 Un utente può eseguire inconsapevolmente dei malware e il codice può accedere e infettare oggetti allinterno del dominio dellutente. Soluzione : Limitare gli oggetti accessibili da un dato processo dellutente Malicious Logic che assumono lidentità di un utente information flow metrics riduzione diritti sandboxing Malicious Locic > difese

21 21/30 Information flow metrics (Cohen) Limitare la distanza di diffusione del virus fd(x) = flow distance metric dell informazione x Allinizio fd(x)=0 Se x è condiviso => fd(x)=1 Se x è usato come input di un programma, fd(x) viene incrementato. Linformazione è accessibile solo se la sua flow distance è minore di una soglia prefissata. Se questa soglia è 0 ogni utente è isolato allinterno del proprio dominio e non cè nessuna condivisione. Malicious Locic > difese > malilcious logic che assumono lidentità di un utente

22 22/30 Max Flow distance <3 <2 <2 Ann Bill 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 creaesegue Cathy non può essere infettata da virus acquisiti da Bill, ma solo da quelli che Bill ha scritto. Malicious Locic > difese > malilcious logic che assumono lidentità di un utente

23 23/30 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 ProgrammaLetturaScritturaEsecuzione Compilatore*.c, *.h*.s, /tmp/ctm*Assembler, loader Assembler*.s*.o Linking loader*.o, *.a*.out Il subsystem, controlla se laccesso è consentito. Se non lo è nega laccesso o chiede allutente se permettelo o meno. Malicious Locic > difese > malilcious logic che assumono lidentità di un utente

24 24/30 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 Malicious Locic > difese > malilcious logic che assumono lidentità di un utente

25 25/30 Sandboxes Macchine virtuali che riducono implicitamente i diritti. Implementazione : aggiungere restrizioni sui programmi Es: sostituire librerie standard con librerie sottoposte a restrizioni Malicious Locic > difese > malilcious logic che assumono lidentità di un utente

26 26/30 Malicious logic che sfruttano la condivisione Vietare agli utenti la condivisione di programmi in determinati domini Posizionare i programmi da proteggere a livelli bassi nellimplementazione di policy di sicurezza multilivello Malicious Locic > difese

27 27/30 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 lesecuzione 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 La chiave di criptazione deve essere segreta. Malicious Locic > difese

28 28/30 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 allinterno 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. Malicious Locic > difese

29 29/30 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 Malicious Locic > difese

30 30/30 Conclusioni Progettare ogni meccanismo di sicurezza bilanciando i costi dellimplementazione con il livello di sicurezza desiderato Non si possono individuare virus sconosciuti: I metodi utilizzati dagli antivirus analizzano files per individuare virus specifici fine


Scaricare ppt "Seminario per il corso di Sicurezza e Privacy a.a. 2007 / 2008 Docente: prof. Stefano Bistarelli Corso di laurea Specialistica in Economia Informatica,"

Presentazioni simili


Annunci Google