Улучшение инструментов для отладки приложений Android и исследование возможностей их применения для анализа поведения ПО

20 May 2025, 16:31
12m
107 БК (МФТИ)

107 БК

МФТИ

Моделирование и компьютерная оптимизация, инженерия 20-Моделирование и компьютерная оптимизация, инженерия

Speaker

Vladislav Sidorov (MIPT, ISP RAS)

Description

Данная работа ставит своей целью создание инструмента общего назначения для автоматизированного динамического анализа поведения ПО под Android. Разработанный инструмент основан на фреймворке Frida и предназначен для отслеживания вызовов Java-методов (call monitoring) в целевых процессах, с фокусом на Android API, но с возможностью трассировки и пользовательского кода. В отличие от классических низкоуровневых механизмов, таких как ptrace, предложенный инструмент представляет собой более высокоуровневую альтернативу, адаптированную к архитектуре Android. Последняя характеризуется строго модульной структурой в виде Java-пакетов, что позволяет сделать процесс перехвата унифицированным.
Frida — это кросс-платформенный фреймворк с открытым исходным кодом для внедрения JavaScript-кода в исполняемые процессы, широко используемый для динамического анализа. Он позволяет перехватывать вызовы методов, модифицировать поведение приложения во время исполнения и предоставляет свой API для работы с Java.
В ходе работы проводится обзор существующих решений, таких как frida-trace, House (от NCC Group) и Mobile Security Framework. Все они также за основу используют Frida, но обладают рядом ограничений – от отсутствия поддержки современных версий Android до сложности конфигурации и недостаточной гибкости при мониторинге. Предложенный инструмент устраняет эти недостатки, предоставляя пользователю готовую инфраструктуру для сбора и анализа данных без необходимости глубоких изменений в коде или сложной ручной настройки.
Инструмент работает по следующему принципу: пользователь подключается к выбранному процессу, загружает скрипты Frida, сгенерированные по набору конфигураций, после чего начинается мониторинг вызовов. Перехваченные данные логгируются, сохраняются в базу данных и отображаются в интерфейсе. Далее пользователь может выгрузить отчет для дальнейшего анализа. Такой подход позволяет использовать инструмент в различных сценариях – от поиска вредоносного содержания в сторонних приложениях до отладки и проверки собственного кода.
Создание скриптов для Frida, через которые и работает фреймворк, проходит посредством их генерации по простым конфигурациям, описанным в JSON-формате. Это позволяет избавить конечного пользователя от необходимости самостоятельно писать их на языке JavaScript и вникать в устройство API Frida. Данное решение в том или ином виде применяется и в других аналогичных средствах и позволяет при работе с инструментом сконцентрироваться на решении типовых задач.
В ходе исследования был составлен список некоторых методов Android API, которые потенциально могут работать с чувствительными данными. Разработанный инструмент был протестирован с использованием этого списка на ряде реальных приложений, включая образцы вредоносного ПО. Результаты показали его эффективность в обнаружении подозрительной активности и пригодность как для отладки, так и для практического использования исследователями безопасности.

Primary author

Vladislav Sidorov (MIPT, ISP RAS)

Co-author

Presentation materials