Mariana Trench, analyzátor statického kódu Facebooku s otevřeným zdrojovým kódem

Facebook odhalen před pár dny pustil statický analyzátor s otevřeným zdrojovým kódem, Mariana Trench, který je určen k identifikaci zranitelností aplikací pro Android a programů Java.

V je k dispozici možnost analyzovat projekty bez zdrojových kódů, pro který je k dispozici pouze bytecode pro virtuální počítač Dalvik. Další výhodou je velmi vysoká rychlost provádění (analýza několika milionů řádků kódu trvá přibližně 10 sekund), což vám umožňuje pomocí nástroje Mariana Trench zkontrolovat všechny navrhované změny hned po jejich zavedení.

Analyzátor byl vyvinut jako součást projektu k automatizaci procesu kontroly kódu zdroj mobilních aplikací z Facebooku, Instagramu a Whatsappu.

Sdílíme podrobnosti o Mariana Trench (MT), nástroji, který používáme k detekci a prevenci chyb zabezpečení a soukromí v aplikacích pro Android a Java. V rámci naší snahy pomoci rozšířit zabezpečení prostřednictvím automatizace budov jsme nedávno otevřeli MT pro podporu bezpečnostních techniků na Facebooku a v celém odvětví.

Tento příspěvek je třetím v naší sérii hlubokých ponorů do nástrojů statické a dynamické analýzy, kterým věříme. MT je nejnovější systém, který navazuje na Zoncolan a Pysa, vytvořený pro kód Hack a Python.

V první polovině roku 2021 byla polovina všech zranitelností v mobilních aplikacích Facebooku identifikována pomocí nástrojů automatické analýzy. Kód Mariana Trench je úzce propojen s dalšími projekty na Facebooku, například k analýze bytecode se používá operace optimalizátoru bajtů Redex a ke vizuální interpretaci a studiu výsledků se používá knihovna SPARTA. Statická analýza.

Potenciální zranitelnosti a problémy se zabezpečením jsou identifikovány analýzou datových toků během provádění aplikace, což umožňuje identifikovat situace ve kterém jsou nezpracovaná externí data zpracovávána v nebezpečných konstrukcích, jako jsou dotazy SQL, operace se soubory a volání, která vedou ke spuštění externích programů.

MT je navržen tak, aby mohl skenovat velké mobilní kódové základny a označovat potenciální problémy v požadavcích na vyžádání, než půjdou do výroby. Byl vytvořen jako výsledek úzké spolupráce mezi bezpečnostními a softwarovými inženýry Facebooku, kteří školí MT, aby se podíval na kód a analyzoval, jak jím data protékají. Analýza datových toků je užitečná, protože mnoho problémů se zabezpečením a ochranou osobních údajů lze modelovat jako tok dat tam, kde by neměl.

Úloha analyzátoru je omezena na určování zdrojů dat a nebezpečných volání, kde by neměla být použita původní data: Analyzátor monitoruje průchod dat řetězcem volání funkcí a spojuje počáteční data s potenciálně nebezpečnými místy v kódu.

Vzhledem k tomu, že v MT lze tok dat popsat:

  • Zdroj: místo původu. Může to být řetězec ovládaný uživatelem vstupujícím do aplikace prostřednictvím `Intent.getData`.
  • Dřez: cíl. V systému Android to může být volání `Log.w` nebo` Runtime.exec`. Například data z volání Intent.getData jsou považována za zdroj ke sledování a volání Log.w a Runtime.exec jsou považována za nebezpečná použití.

Velká kódová základna může obsahovat mnoho různých typů zdrojů a odpovídajících přijímačů. Můžeme říci MT, aby nám ukázal konkrétní toky definováním pravidel.

Pravidlo by například mohlo specifikovat, že chceme najít přesměrování záměrů (problémy, které útočníkům umožňují zachytit citlivá data) definováním pravidla, které nám ukazuje všechny stopy od „uživatelsky kontrolovaných“ zdrojů k propadu „přesměrování záměrů“.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.