3 Temmuz 2008 Perşembe

SQL Server 2008: Güvenlik ile ilgili değişiklikler

Son güncelleme tarihi: 02 Temmuz 2008


Merhaba arkadaşlar,


SQL Server 2008' in güvenlik ile ilgili politikalarının bazılarında, SQL Server' ın önceki versiyonlarına göre bazı değişiklikler oldu. Bu yazımda sizlere bu değişikliklerden bahsedeceğim.

Bildiğiniz gibi SQL Server 2005, önceki versiyonlarına göre çok daha güvenliydi. Gerek tasarım olarak, gerek kurulumda gerekse varsayılan ayarlarıyla. SQL Server 2008' de bu güvenlik tedbirleri daha da sıkılaştırılarak bir adım öteye gidilmiş. Çok ahım şahım değişiklikler değil bunlar, fakat bilmenizde ve yeri ve zamanı geldiğinde hesaba katmanızda yarar var. Bu arada, burada bahsedeceğim güvenlik ile ilgili olan değişiklikler, SQL Server' ın eski versiyonlarındaki özelliklere göre yapılan değişikliklerdir. SQL Server 2008' deki güvenlik ile ilgili yeni özelliklere, farklı makalelerde değineceğim.

Peki nedir bu değişiklikler?

- SQL Server 2008 Setup' ta yükleme veya sürüm yükseltme esnasında "sa" hesabının adını değiştirebilme.
- SQL Server' ın eski versiyonlarında BUILTIN\Administrators Windows Grubu, SQL Server System Administrators "sysadmin" sunucu sabit rolüne eklenirdi. SQL Server 2008' de böyle olmayacak, yani Windows Yöneticileri doğrudan SQL Server Sistem Yöneticileri olmayacak artık.
- SQL Server tarafından oluşturulan "SQLServer2005MSSQLUser$-BİLGİSAYARADI-$INSTANCEADI" gibi Windows Gruplarına artık doğrudan SQL Server' a erişim izinleri verilmeyecek. Bunun yerine bu haklar, SQL Server servislerini başlatmak için kullanılan Windows hesabına verilecek.
- Surface Area Configuration aracı SQL Server 2008' de yok, yani kaldırıldı. Bunun yerine İlke Temelli Yönetim (Policy-Based Management) özelliği ve Configuration Manager' daki değişiklikler kullanılabilecek.
- Kerberos desteği genişletildi. TCP\IP' nin yanında, artık Named Pipes ve Shared Memory' yi de kapsıyor.

SQL Server "sa" hesabının adının değiştirilmesi:
"sa" hesabı varsayılan SQL Login' idir. "sysadmin" üyesidir ve bu değiştirilemez. Bu role üye olan bir Login, içinde bulunduğu SQL Server Instance' ında tüm yetkilere sahiptir. Bunu bilen korsanlar, sisteminize girmeye çalışacağı zaman ilk önce "sa" hesabına saldırırlar. Bir çok saldırı durumunda daha sonra "admin" isimli bir hesap denediklerini gördüm. Aslında SQL Server' da varsayılan olarak "admin" isminde bir hesap yoktur. Ama bildiğiniz gibi alışkanlıklarımız, güvenlik konusuna gelince en kırılgan noktamızdır. İnsanlar alışkanlıktan dolayı genelde "admin" isminde bir Login oluştururlar ve bunu da "sysadmin" rolünün bir üyesi yaparlar. Bu nedenle de korsanlar, SQL Server Instance' ınıza saldırdıklarında ilk önce olduğunu varsaydıkları bu Login' leri kırmaya çalışırlar.

"sa" hesabının adını değiştirmeniz ve bu hesaba güçlü bir şifre vermeniz (ki güçlü şifre denirken kastedilen, şifrenin içinde büyük-küçük harflerin, rakamların ve işaretlerin kullanılmasıdır) korsanların sisteminize en güçlü Login' lerle girmelerini engelleyici tedbirlerden olacaktır.

Tabi ki bu değişiklikleri yapmadan önce sisteminizi, uygulamalarınızı, Function' ları, Script' leri, CLR Assembly' leri gibi şeyleri de tekrar gözden geçirmeniz gerekebilir. "sa" hesabına bağlı uygulamalarınız, bu hesap ismini değiştirdiğiniz için artık çalışmayabilirler. Bu nedenle gerekli değişiklikleri uygulamalarınızda da yapmanız gerekebilir.

