Silverlight をインストールするには、ここをクリックします*
Japan変更|すべてのMicrosoft のサイト
Microsoft TechNet
サイトの検索


マイクロソフト セキュリティ アドバイザリ (2416728)

ASP.NET の脆弱性により、情報漏えいが起こる

公開日: 2010年9月18日 | 最終更新日: 2010年9月27日
要訳

お知らせ内容

脆弱性の公開

更新プログラム

開発中

被害報告

あり

回避策

あり

対応方法

回避策の適用をご検討ください。

※ 上記の情報は、公開日または最終更新日の情報を基に作成しています。

概説

概要

マイクロソフトは ASP.NET の脆弱性に関する新たな報告を調査中です。攻撃者がこの脆弱性を悪用した場合、View State などの標的サーバーで暗号化されたデータを閲覧する、または web.config などの標的サーバー上のファイルからデータを読みとる可能性があります。そして、攻撃者はそれらのデータ内容を改ざんする可能性があります。攻撃者は、影響を受けるサーバーに改変されたデータ内容を送信することによって、サーバーから返されるエラーコードを監視する可能性があります。マイクロソフトは現時点で、この脆弱性を悪用しようとする限定的な攻撃を確認しています。

マイクロソフトは、パートナーがより幅広い保護をお客様に提供するために使用する情報を提供するため、Microsoft Active Protections Program (MAPP) (英語情報) で積極的にパートナーと協力しています。

この調査を完了次第、マイクロソフトは、お客様を保護するための適切なアクションを行う予定です。これには、マイクロソフトの月例のリリース プロセスによるセキュリティ更新プログラムの提供またはお客様のニーズにより、定例外のセキュリティ更新プログラムの提供が含まれる場合があります。

アドバイザリの詳細

問題の参照情報

この問題の詳細については、以下の参照情報をご覧ください。

参照情報番号

CVE リファレンス

CVE-2010-3332

影響を受けるソフトウェアおよび影響を受けないソフトウェア

このアドバイザリは次のソフトウェアについて説明しています。

影響を受けるソフトウェア

オペレーティング システム

コンポーネント

Windows XP 

Windows XP Media Center Edition 2005 および Windows XP Tablet PC Edition 2005

Microsoft .NET Framework 1.0 Service Pack 3

Windows XP Service Pack 3

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows XP Professional x64 Edition Service Pack 2

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2003 

Windows Server 2003 Service Pack 2

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2003 x64 Edition Service Pack 2

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2003 with SP2 for Itanium-based Systems

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 2.0 Service Pack 2
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Vista 

Windows Vista Service Pack 1

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Vista Service Pack 2

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Vista x64 Edition Service Pack 1

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Vista x64 Edition Service Pack 2

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2008 

Windows Server 2008 for 32-bit Systems**

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2008 for 32-bit Systems Service Pack 2**

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2008 for x64-based Systems**

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2008 for x64-based Systems Service Pack 2**

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2008 for Itanium-based Systems

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows Server 2008 for Itanium-based Systems Service Pack 2

Microsoft .NET Framework 1.1 Service Pack 1
Microsoft .NET Framework 3.5 Service Pack 1
Microsoft .NET Framework 4.0

Windows 7 

Windows 7 for 32-bit Systems

Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.0

Windows 7 for x64-based Systems

Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.0

Windows Server 2008 R2 

Windows Server 2008 R2 for x64-based Systems*

Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.0

Windows Server 2008 R2 for Itanium-based systems

Microsoft .NET Framework 3.5.1
Microsoft .NET Framework 4.0

*Server Core インストールは影響を受けます。サポートされているエディションの Windows Server 2008 または Windows Server 2008 R2 では、Server Core インストール オプションを使用してインストールされているかどうかに関わらず、同じ深刻度で脆弱性が該当します。このインストール オプションに関する詳細情報は、Server Core および Windows Server 2008 R2 の Server Core をご覧ください。Server Core インストール オプションは Windows Server 2008 および Windows Server 2008 R2 の特定のエディションにのみ適用する事ができます。詳細は、Server Core インストールオプションの比較をご覧ください。

