Facebook atvērtā koda Mariana Trench statiskais analizators

Facebook ir ieviesis jaunu atvērtā koda statisko analizatoru Mariana Trench, kura mērķis ir identificēt ievainojamības Android lietojumprogrammās un Java programmās. Ir iespējams analizēt projektus bez pirmkodiem, kuriem ir pieejams tikai Dalvik virtuālās mašīnas baitkods. Vēl viena priekšrocība ir tā ļoti lielais izpildes ātrums (vairāku miljonu koda rindu analīze aizņem apmēram 10 sekundes), kas ļauj izmantot Mariana Trench, lai pārbaudītu visas ierosinātās izmaiņas, tiklīdz tās tiek saņemtas. Projekta kods ir rakstīts C++ valodā un tiek izplatīts saskaņā ar MIT licenci.

Analizators tika izstrādāts kā daļa no projekta, lai automatizētu Facebook, Instagram un Whatsapp mobilo aplikāciju avota tekstu pārskatīšanas procesu. 2021. gada pirmajā pusē puse no visām Facebook mobilo lietojumprogrammu ievainojamībām tika identificētas, izmantojot automatizētus analīzes rīkus. Mariana Trench kods ir cieši saistīts ar citiem Facebook projektiem; piemēram, Redex baitu koda optimizētājs tika izmantots, lai parsētu baitu kodu, un SPARTA bibliotēka tika izmantota, lai vizuāli interpretētu un pētītu statiskās analīzes rezultātus.

Iespējamās ievainojamības un privātuma problēmas tiek identificētas, analizējot datu plūsmas lietojumprogrammas izpildes laikā, lai identificētu situācijas, kad neapstrādāti ārējie dati tiek apstrādāti bīstamās konstrukcijās, piemēram, SQL vaicājumos, failu operācijās un izsaukumos, kas aktivizē ārējās programmas.

Analizatora darbs ir saistīts ar datu avotu un bīstamu zvanu identificēšanu, kuros avota datus nevajadzētu izmantot - analizators izseko datu pāreju caur funkciju izsaukumu ķēdi un savieno avota datus ar potenciāli bīstamām vietām kodā. . Piemēram, tiek uzskatīts, ka datiem, kas saņemti, izmantojot Intent.getData izsaukumu, ir nepieciešama avota izsekošana, un izsaukumi uz Log.w un Runtime.exec tiek uzskatīti par bīstamiem lietojumiem.

Facebook atvērtā koda Mariana Trench statiskais analizators


Avots: opennet.ru

Pievieno komentāru