17 Лют, 2023

Впровадження XML-коду

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Впровадження XML-коду це тип уразливості веб-додатки, що виникає, коли зловмисник може впровадити шкідливий код в полі вводу або XML. Зловмисник може використовувати цю уразливість для маніпулювання XML-даними, що обробляються додатком, що може призвести до виконання ненавмисних команд, розкриття конфіденційних даних або виконання несанкціонованих дій. Вектор атаки може бути направлений через спеціально створений XML-введення, що містить шкідливі теги, сутності коментарі, які можуть привести до виконання коду або витоку даних. Розробникам веб-додатків важливо знати про цю уразливість і робити кроки щодо її запобігання, наприклад, шляхом очищення користувальницького введення, перевірки вхідних даних і використання параметризованих запитів.

Приклад уразливого коду на різних мовах програмування:


В PHP:

				
					$xml_data = $_POST['xml_data'];
$xml_parser = xml_parser_create();
xml_parse($xml_parser, $xml_data);

				
			


У цьому коді $_POST['xml_data'] $_POST['xml_data'] змінна передається безпосередньо в xml_parse() функционируйте без будь-якої перевірки або дезінфекції. Це робить код уразливим для атак з використанням XML-ін'єкцій.

• В Java:

				
					String xmlData = request.getParameter("xml_data");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(new StringReader(xmlData)));

				
			


У цьому коді request.getParameter("xml_data") метод використовується для отримання XML-даних із запиту, якими може маніпулювати зловмисник. Це робить код уразливим для атак з використанням XML-ін'єкцій.

• в C#:

				
					XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(Request["xml_data"]);

				
			


У цьому коді Request["xml_data"] метод використовується для отримання XML-даних із запиту, якими може маніпулювати зловмисник. Це робить код уразливим для атак з використанням XML-ін'єкцій.

Приклади використання XML-ін'єкції

Зчитування конфіденційної інформації:

Зловмисник може впровадити шкідливу корисну навантаження XML, яка використовує уразливість для зчитування конфіденційної інформації з програми або бази даних. Наприклад, зловмисник може ввести корисну навантаження XML, яка витягує всі дані облікового запису користувача, включаючи імена користувачів і паролі.

Зміна даних:

Зловмисник може впровадити шкідливу корисну навантаження XML, яка використовує уразливість для зміни даних в програмі або базі даних. Наприклад, зловмисник може ввести корисну навантаження XML, яка змінює ціну продукту до дуже низького значення.

Відмова в обслуговуванні:

Зловмисник може впровадити шкідливу корисну навантаження XML, яка використовує уразливість для запуску атаки типу "відмова в обслуговуванні" (DoS). Наприклад, зловмисник може впровадити корисну навантаження XML, яка створює нескінченний цикл, змушуючи додаток споживати надмірні ресурси і в остаточному підсумку аварійно завершувати роботу.

Віддалене виконання коду:

Зловмисник може впровадити шкідливу корисну навантаження XML, яка використовує уразливість для виконання довільного коду на сервері. Наприклад, зловмисник може ввести корисну навантаження XML, яка виконує команду на сервері, що дозволяє зловмиснику отримати контроль над сервером.

Методи підвищення привілеїв для впровадження XML

  • Впровадження корисної навантаження XML, яка використовує уразливість в додатку або на сервері, що дозволяє зловмиснику отримати доступ до операційної системи або інших конфіденційних ресурсів.

  • Редагування XML-даних таким чином, щоб зловмисник міг обійти контроль доступу і отримати доступ до конфіденційної інформації чи виконувати дії, на виконання яких він не уповноважений.

  • Впровадження корисної навантаження XML, яка дозволяє зловмиснику виконувати довільний код на сервері, який потім може бути використаний для підвищення привілеїв чи отримання доступу до конфіденційних ресурсів.

  • Використання впровадження XML для керування поведінкою програми таким чином, щоб зловмисник міг отримати контроль над системою або підвищити привілеї. Наприклад, зловмисник може ввести корисну навантаження XML, яка дозволяє йому виконувати адміністративні команди або обходити автентифікації.

  • Використання XML-ін'єкції для створення нового облікового запису з правами адміністратора, що надає зловмиснику повний контроль над системою.

Загальна методологія та контрольний список для впровадження XML

