Недавно Open Worldwide Application Security Project (OWASP) обновил свой список 10 основных рисков для мобильных приложений впервые с 2016 года. Какой риск оказался на первом месте на этот раз? “Неправильное использование учетных данных.”
Это сигнал тревоги для поставщиков мобильных приложений о опасности жестко закодированных учетных данных и плохой гигиене секретов в целом.
Неправильное обращение с секретами, которые использует ваше приложение, особенно в мобильных приложениях, может привести к разрушительным нарушениям безопасности. Давайте более подробно рассмотрим этот новый приоритет в обеспечении безопасности наших приложений и что мы можем сделать вместе для решения этих проблем.
Растущая угроза неправильного обращения с секретами
Неправильное использование учетных данных происходит, когда такие секреты, как пароли или токены, не защищены должным образом, что делает их уязвимыми для кражи со стороны злоумышленников. Мобильные приложения, в частности, известны утечками секретов. Согласно исследованию CyberNews, более 50% мобильных приложений на платформах, таких как Google Play Store, имеют жестко закодированные секреты, что означает, что эти чувствительные данные могут быть легко обнаружены злонамеренными актерами.
Если мы обратим внимание на определение, предоставленное OWASP, мы быстро поймем, почему этот риск особенно вызывает беспокойство:
Когда секреты становятся известны, злоумышленники могут использовать их для получения несанкционированного доступа к услугам, данным или даже целым системам. Это делает управление секретами первостепенной задачей как для разработчиков приложений, так и для команд безопасности.
Почему секреты являются основной целью злоумышленников
Секреты представляют собой привлекательные цели для злоумышленников, потому что они предоставляют прямой доступ к критически важным системам. В отличие от других уязвимостей, требующих дальнейшей эксплуатации, как только злоумышленник получает доступ к ключу API или паролю, у него часто есть ясный путь к ценным ресурсам.
Например, жестко закодированные ключи API в мобильных приложениях могут быть извлечены с помощью инструментов статического анализа и использованы для несанкционированных запросов к API. Это не только ставит под угрозу данные пользователей, но и может привести к финансовым потерям, особенно если эти ключи связаны с услугами, которые выставляют счета на основе использования.
Секретность на стороне клиента трудна
Одним из ключевых моментов в понимании управления секретами является то, что секретность на стороне клиента практически невозможна. Независимо от того, насколько хорошо секреты замаскированы или зашифрованы в мобильном приложении, злоумышленники с достаточными ресурсами могут осуществить реверс-инжиниринг приложения и извлечь их. Это происходит потому, что секреты в какой-то момент должны быть доступны в памяти приложения для использования. С помощью динамического анализа злоумышленники могут извлечь эти секреты и использовать их в своих целях.
Таким образом, единственный безопасный способ управления секретами – это полностью исключить их с клиентской стороны. Вместо того чтобы встраивать ключи API или учетные данные в приложение, разработчики должны перенести эту чувствительную информацию на серверную сторону, где у них есть больший контроль над доступом и безопасностью.
Лучшие практики управления секретами
Чтобы решить проблему утечки секретов, команды разработчиков должны внедрить ряд лучших практик.
1. Никогда не жестко кодируйте секреты
Секреты никогда не должны храниться непосредственно в коде приложения. Это включает в себя API-ключи, токены аутентификации и любые другие конфиденциальные данные. Жесткое кодирование секретов – один из самых распространенных способов их утечки и может привести к серьезным нарушениям безопасности.
2. Используйте безопасные API для хранения
Для пользовательских секретов (например, паролей, токенов) разработчики должны использовать безопасные механизмы хранения, предоставляемые мобильными операционными системами. Например, iOS предлагает Keychain, а Android имеет Keystore. Эти API позволяют безопасно хранить и контролировать доступ к конфиденциальным данным на устройстве.
3. Перенесите секреты на сервер
Вместо обработки секретов на стороне клиента мобильные приложения должны использовать серверную логику для управления API-ключами и другими конфиденциальными данными. Перемещение этих операций на бэкэнд значительно снижает риск утечки секретов.
4. Регулярно меняйте и аннулируйте секреты
Даже при правильном управлении секретами их следует регулярно обновлять, а скомпрометированные ключи немедленно аннулировать. Это гарантирует, что если злоумышленник получит доступ к секрету, он не сможет использовать его бессрочно.
5. Закрепление сертификатов
Когда секреты отправляются в приложение во время выполнения, разработчики должны использовать закрепление сертификатов, чтобы обеспечить безопасность связи. Это добавляет дополнительный уровень защиты, проверяя личность сервера во время соединения.
6. Реализация обнаружения секретов на протяжении всего жизненного цикла разработки
Управление секретами в жизненном цикле разработки неизбежно связано с ошибками и утечками в какой-то момент. OWASP подчеркивает необходимость ” полного процесса тестирования безопасности.” Он должен обеспечивать несколько уровней обнаружения на этапах коммита, пуша и сборки, а также позволять упрощенное устранение проблем в случае инцидента.
Важно помнить, что жестко закодированный секрет не обязательно должен достигать продакшена, чтобы стать уязвимостью с высоким воздействием.
Последствия утечки секретов
Когда секреты утечка, последствия могут быть серьезными. Злоумышленники могут использовать раскрытые учетные данные для доступа к конфиденциальным данным, манипуляции бизнес-логикой или даже захвата целых систем. Например, если утечет ключ API, связанный с платежной системой, злоумышленники могут инициировать мошеннические транзакции, что приведет к финансовым потерям как для бизнеса, так и для его клиентов.
“Adversaries can exploit vulnerabilities in both hardcoded credentials and improper credential usage. Once these vulnerabilities are identified, an attacker can use hardcoded credentials to gain unauthorized access to sensitive functionalities of the mobile app. They can also misuse credentials, for instance, by gaining access through improperly validated or stored credentials, thereby bypassing the need for legitimate access.”
Более того, утечка секретов может поставить под угрозу целостность мобильного приложения и привести к дорогостоящим юридическим и репутационным последствиям. Например, если приложение для здравоохранения утечет ключи API, которые позволяют доступ к данным пациентов, это может привести к значительным штрафам со стороны регуляторов и подорвать доверие клиентов.
Инструменты для обнаружения секретов
Чтобы помочь решить проблему утечки секретов, инструменты для их обнаружения стали незаменимыми для современного разработки приложений. Эти инструменты сканируют кодовые репозитории, CI/CD конвейеры и производственные среды на наличие раскрытых секретов, помогая командам выявлять уязвимости до того, как они будут использованы.
Эти инструменты и платформы позволяют осуществлять мониторинг изменений кода в реальном времени, обеспечивая отсутствие случайного захардкоживания секретов в процессе разработки. Интегрируя такие инструменты в жизненный цикл разработки, организации могут значительно снизить риск утечки секретов.
Безопасность секретов – это путь, по которому мы все идем
Управление секретами – это не только технический вопрос; это критическая проблема безопасности, которая может иметь далеко идущие последствия, если не обращаться с ней правильно. Организации могут защитить свои конфиденциальные данные и снизить вероятность дорогостоящих нарушений, понимая риски неправильного использования учетных данных, внедряя bewst практики по обеспечению безопасности секретов и используя инструменты, разработанные для выявления утечек.
Поскольку кибератаки и нарушения продолжают попадать в заголовки новостей, обеспечение безопасности секретов является самой важной стратегией защиты для сохранения безопасности организаций и систем. Слава Богу, что волонтеры OWASP помогают нам следить за постоянно меняющимся кибербезопасным ландшафтом.
Ссылка
- Топ 10 Рисков для Мобильных Приложений, Открытый мировой проект по безопасности приложений (OWASP)
Source:
https://dzone.com/articles/secrets-security-important-issue-mobile-apps