5 Ocak 2025 Pazar

NoSQL Injection Nedir?


NoSQL Injection, NoSQL (Non-Relational SQL) veri tabanlarını hedef alan bir güvenlik açığıdır. Geleneksel SQL Injection’a benzer şekilde, bu tür saldırılar, bir uygulamanın NoSQL sorgularını kötü niyetli bir şekilde manipüle ederek hassas verilerin ifşa edilmesine, yetkisiz erişime veya veri bütünlüğünün bozulmasına yol açabilir.

NoSQL Injection Nasıl Çalışır?

NoSQL Injection, genellikle kullanıcı tarafından sağlanan giriş verilerinin düzgün şekilde doğrulanmaması veya temizlenmemesi durumunda ortaya çıkar. Saldırgan, uygulamanın NoSQL sorgularını manipüle etmek için özel hazırlanmış veriler gönderir.

Örnek Senaryolar

  1. MongoDB Örneği:

    javascript
    // Örnek bir Node.js kodu db.users.find({ username: input.username, password: input.password });

    Yukarıdaki kod, doğrudan kullanıcıdan alınan girdileri sorguya dahil eder. Eğer input.username şu şekilde olursa:

    json
    { "$ne": null }

    Bu durumda, sorgu şu şekilde çalışır:

    javascript
    db.users.find({ username: { "$ne": null }, password: input.password });

    Böylece username alanı herhangi bir değer taşımadığı sürece tüm kayıtlar döndürülebilir.

  2. Dinamik Sorgular: Eğer uygulama dinamik olarak JSON yapıları oluşturuyorsa, saldırganlar özel olarak hazırlanmış JSON veya karakterler ekleyerek uygulama mantığını bozabilir.

Yaygın Saldırı Vektörleri

  • $ne: Belirli bir değere eşit olmayan verileri döndürür.
  • $gt, $lt: Değeri belirli bir sınırdan büyük/küçük olan kayıtları seçer.
  • $regex: Desen eşleşmesi yaparak sorguyu manipüle eder.

NoSQL Injection’dan Korunma Yöntemleri

  1. Girdi Doğrulama ve Temizleme: Kullanıcıdan alınan veriler sıkı bir şekilde doğrulanmalı ve zararlı içeriklerden arındırılmalıdır.

  2. Parametrik Sorgular: NoSQL veri tabanları için parametrik sorgular veya sorgu oluşturma kütüphaneleri kullanılmalıdır.

  3. ORM ve Güvenlik Kütüphaneleri: Uygulama kodunu manuel olarak yazmak yerine güvenli ve test edilmiş ORM'ler tercih edilebilir.

  4. Güvenlik Duvarları: Web Uygulama Güvenlik Duvarları (WAF), NoSQL Injection girişimlerini algılayabilir ve engelleyebilir.

  5. Minimum Yetki: Veritabanı kullanıcıları, yalnızca gerekli izinlerle sınırlanmalıdır.


 

Benzer Yayınlar

NoSQL Injection Nedir?
4/ 5
Oleh

Abone Olun

Yazılarımızı beğeniyor musunuz?Abone Olun Yazılarımı Kaçırmayın.

Lütfen yorum yaparken şunlara dikkat ediniz:

Küfürlü, siyasi veya huzur bozucu yorumlar yapmamaya,
Reklam, spam gibi yorumlar yapmamaya.