Facebook відкрив код статичного аналізатора Mariana Trench

Facebook представив новий відкритий статичний аналізатор Mariana Trench, націлений на виявлення вразливостей у програмах для платформи Android та програмах на мові Java. Надається можливість аналізу проектів без вихідних текстів, для яких доступний лише байткод для віртуальної машини Dalvik. З переваг також виділяється дуже висока швидкість виконання (аналіз кількох мільйонів рядків коду займає близько 10 секунд), що дозволяє застосовувати Mariana Trench для перевірки всіх пропонованих змін у міру їх надходження. Код проекту написаний мовою C++ та поширюється під ліцензією MIT.

Аналізатор був розроблений у рамках проекту з автоматизації процесу рецензування вихідних текстів мобільних програм Facebook, Instagram і Whatsapp. У першій половині 2021 року половину з усіх уразливостей у мобільних додатках Facebook було виявлено за допомогою інструментів для автоматизованого аналізу. Код Mariana Trench тісно переплітається з іншими проектами Facebook, наприклад, для аналізу байткоду використані напрацювання оптимізатора байткоду Redex, а для наочної інтерпретації та вивчення результатів статичного аналізу – бібліотека SPARTA.

Виявлення потенційних уразливостей та проблем з конфіденційністю здійснюється за допомогою аналізу потоків даних у ході виконання програми, що дозволяє визначити ситуації, коли неочищені зовнішні дані обробляються в небезпечних конструкціях, таких як SQL-запити, операції з файлами та виклики, що призводять до запуску зовнішніх програм.

Робота аналізатора зводиться до визначення джерел надходження даних та небезпечних дзвінків, у яких вихідні дані не повинні застосовуватися – аналізатор відстежує проходження даних по ланцюжку викликів функцій та пов'язує вихідні дані з потенційно небезпечними місцями в коді. Наприклад, як джерело, що вимагає відстеження, розглядаються дані, що надійшли через виклик Intent.getData, а в якості небезпечних застосувань виклики Log.w і Runtime.exec.

Facebook відкрив код статичного аналізатора Mariana Trench


Джерело: opennet.ru

Додати коментар або відгук