web-dev-qa-db-ja.com

IIS Webサーバーのディスクへのフルアクセスで、データベースサーバーにアクセスできますか?

理論的な設定は次のとおりです。

  • IISでWindowsServerを実行しているWebサーバーがあります
  • データベースに接続するWebサイトがここで実行されています
  • このウェブサイトは、サーバーの起動時に自動的に起動できます
  • データベース接続は、信頼できるWindows認証を使用して行われます
  • 悪意のあるパーティがWebサーバーからハードドライブを取得します

悪意のある当事者がデータベースにアクセスすることは可能ですか?

私の知る限り、信頼できる認証では、Webサイトが実行されているユーザーが使用されます。したがって、このユーザーには何らかの自動ログインが必要です。これは悪用される可能性のある領域ですか?ドメインコントローラーが原因で問題が発生しますか?

「はい、もちろん可能です」や「いいえ、100%安全です」などの回答は投稿しないでください。これがどの程度安全であるのか、そしてその理由について説明をお願いします。

5
Richard

WindowsマシンがActiveDirectoryドメインの一部である場合、認証の管理には Kerberos が使用されます。 Kerberosを使用すると、ドメインコントローラーがゲームマスターになります。誰もがそれを信頼し、他には誰も信頼しません。つまり、Webサイトがデータベースに接続すると、Webサイトを含むマシン(「WWW」と呼びます)がドメインコントローラー(「DC」)と通信し、WWWの内臓に格納されている秘密の値を使用します。 [〜#〜] dc [〜#〜]を説得するために、それはまさにその機械であり、正気で精神と体の音である:秘密の価値は最も特権のある人だけがアクセスできるWWWでのプロセス。

DCが納得すると、次のようなWWWからのリクエストを受け入れます。「データベースに表示できるチケットをください。私がユーザー 'SomeDomain\SomeAccount'であり、その名前でデータベースに接続しようとしていることを証明します。 "。そのチケットは、データベースサーバー(DB)がDCと通信して検証する暗号計算の結果です(「このチケットは現在有効ですか?」)。チケットにはタイムアウトが埋め込まれており、有効期間は短くなります。

それは私たちの問題にとってどういう意味ですか?これは、攻撃者がWWWのハードディスクの完全なコピーを取得することで、WWWがDCへの認証に使用する秘密の値を学習することを意味します。これは、DBに直接接続するのに十分な秘密を彼に与えませんしません。実際、DBはDCのみを信頼します。したがって、実際にDBに接続するには、攻撃者はWWWとしてポーズ、つまり同じネットワーク上でマシンを起動する必要があります。これにより、WWWのハードディスクの内容に関する知識を使用してDC正当なWWWであることを確認し、DBを喜ばせる接続チケットを入手してください。さらに、それを実現するには、本物のWWWマシンをシャットダウンするか、少なくともネットワークから切断する必要があります。これは、DCが2台のマシンを同時に認識し、両方がWWWであると主張し、WWW固有であることを知っているためです。その効果の秘密である場合、DCは怒り狂い、両方と話すのをやめる可能性があります。

概要:シナリオでは、Webサーバーのディスク全体のコピーが盗まれると、攻撃者が代わりに偽のマシンを実行するアクティブな攻撃の場合にのみ、データベースへの不正な接続が許可されます。本物のWebサーバーの。これは、Webサーバーを管理者レベルで制御することと同じです(攻撃者がハードウェアを切り替えるかどうかは、実際には関係ありません)。データベースへの接続を成功させるには、ドメインコントローラーが関与している必要があります。

4
Thomas Pornin

はい、方法があります。ハードディスクの内容を自分のコントロールするマシンに入れて起動するだけです。これで、データベースにアクセスできるプロセスが実行されました。

次に、そのプロセスのメモリを操作して、必要な処理を実行します。無関係の管理者アカウントのオフラインパスワードリセットを使用してWindowsへのアクセスを強制するか、ダイレクトメモリアクセスハードウェア(NTFSバグを悪用するUSB​​スティック、PCI-Eカードなど)を使用することができます。次に、そのプロセスの生きている頭脳に割り込んで、任意のクエリを実行させることができます。

0
usr