«Стингрей Технолоджиз» часто общается с разработчиками приложений как крупных организаций, так и небольших. К компании приходят исполнители, которые на заказ делают мобильные продукты. И если у крупного бизнеса есть понимание важности защиты таких разработок, то у остальных на первом месте чаще всего приоритетом ставится быстрый релиз. Они стараются как можно скорее выдать на рынок готовый продукт и думают, что безопасность — это точно не то, чем им стоит заниматься. Ведь есть же финальные проверки, магазины, и приложение — всего лишь клиент, фронт для серверной части, ничего особо привлекательного для злоумышленников здесь нет, и вектор атаки у него узкий.
В статье рассмотрим топ-5 самых распространенных и опасных заблуждений, связанных с защитой мобильных продуктов. Они приводят к наличию уязвимостей и, как следствие, утечкам данных, краже информации и денежных средств, а также потере репутации.
1. Приложение телефона — лишь витрина серверной части
С одной стороны, это действительно так. С другой стороны, мобильный и веб-фронт сильно отличаются друг от друга. Для мобильных устройств необходимы высокая скорость и удобство использования. Чтобы обеспечить это, некоторые важные данные иногда сохраняются локально, кэшируются или даже используется «локальная» аутентификация (например, проверка пин-кода для входа в приложение происходит на устройстве, а не на сервере).
Получается, что мобильное приложение сегодня — это полноценная сложная система со своей архитектурной особенностью разработки, потоками данных и так далее. И к таким продуктам необходимо предъявлять те же требования к безопасности, что и к серверной части.
Это особенно важно, потому что мобильные решения часто хранят важную информацию либо в коде приложений, либо в загружаемых на устройства данных (токены от сторонних или внутренних сервисов, логины и пароли, ключи шифрования и так далее). Возможно, не все знают, что извлечь и проанализировать строки из файла программы или выполнить декомпиляцию (получение практически исходного кода Android-приложения) довольно просто. Также не составляет большого труда использовать различные уязвимости в приложениях.
В практике «Стингрей Технолоджиз» был такой случай: при проведении анализа защищенности в одном из мобильных продуктов были найдены скрипты сборки и файл с зависимостями, которые содержали в себе версии всех библиотек, включенных в приложение, адреса внутренних стендов и систем CI/CD и даже контактные данные некоторых разработчиков в Telegram. Вся эта информация может стать базой для развития атаки на компанию или ее пользователей.
2. Приложение телефона — это только один пользователь
Удивительно слышать мнение о том, что вопрос безопасности не так важен, если речь идет только об одном клиенте. Считается, что риски в этом случае минимальны и ими можно пренебречь. Однако такой клиент может оказаться весьма значимым, и в результате атаки на него могут быть украдены не только его деньги, но и конфиденциальная информация.
Проверяя новое приложение, «Стингрей Технолоджиз» обнаружила уязвимость, позволяющую получить важные данные клиентов (пароли, личную информацию и аутентификационные токены), которые затем могут быть использованы для проведения атак. Даже если эта уязвимость затрагивает только одного клиента, количество пользователей приложения может быть очень велико, а потенциальных жертв — еще больше.
Кроме того, использование одного и того же ключа шифрования (например, «зашитого» в коде) для всех клиентов позволяет злоумышленникам расшифровать любые их данные, попавшие в их руки.
3. Мобильные продукты проверяются на стороне магазинов
«Стингрей Технолоджиз» часто сталкивается с тем, что разработчики не проводили анализ безопасности своих продуктов, полагаясь только на проверки со стороны магазинов приложений.
Крупные магазины приложений, такие как App Store или Huawei App Gallery, проводят тщательную проверку программ перед их публикацией. Например, в правилах Google Play упоминается сканирование приложений на уязвимости, также все маркетплейсы пишут о том, что не допускают к публикации небезопасные программы. Однако на деле ситуация отличается.
Ежегодные исследования «Стингрей Технолоджиз», о которых можно прочитать в предыдущей статье, доказывают обратное — больше половины приложений российских разработчиков содержат уязвимости высокого и критического уровней. Все эти программы специалисты компании загрузили из популярных магазинов, на которые привыкли рассчитывать разработчики.
При проверке программ на наличие уязвимостей и вредоносного кода магазины приложений в первую очередь обращают внимание на соответствие программы установленным правилам размещения. Им не так важно, какие данные содержит программа и насколько она уязвима.
Кроме того, опасные ИБ-недостатки часто обнаруживаются в уже опубликованных релизах. Это связано с тем, что крупные компании создают корпоративные приложения для своих сотрудников, такие как внутренние порталы, мессенджеры и другие программы. Хотя эти программы содержат большое количество важных данных, они часто остаются вне поля зрения.
Из-за слабых требований безопасности для таких продуктов злоумышленникам проще всего получить доступ к важной информации через мобильные устройства. Это может привести к атаке на компанию.
4. Уязвимости в продуктах не вредят репутации
Несмотря на расцвет «культуры отмены», многие компании до сих пор не рассматривают репутационные риски как весомый аргумент для усиления защиты своих приложений.
В практике «Стингрей Технолоджиз» встречались случаи, когда разработчики не учитывали возможные репутационные последствия, а затем оправдывались после критических публикаций в СМИ и на форумах, связанных с уязвимостями в безопасности их сервисов.
Важно понимать, что испорченная репутация может привести к финансовым потерям, оттоку клиентов и даже к тому, что потенциальные сотрудники не захотят работать в компании. Учитывая кадровый голод в сфере кибербезопасности, это может вызвать дефицит сотрудников.
Некоторые из исследуемых «Стингрей Технолоджиз» приложений содержали уязвимость, позволяющую отправить всем пользователям Push-уведомление в виде текста, картинки или гиф-изображения от лица бренда. Неизвестно, что в таком случае могли бы прислать злоумышленники и как это отразилось бы на репутации компании. А если бы клиент получил от банка push-уведомление с угрозой списания средств и требованием сообщить CVV-код карты на определенный номер, это могло бы привести к серьезным последствиям, вплоть до закрытия компании.
В работе «Стингрей Технолоджиз» были случаи, когда даже после того, как компания узнавала об уязвимости и получала рекомендации по ее устранению, она не решала проблему или вообще отрицала её существование. Чтобы избежать подобных ситуаций, рекомендуется не ждать, пока произойдет неприятный инцидент, а устранять уязвимости в продукте заранее. Это поможет предотвратить потерю пользователей и другие неприятности, которые могут возникнуть из-за проблем с безопасностью.
5. Операционная система надежна
Одна из самых болезненных тем в мире мобильных приложений — это хранение конфиденциальной информации в открытом виде на устройстве. Некоторые компании считают, что, если данные находятся в изолированной среде приложения, то операционная система обеспечит их защиту. Однако на самом деле информацию можно получить с помощью облачных и локальных резервных копий. Также существуют уязвимости в продуктах, которые позволяют читать любые файлы внутри изолированной среды.
Часто разработчики полагаются на такие библиотеки, как Flutter, которые обещают шифрование и безопасное хранение данных. При этом это работает только на операционной системе Android. В то же время на iOS данные хранятся в открытом виде в KeyChain (связке ключей Apple). Если разработчик сохранит пароль пользователя с помощью Flutter, то этот пароль будет храниться в KeyChain в открытом виде. Это представляет потенциальную угрозу безопасности, поскольку пароль может быть получен через локальный или облачный бэкап, а также при физическом доступе к устройству.
В Android есть как минимум три способа извлечь данные из оболочки приложения.
- сохранить их на SD-карте;
- использовать уязвимости в контент-провайдере;
- создать резервную копию.
Это не все варианты получения данных. Все, что хранится или проверяется локально, могут получить злоумышленники.
Вместо вывода
Не стоит думать, что проверки магазинов — это всего лишь вымышленные меры или что мобильные решения — это просто витрина данных для серверной части продукта. Сегодня мобильные приложения являются одним из основных компонентов системы и функционируют во враждебной среде, где содержится много конфиденциальной информации о пользователях и бизнес-процессах компаний.
Эта статья не о том, чтобы обвинить разработчиков или маркетплейсы. Ее цель — обратить внимание на защиту мобильных продуктов. «Стингрей Технолоджиз» уважает компании, которые заботятся о безопасности своих сервисов. Однако исследования показывают, что еще есть много проблем, с которыми можно и нужно бороться уже сейчас. Для этого существует множество решений и инструментов, одним из которых является платформа автоматизированного анализа защищенности мобильных приложений «Стингрей».