Хранение или использование ранее найденной чувствительной информации
Критичность: СРЕДНИЙ | |
Способ обнаружения: DAST, API |
Описание
Приложение хранит или использует при своей работе чувствительную информацию.
Во время своей работы приложение часто оперирует чувствительной информацией, такой как пароли, различные токены, ключи шифрования и т. д. Во время проведения анализа приложения Стингрей определяем такую информацию согласно правилам поиска и дополнительно проверяет, что найденная чувствительная информация хранится в неизменном виде или используется приложением в других функциях или “зашита“ в исходном коде приложения.
Рекомендации
При необходимости использования чувствительной информации в приложении необходимо убедиться, что она правильно хранится и не попадает в общедоступные места, как, например, системные логи.
При необходимости хранения такой информации рекомендуется использовать шифрование. Для обеспечения конфиденциальности iOS оснащена множеством криптографических функций и методов, с помощью которых приложения iOS могут безопасно осуществлять шифрование и дешифрование (для обеспечения конфиденциальности), а также аутентификацию сообщений (MAC) и цифровые подписи (для проверки целостности).
Чтобы выбрать подходящий в заданных условиях метод шифрования и тип ключа, можно воспользоваться следующей схемой:
Шифрование/дешифрование с использованием Keychain
Для примера рассмотрим шифрование/дешифрование с использованием Keychain. Данный механизм позволяет генерировать и использовать ключи, сгенерированные в аппаратном хранилище ключей iOS. Такой подход является наиболее защищенным с точки зрения хранения ключей, так как закрытый ключ никогда не появляется в памяти, что минимизирует риск его утечки или компрометации.