21 марта 2023
Блог
Встраиваем сканирование с помощью MobSF в пайплайн мобильных приложений
Поскольку доступ к конфиденциальной информации возможно получить за пределами компании-разработчика через взлом устройства, наша задача – максимально защитить пользователя от каких бы то ни было утечек и мобильных угроз.
Мы начали применять в разрабатываемых нами мобильных приложениях Mobile Security Framework (MobSF) - фреймворк мобильной безопасности, обладающий рядом функций, в числе которых статистический и динамический анализ кода Android и IOS приложений.
Что умеет статический анализСтатический анализ от MobSF отображает:
· В каких файлах приложение хранит чувствительные данные и куда их сохраняет.
· В каком виде хранятся данные: в зашифрованном или открытом.
· Какой используется тип криптографии.
· Каким образом злоумышленник может извлечь данные.
Основываясь на этих данных, мы можем предусмотреть компенсационные меры по защите этих данных: user_name, password, key, user_id и других.
Использование MobSF как регулярный способ выявлять уязвимости
Статический анализ кода запускается так: в MobSF мы загружаем собранное приложение, после чего фреймворк выдает общую оценку безопасности и описывает обнаруженные проблемы. Подробно, как работает сканирование, мы описывали тут.
На первом этапе мы хотели использовать MobSF в ручном режиме: если по результатам очередной оценки происходили ухудшения, то сборка должна была блокироваться. Но решили, что это не самый эффективный способ, так как само сканирование занимает достаточно долгое время, и это негативно сказывается на производительности команды. Поэтому проверку решили осуществлять по расписанию на выходных.
Согласно расписанию поднимается пайплайн, который самостоятельно делает сборку и проверку. При этом сопоставляются данные: какая оценка была и какая стала при очередном сканировании. То есть мы не просто получаем отчеты и на них реагируем, а отслеживаем динамику, что не появились новые проблемы.
При проверке события могут развиваться по двум сценариям:
1) Если оценка безопасности увеличилась или осталась на том же уровне, то сверстанное нашим дизайнером информационное письмо отправляется в рассылку на отдел безопасности и тимлидов команд.
2) Если же score упал, то приходит алерт, также в красивом дизайне. Далее специалисты разбирают, что послужило причиной для уменьшения оценки и работают над исправлением ситуации.
MobSF сканирует небезопасные разрешения и конфигурации, находит ненадежные части кода, ненадлежащие разрешения, ненадлежащее использование опасных API и другое.
Статистическое сканирование улучшает защиту приложения, но отметим, что ни один инструмент не может гарантировать 100%-ой защиты.
Движемся в сторону использования MobSF для динамического сканирования
Помимо статического, MobSF поддерживает и динамический анализ кода. Это означает, что у фреймворка есть паттерны анализа поведения приложения, которые раскрывают уязвимости непосредственно во время работы приложения. Для этого приложение должно под него запускаться в виде эмуляции действий пользователя. К примеру, когда пользователь вводит свои данные в поле авторизации, сканер проверяет, шифруются его данные, или же они сохраняются где-то на бэкенде в открытом виде, таким образом сохраняя злоумышленнику возможность узнать пароль, банковские данные и т.д.
Динамическое сканирование возможно двумя способами:
1) Сканер запускается, и QA-инженер прогоняет сценарии вручную.
2) Сканирование с помощью тест-кейсов, которые эмулируют действия пользователя.
Использование тест-кейсов более разумно, учитывая, что они позволяют обходиться без излишнего ручного труда. MobSF может выполнять тестирование безопасности веб-API с помощью своего API Fuzzer, а также осуществлять сбор информации, анализ заголовков безопасности и выявлять уязвимости, специфичные для мобильного API, таких как обход пути, IDOR и др.
Под капотом MobSF для динамического сканирования бесплатный инструмент Frida – основа всех инструментов динамического анализа. Динамический анализ может быть выполнен как на этапе разработки приложения, так и уже в фазе производства.
В ближайшем будущем мы планируем внедрить на своих проектах динамический анализ кода с помощью тест-кейсов. Как у нас это будет работать – сообщим позже.