Главная / Insecure Cryptographic Storage
Что такое Insecure Cryptographic Storage
Суть уязвимости заключается в том, что приложение ненадежно хранит чувствительные данные (пароли, данные кредитных карт) хранятся в открытом виде либо зашифрованы при помощи устаревших / уязвимых / слабых алгоритмов.
Как определить что приложение уязвимо
- Данные которые хранятся долгое время зашифрованы (особенно бэкапы)?
- Только авторизованные пользователи могут получить доступ к расшифрованным данным?
- Используются стойкие алгоритмы шифрования?
- Генерируются сильные ключи шифрования?
- Защищены ли ключи от несанкционированного доступа?
Примеры уязвимости
Пример 1
В бэкапах хранятся надежно зашифрованные данные, но при этом там также хранится и ключ шифрования. Ключ шифрования не должен храниться в том же бэкапе.
Пример 2
В базе данных хранятся несоленые хэши паролей. Если злоумышленник получит доступ к хэшам паролей он сможет сбрутить хэш в течении 4 недель, в то время как на брутфорс соленых хэшей у него ушло бы значительно больше времени (больше нескольких лет)
Защита
- Хранить бэкапы в зашифрованном виде на внешней площадке (другом сервере), ключи шифрования необходимо хранить отдельно от бекапов.
- Использовать стойкие алгоритмы и ключи шифрования
- Хэшировать пароли сильными хэшами и использовать соль
- Защитить все ключи и пароли от неавторизованного доступа.