Методологія:

  1. Зрозуміти застосування: Отримаєте глибоке уявлення про програму та її функціональності. Це може включати в себе визначення полів введення, джерел даних і форматів виведення даних.

  2. Визначення полів вводу: Визначте всі поля введення, які беруть XML-дані або XML-подібні дані, включаючи поля пошуку, поля завантаження файлів і інші форми, які приймають користувальницький введення.

  3. Створення плану тестування: Створіть план тестування, в якому описуються кроки, які ви зробите для перевірки вразливостей впровадження XML. Це може включати список тестових прикладів та корисних навантажень, які будуть використовуватися під час тестування.

  4. Тестові корисні навантаження: Вводите тестові корисні навантаження в кожне поле введення, щоб визначити, чи є додаток вразливим для впровадження XML. Тестові корисні навантаження повинні включати різні корисні навантаження XML, у тому числі з викривленими даними, шкідливими сценаріями і тегами, які можуть використовувати відомі уразливості в додатку.

  5. Перевірка результатів: Перевірте результати тестових корисних навантажень, щоб визначити, чи є додаток вразливим для впровадження XML. Це може включати в себе перегляд відповіді сервера, перевірку журналів програми на наявність повідомлень про помилки і перевірку вихідних даних програми, щоб переконатися, що вони правильно відформатовані і не містять будь-яких несподіваних даних.

  6. Перевірка на забруднення HTTP параметрів: Перевірте забруднення параметрів HTTP, відправивши кілька параметрів з однаковим ім'ям, кожен з яких містить різні XML-дані. Це може допомогти виявити уразливості, при яких програма не може розрізняти різні поля введення XML, що призводить до несподіваного поведінки або експлуатації.

  7. Перевірка на наявність вразливостей при включенні файлів: Перевірте наявність вразливостей при включенні файлів, ввівши корисні навантаження XML, які включають посилання на зовнішні файли, такі як файли DTD або інші ресурси. Це може допомогти виявити уразливості, які дозволяють зловмиснику читати або записувати файли на сервері.

  8. Тест на атаки XXE: Перевірка на наявність атак XML External Entity (XXE), які можуть використовуватися для читання файлів на сервері, добування конфіденційних даних або виконання довільного коду. Це можна зробити шляхом впровадження шкідливих корисних навантажень, що містять зовнішні об'єкти, а потім перевірки результатів, щоб визначити, чи була атака успішною.

  9. Тест на уразливості SOAP: Якщо додаток використовує веб-служби на основі SOAP, перевірте їх на наявність вразливостей, які дозволяють зловмиснику впровадити шкідливий код в повідомлення SOAP або змінити його вміст.

  10. Результати документування: Документуйте всі уразливості або потенційні уразливості, які були виявлені під час тестування, включаючи опис уразливості, її серйозність і будь-які рекомендовані кроки по виправленню.

Контрольний список:

  1. Визначте всі поля введення, які беруть XML-дані або XML-подібні дані.

  2. Перевірте перевірку вхідних даних, вводячи корисні дані з спотвореним XML, неприпустимими символами або помилками кодування.

  3. Перевірте забруднення параметрів HTTP, ввівши кілька параметрів з однаковим ім'ям, кожен з яких містить різні XML-дані.

  4. Перевірте наявність вразливостей при включенні файлів, ввівши корисні навантаження XML, які включають посилання на зовнішні файли, такі як файли DTD або інші ресурси.

  5. Перевірте наявність атак XML External Entity (XXE) шляхом впровадження корисних навантажень, що містять зовнішні об'єкти, та перевірки результатів, щоб визначити, чи була атака успішною.

  6. Перевірте уразливості SOAP, ввівши корисні дані повідомлення SOAP та перевіривши результати, щоб визначити, чи була атака успішною.

  7. Перевірте наявність вразливостей шляхом впровадження корисних навантажень, що містять SQL, XPath або інші мови запитів, і перевірки результатів, щоб визначити, чи була атака успішною.

  8. Перевірка на наявність вразливостей типу "відмова в обслуговуванні" шляхом впровадження корисних навантажень, призначених для споживання великих обсягів системних ресурсів, таких як рекурсивні або глибоко вкладені корисні навантаження XML.

  9. Перевірте фільтрування та очищення вхідних даних, впровадивши корисні навантаження, містять HTML-теги, код JavaScript або інший шкідливий код, і перевіривши результати, щоб визначити, чи була атака успішною.

  10. Перевірте повідомлення про помилки і журнали додатків на предмет інформації, яка може бути використана для створення атак з використанням XML-ін'єкцій.

  11. Переконайтеся, що програма не містить конфіденційну інформацію у свої вихідні дані XML, такі як імена користувачів, паролі або інші особисті дані.

  12. Переконайтеся, що програма не дозволяє користувачам завантажувати або завантажувати XML-файли без відповідної фільтрації і перевірки.

