Cresterea imunitatii la atacuri Zero-Day prin analiza statica (IZA)

Prezentul proiect își propune să transfere expertiza grupului de cercetare Formal Methods în Software Engineering (FMSE)  de la Universitatea ”Alexandru Ioan Cuza” din Iași (UAIC) (http://fmse.info.uaic.ro/) în analiza și verificarea de programe  la compania Bitdefender și să adapteze unele instrumente software create de acesta (în colaborare cu alte grupuri de cercetare) pentru crearea de instrumente specializate care să despisteze posibile vulnerabilitați în softul creat de Bitdefender.

The present projects aims to transfer the expertise of the Formal Methods in Software Engineering (FMSE) research group from ”Alexandru Ioan Cuza” University of Iași (UAIC) in program analysis and verification to  the Bitdefender company, and to adapt software tools to find bugs and vulnerabilities in the software developed by the company.

Cercetare și dezvoltare

Obiectivele principale ale proiectului includ:

  • Identificarea si formularea (specificarea) unei liste de posibile vulnerabiltăți pe care programele produse de Bitdefender nu ar trebui să le includă, pentru a evita ceea ce se numește ”Zero day exploits”;
  • Investigarea pe un număr de studii de caz ilustrative a analizoarelor existente pentru a defini care este tipul de analiză potrivit pentru lista de vulnerabilități specifice;
  • Proiectarea și implementarea unei soluții specifice pe baza rezultatelor obținute.

The main objectives of the project include:

  • Identification and specification of a set of possible vulnerabilities that the software produced should not contain, in order to avoid ”Zero day exploits”;
  • Investigation of a significant number of illustrative case-studies with the existent static analysis checkers with the goal to define the most appropriate analysis for the specific vulnerabilities;
  • Design and implementation of a specfic solution based on the obtained results.

Activități și rezultate

A1 Identificarea și specificarea potențialilor vulnerabilități specifice produselor Bitdefender.
Status:  finalizată la data de 31.06.2017
Scurtă descriere:
Această activitate a fost planificată să se desfășoare pana in luna 06 din perioada de realizare a proiectului. Scopul acestei activități a fost să identificăm împreună cu specialiștii de la BitDefender categoriile de erori ce pot destabiliza produsele BitDefender și ar fi important să fie detectate de instrumentele de analiza statică. Rezultatul preconizat după această activitate este o suită de teste ce poate fi utilizată pentru testarea analizoarelor statice.
Pentru o colaborare eficientă cu BitDefender, abordarea echipei de implementare a proiectului a fost următoarea:
● Crearea unei liste de vulnerabilități și a unor programe în care aceste vulnerabilități sunt exemplificate;
● Prezentarea acestora specialiștilor de la BitDefender;
● Colectarea (în urma discuției) a unei liste de vulnerabilități de interes pentru companie;
● Crearea listei de vulnerabilități a presupus investigarea mai multor abordări existente.
Echipa de implementare a trecut printr-o fază de documentare și apoi crearea, pe baza documentației, a unor exemple relevante. În urma documentării, echipa de proiect a colectat o serie de programe în care sunt exemplificate o serie de vulnerabilități.

A2 Analiza de cod sursă produs de Bitdefender cu analizoarele cele mai moderne existente.
Status:  finalizată la data de 30.09.2017
Scurtă descriere:
Această activitate a fost planificată să se desfășoare în lunile 04-12 din perioada de realizare a proiectului, adică ianuarie-septembrie 2017. Activitatea s-a desfășurat în mai multe subetape:

  1. Crearea unei infrastructuri pentru testarea analizoarelor statice. Această subetapă a avut drept rezultat o infrastructură bazată pe scripturi Python pentru testarea diverselor instrumente de analiză statică.
  2. Instalarea diverselor analizoare statice de interes. Această etapă a avut ca rezultat o listă de analizoare pe care am decis că este bine să le includem în procesul de testare.
  3. Testarea efectivă a analizoarelor peste suita de teste utilizând infrastructura de testare. Această etapă a presupus testarea efectivă a fiecărui instrument de analiză statică din listă amintită mai sus. Pentru testarea instrumentelor de analiza statică, echipa de implementare a convenit, împreună cu specialiștii de la BitDefender, să folosească un benchmark care surprinde vulnerabilitățile de interes pentru BitDefender, și anume Toyota ITC benchmark.
  4. Generarea de rapoarte HTML pentru analizatorul Clang pe sistemul de operare Windows. Această etapă a presupus dezvoltarea unui generator de rapoarte HTML pentru analizorul Clang care să funcționeze pe sistemul de operare Windows. Principala problemă a analizorului Clang pe sistemul de operare Windows ține de incluziunea de fișiere antet ( headers) la momentul la care se face analiza de cod. Această problemă s-a dovedit a fi una foarte dificilă deoarece Clang nu reușeste să facă analiză pentru cod care include headers specifice sistemului de operare Windows.

A3 Proiectarea unei soluții adecvate pentru analiza specifică.
Status:  finalizată la data de 30.06.2018
În urma analizei tool-urilor open-source am decis că cel mai potrivit pentru a atinge obiectivele proiectului e să creăm un analizor personalizat bazat pe tehnologia Clang. Următorul pas a fost să înțelegem mai bine funcționalitatea intimă a platformei Clang. Am creat un număr de prezentări și de checkere, care au fost prezentate în cadrul grupului de implementare a proiectului.

A4 Implementarea soluției proiectate.
Status: urmează a fi finalizată la data de 30.09.2018
Scurtă descriere:
Această activitate presupune dezvoltarea de checkere (i.e., plugin-uri pentru analiza de cod specifice Clang-ului) sugerate de BitDefender pentru analiza de cod sursă. Echipa de implementare lucrează la specializarea și integrarea mai multor checkere și la dezvoltarea de noi checkere.

A5 Stagii de pregătire practică a masteranzilor și/sau doctoranzilor.
Status:  urmează a fi finalizată la data de 30.09.2018
Scurtă descriere:
Până acum au fost realizate următoarele stagii de pregătire practică:
Apachitei Luisa: proiectarea și implementarea unui algoritm în C/C++ de identificare a unei secvențe XML într-un buffer + suport pentru droparea și formatarea acestuia.
Harbuzariu Florin : implementarea unui analizator pentru formatul .lnk (extragerea informatiilor si validarea corectitudinii acestui format).
Zaharia Raul : analizator al formatului .pcap (extragerea si identificarea streamurilor si a conexiunilor TCP/IP dintr-un fisier .pcap); procesator pentru identificarea mai mult rezultate de la scanarea unor fișiere; algoritm pentru mapare rapidă a unui string cu o valoare (buffer).
Surdu Cosmin: analizator al formatului PDF – extragere de streamuri, despachetare conținut, extragere scripturi (dacă există) din acesta.
Iftimoaie Ioan: analizator al formatului DOC/XML – la fel cu extragerea de stream-uri și obiecte specifice acestor formate inclusiv suport pentru extragerea de scripturi VBA (Visual Basic for Application) din aceste formate. A lucrat si la suport pentru formatele mai noi (docx, xlsx, etc). Cea mare parte a codului scris de masteranzi a fost analizat în cadrul activităților 2.2 și 2.4.

Publications

2018

2017

Sidebar