XXE-инъекционная атака: что это такое и как ее предотвратить

(Ди Франческо Руголо)
29/04/24

Когда дело доходит до ХХЕ впрыск мы имеем в виду очень широко распространенную веб-уязвимость, которая позволяет хакеру завладеть данными на наших серверах или приступить к так называемой «эскалации» атаки, которая может поставить под угрозу атакованный сервер и другие связанные с ним инфраструктуры.

Прежде всего, давайте посмотрим, что означает XXEi Внедрение внешних сущностей XML. Однако, чтобы объяснить, как это работает, мы должны знать, что такое XML, аббревиатура от расширяемый язык разметки.

Короче говоря, в информатике XML — это язык, используемый для определения элементов и их значений в тексте. XML является расширяемым, то есть он позволяет вам определять собственные теги, теги, которые организуют и определяют то, что находится в нашем документе.

В документе XML объект может быть представлен через «сущность» вместо использования самого объекта.

В файле DTD (определение типа документа) есть все спецификации, определяющие типы данных, которые может содержать наш XML-документ, значения, которые ему можно присвоить, и многое другое.

XML допускает создание сущностей или возможность импорта внешних, и вот мы подошли к определению внешние сущности.

Le внешние сущности это сущности, не определенные в нашем DTD, но полностью внешние по отношению к нему и указанные через URL-адрес, с которого они загружаются в приложение.

Теперь нетрудно понять, какие риски эта процедура может представлять для наших систем.

Наиболее распространенные атаки, использующие эту уязвимость, направлены на кражу данных и паролей из наших баз данных, но наиболее серьезный сценарий возникает, когда эта уязвимость используется для подделки запроса на стороне сервера или атаки SSRF.

SSRF — это атака, при которой хакер может использовать приложение, принадлежащее серверу, для инициирования запросов к любому веб-адресу и привести к компрометации первоначально атакованного сервера, а затем и любой подключенной к нему и потенциально уязвимой инфраструктуры.

XXEi в первую очередь нацелен на приложения, выполняющие разбор (т. е. компонентный анализ) XML со слабой конфигурацией, приложения, принимающие XML из ненадежных источников, и приложения, которые не отключают использование XML. внешние сущности.

Для отражения большинства атак существует целый ряд лучшие практики среди которых можно отметить:

- процедура белый список на уровне сервера, целью которого является блокировка любого ввода, не соответствующего нашим стандартам безопасности;

- выполнить проверку данных XML;

- заблокировать очевидную, но часто неиспользуемую возможность синтаксических анализаторов XML принимать внешние объекты.

С помощью этих простых мер можно предотвратить большой процент атак типа XXE.

Чтобы найти любые уязвимости этого типа, мы в любом случае можем использовать очень полезный и мощный инструмент, называемый Люкс Burp, программное обеспечение, способное отображать уязвимости веб-приложения и анализировать его характеристики.

В любом случае всегда полезно помнить, что большинство атак происходит из-за наличия уязвимостей в программном обеспечении, связанных с ошибками программистов, которые не всегда адекватно подготовлены к безопасной разработке, поэтому мы все чаще слышим об обучении DevOps и DevSecOps — концепциям, тесно связанным с разработкой программного обеспечения и безопасностью.

Ситография:

https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Обработка

https://portswigger.net/burp/documentation

https://www.redhat.com/it/topics/devops

https://www.pluribus-one.it/it/servizi/formazione/offerta-formativa-2

https://owasp.org/www-project-devsecops-guideline

https://abu-talha.medium.com/xml-external-entity-xxe-attacks-understandi... (сайт, с которого взято изображение)