Набір інструментів для експлуатації Впровадження XML-коду

Автоматизовані інструменти:

  • Burp Suite – комплексний інструмент тестування безпеки веб-додатків, який включає в себе функції для тестування впровадження XML. Це дозволяє перехоплювати і змінювати XML-запити і відповіді для пошуку вразливостей.

  • OWASP ZAP – інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, який включає в себе набір інструментів для пошуку вразливостей при впровадженні XML. Він надає проксі-сервер, сканер та інші функції для тестування веб-додатків.

  • SOAPUI – тестування інструмент, спеціально розроблений для тестування веб-сервісів, у тому числі тих, які використовують XML. Він дозволяє відправляти і отримувати XML-запити і відповіді, а також маніпулювати ними для перевірки на наявність вразливостей.

  • SoapSonar – тестування інструмент, спеціально розроблений для тестування веб-сервісів на основі SOAP. Він включає в себе функції для тестування XML-повідомлень і виявлення вразливостей.

  • W3af – інструмент тестування безпеки веб-додатків з відкритим вихідним кодом, що включає функції для виявлення вразливостей при впровадженні XML. Він може використовуватися як для ручного, так і для автоматичного тестування.

  • SoapUI Pro – комерційна версія SoapUI, яка включає додаткові функції для тестування веб-сервісів, у тому числі тих, які використовують XML. Він забезпечує інтуїтивно зрозумілий користувальницький інтерфейс і підтримку розширених сценаріїв.

  • IBM AppScan – інструмент тестування безпеки веб-додатків, який включає в себе функції для тестування вразливостей при впровадженні XML. Він може використовуватися як для ручного, так і для автоматичного тестування.

  • Netsparker – інструмент тестування безпеки веб-додатків, який включає в себе функції для виявлення вразливостей при впровадженні XML. Він може використовуватися як для ручного, так і для автоматичного тестування.

  • Acunetix – інструмент тестування безпеки веб-додатків, який включає в себе функції для виявлення вразливостей при впровадженні XML. Він може використовуватися як для ручного, так і для автоматичного тестування.

  • HP WebInspect – інструмент тестування безпеки веб-додатків, який включає в себе функції для тестування вразливостей при впровадженні XML. Він може використовуватися як для ручного, так і для автоматичного тестування.

  • SQLMap – інструмент з відкритим вихідним кодом, спеціально розроблений для виявлення вразливостей SQL-ін'єкцій. Він також включає в себе функції для виявлення вразливостей при впровадженні XML.

  • XML External Entity (XXE) Injection Tool – безкоштовний онлайн-інструмент для виявлення і тестування вразливостей, пов'язаних з впровадженням зовнішніх об'єктів XML.

  • BeEF – платформа для роботи з браузером, яка може використовуватися для тестування на різні типи вразливостей, включаючи впровадження XML.

Ручні Інструменти:

  • XMLSpy – редактор XML, який включає в себе безліч функцій для тестування і налагодження XML. Його можна використовувати для ручного перевірки на наявність вразливостей при впровадженні XML.

  • XML Hammer – інструмент з відкритим вихідним кодом для тестування і перевірки XML-документів. Він включає в себе функції для тестування вразливостей при впровадженні XML.

  • XML Copy Editor – редактор XML з відкритим вихідним кодом, що включає в себе функції для тестування і налагодження XML. Його можна використовувати для ручного тестування на наявність вразливостей при впровадженні XML.

  • Fiddler – проксі-інструмент веб-налагодження, який дозволяє перехоплювати і редагувати веб-трафік. Він включає в себе функції для тестування вразливостей при впровадженні XML.

  • XML Entity Expander – безкоштовний онлайн-інструмент, який дозволяє вам розгортати і відображати об'єкти в XML-документі. Його можна використовувати для ручного тестування на наявність вразливостей при впровадженні XML.

  • Xmlio – інструмент з відкритим вихідним кодом для тестування і перевірки XML-документів. Він включає в себе функції для тестування вразливостей при впровадженні XML.

  • Firefox add-ons – існують різні доповнення Firefox, які можна використовувати для тестування впровадження XML, такі як XML Developer Toolbar і XPath Checker.

