|
||
|
| root > Veritabanı Güvenliği > SQL Server |
|
|
| SQL Serverda Veritabanı Güvenliği |
|
Merhaba arkadaşlar,
Bu makalede SQL Server’da uygulama ve veritabanı güvenliği üzerine yaptığım araştırmaların sonuçlarına dair alınmış notlar yer almaktadır. Dolayısıyla uygulamalarımız ve de veritabanı güvenliğini sağlayabilmemiz açısından birince elden ilk olarak neler yapabiliriz, nasıl önlemler alabiliriz, hep birlikte inceleyeceğiz. Makalenin sonunda yararlanılan ve tavsiye edilen kaynaklardan ayrıntılı bilgi edinebilirsiniz. # Uygulamalarınızı güvenlik taramasından geçirin. Yazdığınız kodun kusursuz olduğunu sanıyorsanız aldanırsınız. Çünkü gün geçtikçe yeni saldırı teknikleri kendini göstermektedir. Dolayısıyla uygulamanızdaki herhangi bir güvenlik açığının bir başkası tarafından keşfedilmesi oldukça rahatsız edici bir durumdur. Bu nedenle ilk tavsiyemiz uygulamalarınızı sürekli bir güvenlik taramasından geçirmek ve her türlü saldırı sistemine karşı test etmektir. Sisteminizi ücretsiz olan MBSA kullanarak açıklara karşı denetleyebilirsiniz.
İkinci en önemli husus, SP kullanımı. Uygulamalarınızda data write(yazma) & data ready(okuma) işlemleri için stored prosedürlerden yararlanın ve bunun dışında veritabanına erişmi engellediğinizden emin olun.
Stored Procedure’leri, T-SQL kullanarak doğrudan çalıştırmak yerine, ADO.NET’in sağladığı bir ara nesne (command nesnesi) kullanarak parametre aktarın.
Ad-Hoc sorgu olarak kullanılmak üzere, uygulamaya asla T-SQL kodları gömmeyin. Bunun bir güvenlik zafiyeti olmasının yanında uygulamanın sorgu süresini kısaltma, karmaşıklaştırma gibi dezavantajları da beraberinde getirir.
sa kullanıcı adını sadece veritabanı ayarları ve nesne oluşturma işlemleri için yani SQL Server Enterprise Manager, Query Analyzer, osql vs. ile bağlanırken kullanın, asla uygulamalarınızın veritabanına erişmesi için kullanmayın.
Unutmayın kullanıcı arttıkça erişim denetimi de zorlaşır. Gereksiz hesaplar varsa silin. Her bir hesabın, gerekenden daha fazla haklara sahip olmadığından emin olun.
Uygulamalarınızın bir standart kullanıcı ile SQL Server’e erişmesi gerekiyorsa, uygulama bazında kullanıcı oluşturabilirsiniz. Bu kullanıcıya verilen haklarının asgari düzeyde olduğundan emin olun. Örneğin yalnızca stored prosedürlere erişim izni verin, tablolara doğrudan erişim izni vermeyin. SQL Server kullanıcısı ya da local kullanıcı olarak tanımlamak yerine domain kullanıcısı olarak tanımlayın.
SQL Server yüklü makine ile uygulama sunucusu arasında IPSec tanımlaması yaparak başka makinelerden aynı hesabın SQL Server’a bağlanmasını kısıtlayabilirsiniz.
Uygulamanın Veritabanına erişimi için bir bağlantı ifadesi kullanıyorsanız, mutlaka şifreli olarak saklayın. Bunun için Windows Registry’i kullanabilirsiniz. DPAPI gibi arayüzler, şifreleme için tercih edilebilir güvenlik seviyesi sunmaktadır.
Tablo tasarımlarında ve procedure, fonksiyon ve değişken tanımlamalarında alan uzunluklarını gereğinden fazla uzun tutmayın. Kullanıcıdan gelen bilgilerde kötü niyetli ifadeler olup olmadığını kontrol eden bir sistem geliştirin.
Ayrıca C, C++, Java dilleri için CERT tarafından yapılan güvenli kodlama standartları bölümünü inceleyebilirsiniz.
|
|
| Bağlantılar Bg.org.tr |
| CS - Security Expert Network | AUP&TOS |