A3. Sensitive Data Exposure. OWASP TOP 10

Вместо того, чтобы напрямую атаковать криптографию, злоумышленники крадут ключи, выполняют атаки типа «man-in-the-middle» или крадут текстовые данные с сервера, находясь в пути или с клиента пользователя (браузера). Обычно требуется провести атаку вручную. За последние несколько лет это была самая распрастраненная атака. Главный недостаток — нешифрованные конфиденциальные данные. Уязвимость ставит под угрозу все данные, которые должны были быть защищены. Как правило, эта информация включает в себя данные конфиденциальной личной информации (медицинские записи, учетные данные, личные данные и кредитные карты, которые часто требуют защиты, как это определено законами или нормативными актами).

Является ли приложение уязвимым?

Первым делом необходимо определить потребности защиты данных в пути и в состоянии покоя. Например, пароли, номера кредитных карт, медицинские карты, личная информация и коммерческая тайна требуют дополнительной защиты, особенно, если эти данные подпадают под действие законов о конфиденциальности, например, общего регламента ЕС о защите данных (GDPR), или нормативных актов (защиты финансовых данных, PCI DSS). Для всех таких данных:

  • Передаются ли какие-либо данные в виде открытого текста? Касается протоколов HTTP, SMTP, FTP. Внешний трафик особенно опасен. Проверьте весь внутренний трафик, например, между балансировщиками нагрузки, веб-серверами или внутренними системами;
  • Используются ли какие-либо старые или слабые криптографические алгоритмы по умолчанию или в более старом коде?;
  • Используются ли крипто-ключи по умолчанию, генерируются или повторно используются слабые крипто-ключи или отсутствует правильное управление ключами или ротация?;
  • Не применяется ли шифровани, например, отсутствуют какие-либо директивы или заголовки безопасности агента пользователя (браузера);
  • Агент пользователя (например, почтовый клиент) не проверяет, является ли полученный сертификат сервера действиетльным;

Как предотвратить

  • Классифицируйте данные, обработанные, сохраненные или переданные приложением. Определите данные, которые являются конфиденциальными в соответствии с законами о конфиденциальности, нормативными требованиями или потребностями бизнеса;
  • Примените средства управления согласно классификации;
  • Не храните конфиденциальные данные без необходимости. Откажитесь от него как можно скорее или используйте токены, совместимые с PCI DSS. Данные, которые не могут быть сохранены, не могут быть украдены;
  • Обязательно шифруйте все конфиденциальные данные в состоянии покоя;
  • Убедитесь в наличии современных и надежных стандартных алгоритмов, протоколов и ключей. Используйте правильное управление ключами. Обновляйте криптобиблиотеки;
  • Шифруйте все передаваемые данные с помощью безопасных протоколов, таких как TLS, с шифрами и секретностью (PFS). Обеспечьте шифрованеи с использованием директив (HSTS: HTTP Strict Transport Security).
  • Отключите кэширование для ответа, где содержатся конфиденциальные данные.
  • Храните пароли, используя мощные адаптивные и соленые функции хеширования с рабочим коэффициентом (фактором задержки), такие как Argon2, scrypt, bcrypt, pbkdf2.
  • Самостоятельно проверьте эффективность конфигурации и настроек.

Примеры сценариев атаки:

  • Приложение шифрует номера кредитных карт в базе данных, используя автоматическое шифрование базы данных. Тем не менее, эти данные автоматически расшифровываются при получении, что позволяет недостатку SQL — инъекции получить номера кредитных карт в виде открытого текста;
  • Сайт не использует и не применяет TLS для всех границ или поддерживает слабое шифрование. Злоумышленник отслеживает сетевой трафик (например, в небезопасной сети), понижает количество соединение с HTTPS до HTTP, перехватывает запросы и захватывает cookie-файл сеанса пользователя. Затем злоумышленник воспроизводит этот файл cookie и захватывает сеанс пользователя. Вместо вышеперечисленного они могут изменить все передаваемые данные, например, получателя денежного перевода;
  • База данных паролей использует простые хеши для хранения пароелй всех пользователей. Ошибка загрузки файла позволяет злоумышленнику получить базу данных паролей. Простые хеши могут быть взломаны графическими процессорами (GPU) достаточно быстро;

Полезные ссылки:

  • https://www.owasp.org/index.php/XSS(CrossSiteScripting)PreventionCheatSheet
  • https://www.owasp.org/index.php/XSSFilterEvasionCheatSheet
  • http://wpl.codeplex.com/
  • https://github.com/yahoo/serialize-javascript
  • https://www.owasp.org/index.php/OWASPJavaEncoderProject#tab=UsetheJavaEncoder_Project
  • http://msdn.microsoft.com/en-us/library/ms972969.aspx#securitybarriers_topic6
  • https://www.owasp.org/index.php/TransportLayerProtectionCheatSheet
Оцените статью
( 1 оценка, среднее 1 из 5 )