Speaker
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, которые потенциально могут работать с чувствительными данными. Разработанный инструмент был протестирован с использованием этого списка на ряде реальных приложений, включая образцы вредоносного ПО. Результаты показали его эффективность в обнаружении подозрительной активности и пригодность как для отладки, так и для практического использования исследователями безопасности.