Середній бал CVSS Впровадження стекового XML-коду

Загальна система оцінки вразливостей (CVSS) - це стандартна система, використовувана для присвоєння числової оцінки серйозності вразливостей системи безпеки. Оцінка коливається від 0 до 10, причому 10 балів є найсерйознішими.

Оцінка CVSS для уразливості при впровадженні XML буде залежати від різних факторів, таких як конкретна використовується уразливість, вектор атаки і вплив на систему або дані. Таким чином, важко отримати середню оцінку CVSS для впровадження stack XML, не знаючи більш конкретних деталей.

Проте в цілому уразливості, пов'язані з впровадженням XML, можуть призвести до серйозних проблем безпеки, включаючи крадіжку даних, підвищення привілеїв і атаки типу "відмова в обслуговуванні". Ці типи вразливостей часто можуть приводити до високого балу CVSS, зазвичай в діапазоні від 7 до 10, що вказує на серйозну уразливість.

Загальна перерахування слабких місць (CWE)

• CWE-91: впровадження XML – цей CWE виникає, коли ненадійний введення обробляється як XML і введення не очищається належним чином. Зловмисники можуть використовувати цю уразливість для впровадження шкідливого контенту в XML-документ, що може привести до пошкодження або розкриття конфіденційної інформації.

• CWE-611: неправильне обмеження посилання на зовнішні об'єкти XML (XXE) – це CWE виникає, коли додаток дозволяє об'єктам XML посилатися на зовнішні ресурси, такі як файли або веб-служби, без належної перевірки або обмежень. Зловмисники можуть використовувати цю уразливість для отримання конфіденційних даних або виконання шкідливого коду.

• CWE-643: неправильна нейтралізація даних виразів XPath – цей CWE виникає, коли додаток використовує виразу XPath для обробки XML-даних без належного очищення вхідних даних. Зловмисники можуть використовувати цю уразливість для впровадження шкідливого контенту в вираз, що може привести до пошкодження або розкриття конфіденційної інформації.

• CWE-667: неправильна блокування – ця помилка виникає, коли кілька потоків або процесів намагаються отримати доступ до одного і того ж XML-ресурсу без належної блокування або синхронізації. Це може призвести до умовами перегонів, пошкодження даних або інших проблем.

• CWE-668: вплив ресурсу на неправильну сферу – цей CWE виникає, коли додаток дозволяє доступ до XML-ресурсу з іншого домену безпеки або рівня довіри, ніж передбачалося. Зловмисники можуть використовувати цю уразливість для несанкціонованого доступу до ресурсів або підвищення привілеїв.

• CWE-672: операція з ресурсом в неправильній фазі життєвого циклу – цей CWE виникає, коли програма намагається отримати доступ до XML-ресурсу у невідповідний час, наприклад, після його звільнення або до його повної ініціалізації. Це може призвести до пошкодження пам'яті або інших проблем.

• CWE-674: неконтрольована рекурсія – це CWE виникає, коли додаток обробляє рекурсивні XML-дані без належних обмежень або перевірки. Зловмисники можуть скористатися цією вразливістю, щоб викликати відмову в обслуговуванні або інші проблеми.

• CWE-675: повторювані операції з ресурсом – цей CWE виникає, коли додаток виконує повторювані або надлишкові операції з одним і тим же XML-ресурсом. Це може призвести до пошкодження даних, проблем з продуктивністю або інших проблем.

• CWE-676: використання потенційно небезпечної функції – це CWE виникає, коли програма використовує функцію, яка потенційно може призвести до появи вразливостей в системі безпеки, таких як неперевірений enter або переповнення буфера, при обробці XML-даних.

• CWE-677: використання нереентерабельной функції в паралельному контексті – цей CWE виникає, коли додаток використовує нереентерабельную функцію, яка не призначена для обробки декількох одночасних звернень, в контексті, де можливий паралельний доступ. Це може призвести до умовами перегонів, пошкодження даних або інших проблем при обробці XML-даних.