**Server Core インストールは影響を受けません。サポートされているエディションの Windows Server 2008 または Windows Server 2008 R2 について、Server Core インストール オプションを使用してインストールされている場合は、この脆弱性の影響を受けません。このインストール オプションに関する詳細情報は、Server Core および Windows Server 2008 R2 の Server Core をご覧ください。Server Core インストール オプションは Windows Server 2008 および Windows Server 2008 R2 の特定のエディションにのみ適用する事ができます。詳細は、Server Core インストールオプションの比較をご覧ください。

よく寄せられる質問

なぜこのアドバイザリは 2010 年 9 月 27 日に更新されたのですか?
マイクロソフトは回避策を更新するために、このアドバイザリを更新しました。回避策を既に適用したお客様は、記載しているすべてのステップを再適用する必要があります。

このアドバイザリの目的は何ですか?
マイクロソフトは ASP.NET に影響を与える新しい脆弱性の報告を確認しています。この脆弱性は「影響を受けるソフトウェア」欄に記載しているソフトウェアに影響を与えます。

この脆弱性により、どのようなことが起こる可能性がありますか?
これは情報漏えいの脆弱性です。攻撃者がこの脆弱性を悪用した場合、View State などのサーバーによって暗号化されたデータを読み取る可能性があります。この脆弱性により、攻撃者は直接コードを実行したり、ユーザーの権限を昇格させたりできませんが、攻撃者はこの脆弱性を悪用し、影響を受けるコンピューターをさらに侵害しようとする目的で悪用するための情報を作成する可能性があります。

この脆弱性はデータの改ざんにも使用される可能性があります。この脆弱性の悪用に成功した場合、サーバーによって暗号化されたデータが解読され、改ざんされる可能性があります。

これは、マイクロソフトがセキュリティ更新プログラムを公開する必要のあるセキュリティ上の脆弱性ですか?
現在、マイクロソフトでは、この脆弱性を解決するセキュリティ更新プログラムを開発中です。マイクロソフトは、一般に幅広く配布できる適切なレベルの品質を確保し次第、セキュリティ更新プログラムを公開する予定です。

ASP.NET とは何ですか?
ASP.NET (英語情報) は Microsoft .NET Framework の中の技術の集合体で、これにより、開発者は Web アプリケーションおよび XML Web サービスを構築することができます。ASP.NET では、静的な HTML およびスクリプトの組み合わせを使用する従来の Web ページとは異なり、コンパイルされたイベント主導のページが使用されます。ASP.NET は Web ベースのアプリケーション環境であるため、基本的な HTTP 機能を提供するために基本となる Web サーバーが必要であり、ASP.NET は インターネット インフォメーション サービス (IIS) 上で実行されます。詳細情報は、Microsoft ASP.NET のオフィシャル Web サイト (英語情報) をご覧ください。

ASP.NET View State とは何ですか?
Microsoft ASP.NET View State は ASP.NET Web ページによって使用される技術で、ポストバックを通したWeb フォームの状態に対する変更を維持するために使われます。ページの View State は既定で、__VIEWSTATE と名付けられた、非表示のフォーム フィールドに置かれています。ASP.NET View State に関する詳細は、MSDN の記事: Understanding ASP.NET View State. (英語情報) をご参照ください。

IIS および ASP.NETワーカー プロセス アイデンティティとは何ですか?
ワーカー プロセス アイデンティティとは、IIS または ASP.NET で起動する特定の Web アプリケーション IIS ワーカー プロセスの ID のことです。この ID はアプリケーションプール ID とも呼ばれ、IIS 上で設定可能です。既定の ID は、Windows 7 および Windows Server 2008 R2 で仮想アカウントとして構成され、Windows 2003、Windows Vista および WIndows Server 2008 では Network Service として構成されます。

IIS のワーカー プロセスとは何ですか?
ワーカー プロセスとは Web サーバーのサーバー側の処理タスクを実行するプロセスです。ワーカー プロセスおよび IIS 6.0での実装方法の詳細は、TechNet の記事: Worker Processes (IIS 6.0) (英語情報) をご覧ください。ワーカー プロセスおよびその単独で Web ベースのアプリケーションを実行する方法についての詳細は Worker Process Isolation Mode (IIS 6.0) (英語情報) をご覧ください。

ASP.NET のカスタム エラーとは何ですか?
ASP.NET 内のcustomErrors 要素は、ASP.NET アプリケーションのカスタム エラーのメッセージに関する情報を提供します。customErrors 要素は、アプリケーション ファイル階層のどのレベルでも定義することができます。カスタム エラーに関する詳細は、MSDN 記事: customErrors Element (ASP.NET Settings Schema) (英語情報) をご覧ください。

PKCS#7 埋め込みとは何ですか?
公開キー暗号化標準 (PKCS) #7 は、デジタル証明書や暗号化などのデータに対して該当する暗号に関する一般的な構文です。PKCS#7 は、証明書や証明書失効リストおよび、タイムスタンプなどのその他のメッセージ属性をメッセージに配布するための構文も提供します。PKCS #7 埋め込み文字列は、追加された埋め込みバイトの総数と等しいバイトのシーケンスで構成されています。

この脅威は何が原因で起こりますか?
攻撃者がこの脆弱性を悪用した場合、ASP.NET の暗号化の埋め込みによって、エラー応答内で提供された情報を悪用し、暗号化されたデータを読み取って、改ざんする可能性があります。

攻撃者は、この脆弱性を悪用して何を行う可能性がありますか?
攻撃者がこの脆弱性を悪用した場合、View State などのサーバーによって暗号化されたデータを読み取ることができる可能性があります。また。読み取られたデータは攻撃者によって改ざんされる可能性があります。攻撃者がデータを改ざんした場合、データをサーバーに送り返し、サーバーによって返されたエラー コードを監視する可能性があります。それらのエラー コードを監視することで、攻撃者は暗号化されたデータを解読し、改ざんするための十分な情報を得る可能性があります。

この脆弱性の悪用に成功した攻撃者は、ワーカー プロセス アイデンティティが既にアクセスした標的サーバー上のファイルからの web.config などのデータを読み取る可能性があります。

カスタム 404 ページおよび既定のリダイレクトをすべてのエラーに作成し、この問題に対する保護を行うことはできますか?
いいえ、できません。攻撃者は依然として 404 エラーとその他のエラーの区別をつけることができる可能性があります。エラーの均一化が、この攻撃に対する保護を行うための重要な要素となります。

下記の回避策を使用する代わりに、エラー ページにリダイレクトするカスタム ログ モジュールがある場合、この脆弱性の影響を受けますか?
カスタム ログ モジュールから応答が送られた場合、クライアントにエラー応答がそのコンテンツによるものか、またはサービスを提供するために要する時間によるものであるのかを識別させないようすることで、このようなモジュールは customErrors の回避策の代わりとして有効です。これらの応答には、HTTP 応答全体と HTTP エラー コードの両方が含まれています。これらの条件がすべて当てはまらない場合は、回避策の代わりとして十分ではありません。

ビュー状態に機密情報を保存していない場合、この脆弱性に対応する必要がありますか?
はい。Web アプリケーションのファイルに機密情報を保存している場合、この脆弱性が悪用され、そのファイルのコンテンツが攻撃者に公開される可能性があります。

web.config ファイルのデータを安全にするためにはどのような最善策がありますか?
最善策は、web.config ファイルの機密性の高い構成データを暗号化することです。構成セクションの暗号化に関する詳細情報は、MSDN コラム: 構成セクションの暗号化と複号化をご覧ください。

この問題は ASP.NET Web フォームと ASP.NET MVC Web アプリケーションの両方に影響を及ぼしますか?
はい。一般に公開された悪用コードは Web フォーラムと MVC の両方を含む、すべての種類の ASP.NET アプリケーションに対し悪用される可能性があります。ASP.NET MVC に関する追加情報は、MSDN コラム: ASP.NET MVC の概要をご覧ください。

SharePoint や Exchange などの ASP.NET プラットフォームに基づいたその他のアプリケーションはこの問題の影響を受けますか?
ASP.NET プラットフォームに依存するすべてのアプリケーションがこの問題による影響を受けます。これらのアプリケーションの管理者は、このアドバイザリで説明している推奨策に従ってください。

AES 暗号から Triple DES 暗号に変更することは、使用している ASP.NET アプリケーションを保護するのに役立ちますか?
いいえ。暗号の脆弱性が存在するということは、PKCS#7 パディングを使用しているアルゴリズムに対するクライアントに暗号の埋め込みエラーが公開されることを含みます。Triple DES はこのパディング モードを AES と共有するため、Triple DES に切り替えても、この脆弱性に対する保護を行うことにはなりません。

