Mariana Trench, analizator statycznego kodu open source Facebooka

Prezentacja Facebooka kilka dni temu wypuścił analizator statyczny typu open source, Mariana Trench, który ma na celu identyfikację luk w aplikacjach na Androida i programach Java.

W zapewniona jest możliwość analizy projektów bez kodów źródłowych, dla którego dostępny jest tylko kod bajtowy maszyny wirtualnej Dalvik. Kolejną zaletą jest bardzo duża szybkość wykonania (analiza kilku milionów linijek kodu trwa około 10 sekund), co pozwala wykorzystać Mariana Trench do sprawdzenia wszystkich proponowanych zmian w miarę ich wprowadzania.

Analizator powstał w ramach projektu automatyzującego proces przeglądu kodu źródło aplikacji mobilnych Facebooka, Instagrama i Whatsappa.

Udostępniamy szczegółowe informacje na temat Mariana Trench (MT), narzędzia, którego używamy do wykrywania i zapobiegania błędom bezpieczeństwa i prywatności w aplikacjach Android i Java. W ramach naszych wysiłków na rzecz skalowania zabezpieczeń poprzez automatyzację budynków otworzyliśmy niedawno platformę MT, aby wspierać inżynierów ds. bezpieczeństwa na Facebooku i w całej branży.

Ten post jest trzecim z naszej serii głębokich opisów narzędzi do analizy statycznej i dynamicznej, którym ufamy. MT to najnowszy system, po Zoncolan i Pysa, zbudowany odpowiednio dla kodu Hack i Python.

W pierwszej połowie 2021 r. połowa wszystkich podatności w aplikacjach mobilnych Facebooka została zidentyfikowana za pomocą zautomatyzowanych narzędzi analitycznych. Kod Mariana Trench jest ściśle powiązany z innymi projektami Facebooka, na przykład operacja optymalizatora kodu bajtowego Redex służy do analizy kodu bajtowego, a biblioteka SPARTA służy do wizualnej interpretacji i badania wyników. analiza statyczna.

Potencjalne luki i problemy z bezpieczeństwem są identyfikowane poprzez analizę przepływów danych w trakcie realizacji wniosku, co pozwala na identyfikację sytuacji w którym surowe dane zewnętrzne są przetwarzane w niebezpieczne konstrukcje, takie jak zapytania SQL, operacje na plikach i wywołania, które prowadzą do uruchomienia programów zewnętrznych.

MT zaprojektowano tak, aby móc skanować duże bazy kodów mobilnych i identyfikować potencjalne problemy w pull requestach, zanim trafią one do produkcji. Powstał w wyniku ścisłej współpracy inżynierów bezpieczeństwa i oprogramowania Facebooka, którzy uczą MT patrzenia na kod i analizowania sposobu, w jaki przepływają przez niego dane. Analizowanie przepływów danych jest przydatne, ponieważ wiele problemów związanych z bezpieczeństwem i prywatnością można modelować jako przepływ danych tam, gdzie nie powinien.

praca analizatora sprowadza się do określenia źródeł danych i niebezpiecznych połączeń, gdzie oryginalne dane nie powinny być używane: Parser monitoruje przepływ danych przez łańcuch wywołań funkcji i łączy początkowe dane z potencjalnie niebezpiecznymi miejscami w kodzie.

Ponieważ w MT przepływ danych można opisać przez:

  • Źródło: punkt pochodzenia. Może to być ciąg znaków kontrolowany przez użytkownika wchodzącego do aplikacji przez `Intent.getData`.
  • Zlew: cel. W systemie Android może to być wywołanie `Log.w` lub `Runtime.exec`. Na przykład dane z wywołania Intent.getData są uważane za źródło do monitorowania, a wywołania Log.w i Runtime.exec są uważane za niebezpieczne zastosowania.

Duża baza kodów może zawierać wiele różnych typów źródeł i odpowiadających im odbiorników. Możemy powiedzieć MT, aby pokazała nam określone przepływy, definiując reguły.

Reguła może na przykład określać, że chcemy znaleźć celowe przekierowania (problemy, które umożliwiają atakującym przechwycenie poufnych danych), definiując regułę, która pokazuje nam wszystkie ślady od źródeł „kontrolowanych przez użytkownika” do ujścia „przekierowań intencji”.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.