A4. XML External Entities (XXE). OWASP TOP 10

Злоумышленник может использовать уязвимый XML процессор, если он может загружать XML или включать опасный контент в документ XML, используя уязвимый код, зависимости или интеграции. Инструменты SAST (https://www.owasp.org/index.php/SourceCodeAnalysisTools) могут обнаружить эту проблему путем проверки зависимостей и конфигурации. Инструменты DAST (https://www.owasp.org/index.php/Category:VulnerabilityScanning_Tools) требуют дополнительных действий от пользователя для обнаружения и использования этой проблемы. Все тестировщики должны быть обучены тестированию на угрозы этого типа. Недостатки могут быть использованы для извлечения данных, выполнения удаленного запроса с сервера, сканирования внутренних систем, выполнения атак типа «отказ в обслуживании», а также выполнения других атак. Влияние на бизнес зависит от потребностей защиты всех затронутых приложений и данных.

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

Приложения и, в частности, веб-службы на основе XML или последующие интеграции могут быть уязвимы для атак, если: * Приложение принимает XML напрямую или загружает XML, особенно из ненадежных источников, или вставляет ненадежные данные в документы XML, которые затем анализируются процессором XML.

  • Для любого из процессоров XML в приложении или веб-службах на основе SOAP включены определения типов документов (DTD) . Поскольку точный механизм отключения обработки DTD варьируется в зависимости от процессора, рекомендуется обратиться к справочному материалу, например к шпаргалке OWASP «Предотвращение XXE» (https://www.owasp.org/index.php/XMLExternalEntity(XXE)PreventionCheatSheet).
  • Если приложение использует SAML для обработки идентификаторов в целях федеративной безопасности или единого входа (SSO). SAML использует XML для подтверждения личности и может быть уязвимым.
  • Если приложение использует SOAP до версии 1.2, оно может быть подвержено атакам XXE, если сущности XML передаются в инфраструктуру SOAP.
  • Вероятность уязвимости к атакам XXE означает, что приложение уязвимо для атак отказа в обслуживании, включая атаку Billion Laughs (https://en.wikipedia.org/wiki/Billionlaughsattack).

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

Обучение разработчиков имеет важное значение для выявления и смягчения последствий XXE. Кроме того, предотвращение XXE обязует:

  • По возможности используйте менее сложные форматы данных, такие как JSON, и избегайте сериализации конфиденциальных данных.
  • Исправьте или обновите все процессоры и библиотеки XML, используемые приложением или в базовой операционной системе. Используйте проверки зависимостей. Обновите SOAP до SOAP 1.2 или выше.
  • Отключите внешнюю сущность XML и обработку DTD во всех синтаксических анализаторах XML в приложении в соответствии с таблицей OWASP «Предотвращение XXE» .
  • Реализуйте положительную («белый список») проверку, фильтрацию или очистку входных данных на стороне сервера, чтобы предотвратить враждебные данные в документах, заголовках или узлах XML.
  • Убедитесь, что функция загрузки файлов XML или XSL проверяет входящий XML с использованием проверки XSD или аналогичной.
  • Инструменты SAST могут помочь обнаружить XXE в исходном коде, хотя ручная проверка кода — лучшая альтернатива для больших и сложных приложений со многими интеграциями.
  • Если эти элементы управления невозможны, рассмотрите возможность использования виртуальных исправлений, шлюзов безопасности API или брандмауэров веб-приложений (WAF) для обнаружения, мониторинга и блокирования атак XXE

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

  • https://www.owasp.org/index.php/Category:OWASPApplicationSecurityVerificationStandard_Project#tab.3DHome
  • https://www.owasp.org/index.php/TestingforXMLInjection(OTG-INPVAL-008)
  • https://www.owasp.org/index.php/XMLExternalEntity(XXE)Processing
  • https://www.owasp.org/index.php/XMLExternalEntity(XXE)PreventionCheatSheet
  • https://www.owasp.org/index.php/XMLSecurityCheat_Sheet
Оцените статью
( Пока оценок нет )