Mümkün olan her zaman Windows Authentication kullanmanız önerilir, ama öyle durumlar olur ki SQL Authentication kullanmanız gerekebilir. İşte böyle durumlarda yukarıdaki paragraflarda değindiğim tedbirleri almanızda büyük yarar vardır.

"sa" hesabı hakkında daha fazla bilgi için buraya tıklayın.

Windows Yerel Gruplarındaki değişiklik:
SQL Server' ın kurulması esnasında bazı Windows yerel grupları oluşturulur. SQL Server' ın, SQL Server 2008' den önceki versiyonlarında SQL Server servislerinin başlatılması için kullanılan servis hesapları bu yerel gruplara ekleniyorlardı. Servis hesabı ve Windows yerel gruplarına, işletim sistemi dosyaları ve Windows sistemi üzerinde haklar veriliyordu. Bu hesap ve gruplara SQL Server' da da bazı haklar veriliyordu.

SQL Server' ın yüklenmesi veya sürüm yükseltmesi esnasında seçtiğiniz özelliklere göre oluşturulan Windows yerel grupları aşağıdakilerden oluşur:

- SQL Server 2000
- OLAP Administrators

- SQL Server 2005
- SQLServer2005DTSUser$BİLGİSAYARADI
- SQLServer2005MSFTEUser$BİLGİSAYARADI$INSTANCEADI
- SQLServer2005MSOLAPUser$BİLGİSAYARADI$INSTANCEADI
- SQLServer2005MSSQLServerADHelperUser$ BİLGİSAYARADI
- SQLServer2005MSSQLUser$ BİLGİSAYARADI$INSTANCEADI
- SQLServer2005NotificationServicesUser$BİLGİSAYARADI
- SQLServer2005ReportingServicesWebServiceUser$BİLGİSAYARADI$INSTANCEADI
- SQLServer2005ReportServerUser$ BİLGİSAYARADI$INSTANCEADI
- SQLServer2005SQLAgentUser$ BİLGİSAYARADI$INSTANCEADI
- SQLServer2005SQLBrowserUser$ BİLGİSAYARADI

SQL Server 2008' de de bu Windows yerel grupları oluşturulacak, ama artık bu gruplara SQL Server içinde haklar verilmeyecek. Sadece, doğru Erişim Kontrol Listesi (Access Control List), SQL Server Motoru ve diğer özellikler için işletim sistemi hakları etkinleştirmesi amacıyla kullanılacaklar. Ancak SQL Server Setup boyunca servis hesapları olarak seçilen hesaplara SQL Server' da haklar atanacak.

Bir başka deyişle, Windows yerel grupları artık sadece işletim sistemi görevleri için kullanılacaklar. SQL Server servisleri için seçilen hesaplar da SQL Server ve veritabanı işlemleri için kullanılacaklar. Bu konuda daha fazla bilgi için buraya tıklayın.

Surface Area Configuration aracı:
Bu araç SQL Server 2005 ile birlikte geldi ve bu aracı, SQL Server' ın bazı özelliklerini açmak ve kapatmak için kullanıyoruz.

SQL Server 2008' de ise Surface Area Configuration aracı kaldırıldı. Bunun yerine çok daha gelişmiş bir özellik olan Policy-Based Management özelliğini kullanacağız. Bu konuda SQL Server' ın sanırım Kasım CTP' sinde bir örnek yaparak bunu yayınlamıştım. Bu makalemi okumak için buraya tıklayın. Bu özellik kısaca size SQL Server bileşenleri için ilkeler tanımlamanızı ve ayrıntılı bir şekilde bu ilkeleri SQL Server içindeki Principal ve Rollere uygulamanızı sağlıyor. Bu konuda daha fazla bilgi için buraya tıklayın.

Surface Area Configuration aracındaki bağlantılarla ilgili ayarları da -SQL Server 2005' te de yapabildiğimiz gibi- SQL Server Configuration Manager' da yapabilirsiniz. Örnek vermek gerekirse, TCP\IP, Named Pipes vb. protokollerin etkinleştirilip kapatılması gibi...

Kerberos Authentication:
SQL Server 2008' den itibaren, Kerberos Authentication desteği Named Pipes ve Shared Memory protokollerini de kapsayacak şekilde genişletildi. Buna ek olarak Kerberos, Windows Active Directory olmadan da kullanılabilecek. Bu konuda daha fazla bilgi için buraya tıklayın.



Ekrem Önsoy

Kaynak: Bu yazıyı yayınlarken Books Online' dan yararlandım.

Hiç yorum yok: