Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Bu makalede, SQL Server için güvenlik oluşturmaya yardımcı olan en iyi yöntemler ve yönergeler hakkında bilgi sağlanır. SQL Server güvenlik özelliklerinin kapsamlı bir incelemesi için bkz. SQL Server'ın Güvenliğini Sağlama.
Belirli ürün güvenliği en iyi yöntemleri için bkz. Azure SQL Veritabanı ve SQL Yönetilen Örneği ve Azure VM'lerde SQL Server.
Genel bakış
Katmanlı güvenlik metodolojisi, farklı güvenlik kapsamlarını hedefleyen birden çok güvenlik özelliği kullanarak derinlemesine savunma çözümü sağlar. SQL Server 2016'da kullanıma sunulan ve sonraki sürümlerde geliştirilmiş olan güvenlik özellikleri, güvenlik tehditlerinin karşılanmasına yardımcı olur ve iyi güvenli veritabanı uygulamaları sağlar.
Azure, sanal makinede çalışan SQL Server ile uyumlu bir çözüm oluşturmanıza olanak tanıyan çeşitli sektör düzenlemelerine ve standartlarına uygundur. Azure ile mevzuat uyumluluğu hakkında bilgi için bkz. azure güven merkezi .
Sütun düzeyinde koruma
Müşteriler, çalışanlar, ticari gizli diziler, ürün verileri, sağlık hizmetleri, finansal ve diğer hassas veriler genellikle SQL Server veritabanlarında depolandığından kuruluşların verileri sütun düzeyinde koruması gerekir. Hassas sütunlar genellikle kimlik/sosyal güvenlik numaraları, cep telefonu numaraları, ad, aile adı, finansal hesap belirleme ve kişisel veriler olarak kabul edilebilecek diğer tüm verileri içerir.
Bu bölümde bahsedilen yöntemler ve özellikler, sütun düzeyinde koruma düzeyini en düşük ek yükle ve uygulama kodunda kapsamlı değişiklikler gerektirmeden yükseltir.
Verileri dinlenirken ve kablo üzerinden iletilirken şifrelemek için Always Encrypted kullanın. Şifrelenmiş verilerin şifresi yalnızca uygulama istemci düzeyindeki istemci kitaplıkları tarafından çözülür. Mümkün olduğunda belirlenmci yerine rastgele şifreleme kullanın. Always Encrypted, güvenli güvenlik bölgeleri ile , rastgele şifreleme senaryoları için BETWEEN, IN, LIKE, DISTINCT, Joins ve benzeri karşılaştırma işlemlerinin performansını geliştirebilir.
Always Encrypted kullanılabilir bir seçenek olmadığında verileri sütun düzeyinde karartmak için Dinamik Veri Maskeleme (DDM) kullanın. Dinamik Veri Maskeleme (DDM) Always Encryptedile uyumlu değildir. Mümkün olduğunda dinamik veri maskeleme üzerinden Always Encrypted kullanın.
Ayrıca tablo, görünüm veya tablo değerli bir işlev için sütun düzeyinde GRANT izinleri verebilirsiniz. Aşağıdakileri göz önünde bulundurun: - Bir sütunda yalnızca SELECT
, REFERENCES
ve UPDATE
izinleri verilebilir.
- Tablo düzeyindeki DENY
, sütun düzeyindeki GRANT
'e göre öncelikli değildir.
Satır düzeyi koruma
Row-Level Güvenliği (RLS), veritabanı tablosundaki satırlara erişimi denetlemek için kullanıcı yürütme bağlamını kullanabilmenizi sağlar. RLS, kullanıcıların yalnızca kendileriyle ilgili olan kaydı görebilmesini sağlar. Bu, uygulamanızda önemli değişiklikler yapmak zorunda kalmadan uygulamanıza 'kayıt düzeyi' güvenliği sağlar.
İş mantığı, RLS işlevselliğini açıp kapatan bir güvenlik politikası ile yönetilen tablo değerli işlevler içinde kapsüllenmiştir. Güvenlik ilkesi, RLS'nin çalıştığı tablolara bağlı FILTER
ve BLOCK
koşullarını da denetler. Çağrıyı yapan kullanıcıya döndürülen kayıtları sınırlamak için Row-Level Güvenliği 'ni (RLS) kullanın. Uygulama kullanıcılarının aynı SQL Server kullanıcı hesabını paylaştığı orta katman bir uygulama aracılığıyla veritabanına bağlanan kullanıcılar için SESSION_CONTEXT (T-SQL) kullanın. En iyi performans ve yönetilebilirlik için Row-Level Güvenlik en iyi yöntemlerini izleyin.
Bahşiş
Kuruluşunuzun güvenlik duruşunu en üst düzeye çıkarmak için Row-Level Güvenliği (RLS) Always Encrypted veya Dinamik Veri Maskeleme (DDM) ile birlikte kullanın.
Dosya şifreleme
Saydam Veri Şifrelemesi (TDE), veritabanı dosyalarına bekleyen şifreleme sağlayarak verileri dosya düzeyinde korur. Saydam Veri Şifrelemesi (TDE), veritabanı dosyalarının, yedekleme dosyalarının ve tempdb
dosyalarının, uygun sertifikalar veritabanı dosyalarının şifresini çözmeden eklenip okunmamasını sağlar. Saydam Veri Şifrelemesi (TDE) olmadan, bir saldırganın fiziksel medyayı (sürücüler veya yedekleme bantları) alması ve içeriği okumak için veritabanını geri yüklemesi veya eklemesi mümkündür. Saydam Veri Şifrelemesi (TDE), SQL Server'daki diğer tüm güvenlik özellikleriyle çalışmak için desteklenir. Saydam Veri Şifrelemesi (TDE), verilerin ve günlük dosyalarının gerçek zamanlı G/Ç şifrelemesini ve şifresini çözmeyi sağlar. TDE şifrelemesi, kullanıcı veritabanında depolanan bir veritabanı şifreleme anahtarı (DEK) kullanır. Veritabanı şifreleme anahtarı, master
veritabanının veritabanı ana anahtarı tarafından korunan bir sertifika kullanılarak da korunabilir.
Dinlenmedeki verileri, yedeklemeleri ve tempdb
'ı korumak için TDE kullanın.
Denetim ve raporlama
SQL Server 'i denetlemek için, sunucu veya veritabanı düzeyinde bir denetim ilkesioluşturun. Sunucu ilkeleri, sunucuda var olan ve yeni oluşturulan tüm veritabanları için geçerlidir. Kolaylık olması için, sunucu düzeyinde denetimi etkinleştirin ve veritabanı düzeyinde denetimin tüm veritabanları için sunucu düzeyi özelliğini devralmasına izin verin.
Hassas verilerin bulunduğu, güvenlik önlemleri uygulanmış tablo ve sütunları denetleyin. Bir tablo veya sütun bir güvenlik özelliği tarafından korunmaya ihtiyaç duyulacak kadar önemliyse, denetlenecek kadar önemli kabul edilmelidir. Hassas bilgiler içeren ancak bir tür uygulama veya mimari sınırlama nedeniyle istenen güvenlik önlemlerinin uygulanamayacağı tabloları denetlemek ve düzenli olarak gözden geçirmek özellikle önemlidir.
Kimlikler ve kimlik doğrulaması
SQL Server iki kimlik doğrulama modunu, Windows Kimlik Doğrulama Modu ve 'SQL Server ve Windows Kimlik Doğrulama Modu' (karma mod), destekler.
Oturum açma bilgileri veritabanı kullanıcılarından ayrıdır. İlk olarak, oturum açma bilgilerini veya Windows gruplarını veritabanı kullanıcılarıyla veya rolleriyle ayrı ayrı eşleyin. Ardından, kullanıcılara, sunucu rollerine ve/veya veritabanı rollerine veritabanı nesnelerine erişim izni verin.
SQL Server aşağıdaki oturum açma türlerini destekler:
- Yerel bir Windows kullanıcı hesabı veya Active Directory etki alanı hesabı - SQL Server, Windows kullanıcı hesaplarının kimliğini doğrulamak için Windows'a dayanır.
- Windows grubu - Bir Windows grubuna erişim vermek, grubun üyesi olan tüm Windows kullanıcı oturum açma işlemlerine erişim izni verir. Bir kullanıcının gruptan kaldırılması, gruptan gelen kullanıcıdan hakları kaldırır. Grup üyeliği tercih edilen stratejidir.
- SQL Server oturum açma - SQL Server, parolanın kullanıcı adını ve karmasını
master
veritabanında depolar. -
Sınırlı veritabanı kullanıcıları, SQL Server bağlantılarını veritabanı düzeyinde kimlik doğrular. Kapsanan veritabanı, diğer veritabanlarından ve veritabanını barındıran SQL Server örneğinden (ve
master
veritabanı) yalıtılmış bir veritabanıdır. SQL Server, hem Windows hem de SQL Server kimlik doğrulaması için bağımsız veritabanı kullanıcılarını destekler.
Aşağıdaki öneriler ve en iyi yöntemler kimliklerinizin ve kimlik doğrulama yöntemlerinizin güvenliğini sağlamaya yardımcı olur:
Güvenlik yönetimini geliştirmek için en az ayrıcalıklı rol tabanlı güvenlik stratejilerini kullanın.
- Active Directory kullanıcılarını AD gruplarına yerleştirmek standarttır, AD grupları SQL Server rollerinde bulunmalı ve SQL Server rollerine uygulama için gereken en düşük izinler verilmelidir.
Azure'da rol tabanlı erişim (RBAC) denetimlerini kullanarak en az ayrıcalıklı güvenlik kullanın
Mümkün olduğunda SQL Server kimlik doğrulaması yerine Active Directory'yi seçin ve özellikle güvenliği uygulama veya veritabanı düzeyinde depolamak yerine Active Directory'yi seçin.
- Bir kullanıcı şirketten ayrılırsa hesabı devre dışı bırakmak kolaydır.
- Kullanıcılar rolleri değiştirdiğinde veya kuruluştan ayrıldığında kullanıcıları gruplardan kaldırmak da kolaydır. Grup güvenliği en iyi yöntem olarak kabul edilir.
Makinede oturum açmak için RDP kullanan hesaplar da dahil olmak üzere makine düzeyinde erişimi olan hesaplar için çok faktörlü kimlik doğrulaması kullanın. Tek faktörlü parola tabanlı kimlik doğrulaması, gizliliği tehlikeye girme veya yanlışlıkla ele geçirilma riski olan kimlik bilgilerinin daha zayıf bir kimlik doğrulaması biçimi olduğundan bu, kimlik bilgisi hırsızlığına veya sızıntılarına karşı korunmaya yardımcı olur.
Kolayca tahmin edilmeyecek ve başka hiçbir hesap veya amaçla kullanılmayan güçlü ve karmaşık parolalar gerektir. Parolaları düzenli olarak güncelleştirin ve Active Directory ilkelerini zorunlu kılın.
Group-Managed Hizmet Hesapları (gMSA) otomatik parola yönetimi, basitleştirilmiş hizmet asıl adı (SPN) yönetimi sağlar ve yönetimi diğer yöneticilere devreder.
- gMSA ile Windows işletim sistemi, parolayı yönetmek için yöneticiye güvenmek yerine hesabın parolalarını yönetir.
- gMSA, hizmetleri yeniden başlatmadan hesap parolalarını otomatik olarak güncelleştirir.
- gMSA, yönetim yüzey düzeyini azaltır ve görev ayrımını geliştirir.
DBA'nın AD hesabına verilen hakları en aza indirin; Sanal makineye erişimi sınırlayan görev ayrımını, işletim sisteminde oturum açabilmeyi, hata ve denetim günlüklerini değiştirebilmeyi ve uygulama ve/veya özellik yükleme özelliğini göz önünde bulundurun.
DBA hesaplarını sysadmin rolünden kaldırmayı ve DBA hesaplarına sysadmin rolünün üyesi yapmak yerine CONTROL SERVER vermeyi göz önünde bulundurun. Sistem yöneticisi rolü
DENY
'ı dikkate almazken CONTROL SERVER bunu dikkate alır.
Veri kökeni ve veri bütünlüğü
Zaman içindeki veri değişikliklerinin geçmiş kayıtlarını tutmak, verilerde yanlışlıkla yapılan değişiklikleri ele almak için yararlı olabilir. Uygulama değişikliği denetimi için de yararlı olabilir ve hatalı bir aktör yetkilendirillenmemiş veri değişikliklerine neden olduğunda veri öğelerini kurtarabilir.
- Zaman içindeki kayıt sürümlerini korumak ve uygulamanızın verilerinin geçmiş bir görünümünü sağlamak için verileri kaydın ömrü boyunca olduğu gibi görmek için zamansal tabloları kullanın.
- Zamansal Tablolar, geçerli tablonun herhangi bir zamanda bir sürümünü sağlamak için kullanılabilir.
Güvenlik değerlendirme araçları ve değerlendirme
Aşağıdaki yapılandırma ve değerlendirme araçları yüzey alanı güvenliğini ele alır, veri güvenliği fırsatlarını tanımlar ve örnek düzeyinde SQL Server ortamınızın güvenliğine ilişkin en iyi uygulama değerlendirmesini sağlar.
- Yüzey alanı konfigürasyonu - Kötü amaçlı bir kullanıcı tarafından saldırıya uğrayabilecek özellik sayısını en aza indirmek için yalnızca ortamınızın gerektirdiği özellikleri etkinleştirmeniz gerekir.
- SQL Server (SSMS) için güvenlik açığı değerlendirmesi - SQL güvenlik açığı değerlendirmesi, olası veritabanı güvenlik açıklarını keşfetmeye, izlemeye ve düzeltmeye yardımcı olan SSMS v17.4+ bir araçtır. Güvenlik açığı değerlendirmesi, veritabanı güvenliğinizi geliştirmeye yönelik değerli bir araçtır ve veritabanı düzeyinde veritabanı başına yürütülür.
- SQL Veri Bulma ve Sınıflandırması (SSMS) - Veritabanı yöneticilerinin sunucuları ve veritabanlarını yönetmeleri ve veritabanında yer alan verilerin duyarlılığının farkında olmamaları yaygın bir durumdur. Veri Bulma & Sınıflandırması, verilerinizin duyarlılık düzeyini bulma, sınıflandırma, etiketleme ve raporlama özelliği ekler. Veri Bulma & Sınıflandırması, SSMS 17.5ile başlayarak desteklenir.
Yaygın SQL tehditleri
SQL Server'ı riske atacak bazı yaygın tehditlerin ne olduğunu bilmenize yardımcı olur:
- SQL enjeksiyonu - SQL enjeksiyonu, yürütme için SQL Server örneğine geçirilen metin dizilerine kötü amaçlı kodun yerleştirildiği bir saldırı türüdür.
- Ekleme işlemi, bir metin dizesini sonlandırarak ve yeni bir komut ekleyerek çalışır. Eklenen komut yürütülmeden önce ekli daha fazla dize içerebileceğinden, saldırgan eklenen dizeyi
--
bir açıklama işaretiyle sonlandırır. - SQL Server, alınan söz dizimsel olarak geçerli tüm sorguları yürütür.
- Ekleme işlemi, bir metin dizesini sonlandırarak ve yeni bir komut ekleyerek çalışır. Eklenen komut yürütülmeden önce ekli daha fazla dize içerebileceğinden, saldırgan eklenen dizeyi
- Yan kanal saldırılarına kötü amaçlı yazılım &diğer tehditlere dikkat edin.
SQL ekleme riskleri
SQL ekleme riskini en aza indirmek için aşağıdaki hususları göz önünde bulundurun:
- Ekleme güvenlik açıkları için SQL deyimleri oluşturan tüm SQL işlemlerini gözden geçirin.
- Dinamik olarak oluşturulan SQL deyimlerini parametreli bir şekilde oluşturun.
- Geliştiriciler ve güvenlik yöneticileri
EXECUTE
,EXEC
veyasp_executesql
çağıran tüm kodları gözden geçirmelidir. - Aşağıdaki giriş karakterlerine izin verme:
-
;
: Sorgu sınırlayıcısı -
'
: Karakter veri dizesi sınırlayıcısı -
--
: Tek satırlı açıklama sınırlayıcısı. -
/* ... */
: Yorum sınırlayıcıları. -
xp_
:xp_cmdshell
gibi katalog genişletilmiş saklı yordamlar.-
xp_cmdshell
herhangi bir SQL Server ortamında kullanılması önerilmez. Bunun yerine SQLCLR kullanın veyaxp_cmdshell
neden olabileceği risklerden dolayı diğer alternatifleri arayın.
-
-
- Her zaman kullanıcı girişlerini doğrulayın ve hata çıkışlarının taşması ve saldırganın kullanımına açık olmasını önleyebilirsiniz.
Yan kanal riskleri
Yan kanal saldırısı riskini en aza indirmek için aşağıdakileri göz önünde bulundurun:
- En son uygulama ve işletim sistemi düzeltme eklerinin uygulandığından emin olun.
- Hibrit iş yükleri için, şirket içi tüm donanımlar için en son üretici yazılımı yamalarının uygulandığından emin olun.
- Azure'da, son derece hassas uygulamalar ve iş yükleri için yalıtılmış sanal makineler, ayrılmış konaklar veya DC serisi ve 3. Nesil AMD EPYC işlemcileri kullanan Sanal Makineler gibi Gizli İşlem sanal makinelerini kullanarak yan kanal saldırılarına karşı ek koruma ekleyebilirsiniz.
Altyapı tehditleri
Aşağıdaki yaygın altyapı tehditlerini göz önünde bulundurun:
- Kaba kuvvet erişimi : Saldırgan, doğru bir şifre bulunana kadar farklı hesaplarda birden çok şifreyle kimlik doğrulaması yapmaya çalışır.
- Parola kırma / parola spreyi - saldırganlar bilinen tüm kullanıcı hesaplarında (birçok hesabın bir parolası) dikkatle hazırlanmış tek bir parolayı dener. İlk parola spreyi başarısız olursa, farklı bir dikkatle hazırlanmış parola kullanarak yeniden denerler ve normalde algılamayı önleme girişimleri arasında belirli bir süre beklerler.
- Ransomware saldırıları, kötü amaçlı yazılımların verileri ve dosyaları şifrelemek için kullanıldığı ve önemli içeriğe erişimi önleyen bir hedefli saldırı türüdür. Saldırganlar daha sonra şifre çözme anahtarı karşılığında genellikle kripto para birimleri biçimindeki kurbanlardan para sızdırmaya çalışır. Çoğu fidye yazılımı enfeksiyonu, fidye yazılımı yüklemeye çalışan ekleri olan e-posta iletileriyle veya fidye yazılımı yüklemek için web tarayıcılarında ve diğer yazılımlarda güvenlik açıklarını kullanmaya çalışan güvenlik açığı kitlerini barındıran web siteleri ile başlar.
Parola riskleri
Saldırganların hesap adlarını veya parolaları kolayca tahmin etmelerini istemediğinizden, aşağıdaki adımlar parolaların bulunması riskini azaltmaya yardımcı olur:
- Administratorolarak adlandırılmamış benzersiz bir yerel yönetici hesabı oluşturun.
- Tüm hesaplarınız için karmaşık güçlü parolalar kullanın. Güçlü parola oluşturma hakkında daha fazla bilgi için Güçlü parola oluşturma makalesine bakın.
- Varsayılan olarak Azure, SQL Server sanal makine kurulumu sırasında Windows Kimlik Doğrulama'yı seçer. Bu nedenle, SA oturum açma devre dışı bırakılır ve kurulum tarafından bir parola atanır.
SA oturum açma bilgilerinin kullanılmaması veya etkinleştirilmemesi önerilir. SQL oturum açma bilgilerinizin olması gerekiyorsa aşağıdaki stratejilerden birini kullanın:
Benzersiz bir ada sahip sysadmin üyeliği olan bir SQL hesabı oluşturun. Sağlama sırasında SQL Kimlik Doğrulaması etkinleştirerek bunu portaldan yapabilirsiniz.
Bahşiş
Sağlama sırasında SQL Kimlik Doğrulaması'nı etkinleştirmezseniz, kimlik doğrulama modunu SQL Server ve Windows Kimlik Doğrulama Modu olarak el ile değiştirmeniz gerekir. Daha fazla bilgi için bkz. Sunucu kimlik doğrulama modunu değiştirme.
Eğer SA oturum açma işlemini kullanmanız gerekiyorsa, kurulumdan sonra oturum açmayı etkinleştirin ve yeni bir güçlü parola atayın.
Fidye yazılımı riskleri
Fidye yazılımı risklerini en aza indirmek için aşağıdakileri göz önünde bulundurun:
-
fidye yazılımı karşı korumanın en iyi stratejisi, RDP ve SSH güvenlik açıklarına özellikle dikkat etmektir. Ayrıca, aşağıdaki önerileri göz önünde bulundurun:
- Güvenlik duvarlarını kullanma ve bağlantı noktalarını kilitleme
- En son işletim sistemi ve uygulama güvenlik güncelleştirmelerinin uygulandığından emin olun
- Grup tarafından yönetilen hizmet hesaplarını (gMSA) kullanma
- Sanal makinelere erişimi sınırlama
- Tam zamanında (JIT) erişim ve Azure Bastion gerektir
- Yerel makineye sysinternals ve SSMS gibi araçlar yüklemekten kaçınarak Surface Area Security'yi geliştirin
- Gerekli olmayan Windows Özelliklerini, rollerini ve etkinleştirme hizmetlerini yüklemekten kaçının
- Ayrıca, veritabanlarının kopyalarını silememeleri için ortak bir yönetici hesabından ayrı olarak güvenli hale getirilen düzenli bir tam yedekleme zamanlanmış olmalıdır.
İlgili içerik
- SQL Server Güvenliğini Sağlama
- Azure SQL Veritabanı ve SQL Yönetilen Örnek
- Azure VM'lerinde SQL Server