Получить консультацию по Solar appScreener

Сложно представить свою жизнь без мобильных приложений, с помощью которых можно общаться, управлять финансами и оплачивать покупки, скачивать музыку и фильмы, просматривать развлекательный контент. Также существуют рабочие приложения, которые устанавливаются на пользовательские устройства и позволяют решать ряд задач по планированию, выполнению проектов, др.

В коде мобильных приложений вне зависимости от их назначения могут встречаться уязвимости и умышленные недостатки. Они могут быть проэксплуатированы хакерами с целью кражи персональной и финансовой информации. Чтобы свести угрозы к минимуму, важно проводить анализ кода мобильных приложений на всех этапах жизненного цикла разработки. В статье рассказываем, какие виды проверок позволяют обнаруживать уязвимости, как и когда они реализуются.

Что такое анализ безопасности мобильных приложений и зачем его проводить

Анализ кода ПО — неотъемлемая часть стратегии безопасной разработки программных продуктов. Его цель — обеспечить контроль безопасности мобильных приложений, поиск ошибок, проблем и уязвимостей, которые можно устранить еще до выпуска приложения на рынок. Это позволит снизить риски безопасности и минимизировать угрозы для приложения, его пользователей и компании.

методы анализа мобильных приложений

Основные методы анализа безопасности мобильных приложений

Для исследования безопасности мобильных приложений чаще всего применяются три вида сканирований: SAST, DAST и OSA. Коротко опишем задачи и особенности каждого из них.

SAST — статический анализ по модели «белого ящика»

Сканирование методом Static Application Security Testing  — распространенный способ анализа, который можно применять с самого начала процесса разработки мобильных приложений. Для его проведения необходим доступ к исходному коду и знание структуры ПО, поэтому SAST иногда называют тестированием white box по аналогии с прозрачной коробкой, в которой видно все, что находится внутри. Анализ можно осуществить вручную или использовать специализированный анализатор для ускорения процесса и получения более достоверных результатов.

Статический анализ используется, если нужно убедиться в безопасности кода разрабатываемого ПО, обнаружить уязвимости в коде приложения, проверить код, которые создавались подрядчиками и во многих других случаях.

К основным преимуществам статического анализа безопасности кода мобильных приложений можно отнести:

  • Практически полное покрытие кода, а значит возможность выявления максимального количества уязвимостей.
  • Возможность проверять безопасность кода даже не самых ранних этапах разработки, когда другие инструменты, например, DAST, еще не применимы.
  • Возможность проанализировать бинарный код, если нельзя получить доступ к исходному (это возможно только при использовании анализатора Solar appScreener).

Проведение статического тестирования сопряжено с серьезным минусом — ложноположительными срабатываниями анализатора. Инструмент может просигнализировать о проблеме в коде, которая на самом деле не является уязвимостью. Это не критично, но разработчикам придется вручную проверять предоставленную анализатором информацию и тратить время.

DAST — динамическое сканирование по методу «черного ящика»

Dynamic Application Security Testing — анализ, применяемый в ходе разработки мобильных приложений для проверки готовых приложений. С помощью специальных инструментов имитируются атаки на ПО и выявляются существующие уязвимости и закладки.

Динамическое сканирование не подходит для первых этапов разработки - его проводят, если мобильное приложение уже готово и функционирует. Для проверки желательно развернуть отдельную среду и проводить анализ там, чтобы не навредить реальному приложению.

Преимущества такого тестирования:

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

Главный минус динамической проверки безопасности мобильных приложений — необходимость разворачивать тестовую среду, которая должна максимально имитировать реальную. Такое сканирование реализуется сложнее, чем SAST и требует большей подготовки.

OSA — анализ безопасности сторонних компонентов, в том числе с открытым исходным кодом

Open Source Analysis — анализ, часто применяемый при разработке мобильных приложений, т.к. значительную часть кодовой базы разработчики заимствуют из общедоступных библиотек, безопасность которых никто не проверяет. С помощью OSA можно обнаружить все open source-компоненты, найти среди них потенциально опасные. Также сканирование позволяет выявлять проблемы с лицензированием заимствованных элементов, чтобы избежать юридических проблем из-за некорректного использования open source-библиотек.

Еще одна технология внутри OSA-анализа – это Supply Chain Security, которая позволяет защищаться от атак через цепочку поставок ПО. Она проверит все заимствованные компоненты и присвоит каждой исследуемой компоненте оценку доверия, на основании которой можно судить о потенциальной опасности этой библиотеки в будущем.

К сильным сторонам OSA-анализа мобильных приложений можно отнести:

  • Простоту выполнения — достаточно загрузить SBOM-файл или исходный код в анализатор, который с помощью тактик идентификации обнаружит все заимствованные компоненты и их источники и проверит полученную информацию по базе уязвимостей.
  • Снижение рисков безопасности, связанных с непроверенными open source-компонентами, которые в свою очередь могут привести к инцидентам.
  • Возможность охватить максимум угроз в сторонних компонентах и выявить их с помощью одного модуля OSA – именно так это реализовать в комплексном продукте Solar appScreener.

