SQL Server’da korunması gerekenler için yol haritası


Güvenlik alanında çokça yapılan hatalardan birisi, korunması gereken noktalardan birini ihmal etmektir.

Düşünün ki, bir savaşa hazırlanıyorsunuz. Yüzüklerin Efendisinin size özgü modundasınız mesela… Kalenin her tarafı çok güvenli. Zaten yıllardır çeşitli saldırıları püskürtmüş. Ama dışarıdan içeriye doğru surların altından akan bir su yolu var ve mazgallarla korunmuş. Ork’un biri, koruma altında oraya patlayıcılarla hücum ediyor. (Sahneyi hatırladınız mı? Miğferdibi kalesini?)

Tek bir noktayı ihmal etmeniz, diğer taraflarda çok iyi bir güvenlik seviyesi de sağlamış olsanız, tüm güvenliğinizi yok edebilir.

Bu durumun IT’deki bir benzeri, kurum içinde artık çok kullanılmayan, kıyıda unutulmuş bir file serverlığa kadar düşmüş bir sunucu olabilir. Bu sunucu o kadar az kullanılmaktadır ki, artık IT yöneticileri de fiziksel olarak ona doğru baktıklarında bile bir şey görmemektedirler. Doğal olarak güvenlikle ilgili önlemler düşünülürken de bu sunucu unutulabilmektedir. Oysa o sunucuya bir şekilde erişen bir saldırgan, oradan sistemin kalanına da rahatlıkla sızabilir.

Yine benzer bir durum, şu anki güncel ürünlerden biri olan SQL Server 2005’te gerçekleşebilir. SQL Server 2005, güvenlikte önemli yenilikler ve iyileştirmeler getirmiş bir ürün. Ama öte yandan mimari olarak da pek çok yeni işlevsellik ve eski bazı yapılarda değişiklik getiriyor. Bu durumda, DBA’ler, yeni sisteme adapte olurken güvenlik tasarımında hata yapabilirler. Hakim olmadıkları, kendileri için farklı bir alanda yürüyor olacakları için, tehlike altındalar.

Eğer SQL Server 2005’e geçmişseniz, güvenlik açısından korumanız gereken unsurların neler olduğunu yeniden gözden geçirmelisiniz. Size yardımcı olabilecek kısa bir yol haritası sunuyorum. Bu yol haritası sayesinde kendi SQL Serverınızda güvenlik ayarlarını ‘düşünmeniz’ gereken nesneleri tespit edebilmiş olacaksınız.

Öncelikle tasarımınızda yer alan veritabanı servislerini belirleyin; Service Broker, Notification Services, Database Engine, ne varsa… Bu servisler için kullanılan uçnoktaları (endpoints) düşünün ve aralarındaki etkileşimleri anlayın. Son olarak da sunucunuzda oluşturulmuş tüm girişleri (login) belirleyin. Bu durumda mesela Service Broker için hangi uçnoktaları oluşturduğunuzu ve bunları kullanmak için oluşturulmuş girişleri belgelemiş olacaksınız.
Tüm veritabanlarını ve bu veritabanları içinde bir şema belirteci altında oluşturulmamış nesneleri, mesela kullanıcıları, rolleri, sertifikaları listeleyin.
Sonra tüm şemaların içinde yer alan nesneleri, mesela tabloları, görünümleri (view) ve fonksiyonları sıralayın.
Bu yaklaşım sayesinde kapsamı sunucu olanlar, veritabanı içinde yer alan ama bir şema altında olmayanlar ve veritabanlarında şema altında olanlar şeklinde güvenliğini düzenlemeniz gereken nesneler ortaya çıkmış olacak. Bunların güvenlik ayarlarını yaparken de her zaman yapıldığı gibi mümkün olduğunca gruplamaya çalışmanız gerekecek.

Burada kritik olan nokta, bir önceki versiyonda aktif kullanımı olmayan şemaların artık aktif kullanılacak bir katman olarak gelmiş olması.

Şema ve kullanıcı artık aynı şey değil. SQL Server 2000’de derin bir deneyiminiz varsa, bu değişikliği ihmal edebilirsiniz. Bu durumda SQL Server 2005’teki çözüm tasarımlarınız bu önemli avantajı kullanmamış olur. Yapılabilecek ikinci bir hata da şemaların bize sunduğu yeni olanaklardan yararlanmak ama güvenlik ayarlarını yaparken, şemaları sanki veritabanı katmanında gibi düşünüp, veritabanı altında yer alan ama bir şema altında bulunmayan nesnelerin güvenlik ayarlarını atlamak olabilir.

Miğferdibinde olsanız, o koca kalenin altında bir nokta gibi kalan su yoluna meşaleyle koşan Ork’u görmek içinizi cız ettirirdi sanırım. Ardından bir de patlamayı duymak, o yıkılmaz surun büyükçe bir diliminin çöktüğünü görmek ve bir yığın orkun içeriye akın etmesine şahit olmak, pek hoş olmazdı.

Güvenlik açısından atlayacağınız bir nokta, benzer bir sonuçla karşılaşmanıza sebep olabilir.

Saldırganlar Ork olmasalar da, verdikleri hasar onlarınki kadar olabilecektir.

Bu yazı SQL Server içinde yayınlandı. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s