この問題は、オラクルのデータベース製品に影響を与えますか?
いいえ。この問題は、どのデータベース製品にも関連しません。この場合の”オラクル (Oracle) ”の用語は、暗号用語の一つを指しています。

回避策

回避策は、設定または構成の変更を示すもので、基本的な脆弱性を正すものではありませんが、更新プログラムの適用前に、既知の攻撃方法を阻止するのに役立ちます。マイクロソフトは次の回避策をテストし、回避策が機能性を低下させるかどうかの情報を提供しています。

UrlScan または要求フィルターの規則を有効にし、ASP.NET カスタム エラーを有効にし、すべてのエラー コードを同じエラー ページにマップする

ASP.NET の customErrors 機能を有効にし、サーバーで発生したエラーに関わらず、常に同じエラー ページを返すようアプリケーションを明示的に構成すると、現在の悪用コードを悪用している攻撃者がサーバーで発生するエラーの種類を区別することがさらに困難になると考えられます。

.NET Framework バージョン 3.5 Service Pack 1 または 4.0 を使用しているコンピューターで、この回避策は現在確認している悪用コードのタイミング攻撃 (timing attack) の部分に対する保護も行うことにより、さらに保護を提供します。この回避策は customErrors 機能の redirectMode="ResponseRewrite" オプションを使用し、エラー ページにランダムな遅延を導入します。これらの対策が共に機能することで、サーバーがエラーを受け取るために要する時間を計測することにより、攻撃者がサーバーで発生したエラーの種類を推測することをさらに困難にします。

さらに、この回避策では、クエリ文字列のアプリケーション エラー パスを指定するリクエストをブロックする必要があります。これは、管理者により定義された規則を基にリクエストを選択的にブロックするインターネット インフォメーション サービス (IIS) 用の無償ツールである URLScan を使用して行うことができます。ご使用のコンピューターが Windows Vista Service Pack 2、Windows Server 2008 Service Pack 2、Windows 7 または Windows Server 2008 R2 上でインターネット インフォメーション サービス (IIS) を実行している場合、代わりに要求フィルター機能を使用することもできます。

リクエストのクエリ文字列上の ASP.NET アプリケーション エラー パスを変更するリクエストをブロックする

UrlScan を使用する:

1.

UrlScan 3.1 (英語情報) をダウンロードし、インストールします。UrlScan の構成および使用に関する説明は、UrlScan 3 Reference (英語情報) をご覧ください。

2.

UrlScan.ini (%windir%\system32\inetsrv\urlscan にあります) を変更します。Urlscan.ini ファイルの [DenyQueryStringSequences] セクションの下に次の行を挿入します。

aspxerrorpath=

その後、[DenyQueryStringSequences] セクションはこのようになります。(セクション内の追加の行は問題ありません。また、回避策に影響を及ぼすことはありません。)

[DenyQueryStringSequences]
aspxerrorpath=

3.

管理者としてログインし、コマンド プロンプトから iisreset を実行します。

IIS 要求フィルターを使用する:

これらの方法は Windows Vista Service Pack 2、Windows Server 2008 Service Pack 2、Windows 7 または Windows Server 2008 R2 上で IIS を実行しているコンピューターについて、上記の UrlScan を使用する方法の代わりとなるものです。

1.

[プログラムの追加と削除] または [ロール マネージャー] により IIS の要求フィルター機能をインストールします。[ロール マネージャー] では、[インターネット インフォメーション サービス]-[World Wide Web サービス]-[セキュリティ] の下の機能を選択します。

2.

[インターネット インフォメーション サービス (IIS) マネージャー] を起動します。

3.

左ウィンドウのサーバー ノードを選択します。

4.

[要求フィルター] をダブルクリックします。

5.

[クエリ文字列] タブを選択し、[操作ウィンドウ] の [拒否するクエリ文字列…] をクリックします。

6.

ダイアログ ボックスに aspxerrorpath= と入力し、[OK] を選択します。

または、次の appcmdコマンドを使用してこのリクエスト クエリ文字列を設定することもできます。

appcmd set config /section:requestfiltering /+denyQueryStringSequences.[sequence='aspxerrorpath=']

appcmd を使用して IIS を構成することに関する詳細情報は、Getting Started with AppCmd.exe (英語情報) をご覧ください。

単一のカスタム エラーを使用するよう ASP.NET アプリケーションを構成する