Какие уязвимости можно обнаружить в процессе анализа мобильных приложений

Ключевые слабые места мобильных сервисов описаны в мировом рейтинге уязвимостей OWASP Mobile Top 10. Расскажем про первые пять уязвимостей, которые встречаются чаще всего:

  • Небезопасное хранение чувствительной информации — данных, которые могут помочь злоумышленнику предпринять атаку на пользователя (паспортные данные, номера банковских карт, cookie, контактные сведения, пароли).
  • Вывод чувствительных сведений в системные логи. Если хакеры получат доступ к таким данным, то могут завладеть полным доступом к пользовательскому аккаунту.
  • Аутентификация в мобильных приложениях через сторонние сервисы. Это значительно повышает риски, что учетные данные пользователя будут перехвачены злоумышленниками.
  • Кэширование сетевых запросов при осуществлении сетевого взаимодействия. Файлы могут содержать конфиденциальную информацию, в том числе учетные данные пользователя.
  • Некорректное использование криптографических механизмов, например, отсутствие надлежащего шифрования чувствительных сведений. В результате данные, которыми обмениваются пользователи, могут утечь.

Преимущества использования Solar appScreener для анализа мобильных приложений

Можно использовать любые удобные инструменты для проведения тестирований mobile applications, но в таком случае отчеты не будут коррелироваться. Целесообразно применять анализатор, способный выполнять несколько видов анализа. Таким решением может стать Solar appScreener, где реализованы модули SAST, DAST, OSA (который позволяет проводить SCA и SCS).

Преимущества Solar appScreener для проверки безопасности мобильных приложений:

  • Алгоритм Fuzzy Logic Engine, позволяющий снижать количество ложных срабатываний в процессе проведения статического сканирования и анализа сторонних компонентов.
  • Возможность бинарного анализа по технологии реверс-инжиниринга, которая позволяет восстанавливать из исполняемых файлов исходный код.
  • Единый удобный интерфейс для управления всеми сканированиями и видами анализа.

Для работы с платформой не нужно привлекать команду тестировщиков, поскольку сканирования проводятся в автоматическом режиме. Приведем пример, как происходит статический анализ мобильного приложения с помощью Solar appScreener. В анализатор загружается файл с кодом, либо ссылка на готовую программу из магазина приложений или репозитория, проверяется безопасность ПО, готовится отчет с перечнем проблем и экспертными рекомендациями.

повышение уровня безопасности мобильных приложений

Советы по повышению уровня безопасности мобильных приложений

Ключевые рекомендации, которые позволяют выпускать максимально защищенные сервисы:

  • Внедрение передовых практик безопасной разработки, организованных процессов контроля безопасности программных продуктов.
  • Реализация анализа кода мобильных приложений на всех этапах создания сервисов, включая начальные.
  • Использование комплекса технологий для анализа кода для всестороннего контроля безопасности и обнаружения максимального количества уязвимостей до выпуска продукта.
  • Обучение команды разработчиков основам кибербезопасности, организация грамотного воздействия разработчиков и команды ИБ.

Пользователи также могут проверять готовые сервисы и предпринимать дополнительные меры для защиты личных и банковских данных.

ЗАКЛЮЧЕНИЕ

Применение нескольких технологий для анализа безопасности мобильных приложений — правильный подход в рамках стратегии безопасной разработки. Своевременное проведение проверок позволяет шаг за шагом устранять обнаруженные проблемы, не дожидаясь полной готовности приложения, когда устранить уязвимость будет стоить в разы дороже. Обязательно следует комбинировать SAST и DAST, поскольку эти виды анализа дополняют друг друга и позволяют отслеживать уязвимости на разных этапах разработки. Также рекомендуем не забывать об анализе OSA, чтобы всесторонне исследовать сторонние компоненты, используемые про рзработка вашего ПО. Удобно выполнять все перечисленные тестирования с помощью одного анализатора — Solar appScreener. Платформа располагает всеми необходимыми инструментами для эффективного сканирования и формирования детализированных отчетов с подробными экспертными рекомендациями.

ДРУГИЕ СТАТЬИ ПРОДУКТА

Еще больше о наших возможностях

Zero Day уязвимость: что такое уязвимость нулевого дня

Zero Day уязвимость: что такое уязвимость нулевого дня

Узнать больше
White Box-тестирование: что это такое, и когда применяется

White Box-тестирование: что это такое, и когда применяется

Узнать больше
Cross Site Scripting: что такое XSS-атаки и как от них защититься

Cross Site Scripting: что такое XSS-атаки и как от них защититься

Узнать больше
Веб-приложения: как контролировать безопасность кода

Веб-приложения: как контролировать безопасность кода

Узнать больше
Open source: что это и зачем его используют при разработке

Open source: что это и зачем его используют при разработке

Узнать больше