現在オフラインです。再接続するためにインターネットの接続を待っています

MS02-001: Windows 2000 における偽造された SID による特権の昇格

この記事は、以前は次の ID で公開されていました: JP289243
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。

Windows NT4.0 に対するこの問題の解決方法について参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
289246 MS02-001: Windows NT 4.0 における偽造された SID による特権の昇格
現象
Microsoft Windows NT および Windows 2000 のシステム リソースは、アクセス制御リスト (以下 ACL) によって保護されます。ACL とは、セキュリティ識別子 (SID) のリスト、およびそのセキュリティ プリンシパルに付与されたアクセス権限や許可のリストです。SID はドメインと関連しています。ドメインのユーザーまたはグループの SID は、常にドメインの SID に基づいており、ユーザーまたはグループを一意に識別します。ACL はリソース上に配置され、そのリソースへのアクセスを許可されているユーザーとグループ、およびそれらのユーザーとグループに対して許可されているアクセス レベルを示します。ユーザーがあるリソースにアクセスしようとすると、Windows は ACL 内の SID のリストと、ユーザーとそのグループ メンバシップを特定する SID とを比較し、状況に応じてアクセスの許可や拒否を行います。

ユーザーがドメインにログオンすると、ユーザーのアカウントの SID とグループ メンバシップの SID が、ユーザーのアカウント ドメインのドメイン コントローラによって決定されます。このとき、信頼されたドメインの SID、ユーザー アカウントの相対識別子 (以下 RID)、ユーザーのプライマリ グループの RID、およびその他すべてのグループ メンバシップの SID が結合されて認証データ構造が形成され、それを要求しているコンピュータに渡されます。また、認証を行うドメイン コントローラが Windows 2000 を実行している場合、ユーザーが SIDHistory 属性に SID を持っているかどうかも確認され、それらの SID が認証データに含められます。

ユーザーの認証を要求しているコンピュータが、そのユーザー アカウントのあるドメインとは異なるドメインにある場合、認証は信頼関係を使用して行われます。信頼関係は、Windows NT または Windows 2000 ベースのドメインでユーザーの認証手順を簡略化するために、特にシングル サインオンを有効にするために作成されます。あるドメインが別のドメインを信頼するということは、信頼する側のドメインが、信頼される側のドメインの管理下にあるユーザー (またはコンピュータ) のアカウントを、信頼される側のドメインに認証させることを意味します。認証する際に、信頼する側のドメインのコンピュータは、信頼される側のドメイン コントローラから提供される認証データを受け入れます。このとき、認証を要求しているコンピュータが、提供された認証情報の正当性を確認する方法はないため、認証データは存在する信頼関係に基づいてそのまま受け入れられます。

信頼する側のドメインは、信頼される側のドメインが認証データ内のすべての SID に対して実際に権限を持っているかどうかを検証しないため、ここに脆弱性が存在します。リスト内の SID の 1 つが、信頼される側のドメインに属さないユーザーやセキュリティ グループのものであっても、信頼する側のドメインはその情報を受け入れ、以後アクセス制御を行う際にそれを使用します。攻撃者が信頼される側のドメインの認証データに SID を追加した場合、攻撃者は自分の権限を、信頼される側のドメインの Domain Administrators グループなど、任意のグループまたはユーザーに昇格することができます。これにより攻撃者は、信頼する側のドメイン内のコンピュータで Domain Administrators のフル アクセス許可を取得することが可能となります。

この脆弱性を利用するのは困難です。攻撃者には、少なくとも信頼される側のドメインの管理者権限と、低レベルのオペレーティング システムの機能およびデータ構造を修正する技術的手法が必要となります。Windows 2000 には、認証データに新たな SID を追加する機構が用意されています。これは SIDHistory と呼ばれます。しかし、攻撃者が管理者権限を持っていたとしても、SIDHistory 情報に SID を追加するためのプログラミング インターフェイスはなく、攻撃者は SIDHistory 情報を含むデータ構造をバイナリで編集する必要があります。これらの潜在的な攻撃を防ぐため、マイクロソフトは Windows NT 4.0 および Windows 2000 に SID フィルタリングと呼ばれる機能を追加しました。SID フィルタリングを使用することにより、管理者は、あるドメインのドメイン コントローラに、信頼される側のドメインを "検証" させることができます。この方法により、信頼する側のドメインのドメイン コントローラは、信頼される側のドメインから受け取ったすべての認証データから、そのドメインに関連しない SID をすべて削除することができます。検証は信頼される側のドメインから、ドメイン単位で実行されます。