Топ-10 CVE, пов'язаних з впровадженням XML

• CVE-2023-24323 – Було виявлено, що Mojoportal версії v2.7 містить уразливість для впровадження аутентифицированного XML external entity (XXE).

• CVE-2022-47514 – Вразливість при впровадженні зовнішнього об'єкта XML (XXE) в XML-RPC.NET версія 2.5.0 дозволяє віддаленим користувачам, які пройшли перевірку автентичності, проводити атаки на підробку запитів на стороні сервера (SSRF), про що свідчить POST-запит pingback.aspx.

• CVE-2022-46464 – Було виявлено, що ConcreteCMS v9.1.3 вразлива для атак з використанням Xpath. Ця уразливість дозволяє зловмисникам отримати доступ до конфіденційних XML-даними з допомогою створеної корисного навантаження, введеної в папку URL path "3".

• CVE-2022-45326 – Вразливість впровадження XML external entity (XXE) в Kwoksys Kwok Information Server версії до v2.9.5.SP31 дозволяє віддаленим користувачам, які пройшли перевірку автентичності, проводити атаки на підробку запитів на стороні сервера (SSRF).

• CVE-2022-43570 – У версіях Splunk Enterprise нижче 8.1.12, 8.2.9 і 9.0.2 аутентифікований користувач може виконати впровадження зовнішнього об'єкта (XXE) extensible markup language (XML) з допомогою подання. Впровадження XXE призводить до того, що Splunk Web вставляє неправильні документи в помилку.

• CVE-2022-42307 – Була виявлена проблема в Veritas Protection до версії 10.0.0.1 і пов'язаних продуктах Veritas. Основний сервер Internet вразливий для атаки з впровадженням XML External Entity (XXE) через службу DiscoveryService.

• CVE-2022-42301 – Була виявлена проблема в Veritas Protection до версії 10.0.0.1 і пов'язаних продуктах Veritas. Основний сервер Internet вразливий для атаки з впровадженням XML External Entity (XXE) через процес nbars.

• CVE-2022-40747 – “IBM InfoSphere Information Server 11.7 вразливий для атаки з використанням XML External Entity Injection (XXE) при обробці XML-даних. Віддалений зловмисник може скористатися цією уразливістю для розкриття конфіденційної інформації або використання ресурсів пам'яті. Ідентифікатор IBM X-Force: 236584".

• CVE-2022-40705 – ** НЕ ПІДТРИМУЄТЬСЯ ПРИ ПРИЗНАЧЕННІ ** Вразливість неправильного обмеження посилання на зовнішню сутність XML RPCRouterServlet Apache SOAP дозволяє зловмисникові читати довільні файли за допомогою протоколу HTTP. Ця проблема зачіпає Apache SOAP версії 2.2 і пізніших версій. Невідомо, порушені також попередні версії. ПРИМІТКА: Ця уразливість зачіпає тільки ті продукти, які більше не підтримуються супроводжуючим.

• CVE-2022-38389 – IBM Tivoli Workload Scheduler 9.4, 9.5 10.1 і вразливий для атаки з використанням XML External Entity Injection (XXE) при обробці XML-даних. Віддалений зловмисник може скористатися цією уразливістю для розкриття конфіденційної інформації або використання ресурсів пам'яті. Ідентифікатор IBM X-Force: 233975.

Впровадження XML-коду подвиги

XXE Ін'єкція: Цей експлойт заснований на CWE-611 і включає в себе впровадження шкідливих XML-об'єктів XML-документ. Потім зловмисник може використовувати ці об'єкти для читання файлів, доступу до мережевих ресурсів або віддаленого виконання коду.

Впровадження XPath: Цей експлойт заснований на CWE-643 і включає впровадження шкідливого коду в вираз XPath в XML-документі. Потім зловмисник може використовувати цей код для зміни або вилучення даних з документа, що може привести до пошкодження або розкриття конфіденційної інформації.

Ін'єкція МИЛА: Цей експлойт включає впровадження шкідливого коду повідомлення SOAP, які представляють собою сполучення на основі XML, які використовуються у веб-службах. Потім зловмисник може використовувати цей код для зміни або вилучення даних з повідомлення, що може привести до пошкодження або розкриття конфіденційної інформації.

