Serangan injeksi XXE: apa itu dan bagaimana mencegahnya

(Untuk Francesco Rugolo)
29/04/24

Ketika datang ke injeksi XXE kami mengacu pada kerentanan web yang sangat luas yang memungkinkan peretas mengambil alih data di server kami atau melanjutkan dengan apa yang disebut "eskalasi" serangan yang dapat membahayakan server yang diserang dan infrastruktur lain yang terhubung dengannya.

Pertama-tama, mari kita lihat apa yang dimaksud dengan XXEi Injeksi entitas eksternal XML. Namun, untuk menjelaskan cara kerjanya, kita harus mengetahui apa itu XML, singkatan dari XML Bahasa Markup yang Dapat Diperluas.

Singkatnya, dalam ilmu komputer, XML adalah bahasa yang digunakan untuk mendefinisikan elemen dan maknanya dalam sebuah teks. XML dapat diperluas, yaitu memungkinkan Anda menentukan tag khusus, tag yang mengatur dan menentukan apa yang ditemukan dalam dokumen kami.

Dalam dokumen XML, suatu objek dapat direpresentasikan melalui “entitas” alih-alih menggunakan objek itu sendiri.

Dalam file DTD (definisi tipe dokumen) terdapat semua spesifikasi yang menentukan tipe data yang dapat dikandung dokumen XML kita, nilai yang dapat ditetapkan padanya, dan banyak lagi.

XML memungkinkan pembuatan entitas atau kemungkinan mengimpor entitas eksternal, dan inilah definisinya entitas eksternal.

Le entitas eksternal mereka adalah entitas yang tidak ditentukan oleh DTD kami tetapi sepenuhnya berada di luar DTD kami dan ditentukan melalui URL tempat mereka dimuat ke dalam aplikasi.

Sekarang tidak sulit untuk memahami risiko yang dapat ditimbulkan oleh prosedur ini terhadap sistem kita.

Serangan paling umum yang mengeksploitasi kerentanan ini bertujuan untuk mencuri data dan kata sandi dari database kami, namun skenario paling serius terjadi ketika kerentanan ini digunakan untuk melakukan serangan Pemalsuan Permintaan Sisi Server atau SSRF.

SSRF adalah serangan di mana aplikasi milik server dapat digunakan oleh peretas untuk memulai permintaan ke alamat web mana pun dan menyebabkan kompromi pada awalnya pada server yang diserang dan selanjutnya pada infrastruktur apa pun yang terhubung dengannya dan berpotensi rentan.

XXEi terutama menargetkan aplikasi yang melakukan menguraikan (yaitu analisis komponen) XML yang memiliki konfigurasi lemah, aplikasi yang menerima XML dari sumber tidak tepercaya, dan aplikasi yang tidak menonaktifkan penggunaan entitas eksternal.

Untuk menangkal sebagian besar serangan, ada serangkaian tindakan Praktik Terbaik diantaranya yang dapat kami sebutkan:

- prosedur daftar putih di tingkat server, yang bertujuan untuk memblokir masukan apa pun yang tidak sesuai dengan standar keamanan kami;

- melakukan validasi data XML;

- memblokir opsi parser XML yang jelas namun sering tidak digunakan untuk menerima entitas eksternal.

Dengan langkah-langkah sederhana ini, sebagian besar serangan tipe XXE dapat dicegah.

Untuk menemukan kerentanan jenis ini, kita dapat menggunakan alat yang sangat berguna dan kuat yang disebut Suite Bersendawa, perangkat lunak yang mampu memetakan kerentanan aplikasi web dan menganalisis karakteristiknya.

Bagaimanapun, selalu berguna untuk mengingat bahwa sebagian besar serangan disebabkan oleh adanya kerentanan dalam perangkat lunak, yang disebabkan oleh kesalahan pemrogram yang tidak selalu cukup siap untuk pengembangan yang aman, itulah sebabnya kita semakin sering mendengarnya. tentang pelatihan untuk DevOps dan DevSecOps, konsep yang terkait erat dengan pengembangan dan keamanan perangkat lunak.

Sitografi:

https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Pemrosesan

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... (situs dari mana gambar itu diambil)