SID フィルタリングでは、Windows 2000 の推移性の信頼関係がブロックされます。検証を受けるドメインが 2 つのドメイン間の信頼されたパスに位置している場合、検証を受けるドメインとは別の側にあるドメインのユーザーは、検証を行っているドメインのリソースにアクセスできません。このため、検証を受けるドメインがリーフ ドメインである場合、その子ドメインであるリソース ドメインにユーザー アカウントがまったく含まれていない場合、または検証を受けるドメインが別のフォレストにある場合のいずれかの状況に該当する場合にのみ SID フィルタリングを使用することを推奨します。

Windows 2000 の管理者である場合、フォレスト内に "アクセス制限された" ドメインを作成する目的で SID フィルタリングを使用するのは避けてください。検証は、異なるフォレストにあるドメインに対してのみ行うことを推奨します。また、保護されるドメインと検証を受けるドメインとの間に信頼関係を確立し、その後に信頼する側のドメインで、信頼される側のドメインの SID にフィルタを適用するように構成する必要があります。

マイクロソフトは、この SID フィルタリングを同じフォレスト内のドメイン間で使用することを推奨しません。これは、SID フィルタリングがフォレストのデフォルトの信頼関係と認証動作 (フォレスト内での複製など) を妨害し、プログラムに対して解決困難な問題を引き起こす可能性が高いためです。この資料には、SID フィルタリング環境で正常に動作しないことが知られているプログラムと機能の一覧が含まれています。これらのプログラムや機能が必要な場合、アクセス制限されたドメインの使用は避け、上記の推奨事項に従ってください。マイクロソフトでは、これらの問題の回避策を提供することはできません。
解決方法
この問題を解決するには、Windows 2000 セキュリティ ロールアップ パッケージ 1 (SRP1) を適用してください。 SRP1 についての追加情報は次のサポート技術情報をご覧ください。
311401 Windows 2000 Security Rollup Package 1 (SRP1), January 2002
修正プログラム (日本語版) の属性は次のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。
   日付         時間   バージョン     サイズ    ファイル名   -----------------------------------------------------------------   2001/10/30   04:57  5.0.2195.4016  123,640  Adsldp.dll   2001/10/30   04:57  5.0.2195.4308  130,832  Adsldpc.dll   2001/10/30   04:57  5.0.2195.4016   62,736  Adsmsext.dll   2001/10/30   04:57  5.0.2195.4453  364,816  Advapi32.dll   2001/10/30   04:57  5.0.2195.4141  133,904  Dnsapi.dll   2001/10/30   04:57  5.0.2195.4379   91,408  Dnsrslvr.dll   2001/10/30   04:57  5.0.2195.4450  144,656  Kdcsvc.dll   2001/10/30   04:57  5.0.2195.4439  207,120  Kerberos.dll   2001/10/30   04:57  5.0.2195.4436   70,992  Ksecdd.sys   2001/10/30   04:57  5.0.2195.4436  511,760  Lsasrv.dll    128-bit   2001/10/30   04:57  5.0.2195.4436   33,552  Lsass.exe   2001/10/30   04:57  5.0.2195.4436  114,448  Msv1_0.dll   2001/10/30   04:57  5.0.2195.4153  312,080  Netapi32.dll   2001/10/30   04:57  5.0.2195.4357  369,936  Netlogon.dll   2001/10/30   04:57  5.0.2195.4445 1019,152  Ntdsa.dll   2001/10/30   04:57  5.0.2195.4453  384,784  Samsrv.dll   2001/10/30   04:57  5.0.2195.4117  111,376  Scecli.dll   2001/10/30   04:57  5.0.2195.3649  248,592  Scesrv.dll   2001/10/30   04:57  5.0.2195.4451   10,240  Sp3res.dll   2001/10/30   04:57  5.0.2195.4436   56,592  W32time.dll   2001/10/30   04:57  5.0.2195.4436   62,736  W32tm.exe   2001/10/30   04:57  5.0.2195.4436  162,064  Wldap32.dll