Ін'єкція SAML: Цей експлойт включає в себе впровадження шкідливого XML-коду повідомлення SAML, які використовуються для аутентифікації при єдиному вході. Потім зловмисник може використовувати цей XML-файл для обходу аутентифікації, отримання доступу до захищених ресурсів або підвищення привілеїв.

SVG - ін'єкція: Цей експлойт включає в себе впровадження шкідливого XML документи SVG (Scalable Vector Graphics), які використовуються для веб-графіки. Потім зловмисник може використовувати цей XML-файл для віддаленого виконання коду або крадіжки даних з браузера користувача.

Впорскування RSS: Цей експлойт включає в себе впровадження шкідливого XML канали RSS (Really Simple Syndication), які використовуються для синдикації новин і контенту. Потім зловмисник може використовувати цей XML-файл для віддаленого виконання коду або крадіжки даних з браузера користувача.

Впровадження HTML-коду: Цей експлойт включає в себе впровадження шкідливого XML-коду в HTML-документи, які використовуються для веб-контенту. Потім зловмисник може використовувати цей XML-файл для зміни зовнішнього вигляду чи поведінки сторінок, що може призвести до пошкодження або крадіжки даних.

Практикуючись в тестуванні на Впровадження XML-коду

Створіть своє власне вразливе додаток:
Ви можете створити простий веб-додаток, вразливе для впровадження XML, і використовувати його для практичного тестування на наявність цих вразливостей. В Інтернеті є безліч ресурсів, які можуть допомогти вам навчитися створювати веб-додатки з уразливими, наприклад проект OWASP WebGoat.

Використання уразливого додатка:
Існує безліч вразливих додатків, доступних для скачування, які ви можете використовувати для практичного тестування вразливостей при впровадженні XML. Деякі приклади включають біса вразливе веб-додаток (DVWA), Mutillidae і Dojo веб-безпеки.

Використовуйте сканер веб-додатків:
Існує безліч доступних сканерів, веб-додатків, які можуть автоматично перевіряти уразливості при впровадженні XML, таких як Burp Suite, OWASP ZAP і Acunetix. Ви можете використовувати ці інструменти для сканування власних веб-додатків або вразливих додатків, щоб попрактикуватися у виявленні і використанні вразливостей, пов'язаних з впровадженням XML.

Беріть участь в онлайн-випробуваннях:
Існує безліч онлайн-завдань і CTF (змагання за захоплення прапора), які включають у себе завдання з впровадження XML. Ці проблеми можуть стати цікавим способом попрактикуватися у тестуванні на наявність вразливостей і позмагатися з іншими, щоб дізнатися, хто зможе вирішити їх швидше за всіх.

Для вивчення XML-ін'єкції

OWASP: Проект Open Web Application Security Project (OWASP) - це некомерційна організація, яка надає ресурси та інструменти, що допомагають підвищити безпеку програмного забезпечення. Їх веб-сайт включає в себе ряд ресурсів, пов'язаних з впровадженням XML, включаючи сторінку, присвячену цій темі. Сторінка містить інформацію про те, що таке впровадження XML, як воно працює і як його запобігти.

Веб-козел: WebGoat - це свідомо небезпечне веб-додаток, який можна використовувати для вивчення безпеки веб-додатків. Додаток включає в себе ряд уроків, пов'язаних з впровадженням XML, які можуть допомогти вам дізнатися про цю уразливість на практиці.

Онлайн-курси: Існує безліч доступних онлайн-курсів, які допоможуть вам дізнатися про безпеку веб-додатків і впровадженні XML. Деякі приклади включають курси, пропоновані Udemy, Coursera і Pluralsight.

Книги: Існує безліч доступних книг на тему безпеки веб-додатків і впровадження XML. Деякі популярні книги включають "Безпека веб-додатків, керівництво для початківців" Брайана Саллівана і Вінсента Ллю, "Злом відкритих веб-додатків" Джоела Скамбрея, Майка Шеми і Калеба Сіма і "Керівництво хакера веб-додатків" Дэффида Штуттарда і Маркуса Пінто.

Конференції та зустрічі: Відвідування конференцій з безпеки і місцевих зборів може стати відмінним способом дізнатися про уразливість при впровадженні XML і інших темах безпеки. На цих заходах часто проводяться бесіди та семінари з конкретних питань безпеки, включаючи впровадження XML.

