Facebook разкри преди няколко дни той пусна статичен анализатор с отворен код, Mariana Trench, която има за цел да идентифицира уязвимости в приложения за Android и Java програми.
В предоставя се възможност за анализ на проекти без изходни кодове, за които е наличен само байт кодът за виртуалната машина Dalvik. Друго предимство е много високата скорост на изпълнение (анализът на няколко милиона реда код отнема около 10 секунди), което ви позволява да използвате Mariana Trench, за да проверите всички предложени промени при въвеждането им.
Анализаторът е разработен като част от проект за автоматизиране на процеса на преглед на кода източник на мобилни приложения от Facebook, Instagram и Whatsapp.
Споделяме подробности за Mariana Trench (MT), инструмент, който използваме за откриване и предотвратяване на грешки в сигурността и поверителността в приложенията за Android и Java. Като част от усилията ни да подпомогнем мащабирането на сигурността чрез автоматизация на сгради, наскоро отворихме MT за подкрепа на инженери по сигурността във Facebook и в цялата индустрия.
Тази публикация е третата в нашата поредица задълбочени потъвания в инструменти за статичен и динамичен анализ, на които имаме доверие. MT е най -новата система, след Zoncolan и Pysa, създадена съответно за Hack и Python код.
През първата половина на 2021 г. половината от всички уязвимости в мобилните приложения на Facebook бяха идентифицирани с помощта на автоматизирани инструменти за анализ. Кодът на Мариана Тренч е тясно преплетен с други проекти във Facebook, например операцията за оптимизиране на байткод Redex се използва за анализ на байт код, а библиотеката SPARTA се използва за визуална интерпретация и проучване на резултатите. Статичен анализ.
Потенциалните уязвимости и проблемите със сигурността се идентифицират чрез анализ на потоците от данни по време на изпълнение на заявлението, което позволява да се идентифицират ситуации при които необработени външни данни се обработват в опасни конструкции, като SQL заявки, файлови операции и повиквания, които водят до стартиране на външни програми.
MT е проектиран да може да сканира големи бази мобилни кодове и да маркира потенциални проблеми в заявките за изтегляне, преди те да влязат в производство. Той е създаден в резултат на тясно сътрудничество между инженерите по сигурността и софтуера на Facebook, които обучават MT да разглежда кода и да анализира как данните преминават през него. Анализът на потоците от данни е полезен, защото много проблеми със сигурността и поверителността могат да бъдат моделирани като потоци от данни, където не би трябвало.
Работата на анализатора се свежда до определяне на източници на данни и опасни повиквания, където оригиналните данни не трябва да се използват: Анализаторът следи преминаването на данни през веригата от извиквания на функции и свързва първоначалните данни с потенциално опасни места в кода.
Тъй като в MT потокът от данни може да бъде описан чрез:
- Източник: точка на произход. Това може да бъде низ, контролиран от потребителя, който влиза в приложението чрез `Intent.getData`.
- Мивка: дестинация. В Android това може да е обаждане до `Log.w` или` Runtime.exec`. Например данните от повикване към Intent.getData се считат за източник за наблюдение, а обажданията към Log.w и Runtime.exec се считат за опасни употреби.
Голямата кодова база може да съдържа много различни видове източници и съответни приемници. Можем да кажем на MT да ни покаже специфични потоци, като дефинираме правила.
Едно правило може да посочи например, че искаме да намерим пренасочвания на намерения (проблеми, които позволяват на нападателите да прихващат чувствителни данни), като дефинираме правило, което ни показва всички следи от „контролирани от потребителя“ източници до мивка от „пренасочвания на намерения.
Накрая ако се интересувате да научите повече за това, можете да проверите подробности в следващия линк.