: ファイルの依存関係のため、この修正プログラムには、Microsoft Windows 2000 Service Pack 2 が必要です。
状況
マイクロソフトでは、この問題により Microsoft Windows 2000 のセキュリティにある程度の脆弱性が生じる可能性があることを確認しています。
詳細
この脆弱性の詳細については、下記のマイクロソフト Web サイトを参照してください。

SID フィルタリングの設定

Windows 2000 ベースのドメインでは、Windows 2000 Service Pack 2 (SP2) 版のアップデート済み Netdom.exe ユーティリティを使用して SID フィルタリングを設定することができます。SID フィルタリングが正しく動作するためには、信頼する側のドメイン (別のドメインの検証を行うドメイン) の各ドメイン コントローラに SP2 がインストールされている必要があります。Netdom.exe のアップデート版は SP2 CD-ROM の Support Tools フォルダに含まれています。あるいは、マイクロソフトの Web サイトからダウンロードすることもできます。このバージョンの Netdom.exe には、SID フィルタリングの設定用に /filtersids スイッチが追加されています。

Windows 2000 ベースのドメインで検証を行うには、ドメインのドメイン コントローラで次のコマンドを 1 回実行します (この例では、RESDOM ドメインが ACCDOM ドメインにフィルタを適用します)。
netdom trust RESDOM /D:ACCDOM /UD:ACCDOM\Administrator /PD:adminpwd /UO:RESDOM\Administrator /PO: adminpwd /filtersids:yes
上記に関して SID フィルタリングを無効にするコマンドは次のとおりです。
netdom trust RESDOM /D:ACCDOM /UD:ACCDOM\Administrator /PD:adminpwd /UO:RESDOM\Administrator /PO:"" /filtersids:no
ドメイン上で SID フィルタリングの設定を確認するには、次のコマンドを使用します。
netdom trust RESDOM /D:ACCDOM /UD:ACCDOM\Administrator /PD: adminpwd /UO:RESDOM\Administrator /PO:"" /filtersids
この設定は、Active Directory の通常の複製によって、ドメイン内のすべてのドメイン コントローラに反映されます。

認証および監査での変更点

Windows 2000 での監査の設定方法については、Windows 2000 のオンライン ヘルプを参照してください。

信頼関係が確立されると、信頼する側のドメインは TDO (Trusted Domain object、信頼される側のドメイン オブジェクト) と呼ばれるデータ構造を作成して保存します。TDO には、信頼される側のドメインの SID および信頼関係に関するその他の情報が含まれます。SID フィルタリングが信頼される側のドメインに対して有効なときに、信頼する側のドメインで作成された、検証を受けるドメインに関する TDO 内の SID と一致しないドメイン SID が認証データに含まれている場合には、そのドメインへの認証は成功しません。この現象が発生するのは、認証データに変更が加えられた場合に限られます。この方法で認証が成功しなかったときに、ログオンまたはログオフの監査が有効である場合、信頼する側のドメインで認証要求を処理しているドメイン コントローラのイベント ログにイベントが記録されます。

SP2 には、NTLM 認証用にイベント ID 548 という新しいセキュリティ監査イベントが含まれ、Kerberos 認証中に発生するイベント ID 677 に新しいエラー コード (0xC000019B) が追加されました。ログオンまたはログオフに関するこれらのエラー イベントは、ドメイン SID が "スプーフィング (偽造)" されたときに生成されます。次に、これらのイベント エントリの例を示します。

NTLM 認証の際には以下のイベントが記録されます。
   種類 : 失敗の監査   ソース : Security   分類 : Logon/Logoff   イベント ID: 548   日付 : <イベントの発生日>   時刻 : <イベントの発生時刻>   ユーザー : NT AUTHORITY\SYSTEM   コンピュータ : <イベントが記録されたコンピュータ名>   説明 :     ログオンの失敗:     原因: Domain sid inconsistent     ユーザー名: <認証を受けたユーザー名>     ドメイン: <検証されたドメイン名>     ログオンの種類: 3     ログオン プロセス: NtLmSsp     認証パッケージ: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0     ワークステーション名: <クライアント コンピュータ名>
