OWASP'ın 1 Numarası: Broken Access Control Kategorisinde Değerlendirilen "IDOR" Zafiyeti

OWASP'ın 1 Numarası: Broken Access Control Kategorisinde Değerlendirilen "IDOR" Zafiyeti
Siber Güvenlik
2025-28-03 20:25:10

OWASP'ın 1 Numarası: Broken Access Control Kategorisinde Değerlendirilen "IDOR" Zafiyeti

Bu makalede, web uygulamalarında ve API'lerde sıkça karşılaşılan "IDOR" (Insecure Direct Object References) zafiyeti ele alınmaktadır. Zafiyetin tanımı, tespit yöntemleri, etkileri ve nasıl önlenebileceği gibi konular detaylı olarak açıklanmıştır.

Bu makalede, web uygulamalarında ve API'lerde sıkça karşılaşılan "IDOR" (Insecure Direct Object References) zafiyeti ele alınmaktadır. Zafiyetin tanımı, tespit yöntemleri, etkileri ve nasıl önlenebileceği gibi konular detaylı olarak açıklanmıştır.

IDOR zafiyeti nedir?

IDOR, "Insecure Direct Object References" yani "Güvensiz Doğrudan Nesne Referansı" anlamına gelir. Bu zafiyetin temel nedeni, kullanıcıların erişmeye çalıştıkları nesneler üzerinde uygun şekilde yetkilendirme kontrollerinin uygulanmamasıdır.

Kısaca, bir kullanıcının erişmek istediği nesneye ait kimliğin (ID) doğrulanmaması sonucunda başka kullanıcıların verilerine erişim sağlanabilmektedir. Erişilen nesneye göre zafiyetin etkisi değişiklik gösterebilir.

IDOR zafiyeti, hem dikey hem de yatay yetkilendirme ihlallerine neden olabilir. Bu iki durumu örneklerle inceleyelim:

Dikey Yetki İhlali Örneği:

Bir kullanıcı yalnızca kendi hesabına erişebilmelidir. Ancak IDOR zafiyeti bulunan bir uygulamada, aynı kullanıcı bir sistem yöneticisinin hesabına erişim sağlayabilir.

Makale içeriği

Burada sistem yöneticisinin kullanıcı ayarları, mesaj düzenleme ve silme gibi yetkileri de erişilebilir hale gelir.

Makale içeriği

Yatay Yetki İhlali Örneği:

Bir kullanıcı, sahip olduğu yetki seviyesi ile sadece kendi verilerine erişebilmelidir. Ancak zafiyet durumunda başka kullanıcıların dosyalarına, klasörlerine veya verilerine erişim sağlanabilir.

  • Örnek: Bir kullanıcıya ait klasör https://example.com/folders-details/10 adresinde yer almaktadır. Ancak ID değeri 9 olarak değiştirildiğinde, kullanıcı kendisine ait olmayan "My Neighbour" klasörüne ve içerisindeki "Totoro" adlı sunuma erişebilmektedir.
  • İleri seviyede bir senaryoda, kullanıcının yüklediği görselin ID değeri manipüle edilerek farklı bir sunuma yüklenmesi sağlanabilir. Örneğin, ID 17 iken 13 yapılırsa görsel, başka bir klasöre yönlendirilmiş olur.

Makale içeriği

Bu tür bir zafiyet, yalnızca URL parametrelerinde değil; istek gövdelerinde, dosya yollarında, çerezlerde veya diğer istemci taraflı değişkenlerde de bulunabilir.

Makale içeriği

Kod Örneği: Güvensiz ve Güvenli Yaklaşım Karşılaştırması

Güvensiz Yaklaşım:

Kullanıcı doğrudan /download/file_id adresine GET isteği gönderir.

  • get_file_by_id fonksiyonu dosyayı getirir.
  • send_file fonksiyonu ise dosyayı kullanıcıya gönderir.
  • Ancak sistem, kullanıcının bu dosyaya erişim yetkisine sahip olup olmadığını kontrol etmemektedir. Bu durum, diğer kullanıcıların dosyalarına erişimle sonuçlanabilir.

Makale içeriği

Güvenli Yaklaşım:

  • Kullanıcı yalnızca giriş yaptıysa /download/file_id adresine erişebilir.
  • Dosya bilgisi get_file_by_id ile alınır ve dosyanın sahibinin doğruluğu kontrol edilir.
  • Kullanıcı yetkili değilse, sunucu 403 HTTP hatası döner.

Makale içeriği

IDOR nasıl tespit edilir?

Bu zafiyetin istismarı görece kolay olsa da, tespit edilmesi genellikle manuel testlerle mümkündür. Otomatik tarama araçları çoğu zaman IDOR zafiyetlerini atlayabilir. Bu nedenle, uygulamanın işleyiş yapısını anlamaya yönelik detaylı manuel testler büyük önem taşır.

Test süreci, uygulamaya yapılan çok sayıda istek-yanıt döngüsüyle gerçekleştirilir. Amaç, aynı kaynaklara farklı kullanıcılar tarafından erişim sağlanıp sağlanamayacağını gözlemlemektir.


Etkileri

IDOR zafiyetinin etkileri, erişilen verinin hassasiyetine ve yetki düzeyine göre ciddi sonuçlar doğurabilir:

  • Kişisel verilere erişim: Gizlilik ihlali, kullanıcı kaybı
  • Veri bütünlüğünün bozulması: İçerik silme, değiştirme, hizmetin aksaması
  • Hassas bilgilerin ifşası: Marka itibarı kaybı, hukuki sorunlar, güven zedelenmesi, maddi kayıplar


Nasıl Önlenir?

  • Erişim Kontrolü: Tüm kullanıcılar için uygun yetkilendirme mekanizmaları kullanılmalıdır.
  • Rastgele Tanımlayıcılar: GUID gibi tahmin edilmesi zor ID'ler tercih edilmelidir.
  • Parametre Doğrulama: Kullanıcıdan gelen tüm veri ve parametreler uygun şekilde doğrulanmalıdır.


Sonuç

IDOR zafiyeti, uygun şekilde yapılandırılmamış erişim kontrolleri nedeniyle ciddi güvenlik açıklarına yol açabilir. Bu tür zafiyetlerin önlenmesi için güvenli yazılım geliştirme ilkelerine uyulmalı ve erişim kontrolleri kodun her seviyesinde titizlikle uygulanmalıdır. Ayrıca uygulamaların düzenli olarak manuel ve otomatik güvenlik testlerine tabi tutulması, bu zafiyetlerin erken tespit edilmesinde kritik rol oynar.

Etiketler: IDOR zafiyeti