Андрей Никитин, 23/01/23
Когда мы говорим о безопасности мобильных приложений, то прежде всего подразумеваем процесс, связанный с выявлением, анализом и управлением рисками, встроенный в цикл разработки программного обеспечения. Он охватывает технологии и методы, которые снижают вероятность кражи паролей, конфиденциальных данных, взлома и вывода из строя приложений.
Автор: Андрей Никитин, директор по продуктовому маркетингу Стингрей Технолоджис (ГК Swordfish Security)
Непрерывный анализ уязвимостей мобильных приложений является важнейшим компонентом информационной безопасности, так как позволяет компаниям находить и устранять дефекты еще в процессе разработки мобильных приложений, до их релиза.
В идеале анализ безопасности – это комбинация ручного тестирования на проникновение (penetration testing) и автоматизированного анализа в течение цикла разработки. Такой подход обеспечивает наибольший охват возможных уязвимостей приложения.
Почему важна безопасность мобильных приложений?
Количество мобильных приложений в мире быстро растет.
Ежемесячно только в Google Play появляется около 100 тыс. новых разработок, а по состоянию на I квартал 2022 г. там было представлено 3,48 млн приложений для Android [1]. Для сравнения: Apple App Store предлагает 2,22 млн приложений для iOS. Количество пользователей этих продуктов стремительно растет: еще в 2016 г. мобильный трафик в мире превысил веб-трафик и с тех пор вырос на 58% [2].
У каждого крупного банка, магазина, авиакомпании есть свое мобильное приложение для взаимодействия с клиентами – мобильный доступ к товарам и услугам уже давно стал обычным явлением.
Однако популярность мобильных приложений, их проникновение в процессы компаний провоцируют рост угроз кибербезопасности. Хакеры все чаще совершают атаки с целью кражи личных данных, информации о транзакциях или устраивают сбой в работе приложений.
В стремлении быстро создать продукт и привлечь пользователей разработчики нередко пишут небезопасный код, таким образом создавая уязвимости и подвергая угрозе свою компанию и ее клиентов. Кибератаки могут стоить бизнесу очень дорого: они приводят к прямым финансовым потерям, наносят урон репутации компании, провоцируют штрафы со стороны регуляторов и отток клиентов.
Исследования показывают, что 50% мобильных приложений имеют критические уязвимости [3].
Риски мобильной безопасности растут
Компании используют достаточно продвинутые инструменты и практики для проверок своих веб-приложений на защищенность. Но если говорить о мобильном ПО, то здесь все ограничивается периодическими ручными проверками. Такая ситуация сложилась из-за недостатка качественных инструментов для анализа безопасности и нехватки компетенций.
Мобильное ПО существенно отличается от веб-приложений, и потенциально оно более уязвимо. В отличие от веб-разработок, которые запускаются в изолированном браузере, мобильные приложения работают на устройстве, подключенном к облачному серверу, и напрямую взаимодействуют с ОС и другими приложениями, а также хранят системную информацию на устройстве.
Мобильные решения открывают хакерам широкие возможности для атак [4]. На сегодня почти треть приложений содержит такие уязвимости, как хранение информации в небезопасном месте, небезопасная передача информации, небезопасная авторизация, возможность передачи произвольных команд на сервер, проблемы безопасности в библиотеках с открытым исходным кодом.
Методы выявления дефектов безопасности мобильных приложений
В ИТ-индустрии были разработаны подходы к обеспечению защищенности мобильных приложений – практики MAST (Mobile Application Security Testing), которые стали решением многих проблем с безопасностью приложений.
SAST – статический анализ исходного кода приложения. Выявляет небезопасную конфигурацию: ищет токены, ключи шифрования и другие конфиденциальные данные, проверяет корректность конфигурации сетевого взаимодействия и пр.
DAST – динамический анализ приложения. Выявляет незащищенный сетевой трафик, точки входа, которые могут быть вызваны сторонними приложениями.
API ST – анализ API приложения. Анализ пересылаемых сообщений между приложением и его сервером на предмет наличия чувствительной информации.
IAST – интерактивный анализ приложения. Мониторинг потоков данных приложения, отслеживание движения данных от точек входа до попадания в потенциально опасные функции.
Регулярное использование практик MAST для анализа защищенности поможет обеспечить максимальный охват уязвимостей мобильных приложений.
Помимо практик MAST в индустрии приняты стандарты безопасности, такие как OWASP Mobile Top 10, PCI DSS, CWE/SANS Top 25 (международные), ОУД4, ГОСТ 57580 (в России). Проверка на соответствие этим стандартам позволяет избегать базовых ошибок в безопасности при разработке приложений.
Как повысить безопасность мобильных приложений?
Пять базовых принципов, которые помогут повысить безопасность мобильной экосистемы компании.
Регулярный автоматизированный анализ мобильных приложений на уязвимости в соответствии с практиками MAST. Для этого можно использовать специальные решения, позволяющие встроить автоматические проверки в цикл разработки DevOps.
Регулярная проверка мобильных приложений на соответствие индустриальным стандартам информационной безопасности ОУД4, OWASP Mobile Top 10, PCI DSS, CWE/SANS Top 25.
Периодические тесты на проникновение (penetration tests) для ручной внешней проверки программ.
Регулярные проверки выпущенных мобильных приложений для выявления недавно описанных уязвимостей, в том числе в сторонних компонентах.
Развитие компетенций команды для создания безопасного кода на самых ранних стадиях разработки мобильных приложений. На это ориентированы специальные программы обучения разработчиков [5].
“Количество приложений, доступных в ведущих магазинах приложений по состоянию на 2022 г.» https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/
“Какой процент интернет-трафика приходится на мобильный?»
https://www.oberlo.com/statistics/mobile-internet-traffic
“Исследования показывают, что 50% приложений имеют уязвимости в системе безопасности» https://www.securitymagazine.com/articles/94639-research-reveals-50-of-apps-have-security-vulnerabilities
Рекомендации по безопасной разработке приложений https://help.stingray-mobile.ru/rg/
«Обучение процессам безопаснои? разработки» https://edu.swordfishsecurity.ru/