Kerberos 認証の際には次のイベントが記録されます。
   種類 : 失敗の監査   ソース : Security   分類 : Account Logon   イベント ID: 677   日付 : <イベントの発生日>   時刻 : <イベントの発生時刻>   ユーザー : NT AUTHORITY\SYSTEM   コンピュータ : <イベントが記録されたコンピュータ名>   説明 :     サービス チケット要求の失敗:     ユーザー名: <認証を受けたユーザー名>     ユーザー ドメイン: <ユーザーのドメイン名>     サービス名: <検証を受けたドメインの完全修飾ドメイン名>     チケット オプション: 0x0     失敗コード: 0xC000019B     クライアント アドレス: 127.0.0.1   種類 : 失敗の監査   ソース : Security   分類 : Logon/Logoff    イベント ID: 537   日付 : <イベントの発生日>   時刻 : <イベントの発生時刻>   ユーザー : NT AUTHORITY\SYSTEM   コンピュータ : <クライアント コンピュータ名>   説明 :   ログオンの失敗:     理由: ログオン時に予期されていないエラーが発生しました。     ユーザー名: <認証を受けたユーザー名>     ドメイン: <ユーザーのドメイン名>     ログオンの種類: 2     ログオン プロセス: User32     認証パッケージ: Negotiate     ワークステーション名: <クライアント コンピュータ名>

SID フィルタリングの制限

SID フィルタリングには 3 つの潜在的な難点があり、一部のユーザーが、認証されているリソースにアクセスできない可能性があります。
  • SID フィルタリングおよび SIDHistory は互いに排他的な機構です。SID フィルタリングが有効なドメインでは、検証を受けるドメインから受信する認証データ内の SIDHistory 情報すべてにフィルタが適用されます。
  • Windows 2000 でSID フィルタリングを使用すると、推移的な信頼関係でシングル サインオンが利用できなくなる可能性があります。たとえば、ドメイン A がドメイン B を信頼し、ドメイン B がドメイン C を信頼しているとします。通常 Windows 2000 では、ドメイン A がドメイン C を推移的に信頼しているため、ドメイン C のユーザーはドメイン A のリソースにアクセスすることができます。しかしドメイン A で、ドメイン B に対して有効な SID フィルタリングが使用されていると、ドメイン B にはドメイン C 内の SID への権限がないため、ドメイン A は、ドメイン B がドメイン C のユーザーを認証することを許可しなくなります。
  • ユニバーサル グループがユーザーのアカウント ドメインで管理されていない場合、SID フィルタリングによって、ユニバーサル グループのユーザーのメンバシップに関連する SID にフィルタが適用されます。

互換性のないプログラムおよび機能

以下のプログラムおよび Windows 2000 の機能は、SID フィルタリングと互換性のないことが知られています。
  • ユーザーのアカウント ドメインにないすべてのユニバーサル グループのユニバーサル グループ メンバシップ。
  • ユニバーサル グループに依存している Microsoft Exchange 2000 の機能。
  • 移行されたアカウントに関する SIDHistory。
  • 推移性の信頼関係は正しく機能しません。
  • Active Directory の複製。特にこの理由により、同じフォレスト内のドメイン間で SID フィルタリングを使用することを避けてください。SID フィルタリングは、外部との信頼関係に対してフィルタを適用する場合にのみ使用してください。
Windows 2000 Datacenter Server 用修正プログラムの入手方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
265173 Datacenter Program と Windows 2000 Datacenter Server
複数の修正プログラムのインストール時に再起動を 1 回のみにする方法を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
296861 QChain.exeを使用して複数のHOTFIXを再起動せずにインストールする方法
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 289243 (最終更新日 2002-01-31) を基に作成したものです。

security_patch kbWin2000srp1
プロパティ

文書番号:289243 - 最終更新日: 12/06/2015 00:35:24 - リビジョン: 3.0

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Service Pack 1
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • kbnosurvey kbarchive kbbug kbfix kbwin2000presp3fix kbwin2000sp3fix KB289243
フィードバック