SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Kayıtlar

Kategori Güvenlik Yanlış Yapılandırması / Bilgi İfşası
Tipik Önem Derecesi Orta
OWASP A05:2021 – Güvenlik Yanlış Yapılandırması
CWE CWE-548: Dizin Listeleme Yoluyla Bilgi İfşası
Diğer adları Dizin Tarama, Açık Dizin, Index Of, Apache Indexes
Etkilenen sistemler Apache HTTP Server, Nginx, IIS ve varsayılan dizin listeleme denetimi olmayan tüm web sunucuları
İstismar kolaylığı Önemsiz — yalnızca bir tarayıcı yeterlidir

Genel Bakış

Dizin listeleme (dizin tarama veya dizin gösterimi olarak da bilinir), bir web sunucusu; varsayılan dizin dosyası (örn. index.html, index.php) bulunmadığında ve dizin listeleme açıkça ya da örtük olarak etkinleştirildiğinde, o dizindeki tüm dosya ve alt dizinleri listeleyen bir HTML sayfası döndürecek şekilde yapılandırıldığında ortaya çıkar. Oluşturulan sayfa genellikle dosya adlarını, boyutlarını ve son değiştirilme zaman damgalarını içererek saldırgana sunucunun dosya sistemi yapısının ayrıntılı bir haritasını sunar.

Bu durum, bir yazılım hatası değil, güvenlik yanlış yapılandırması (CWE-548) olarak sınıflandırılır. Pek çok web sunucusu, dizin listelemeyi varsayılan olarak veya geliştirme aşamasında etkinleştirir; bu özellik üretim ortamlarında çoğunlukla farkında olmadan açık bırakılır.

Nasıl Çalışır?

Bir tarayıcı, sunucuda bir dizine çözümlenen bir URL isteğinde bulunduğunda, web sunucusu önce varsayılan bir belge arar. Herhangi bir belge bulunamazsa ve sunucu yapılandırması dizin listelemeye izin veriyorsa, sunucu bir otomatik dizin sayfası oluşturup döndürür; bu sayfa genellikle Index of /yol başlığını taşır. Saldırgan daha sonra şunları yapabilir:

  • Listedeki bağlantıları takip ederek tüm dosya ve alt dizinleri yinelemeli biçimde sayımlamak.
  • Kamuya açık olmayan yapılandırma dosyalarını (.env, web.config, php.ini), yedek dosyaları (.bak, .sql, .zip) veya günlük dosyalarını indirmek.
  • Yazılım sürümlerini, çerçeve iç yapılarını veya dağıtım yapıtlarını tespit ederek saldırı yüzeyini önemli ölçüde daraltmak.
  • Gizli yönetim uç noktalarını, düz dosyalarda saklanan API anahtarlarını veya web kök dizini altına yanlışlıkla yerleştirilmiş özel anahtarları keşfetmek.
  • Elde edilen bilgileri diğer güvenlik açıklarıyla (örn. yol geçişi, LFI) birleştirerek daha derin saldırılar gerçekleştirmek.

Apache HTTP Server, dizin listelemeyi Options Indexes yönergesi aracılığıyla etkinleştirir. Nginx için autoindex on; kullanılır. Microsoft IIS, yapılandırmasında açılıp kapatılabilen bir "Dizin Tarama" özelliğine sahiptir.

Saldırganlar ve arama motorları açık dizinleri kolaylıkla keşfedebilir. Arama motorları bu dizinleri intitle:"index of" gibi sorgular altında dizinleyerek Google Dork aramaları yoluyla ifşa edilen dizinlerin bulunmasını son derece kolaylaştırır.

İş Etkisi

Dizin listelemenin doğrudan önem derecesi, hangi dosyaların ifşa edildiğine büyük ölçüde bağlıdır. En iyi ihtimalle saldırganlara keşif değeri sağlar; en kötü durumda kimlik bilgilerinin, kişisel verilerin veya fikri mülkiyetin anında ifşa edilmesine yol açar. Başlıca riskler şunlardır:

  • Veri ihlali: Web kök dizininde saklanan veritabanı dökümleri, kullanıcı kayıtları veya API kimlik bilgilerinin ifşa edilmesi; GDPR, HIPAA, PCI DSS ve benzeri yönetmeliklere göre bildirimi zorunlu bir ihlal teşkil edebilir.
  • Kimlik bilgisi ele geçirilmesi: Ortam dosyaları (.env) çoğunlukla veritabanı parolalarını, gizli anahtarları ve üçüncü taraf API jetonlarını içerir.
  • Fikri mülkiyet kaybı: Kaynak kodu arşivleri veya yayınlanmamış içerikler doğrudan indirilebilir.
  • İleri saldırıları kolaylaştırma: Dizin yapısının bilinmesi, saldırganlara hedefli enjeksiyon, geçiş veya kimlik doğrulama atlama saldırıları tasarlamalarında yardımcı olur.
  • İtibar zararı: Dışarıdan kişiler veya gazeteciler tarafından keşfedilmesi önemli itibar hasarına neden olabilir.

