Машинное обучение в антивирусах снова получило неприятный привет. Исследователи представили DROIDBREAKER — фреймворк для создания модифицированных Android-приложений, которые могут обходить ML-детекторы вредоносных приложений и при этом сохранять работоспособность.
Авторы работы отмечают, что многие прежние атаки на Android-детекторы выглядели красиво в статьях, но плохо жили в реальности.
Одни методы добавляли в APK целые доброкачественные модули, из-за чего приложение обрастало лишними признаками и часто ломалось еще на этапе сборки. Другие меняли байт-код слишком грубо: формально APK получался валидным, но нормально работать уже не мог.
Отдельная претензия исследователей была к проверке успешности таких атак. По их словам, в прошлых работах часто ограничивались тестами: приложение установилось, запустилось — значит, всё хорошо. Но это не доказывает, что после модификаций оно сохранило исходную функциональность.
DROIDBREAKER пытается решить именно эту проблему. Фреймворк меняет только те компоненты APK, которые сильнее всего влияют на решение целевой ML-модели. Для этого используются более точечные и безопасные манипуляции: изменение API-вызовов, модулей приложения, разрешений, URL и элементов обфускации.
Главная фишка — проверка сохранения поведения. DROIDBREAKER сравнивает журналы выполнения и API-трейсы исходного и измененного приложения, чтобы убедиться: APK не просто собрался и запустился, а действительно продолжает делать то, что должен.
В экспериментах на свежем наборе Android-приложений фреймворк показал высокую эффективность обхода как в сценариях white-box, так и в black-box. При этом ему требовалось относительно мало запросов к модели, а побочных изменений в приложении было меньше, чем у прежних подходов.
Более того, модифицированные APK заметно реже детектировались коммерческими сканерами, представленными на VirusTotal.