Книги з оглядом впровадження XML

"Безпека веб-додатків: керівництво для початківців" Брайан Салліван і Вінсент Лью – Ця книга являє собою введення в безпеку веб-додатків і включає розділ про впровадження XML. Це відмінна відправна точка для тих, хто вперше знайомий з безпекою веб-додатків.

"Злом відкритих веб-додатків" автор: Джоел Скамбрей, Майк Шема і Калеб Сіма – У цій книзі представлений детальний огляд безпеки веб-додатків, включаючи впровадження XML. Це всеосяжний ресурс для всіх, хто зацікавлений у вивченні безпеки веб-додатків.

"Керівництво хакера веб-додатків" автор: Дафидд Штуттард і Маркус Пінто – Ця книга являє собою всеосяжне керівництво по тестуванню безпеки веб-додатків, включаючи опис впровадження XML. Це важливий ресурс для всіх, хто цікавиться безпекою веб-додатків.

"Межсайтовые скриптові атаки: експлойти XSS і захист" Сет Фоги, Єремія Гроссман і Роберт Хансен – У цій книзі розглядаються атаки з використанням міжсайтових сценаріїв, які можуть використовуватися для використання вразливостей, пов'язаних з впровадженням XML. Це відмінний ресурс для тих, хто хоче дізнатися про безпеку веб-додатків в цілому.

"Куховарська книга XSLT" автор: Сел Мангано – У цій книзі розповідається про використання XSLT, який можна використовувати для перетворення XML-документів. Це цінний ресурс для тих, хто хоче дізнатися більше про XML і пов'язаних з ним технологіях.

"Веб-безпеку, конфіденційність і комерція" Сімсона Гарфинкель і Джин Спаффорд – Ця книга охоплює широкий спектр тем веб-безпеки, включаючи впровадження XML. Це цінний ресурс для тих, хто цікавиться безпекою веб-додатків.

"Професійна розробка XML за допомогою інструментів Apache: Xerces, Xalan, FOP, Cocoon, Axis, Xindice" автор: Теодор У. Леунг і Скотт Ганьо – У цій книзі розповідається про використання інструментів Apache для розробки XML. Це цінний ресурс для розробників, що працюють з XML.

"Обробка XML за допомогою Python" автор: Шон МаКграт – У цій книзі розповідається про використання Python для обробки XML, включаючи опис впровадження XML. Це відмінний ресурс для тих, хто цікавиться як Python, так і XML.

"Довідник з XML" Чарльз Ф. Голдфарб, Підлогу Прескод і Стів ДеРоуз – Ця книга являє собою всеосяжне керівництво по XML і пов'язаних з ним технологій. Це цінний ресурс для тих, хто хоче дізнатися про XML в цілому.

"Кишеньковий довідник XML" Саймон Сен–Лоран і Майкл Фіцджеральд - Ця книга являє собою короткий довідник з XML і пов'язаних з ним технологій. Це відмінний ресурс для тих, хто шукає короткий довідник з XML.

