Как защитить приложения на Python Flask
Узнать большеСложно представить свою жизнь без мобильных приложений, с помощью которых можно общаться, управлять финансами и оплачивать покупки, скачивать музыку и фильмы, просматривать развлекательный контент. Также существуют рабочие приложения, которые устанавливаются на пользовательские устройства и позволяют решать ряд задач по планированию, выполнению проектов, др.
В коде мобильных приложений вне зависимости от их назначения могут встречаться уязвимости и умышленные недостатки. Они могут быть проэксплуатированы хакерами с целью кражи персональной и финансовой информации. Чтобы свести угрозы к минимуму, важно проводить анализ кода мобильных приложений на всех этапах жизненного цикла разработки. В статье рассказываем, какие виды проверок позволяют обнаруживать уязвимости, как и когда они реализуются.
Что такое анализ безопасности мобильных приложений и зачем его проводить
Анализ кода ПО — неотъемлемая часть стратегии безопасной разработки программных продуктов. Его цель — обеспечить контроль безопасности мобильных приложений, поиск ошибок, проблем и уязвимостей, которые можно устранить еще до выпуска приложения на рынок. Это позволит снизить риски безопасности и минимизировать угрозы для приложения, его пользователей и компании.
Основные методы анализа безопасности мобильных приложений
Для исследования безопасности мобильных приложений чаще всего применяются три вида сканирований: 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. В анализатор загружается файл с кодом, либо ссылка на готовую программу из магазина приложений или репозитория, проверяется безопасность ПО, готовится отчет с перечнем проблем и экспертными рекомендациями.
Советы по повышению уровня безопасности мобильных приложений
Ключевые рекомендации, которые позволяют выпускать максимально защищенные сервисы:
- Внедрение передовых практик безопасной разработки, организованных процессов контроля безопасности программных продуктов.
- Реализация анализа кода мобильных приложений на всех этапах создания сервисов, включая начальные.
- Использование комплекса технологий для анализа кода для всестороннего контроля безопасности и обнаружения максимального количества уязвимостей до выпуска продукта.
- Обучение команды разработчиков основам кибербезопасности, организация грамотного воздействия разработчиков и команды ИБ.
Пользователи также могут проверять готовые сервисы и предпринимать дополнительные меры для защиты личных и банковских данных.