“Sunucu Durumunu Görüntüle” nin Güvenlik ve Performans Etkileri


13

Bu soru , çeşitli DMV'ler (dinamik yönetim görünümleri) için "Sunucu Durumunu Görüntüle" izninin gerekli olduğuna dikkat çekiyor, ancak kime yaptığınız ve izin vermek istemediğiniz hakkında hiçbir şey bulamıyorum.

Şimdi elbette "en az izinleri" ve neden sadece kimseye vermek istemeyeceğinizi anlıyorum, ancak izin verilip verilmeyeceğini nasıl değerlendireceğime dair bir rehber bulamıyorum.

Benim sorum: Kullanıcıya "Sunucu Durumunu Görüntüle" izni vermenin güvenlik ve performans etkileri nelerdir? Yapabileceklerine izin verilmemeleri için ne yapabilirler ...

Güncelleme : bir sonuç, kullanıcının sorgulara bakmak için DMV'leri kullanabilmesidir. Sorgular veya sorgu parametreleri, kullanıcının başka türlü göremeyeceği gizli bilgiler içeriyorsa, GÖRÜNÜM SUNUCUSU DURUMUNA izin vermek, bunun yapılmasına izin verir (örn. Dob = veya ssn =).

Yanıtlar:


5

Bu izni vermeyi düşünebileceğim önemli bir performans sorunu yok. Güvenlik açısından bakıldığında, bir kullanıcının zayıf noktalarınızla ilgili en fazla ayrıntıyı görmenize izin verme riskini taşırsınız; örneğin, kötü niyetli bir kullanıcı, sunucunuza karşı bir DoS saldırısını hedeflemesine yardımcı olabilecek en yaygın bekleme istatistiklerinizi görebilir. .

Mümkün mü? Kesinlikle. Bu olası mı? Hayır demeye mecburum, ancak şirketlere yönelik saldırıların yüzde 90'ının dahili saldırganlardan geldiği tahmin ediliyor.


3

Yönetici olarak bu bilgileri alan adınızda (performans / dizin kullanımı / vb.) Olarak görürsünüz, ancak bir geliştirme kuruluşunun bu bilgileri yalnızca dokundukları zombi tablolarını tanımlayan büyük bir eski sistem için istemesi potansiyel olarak zorlayıcı nedenler vardır. örneğin bakım işlemleri ile.

Sonunda her zaman bir "şans ve cömertlik" meselesi haline gelir, çünkü belirli bir talebin haklı olup olmadığı çağrısı net bir formül değil, yumuşak bir seçimdir. Bağlama bakmadan en iyi alıştırma modellerinin kullanılması oldukça kötü bir anti-kalıptır ve gerçek şu ki, birçok kişi pozisyonlarına "el ile konuş" ile bir başlangıç ​​noktası olarak yaklaşır.


1

Performans sonuçları ile ilgili olarak, bunun veya başka bir izin için hiçbir bilgim yok.

ilgili olarak:

Yapabileceklerine izin verilmemeleri için ne yapabilirler?

Basitçe söylemek gerekirse, belki de görmemesi gereken şeyleri görebilirler. Ve bunu sadece SQL Server açısından düşünmeyin. Bu özel izin ayrıca sys.dm_os_sys_info gibi ana bilgisayarlara (donanım, hizmetler vb.) Bilgi sağlayan DMV'leri de yönetir . Size karşı hangi bilgilerin kullanılabileceğini her zaman bilemezsiniz. Ve şu anda bu izin tarafından izin verilen her şeyi gören biriyle iyi olsanız bile, bazen Hizmet Paketleri / Toplu Güncelleştirmeler'e DMV'ler eklenir ve belki de farkında olmadığınız yeni bir bilgi ortaya çıkar.

Verilip verilmeyeceğinin nasıl değerlendirileceğine dair bir rehber bulamıyorum.

İnsanlara gereken minimum izinleri verdiğinizden daha önce bahsettiğinizden, bunun gerçekten anlamı şudur: Birisi geçici kullanım için bu izne ihtiyaç duyuyor mu? Yani, birinin kendi sorgularını bulma esnekliğine ihtiyacı var mı? Bir veya daha fazla saklı yordam ve / veya çok bildirimli TVF oluşturmak işe yarar mı? Öyleyse, herhangi bir kullanıcıya izin vermeniz gerekmez (bu izin tarafından izin verilen herhangi bir şeye ücretsizdir) ve bunun yerine koda izinleri verirsiniz (yalnızca kodlanması gereken şeyi yapar). Modül İmzalama bunu nasıl başardığınızdır. Genel kavram:

  1. İstenen eylem (ler) i gerçekleştirmek için saklı yordam (lar) ve / veya çoklu tablo TVF (ler) i oluşturun.
  2. Grant EXECUTEne olursa olsun kullanıcı ve / veya rollere bu eylemleri gerçekleştirmek için gereken bu modülleri
  3. Sertifika oluşturma
  4. Bu sertifikayı kullanarak modülleri imzalayın (kullanarak ADD SIGNATURE)
  5. Sertifikayı [master]veritabanına kopyalayın (yani [master], modül (ler) i imzalamak için kullanılan sertifikanın ortak anahtarını kullanarak bir sertifika oluşturun .
  6. Kopyalanan sertifikadan bir giriş oluşturun [master]
  7. Sertifika tabanlı oturum açma için gerekli olan örnek düzeyi izinlerini verin (örnek düzeyi rollere eklemeyi de içerebilir).

Bazı örnekler için lütfen bakınız:


0

Bu bir güvenlik sorunu. En Az Ayrıcalıklı İlkesi'ni uygularsanız asla yanlış gidemezsiniz . Başka bir deyişle, kimlik doğrulaması yapan bir yöneticinin belirli bir izne ihtiyacı yoksa, bu izni onlara vermeyin. Eviniz hakkında bilmeniz gerekmeyen diğer insanlara kapınızdaki kilitlerin türü hakkında bilgi veriyor musunuz? Umarım olmaz. Muhtemelen hiçbir şey yapmazlardı, ama yine de ihtiyatlı değil.

Veri ilkelerini şanstan ve cömertlikten yola çıkarsak, biraz daha sık sorunla karşılaşırdık. Güvenlik, yalnızca neden verdiğinizi savunabildiğinizde vermeniz gereken bir özelliktir. Birisine bilmeleri gerekenden daha fazla bilgi veriyorsunuz . Yapma. Sunucu durumu hala hassastır.


1
Kim gereksiz yere verdiklerini söylüyor? OP'nin belirli bir sorunu araştırması (örneğin bakmak için sys.dm_db_missing_index_details) birine vermesi gerekebilir ve risklerin tam olarak ne yaptığını bilmek isterler.
Martin Smith

Sanırım bu sorudaki işareti kaçırıyorum, soruda izin gerekliliğini gösteren hiçbir şey görmüyorum.
Thomas Stringer

4
@ThomasStringer: soru gereklilikle ilgili değil , riskle ilgili . Parasal olarak ifade etmek gerekirse, bunun sunucularınızı hangi ek risklere maruz bırakacağını biliyor olabilirsiniz ve bu yüzden bir kuruşa hayır diyebilir ve bir milyon dolara evet diyebilirsiniz. Yapmıyorum ama istiyorum.
jmoreno
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.