21 марта 2023

Блог

Встраиваем сканирование с помощью MobSF в пайплайн мобильных приложений

Информационная безопасность – часть качественной работы мобильного приложения, которое оперирует какими-либо персональными данными.
 
По мнению компании «Информзащита», в 2022 году количество атак на мобильные приложения увеличилось на 200%, что во многом связано с удалением из маркетплейсов Google Play и App Store ряда приложений российских компаний. Предполагается, что в 2023 году количество атак будет продолжать расти.

Поскольку доступ к конфиденциальной информации возможно получить за пределами компании-разработчика через взлом устройства, наша задача – максимально защитить пользователя от каких бы то ни было утечек и мобильных угроз. 

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

 В ближайшем будущем мы планируем внедрить на своих проектах динамический анализ кода с помощью тест-кейсов. Как у нас это будет работать – сообщим позже.