各 ASP.NET の Web アプリケーションのルート フォルダーで、フォルダー内に web.config ファイルが存在するかどうかを確認してください。この回避策を実装するには、対象ディレクトリでファイルを作成する権限がある必要があります。

ASP.NET アプリケーションに web.config ファイルが存在しない場合:

NET Framework 3.5またはそれ以前の製品

1. ASP.NET アプリケーションのルート フォルダー内に、web.config といファイル名のテキストファイルを作成し、次のコンテンツに挿入します。:

<configuration>
 <location allowOverride="false">
   <system.web>
     <customErrors mode="On" defaultRedirect="~/error.html" />
   </system.web>
 </location>
</configuration>

2. 一般的なエラー メッセージを含む error.html というファイル名のテキスト ファイルを作成し、ASP.NET アプリケーションのルート フォルダーに保存します。

3. または、web.config ファイルの error html をリネームし、既存のエラー ページにポイントすることもできます。しかし、そのエラーページは、特定のコンテンツではなく、一般的なコンテンツを表示する必要があります。

.NET Framework 3.5 Service Pack 1 またはそれ以降の製品

1. ASP.NET アプリケーションのルート フォルダー内に、web.config といファイル名のテキストファイルを作成し、次のコンテンツに挿入します。

<configuration>
 <location allowOverride="false">
   <system.web>
     <customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/ErrorPage.aspx" />
   </system.web>
 </location>
</configuration>

2. C# が使用できる場合は、次の ErrorPage.aspx ファイルを使用することを推奨します。

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">
        void Page_Load() {
        byte[] delay = new byte[1];
        RandomNumberGenerator prng = new RNGCryptoServiceProvider();

        prng.GetBytes(delay);
        Thread.Sleep((int)delay[0]);
        
        IDisposable disposable = prng as IDisposable;
        if (disposable != null) { disposable.Dispose(); }
    }
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        An error occurred while processing your request.
    </div>
</body>
</html>

3. Visual Basic .NET が使用できる場合は、次の ErrorPage.aspx ファイルを使用することを推奨します。

<%@ Page Language="VB" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">
    Sub Page_Load()
        Dim delay As Byte() = New Byte(0) {}
        Dim prng As RandomNumberGenerator = New RNGCryptoServiceProvider()
        
        prng.GetBytes(delay)
        Thread.Sleep(CType(delay(0), Integer))
        
        Dim disposable As IDisposable = TryCast(prng, IDisposable)
        If Not disposable Is Nothing Then
            disposable.Dispose()
        End If
    End Sub
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        An error occurred while processing your request.
    </div>
</body>
</html>

ASP.NET アプリケーションに web.config ファイルが既に存在する場合:

NET Framework 3.5 出荷版 (RTM 版) またはそれ以前の製品

1. 既存の web.config ファイルに次のサンプル内の括弧内のテキストを挿入します。

<?xml version="1.0"?>
<configuration>
<configSections>
...
 </configSections>
<appSettings>
...
</appSettings>
<connectionStrings>
...
</connectionStrings>

[<location allowOverride="false">
<system.web>
<customErrors mode="On" defaultRedirect="~/error.html" />
</system.web>
</location>]

<system.web>
...
</system.web>
<system.codedom>
...
</system.codedom>
</configuration>

2. 一般的なエラー メッセージを含む error.html というファイル名のテキスト ファイルを作成し、ASP.NET アプリケーションのルート フォルダーに保存します。

3. または、web.config ファイルの error html をリネームし、既存のエラー ページにポイントすることもできます。しかし、そのエラーページは、特定のコンテンツではなく、一般的なコンテンツを表示する必要があります。

.NET Framework 3.5 Service Pack 1 またはそれ以降の製品

1. 既存の web.config ファイルに次のサンプル内の括弧内のテキストを挿入します。

<?xml version="1.0"?>
<configuration>
<configSections>
...
</configSections>
<appSettings>
...
</appSettings>
<connectionStrings>
...
</connectionStrings>

[<location allowOverride="false">
<system.web>
<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/ErrorPage.aspx" />
</system.web>
</location>]

</configuration>

<system.web>
...
</system.web>
<system.codedom>
...
</system.codedom>
</configuration>

