FixVibe
Covered by FixVibecritical

SQL Enjeksiyonu: Yetkisiz Veritabanı Erişimini Engelleme

SQL enjeksiyonu (SQLi), saldırganların bir uygulamanın veritabanı sorgularına müdahale ettiği kritik bir güvenlik açığıdır. Saldırganlar, kötü amaçlı SQL söz dizimi enjekte ederek kimlik doğrulamayı atlayabilir, şifreler ve kredi kartı ayrıntıları gibi hassas verileri görüntüleyebilir ve hatta temel sunucuyu tehlikeye atabilir.

CWE-89

SQL Enjeksiyonunun Etkisi

SQL enjeksiyonu (SQLi), bir saldırganın bir uygulamanın [S1] veritabanına yaptığı sorgulara müdahale etmesine olanak tanır. Birincil etki, kullanıcı şifreleri, kredi kartı bilgileri ve kişisel bilgiler gibi hassas verilere yetkisiz erişimi içerir [S1].

Saldırganlar, veri hırsızlığının ötesinde sıklıkla veritabanı kayıtlarını değiştirebilir veya silebilir; bu da uygulama davranışında kalıcı değişikliklere veya veri kaybına yol açabilir [S1]. Yüksek önem derecesine sahip durumlarda SQLi, arka uç altyapısını tehlikeye atmak, hizmet reddi saldırılarına olanak sağlamak veya kuruluşun [S1][S2] sistemlerine kalıcı bir arka kapı sağlamak için yükseltilebilir.

Temel Neden: Güvenli Olmayan Giriş İşleme

SQL enjeksiyonunun temel nedeni, [S2] SQL komutunda kullanılan özel öğelerin uygun olmayan şekilde nötrleştirilmesidir. Bu durum, bir uygulamanın dışarıdan etkilenen girişi doğrudan [S1][S2] sorgu dizesinde birleştirerek SQL sorguları oluşturduğunda ortaya çıkar.

Giriş, sorgu yapısından uygun şekilde yalıtılmadığından, veritabanı yorumlayıcısı, kullanıcı girişinin bazı kısımlarını, [S2] değişmez verisi olarak ele almak yerine, SQL kodu olarak yürütebilir. Bu güvenlik açığı, SELECT ifadeleri, INSERT değerleri veya UPDATE [S1] ifadeleri dahil olmak üzere bir sorgunun çeşitli bölümlerinde ortaya çıkabilir.

Somut Düzeltmeler ve Azaltmalar

Parametreli Sorguları Kullan

SQL enjeksiyonunu önlemenin en etkili yolu, hazırlanmış ifadeler [S1] olarak da bilinen parametreli sorguların kullanılmasıdır. Geliştiriciler, dizeleri birleştirmek yerine veri ve [S2] kodunun ayrılmasını zorunlu kılan yapılandırılmış mekanizmalar kullanmalıdır.

En Az Ayrıcalık İlkesi

Uygulamalar, [S2] görevleri için gereken en düşük ayrıcalıkları kullanarak veritabanına bağlanmalıdır. Bir web uygulaması hesabının yönetici ayrıcalıkları olmamalıdır ve [S2] işlevi için gerekli olan belirli tablolar veya işlemlerle sınırlandırılmalıdır.

Giriş Doğrulama ve Kodlama

Giriş doğrulama, parametrelendirmenin yerini almasa da derinlemesine savunma sağlar [S2]. Uygulamalar, girdinin beklenen türler, uzunluklar ve [S2] biçimleriyle eşleştiğini doğrulayan, bilinen-iyiyi kabul etme stratejisini kullanmalıdır.

FixVibe bunu nasıl test ediyor?

FixVibe zaten kapılı active.sqli tarayıcı modülü aracılığıyla SQL enjeksiyonunu kapsamaktadır. Aktif taramalar yalnızca alan adı sahipliğinin doğrulanması ve onaylanmasından sonra çalışır. Denetim, sorgu parametreleriyle aynı kökenli GET uç noktalarını tarar, temel bir yanıt oluşturur, SQL'e özgü boole anormalliklerini arar ve yalnızca birden fazla gecikme uzunluğu boyunca zamanlama onayından sonra bir bulguyu rapor eder. Depo taramaları ayrıca şablon enterpolasyonuyla oluşturulan ham SQL çağrılarını işaretleyen code.web-app-risk-checklist-backfill aracılığıyla temel nedeni daha erken yakalamaya yardımcı olur.