Список корисних навантажень XML Injection

  1. <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]><foo>&xxe;</foo> Ця корисна навантаження включає в себе DTD (визначення типу документа), який визначає зовнішню сутність з ім'ям "xxe". Цей об'єкт посилається на файл "/etc/passwd", який може бути використаний для отримання конфіденційної інформації.

  2. <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE foo [<!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo> Ця корисна навантаження аналогічна першій, але вона також визначає елемент "foo" як має БУДЬ-яку інформацію. Це може дозволити зловмиснику ввести в довільний документ XML-файл.

  3. <foo><bar><![CDATA[<]]>script<![CDATA[>]]>alert('XSS')<![CDATA[<]]>/script<![CDATA[>]]></bar></foo> Ця корисна навантаження намагається ввести тег сценарію в документ, використовуючи розділи CDATA, щоб обійти будь-кодування або фільтрацію, які можуть бути на місці.

  4. <foo><bar>&#x3c;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3e;alert('XSS')&#x3c;/&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3e;</bar></foo> This payload is similar to the previous one but uses Unicode encoding to represent the characters “<” and “>”. This can be used to bypass some types of input validation.

  5. <foo><bar><![CDATA[<!ENTITY xxe SYSTEM "file:///etc/passwd">]]>&xxe;</bar></foo> Ця корисна навантаження намагається визначити зовнішню сутність безпосередньо в елементі XML-документа. Це можна використовувати для обходу фільтрів, які шукають тільки об'єкти, визначені в DTD.

Як бути захищеним від впровадження XML

  1. Перевірка вхідних даних: Перевірте всі вхідні дані, які передаються в аналізатор XML. Це включає в себе перевірку на відповідність XML-схемою або DTD, а також перевірку правильності оформлення.

  2. Уникайте вбудованих DTD: Уникайте використання вбудованих DTD, оскільки вони можуть бути використані для визначення об'єктів, які можуть дозволити зловмиснику отримати доступ до конфіденційних даних.

  3. Відключити зовнішні об'єкти: Вимкніть обробку зовнішніх об'єктів в аналізаторі XML. Це можна зробити, встановивши для функції "EXTERNAL_ENTITIES" значення false.

  4. Використовуйте білий список: Використовуйте білий список дозволених символів або шаблонів для полів вводу, щоб запобігти ін'єкційні атаки.

  5. Фільтрувати дані, що вводяться користувачем: Filter user input to remove potentially harmful characters, such as “<” and “>”. This can be done by encoding the input before it is passed to the XML parser.

  6. Використовуйте виділену бібліотеки XML: Використовуйте спеціальну бібліотеку XML для аналізу XML-документів замість створення користувацьких аналізаторів. Ці бібліотеки часто мають вбудований захист від поширених атак з використанням XML-ін'єкцій.

  7. Обмежити доступ до конфіденційних даних: Обмежте доступ до конфіденційних даних і файлів, налаштувавши відповідні дозволи на доступ до файлів та засоби контролю доступу.

Заходи по пом'якшенню наслідків для впровадження XML

  1. Уникайте використання DTD: DTD (Визначення типів документів) можуть використовуватися для визначення зовнішніх об'єктів, які можуть бути використані зловмисниками. По можливості уникайте використання DTD.

  2. Використовуйте перевірку XML-схеми: Використовуйте XML-схему для перевірки вхідних даних і запобігання обробки шкідливого вмісту. Перевірка схеми XML більш безпечна, ніж перевірка DTD, оскільки вона не вразлива для атак XXE (XML External Entity).

  3. Використовуйте безпечний аналізатор XML: Використовуйте безпечний аналізатор XML, розроблений з урахуванням міркувань безпеки. Деякі популярні безпечні аналізатори включають Xerces, XMLSec і libxml2.

  4. Вимкнути обробку зовнішніх об'єктів: Вимкніть обробку зовнішніх об'єктів в аналізаторі XML. Це можна зробити, встановивши для функції "EXTERNAL_ENTITIES" значення false.

  5. Фільтрувати дані, що вводяться користувачем: Filter user input to remove potentially harmful characters, such as “<” and “>”. This can be done by encoding the input before it is passed to the XML parser.

  6. Використовуйте білий список: Використовуйте білий список дозволених символів або шаблонів для полів вводу, щоб запобігти ін'єкційні атаки.

  7. Обмежити доступ до конфіденційних даних: Обмежте доступ до конфіденційних даних і файлів, налаштувавши відповідні дозволи на доступ до файлів та засоби контролю доступу.

  8. Використовуйте шифрування: Використовуйте шифрування для захисту конфіденційних даних, які зберігаються або передаються в XML-документах.

Висновок

Впровадження XML-коду це тип ін'єкційної атаки, націленої на додатки на основі XML. Це відбувається, коли зловмисник вводить шкідливі XML-дані в XML-документ, що може призвести до несподіваного поведінки програми. Атаки з використанням XML-ін'єкцій можуть використовуватися для отримання конфіденційних даних, виконання несанкціонованого коду і захоплення системи.

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

Щоб попрактикуватися і дізнатися більше про впровадження XML, рекомендується використовувати тестові середовища, читати книги і статті з цього питання, а також відвідувати онлайн-курси і тренінги. Слідуючи цим рекомендаціям і залишаючись в курсі останніх загроз безпеки, ви можете допомогти захистити свої додатки і дані від атак з впровадженням XML.

Інші Послуги

Готові до безпеки?

зв'язатися з нами