XML External Entity Açığı Nedir? Güvenli Parser Ayarları

0 Yanıt 1 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
XML External Entity (XXE) Açığı nedir ve nasıl önlenir?

XML, veri alışverişinde oldukça yaygın kullanılan ve karmaşık yapıları temsil edebilen bir veri biçimidir. Ancak, doğru yapılandırılmadığında, XML dosyalarını işleyen uygulamalarda ciddi güvenlik açıklarına yol açabilir. Bunlardan biri de "XML External Entity" (XXE) açığıdır.

XXE, XML parser'ın dış kaynaklara erişim yetkisi verdiği durumlarda ortaya çıkar. Bir XML dokümanı içerisinde, dış URL veya dosya referansları (entities) kullanıldığında, saldırganlar bu yapılandırmayı kötü amaçlı kullanabilir. Örneğin, sunucu üzerindeki hassas dosyalara erişim veya ağ isteği yapma gibi saldırılar mümkün hale gelir. Bu açık, özellikle "entity" tanımlarıyla içeriklerin içeriğe gömüldüğü durumlarda kendini gösterir.

Güvenli parser ayarları ise bu açıkların önüne geçmek için kritik öneme sahiptir. İşte temel alınması gereken adımlar:

  1. Dış kaynaklara erişimi devre dışı bırakmak: Parser’da "load_external_dtd" veya "external-general-entities" gibi ayarları kapatmak.
  2. DTD (Document Type Definition) desteğini devre dışı bırakmak: Bu, entity tanımlarını ve dış referansları engeller.
  3. Güvenilir olmayan XML girişlerini filtrelemek veya doğrulamak: Giriş verilerini, sadece belirli güvenilir kaynaklardan alın.
  4. Güncel ve güvenilir XML parser kütüphaneleri kullanmak: Modern kütüphaneler, XXE'ye karşı yerleşik koruma sağlar.


Örneğin, Java'da JAXB veya SAX parser kullanırken aşağıdaki gibi ayarlar yapılabilir:

JAVA
123456
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);


Bu ayarlar, dış entity yüklemesini engelleyerek olası saldırı vektörlerini ortadan kaldırır.

Sonuç olarak, XML işleme süreçlerinde güvenlik önlemlerini almak, sadece performans veya doğruluk değil, aynı zamanda uygulamanın bütünlüğü ve verilerin korunması açısından kritik önemdedir. Modern uygulamalarda, bu ayarları gözetmek ve düzenli güncellemeler yapmak, XXE açıklarına karşı en etkili savunma yöntemidir.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 2, Üyeler: 2, Misafirler: 0)
Toplam: 2 (üyeler: 2, misafirler: 0)
0 alıntı seçildi