Nasıl Düzeltilir?

  1. Apache HTTP Server: İlgili <Directory> bloğundan veya .htaccess dosyasından Indexes seçeneğini kaldırın ya da olumsuzlayın:
    Options -Indexes
    Ayrıca global yapılandırmanın olumsuzlama bayrağı olmadan Options Indexes içermediğinden emin olun.
  2. Nginx: autoindex seçeneğinin off olduğundan emin olun (varsayılan değer budur, ancak açıkça doğrulayın):
    autoindex off;
  3. Microsoft IIS: IIS Yöneticisi aracılığıyla (Siteler → siteyi seçin → Dizin Tarama → Devre Dışı Bırak) veya web.config üzerinden "Dizin Tarama" özelliğini devre dışı bırakın:
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  4. Varsayılan dizin dosyası ekleyin: Erişilebilir olması gereken her dizine bir index.html veya eşdeğeri yerleştirerek sunucunun listeleme yerine o dosyayı döndürmesini sağlayın. Hiçbir şekilde erişilmemesi gereken dizinler için erişimi tamamen engelleyin.
  5. Dizin düzeyinde erişimi kısıtlayın: Var olması ancak taranmaması gereken dizinler için açık bir reddetme kuralı ekleyin:
    # Apache
    <Directory /var/www/html/uploads>
      Options -Indexes
      Require all denied
    </Directory>
  6. Hassas dosyaları web kök dizininin dışına taşıyın: Yapılandırma dosyaları, yedekler ve kimlik bilgisi depoları, listeleme ayarlarından bağımsız olarak asla kamuya açık belge kök dizininde bulunmamalıdır.
  7. Periyodik denetimler gerçekleştirin: Dağıtım ardışık düzenleri tarafından oluşturulanlar da dahil olmak üzere tüm sanal sunucuları ve alt dizinleri düzenli aralıklarla tarayarak dizin listelemenin devre dışı kaldığını doğrulayın.

Kaynaklar

Sıkça sorulan sorular

Her zaman bir güvenlik yanlış yapılandırması olarak değerlendirilir; çünkü dosya içeriğinden bağımsız olarak dizin yapısı ve dosya adları gibi istenmeyen bilgilerin ifşa edilmesine neden olur. Hassas dosyaların da açığa çıkması durumunda önem derecesi önemli ölçüde artar. Güvenlik en iyi uygulamaları, dizin listelemenin evrensel olarak devre dışı bırakılmasını önerir.

Evet. Sensagraph, dizin URL'lerine istek göndererek ve yanıtı karakteristik otomatik dizin sayfası işaretleri açısından analiz ederek dizin listelemeyi tespit eder. Manuel doğrulama, bilinen bir dizin dosyası olmaksızın bir dizin yoluna gidilerek dosya listesinin döndürülüp döndürülmediğinin kontrol edilmesiyle gerçekleştirilir.

Hayır. Bir robots.txt girişi, yalnızca uyumlu web tarayıcılarına belirli yolları atlama talimatı verir; herhangi bir erişim denetimi uygulamaz ve kötü niyetli aktörlere karşı tamamen etkisizdir. Listeleme, URL'yi doğrudan talep eden herkes tarafından erişilebilir olmaya devam eder.

Evet. Bir dizine (veya üst dizinine) Options -Indexes içeren bir .htaccess dosyası yerleştirmek, sunucu yapılandırmasının o dizin için AllowOverride Options veya AllowOverride All izni vermesi koşuluyla Apache tabanlı sunucularda dizin listelemeyi o kapsam için devre dışı bırakır.

Dizin listelemenin etkin olduğu bir yüklemeler dizini, saldırganların yüklenen tüm dosyaları sayımlamasına olanak tanır. Yetersiz dosya yükleme doğrulamasıyla birleştiğinde, bu durum kullanıcı verilerini açığa çıkarabilir, yüklenen HTML dosyaları aracılığıyla siteler arası betik çalıştırmayı kolaylaştırabilir ya da diğer istismar zincirleri için gereken dosyaların adlarını ve yollarını ortaya koyabilir.