2. C# が使用できる場合は、次の ErrorPage.aspx ファイルを使用することを推奨します。

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">
        void Page_Load() {
        byte[] delay = new byte[1];
        RandomNumberGenerator prng = new RNGCryptoServiceProvider();

        prng.GetBytes(delay);
        Thread.Sleep((int)delay[0]);
        
        IDisposable disposable = prng as IDisposable;
        if (disposable != null) { disposable.Dispose(); }
    }
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        An error occurred while processing your request.
    </div>
</body>
</html>

3. Visual Basic .NET が使用できる場合は、次の ErrorPage.aspx ファイルを使用することを推奨します。

<%@ Page Language="VB" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">
    Sub Page_Load()
        Dim delay As Byte() = New Byte(0) {}
        Dim prng As RandomNumberGenerator = New RNGCryptoServiceProvider()
        
        prng.GetBytes(delay)
        Thread.Sleep(CType(delay(0), Integer))
        
        Dim disposable As IDisposable = TryCast(prng, IDisposable)
        If Not disposable Is Nothing Then
            disposable.Dispose()
        End If
    End Sub
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        An error occurred while processing your request.
    </div>
</body>
</html>

回避策の影響: Web トランザクション中にエラーが発生した場合、実際発生しているエラーに関わらず、Web クライアントでもサーバー上と同様の一般的なエラー メッセージが発生します。

追加の推奨されるアクション

インターネットにおける安全性に関する詳細情報は、マイクロソフトのセキュリティ ホーム ページをご覧ください。

Windows を最新に保つ

すべての Windows ユーザーは、最新のマイクロソフトのセキュリティ更新プログラムを適用してください。これは、ユーザーのコンピューターが可能な限り保護されることを手助けするものです。ご使用のソフトウェアが最新のものかどうか定かでない場合、Microsoft Update Web サイト で、利用可能な更新プログラムがあるかどうかに関してコンピューターをスキャンし、提供されている優先度の高い更新プログラムをインストールして下さい。自動更新を有効にしている場合は、更新プログラムのリリース時に配信されますが、インストールしたことを確認する必要があります。 ページのトップへ

関連情報

Microsoft Active Protections Program (MAPP)

お客様のセキュリティ保護をより向上させるために、マイクロソフトは、月例のセキュリティ更新プログラムの公開に先立ち、脆弱性情報を主要なセキュリティ ソフトウェア プロバイダーに提供しています。セキュリティ ソフトウェア プロバイダーは、この脆弱性の情報を使用し、ウイルス対策、ネットワーク ベースの侵入検出システムまたはホスト ベースの侵入防止システムを介して、お客様に最新の保護環境を提供します。この様な保護環境を提供するセキュリティ ソフトウェアの製造元の情報は、Microsoft Active Protections Program (MAPP) Partners (英語情報) に記載されている各社のWeb サイトをご覧ください。

フィードバック

フィードバックをご提供いただく際は、マイクロソフト サポート オンライン のフォームへ入力をお願いします。

サポート

セキュリティ関連、およびセキュリティ更新プログラムに関するご質問や、ご不明な点などありましたら、マイクロソフト セキュリティ情報センターまでご連絡ください。マイクロソフト セキュリティ情報センター 利用可能なサポート オプションに関する詳細は マイクロソフト サポート オンライン をご覧ください。

その他、製品に関するご質問は、マイクロソフト プロダクト サポートまでご連絡ください。マイクロソフト プロダクト サポートへの連絡方法はこちらをご覧ください。

Microsoft TechNet セキュリティ センター では、製品に関するセキュリティ情報を提供しています。

免責条項

この文書に含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行いません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。)結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。

更新履歴

2010/09/18: このアドバイザリを公開しました。

2010/09/21: このアドバイザリ ページを更新し、「概要」のセクションでマイクロソフトが限定的な攻撃を確認していることをお知らせしました。また、「よく寄せられる質問」のセクションに質問および回答を追加し、回避策に関する説明を追加しました。

2010/09/27: このアドバイザリ ページを更新し、「よく寄せられる質問」に回避策「UrlScan または要求フィルターの規則を有効にし、ASP.NET カスタム エラーを有効にし、すべてのエラー コードを同じエラー ページにマップする」のセクションを更新したことをお知らせする項目を追加しました。回避策を既に適用したお客様は、記載しているすべてのステップを再適用する必要があります。


 

Microsoft