Proiecte propuse de Bitdefender corelate cu cursul de Securitatea sistemelor de calcul Android 1) DEX parser Orice aplicație de Android are un fișier numit classes.dex. Acesta contine cod executabil pentru mașina virtuală Dalvik împreună cu toate definițiile despre clase/metode/string-uri. Comparativ cu formatul PE (formatul fișierelor executabile în Windows), DEX-ul este un format foarte curat și bine structurat, fiind mult mai ușor de decodificat. Pentru a analiza codul aplicației, indiferent că se face individual sau de către un algoritm (Anti-Virus), este necesar acest pas, de a avea acces la structura codului. dificultate: ușor-mediu 2) code normalization Virușii puternici sunt cei polimorfici. Asta înseamnă că aceași generație a virusului va avea cod diferit. Gradul de polimorfizare variază mult de la virus la virus. O problemă interesantă este găsirea metodelor de normalizare a codului astfel încât să obținem o "amprentă" a codului malițos, care să fie rezistent la polimorfizare, adică două sample-uri diferite să aibă aceași amprentă. dificultate: mediu 3) code name mangling La nivel de cod obiect, o diferență între aplicatiile scrise în C/C++ și cele în Java, este că în cazul aplicației Java numele de clase se accesează dinamic în timpul execuției în mașina virtuală. Pentru a obține un cod executabil cât mai mic, numele claselor din Java se pot redenumi în secvențe cât mai scurte. De exemplu clasa "ClassWithVeryLongName" se poate redenumi în ceva mult mai scurt, ex: "a". Dacă toate acestea redenumiri se fac de către un algoritm, se obține și o protecție a codului din punct de vedere a reverse-engineering-ului, pentru că este mult mai greu de înțeles ce face o aplicație dacă toate clasele au numele "a", "b". Este o tehnică de ascundere a codului pentru a nu fi ușor analizat. dependent de proiectul: #1 dificultate: mediu 4) code name mangling (problema inversă) avem o aplicație în care toate clasele au fost redenumite pentru a îngreuna analiza și a face codul mai mic, să găsim o metodă pentru a da nume sugestive claselor și a reconstrui codul executabil. dependent de proiectul: #1 dificultate: mediu 5) malware-ul pentru Android Reverse engineering al unei familii de malware. Propuneri pentru detecția respectivei familii. dificultate: ușor-mediu 6) rețea perceptroni pentru recunoașterea familiilor polimorfice dificultate: greu (diplomă?) x86 7) PE info Decodificarea formatului PE (fișierele .exe). Primul lucru esențial în analiza de malware, AV. dificultate: mediu 8) PE info with PEFile module from python același enunț ca la #7, doar că se folosește un modul din python dificultate: ușor-mediu 9) Analiza unui virus de x86/Windows. Detecția virusului. dificultate: mediu 10) Dezinfectarea fișierelor infectate cu un virus x86/Windows proiect dependent de #7, #9 dificultate: mediu 11) Emulator CPU (8086 sau ceva simplu) dificultate: mediu Kernel 12) Un modul de kernel pentru a proteja accesul la anumite fișiere. Accesul trebuie permis doar dacă se specifică o parolă la driver. dificultate: greu (diplomă?) Misc 13) Stream scanner. Scanarea traficului de net, după pattern-uri malițioase. Folosirea unei plăci de dezvoltare, cu două plăci de rețea. Traficul intră pe un port, e scanat și forwarded pe celălalt port. Dacă se descoperă un pattern malițios în pachetele de date, se poate da drop la conexiunea respectivă. (varianta mai simplă: în loc de sistem fizic complet, se poate folosi un PC cu două plăci de rețea). dificultate: mediu-greu (diplomă?) 14) Sistem de monitorizare a traficului dintr-o mașina virtuală Des folosit în analiza de malware, un sistem care memorează/monitorizează tot traficul făcut de o mașină virtuală în care se rulează un virus. Se salvează conexiunile, traficul făcut. Trebuie emulate toate serviciile necesare, folosibile de către malware: DNS, HTTP, SMTP/POP3 ... În general un malware aflat în studiu nu are voie să aibă legătură la internet, și de accea mașina de monitorizare trebuie să emuleze aceste servicii: De exemplu dacă mașina cu virusul se conectează la www.my-virus-home.net, serviciile emulate trebuie să-i rezolve acest domeniu cu un IP fictiv, să accepte conexiunea și să monitorizeze tot traficul. dificultate: mediu -- Marius Mihai TIVADAR Team Leader - Malware Research mtivadar@bitdefender.com Bitdefender 2 Goethe St Assitec Building Timisoara mobile +40 731 494 169 www.bitdefender.com