web-dev-qa-db-ja.com

ドメインメンバーサーバーからのリモートコード実行を防ぐにはどうすればよいですか?

ファイアウォール、グループポリシー設定、またはその他のコントロールを使用して、ドメインメンバーにログインしているユーザーが、ドメインコントローラーでコードをリモートで実行できないようにする方法はありますか(他の方法ではネットワークにアクセスできません)。彼らは誰かのドメイン管理者の資格情報を盗んだ可能性がありますか?または、通常のADメンバーシップに必要なネットワークアクセスは、たとえば PsExec またはPowerShellを使用したリモート実行に必要なネットワークアクセスと永久に不可分に同じですか?

例の概要を説明します。

  • Windowsサーバー「member1」は単純なADドメインのドメインメンバーです
  • Windowsサーバー「dc1」と「dc2」は、この単純なドメインのドメインコントローラーです。
  • member1とDCの間にはハードウェアファイアウォールがあり、ドメインメンバーシップに必要な TCPおよびUDPポート のみがmember1とDCの間で許可されます。
  • ユーザー「Jack」は「member1」のユーザーであり、前の箇条書きで説明したアクセス以外に、DCへのネットワークアクセスがありません。
  • ジャックは狡猾で、ソーシャルエンジニアリング攻撃またはその他の方法でドメイン管理者「ジル」の資格情報を取得できます。
  • ジャックはこれらの資格情報を取得し、member1にログインし、おそらく PsExec またはPowerShellを使用してdc1またはdc2でコードをリモートで実行できます。これは、ドメインメンバーシップに必要なネットワークアクセスにこのようなリモート呼び出しを実行するために必要なネットワークアクセス。

Member1がドメインでルーチンのAD機能(認証、グループポリシーの更新、時刻同期など)のみを実行できるようにし、DCでのプロセスのリモート実行などの他のアクションを防止することで、この攻撃を阻止したいと思います。

2
user1266898

これは不可能です。ドメインに参加すると、ドメインはユーザーをコンピューター上に存在させるようにサインインし、GPOを適用することができます。 GPOにより、ソフトウェアがネットワークからインストールされ、任意のレジストリエントリが変更される可能性があります。

エンクレーブでRODCを使用すると、ドメインはエンクレーブから保護されますが、エンクレーブはドメインから保護されません。ただし、これを逆に使用してセキュリティを強化し、すべての管理対象コンピュータをRODCとのみ通信させ、他のDCのみが書き込み可能なDCにアクセスできるようにすることができます。

ドメインの侵害から保護したい機密性の高いコンピューターがある場合は、それらのホスト用に別のドメインを(別のフォレストに)作成し、それらを個別に管理することを検討してください。これは、安全なエンクレーブが必要な場合に非常に一般的です。特にドメインの数が非常に少ない場合は、ドメインにまったく参加しないことを検討することもできます。

あなたのコメントを見て、私はあなたの脅威モデルが何であるか本当にわかりません。

正確に何をするかは、脅威モデルに大きく依存します。ただし、通常、ドメインメンバーと任意のユーザーは、ドメインコントローラーでコードを実行できません。懸念されるエクスプロイトの場合、パッチ適用は適切なポリシーです。どちらの場合も、RODCはドメイン内の何も変更できないため、RODCを使用すると影響を制限できます。

ユーザーがコマンドをリモートで実行したり、ドメインコントローラーにログインしたりすることを心配している場合(ユーザーが何らかの特権昇格エクスプロイトなどを使用せずにドメインにソフトウェアを展開するなどの権限をユーザーに付与しない場合)、ユーザーを防ぐことができますグループポリシーによるDCへのログインから。

このための設定は、DCに適用されるGPO、Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment...の下にあります。それがあなたがやろうとしていることである場合。

ユーザー(およびその他のセキュリティプリンシパル)は、ドメインまたはマシンにバインドされていますが、両方にバインドされているわけではありません。 ADで接続しているコンピューターに基づいて、ドメイン管理者権限を拒否するようなことは実際にはできません。ただし、実行できることは、RODCではないDCへのネットワークアクセスを制限することです。これは、ランダムなユーザーワークステーションからの管理アクションを防ぐのに十分である可能性があります(脅威モデルによって異なります)。ユーザーがRODCをピボットポイントとして使用できないようにしたい場合(それはあなたがやりたいことですか?)、ユーザーへのすべてのログイン権限を拒否できると思いますが、それでは管理がかなり難しくなります-代わりに、許可することだけをお勧めしますDS RODCと他のDC間のファイアウォール上のレプリケーションポート。

開く必要のあるポートは、RODC展開のドキュメントで特定されているポートです。 https://technet.Microsoft.com/library/dd728028%28v=ws.10%29.aspx の「必要な通信ポート」のセクションを参照してください。しかし、残念ながら、RPCを許可する必要があり、それがpsexecの動作方法です。これにより、RDPなどによるログインのみを禁止できます。

それを締めくくり、盗まれた資格情報でのpsexecの使用を防ぐために、書き込み可能なドメインコントローラーで前述のGPOを介して、ドメイン管理者がバッチジョブログインを禁止することができます。これにより、管理性がわずかに低下しますが、あなたが下すことができる決定。ドメイン管理者アカウントのセキュリティに関するこれと他のヒントについての本当に良いドキュメントが https://technet.Microsoft.com/en-us/library/dn487454.aspx にあります。包括的なドメイン管理者ではなく、委任を通じて管理者アカウントに特定の管理者権限が付与される、委任されたアクセスもオプションになる場合があります。

3
Falcon Momot

ドメインコントローラーから何にアクセスする必要がありますか? member1とドメインコントローラーの間にファイアウォールがあるため、dc1とdc2へのすべてのアクセスをブロックしてから、member1がアクセスできるファイアウォールの外側に読み取り専用ドメインコントローラーやWebフロントエンドなどを配置できます。

4
Zach Bolinger

事前に承認したものを除き、SRPまたはAppLockerを使用してすべての実行可能ファイル(exe、bat、ps1など)がDCで実行されないようにブロックするだけで、この問題を別の方向から攻撃できます。そうすれば、たとえアクセスできたとしても、深刻な障害になります。

しかし、誰かが管理者権限を持っていると仮定すると、ほとんどのコンピューターからドメインに対してやりたいことが何でもできます-DCは主に認証のためにあります...

そして、トッドが言ったように、ジルを信頼できない場合は、ここで権利を削除する方がよいでしょう...

2
EliadTech

簡単に言えば、ドメイン管理者は自分がやりたいことを何でもできます(したがってドメイン管理者です!)。ドメイン管理者の資格情報を盗んだ人をブロックする方法はありません。彼はあなたが実施したセキュリティ対策を無効にすることができます。

1
strongline

Powershellを無効にして、psexecを停止できます。このようなことを行っても、管理が複雑になり、ユーザーが「ドメイン管理者」の資格情報を取得してもユーザーが何も実行できないという問題が発生します。 RDP機能を停止して、ネットワーク上の特定のPCからのみアクセスできるようにすることもできますが、それでも絶対確実ではなく、誰かがアクセスするのが難しくなります。

1
Luke