SQL Server'da uygulama güvenlik senaryoları

ADO.NET indirin

Güvenli bir SQL Server istemci uygulaması oluşturmanın tek bir doğru yolu yoktur. Her uygulama gereksinimlerinde, dağıtım ortamında ve kullanıcı popülasyonunda benzersizdir. Başlangıçta dağıtıldığında makul düzeyde güvenli olan bir uygulama zaman içinde daha az güvenli hale gelebilir. Gelecekte hangi tehditlerin ortaya çıkabileceğini herhangi bir doğrulukla tahmin etmek mümkün değildir.

SQL Server, bir ürün olarak geliştiricilerin güvenli veritabanı uygulamaları oluşturmasına olanak tanıyan en son güvenlik özelliklerini içerecek şekilde birçok sürüme göre gelişti. Ancak, kutuda güvenlik yoktur; sürekli izleme ve güncelleştirme gerektirir.

Yaygın tehditler

Geliştiricilerin güvenlik tehditlerini, bunlara karşı koymak için sağlanan araçları ve kendi kendine açılan güvenlik açıklarını önlemeyi anlaması gerekir. Güvenlik en iyi bir zincir olarak düşünülebilir ve herhangi bir bağlantıda bir kopma tümün gücünü tehlikeye atabilir. Aşağıdaki liste, bu bölümdeki konularda daha ayrıntılı olarak ele alınan bazı yaygın güvenlik tehditlerini içerir.

SQL enjeksiyonu

SQL Enjeksiyonu, kötü amaçlı bir kullanıcının geçerli giriş yerine Transact-SQL deyimleri girdiği süreçtir. Giriş doğrulanmadan doğrudan sunucuya geçirilirse ve uygulama yanlışlıkla eklenen kodu yürütürse, saldırının verilere zarar verme veya verileri yok etme olasılığı vardır. Saklı yordamları ve parametreli komutları kullanarak, dinamik SQL'i önleyerek ve tüm kullanıcılardaki izinleri kısıtlayarak SQL Server ekleme saldırılarını önleyebilirsiniz.

Yetki yükseltilmesi

Ayrıcalık yükseltme saldırıları, kullanıcı sahip veya yönetici gibi güvenilir bir hesabın ayrıcalıklarını varsayabildiğinde gerçekleşir. Her zaman en az ayrıcalıklı kullanıcı hesapları altında çalıştırın ve yalnızca gerekli izinleri atayın. Kod yürütmek için yönetici veya sahip hesaplarını kullanmaktan kaçının. Bu, bir saldırının başarılı olması durumunda oluşabilecek hasar miktarını sınırlar. Ek izinler gerektiren görevleri gerçekleştirirken, prosedür imzalama veya kimliğe bürünme özelliğini yalnızca görev süresi boyunca kullanın. Saklı yordamları sertifikalarla imzalayabilir veya izinleri geçici olarak atamak için kimliğe bürünme özelliğini kullanabilirsiniz.

Araştırma ve akıllı gözlem

Yoklama saldırısı, bir uygulama tarafından oluşturulan hata iletilerini kullanarak güvenlik açıklarını arayabilir. SQL Server hata bilgilerinin son kullanıcıya döndürülmesini önlemek için tüm yordam kodunda hata işlemeyi uygulayın.

Authentication

Kullanıcı girdilerine dayalı bir bağlantı dizesi çalışma zamanında oluşturulursa, SQL Server oturum açma bilgilerini kullanırken bağlantı dizesi enjeksiyonu saldırısı oluşabilir. Bağlantı dizesi geçerli anahtar sözcük çiftleri için denetlenmezse, saldırgan ek karakterler ekleyebilir ve hassas verilere veya sunucudaki diğer kaynaklara erişebilir. Mümkün olduğunca Windows kimlik doğrulamayı kullanın. SQL Server oturum açma bilgilerini kullanmanız gerekiyorsa, çalışma zamanında bağlantı stringleri oluşturmak ve doğrulamak için SqlConnectionStringBuilder kullanın.

Passwords

Birçok saldırı başarılı olur çünkü davetsiz bir kişi ayrıcalıklı bir kullanıcı için parola edinebildi veya tahmin edebildi. Parolalar davetsiz girenlere karşı ilk savunma hattınızdır, bu nedenle güçlü parolalar ayarlamak sisteminizin güvenliği için önemlidir. Karma mod kimlik doğrulaması için parola ilkeleri oluşturun ve uygulayın.

Windows Kimlik Doğrulaması'nı kullanırken bile her zaman hesaba güçlü bir parola atayın sa .

Bu bölümde

SQL Server'da güvenli dinamik SQL yazma
Saklı yordamları kullanarak güvenli dinamik SQL yazma tekniklerini açıklar.

Sonraki Adımlar