「View Server State」のセキュリティとパフォーマンスへの影響


13

この質問は、さまざまなDMV(動的管理ビュー)には「サーバー状態の表示」権限が必要であることを指摘していますが、あなたが誰をしていて、その権限を付与したくないかについては何もわかりません。

もちろん、私は「最低限のアクセス許可」と、それを誰にも付与したくない理由を理解していますが、付与する必要があるかどうかを評価する方法についてのガイドはありません。

だから、私の質問:ユーザーに「サーバー状態の表示」権限を付与することのセキュリティとパフォーマンスへの影響は何ですか?許可されるべきではないことを彼らが何ができるか...

更新:1つの影響は、ユーザーがDMVを使用してクエリを確認できることです。クエリまたはクエリパラメータに、ユーザーが見ることができない機密情報を含めることができる場合、VIEW SERVER STATEを許可すると、そうすることができます(つまり、dob =またはssn =)。

回答:


5

この権限を付与することで考えられるパフォーマンス上の重大な問題はありません。セキュリティの観点からは、弱点の最も詳細な内容をユーザーに見せるリスクがあるため、たとえば、悪意のあるユーザーが最も一般的な待機統計を表示して、サーバーに対するDoS攻撃を標的にするのに役立つ可能性があります。 。

これは可能ですか?間違いなく。これはありそうですか?私は「いいえ」と言わざるを得ませんが、企業に対する攻撃の90%は内部攻撃者からのものであると推定されていることを思い出してください。


3

管理者はこの情報をドメイン内にあると見なします(パフォーマンス/インデックスの使用状況など)が、開発組織がサポートする大規模なレガシーシステムでこの情報を必要とする説得力のある理由があります。たとえば、メンテナンスプロセスによって。

結局のところ、特定の要求が正当化されるかどうかの要求は最終的には明確な式ではなくソフトな選択であるため、それは常に「運と寛大さ」の問題となります。コンテキストを見ないでベストプラクティスパターンを使用すること自体は、かなり厄介なアンチパターンであり、現実には、多くの場合、「手で話す」ことを起点として自分たちの位置にアプローチします。


1

パフォーマンスへの影響に関して、私はこれまたはその他の許可については知りません。

について:

許可されてはいけないことを彼らが何ができるか

簡単に言えば、彼らはおそらく彼らが見るべきではないものを見ることができます。そして、これをSQL Serverだけで考えてはいけません。この特定の権限は、sys.dm_os_sys_infoなどのDMV、およびホストマシン(ハードウェア、サービスなど)に関する洞察を提供する他の多くの権限も管理します。あなたは常にどの情報があなたに対して使用できるかを知りません。また、この許可で許可されているすべての内容を誰かが確認しても問題ない場合でも、DMVがサービスパック/累積的な更新プログラムに追加される場合があるため、知らない新しい情報が公開される可能性があります。

それが許可されるべきかどうかを評価する方法についてのガイダンスは見つかりません。

あなたは既に最小の権限が必要な人を与えて言及したので、何これは本当にあるにダウンしています:のための誰かの必要性はありません。この権限アドホック使い方?つまり、独自のクエリを作成する柔軟性が必要ですか?1つ以上のストアドプロシージャや複数ステートメントのTVFを作成することはできますか?その場合、ユーザーにアクセス許可を付与する必要はありません(ユーザーはそのアクセス許可で許可されたすべてのことを自由に行えます)代わりに、コードにアクセス許可を付与しますコード化されていることだけを実行します)。モジュール署名は、これを実現する方法です。一般的な概念は次のとおりです。

  1. 必要なアクションを実行するために、ストアドプロシージャやマルチステートメントTVFを作成します。
  2. EXECUTEこれらのモジュールを、これらのアクションを実行するために必要なユーザーやロールに付与します
  3. 証明書を作成する
  4. その証明書を使用してモジュールに署名します(を使用してADD SIGNATURE
  5. 証明書を[master]データベースにコピーします(つまり[master]、モジュールの署名に使用される証明書の公開鍵を使用して証明書を作成します)。
  6. にコピーされた証明書からログインを作成します [master]
  7. 証明書ベースのログインに必要なインスタンスレベルの権限を付与します(インスタンスレベルのロールに追加することもできます)。

いくつかの例については、以下を参照してください。


0

これはセキュリティの問題です。最小特権の原則に従えば、決して失敗することはありません。言い換えれば、認証プリンシパルが特定の許可を必要としない場合、それを彼らに与えないでください。あなたの家についてそれを知る必要のない他の人々にあなたのドアの鍵の種類に関する情報を提供しますか?望みません。彼らはおそらく何もしませんが、それでも賢明ではありません。

運と寛大さからデータの原則に基づいた場合、かなり大きな問題がかなり頻繁に発生します。セキュリティは、許可した理由を守ることができる場合にのみ許可すべき側面です。 あなたは単に誰かが知る必要があるよりも多くの情報を誰かに与えているだけです。しないでください。サーバーの状態は依然として重要です。


1
彼らが不必要にそれを与えていると言うのは誰ですか?OPは、特定の問題を調査するために(たとえばを調べるためにsys.dm_db_missing_index_details)誰かにそれを許可する必要がある場合があり、彼らはそうすることのリスクが正確に何であるかを知りたいです。
Martin Smith、

私はこの質問のマークが抜けていると思いますが、許可の必要性を示す質問には何も表示されません。
トーマス・ストリンガー、2012年

4
@ThomasStringer:問題ではありませんについては必要、それはについてです危険。これを金銭的に見ると、サーバーがさらされる追加のリスクを知っている可能性があるため、1ペニーに対してはノー、100万ドルに対してはイエスと言えるでしょう。私はしませんが、したいです。
jmoreno 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.