.NET Framework上に構築されたセキュリティで保護されたアプリケーション

この記事では、Microsoft .NET Framework上に構築されたアプリケーションをセキュリティで保護するための重要な考慮事項について説明します。

元の製品バージョン: .NET Framework
元の KB 番号: 818014

概要

この記事は、.NET Frameworkに基づいて構築されたアプリケーションの詳細情報を提供する一連の記事の 1 つです。

このシリーズの記事には、次のものが含まれます。

ゾーンごとに.NET Frameworkセキュリティを調整する

.NET Frameworkは、マネージド アセンブリに信頼レベルを割り当てます。 これらの割り当ては、アセンブリが実行されるゾーンに基づいています。 標準ゾーンは、マイ コンピューター、ローカル イントラネット、インターネット、信頼済みサイト、信頼されていないサイトです。 これらのゾーンのいずれかに関連付けられている信頼レベルを増減する必要がある場合があります。 .NET Frameworkには、これらの設定を調整するためのツールが含まれています。

.NET Framework アセンブリの信頼レベルを調整する

.NET Frameworkには、アセンブリに付与する必要がある信頼のレベルを決定する多くの方法が含まれています。 ただし、ルールに例外を適用して、特定のアセンブリが共通言語ランタイムに提供される証拠に基づいて通常より高いレベルの信頼を受け取るようにすることができます。 .NET Frameworkには、この目的に特化したウィザード ツールが用意されています。

カスタマイズされたポリシー レベルを復元する

管理者は、さまざまな信頼レベルで実行されるアセンブリに付与するアクセスを完全に制御できます。 信頼レベルをカスタマイズすると、通常は標準の信頼レベルで実行されるアプリケーションを実行するときに問題が発生する可能性があります。 ただし、ポリシー レベルを既定の設定にすばやく復元できます。

アセンブリに付与されるアクセス許可を評価する

エンタープライズ、コンピューター、およびユーザーのセキュリティ構成ポリシーとカスタマイズ可能な信頼レベルがある場合、マネージド アセンブリに付与されているアクセス許可を評価することが困難になる可能性があります。 .NET Framework構成ツールには、これらのアクセス許可を評価するための簡単な方法が含まれています。

のセキュリティを監査します。NET に接続されたアプリケーション

アップグレード、テスト、トラブルシューティング中に、運用システムの構成が意図しない方法で変更される可能性があります。 たとえば、管理者は、エラーがアクセス権に関連しているかどうかを判断しながら、ユーザーに管理資格情報を付与する場合があります。 その管理者がトラブルシューティング プロセスを完了した後に管理者特権の資格情報を取り消すのを忘れた場合、システムの整合性が損なわれます。

システム セキュリティは、この種類のアクションによって時間の経過と同時に低下する可能性があるため、定期的な監査を行うことをお勧めします。 これを行うには、元のシステムの重要な側面を文書化して、ベースライン メジャーを作成します。 これらの設定をベースラインと時間の経過と比較して、脆弱性のレベルを大幅に低下させる可能性のある問題が発生しているかどうかを判断します。

を構成します。ネットワーク通信に代替ポート番号を使用するための NET 接続アプリケーションとSQL Server

多くの自動ツールでは、既知のポート番号を照会することで、使用可能なサービスと脆弱性を特定します。 これらのツールには、正当なセキュリティ評価ツールと、悪意のあるユーザーが使用する可能性があるツールの両方が含まれます。

これらの種類のツールへの露出を減らす 1 つの方法は、アプリケーションが使用するポート番号を変更することです。 このメソッドは に適用できます。バックエンド SQL Server データベースに依存する NET に接続されたアプリケーション。 このメソッドは、サーバーとクライアントの両方が正しく構成されている場合に機能します。

ASP.NET Web アプリケーションまたは Web サービスをロックダウンする

ASP.NET Web アプリケーションと Web サービスのセキュリティを強化するには、さまざまな方法があります。 たとえば、パケット フィルタリング、ファイアウォール、制限付きファイルのアクセス許可、URL スキャン インターネット サーバー アプリケーション プログラミング インターフェイス (ISAPI) フィルター、慎重に制御されたSQL Server権限を使用できます。 これらのさまざまな方法を確認して、ASP.NET アプリケーションのセキュリティを詳細に提供することをお勧めします。

ASP.NET アプリケーションのセキュリティを強化するために NTFS ファイルのアクセス許可を構成する

新しいテクノロジ ファイル システム (NTFS) ファイルのアクセス許可は、引き続き Web アプリケーションのセキュリティの重要なレイヤーです。 ASP.NET アプリケーションには、以前の Web アプリケーション環境よりも多くのファイルの種類が含まれています。 匿名ユーザー アカウントがアクセスできる必要があるファイルは、明らかではありません。

.NET Framework SQL Server構築されたアプリケーションのセキュリティを構成する

既定では、SQL Serverでは、データベースに対してクエリまたは更新する機能はユーザーに付与されません。 この規則は、ASP.NET アプリケーションと ASPNET ユーザー アカウントにも適用されます。 ASP.NET アプリケーションがSQL Server データベースに格納されているデータにアクセスできるようにするには、データベース管理者が ASPNET アカウントに権限を付与する必要があります。

ASP.NET アプリケーションからのクエリと更新を許可するようにSQL Serverを構成する方法の詳細については、「データベース オブジェクトに対するアクセス許可を構成する」を参照してください。

URLScan を構成して、ASP.NET Web アプリケーションの保護を強化する

インターネット インフォメーション サービス 5.0 (IIS 5.0) サーバーに URLScan をインストールすると、ASP 3.0 アプリケーションの実行を許可するように構成されます。 ただし、.NET Frameworkをインストールすると、URLScan 構成は更新され、新しい ASP.NET ファイルの種類が含まれます。 ASP.NET アプリケーションの URLScan ISAPI フィルターのセキュリティを強化する場合は、URLScan の構成を調整します。

ASP.NET Web アプリケーションの認証を要求する

多くの ASP.NET アプリケーションでは、匿名アクセスが許可されていません。 認証を必要とする ASP.NET アプリケーションでは、フォーム認証、.NET Passport 認証、Windows 認証の 3 つの方法のいずれかを使用できます。 各認証方法には、異なる構成手法が必要です。

特定のユーザーが指定された Web リソースにアクセスできないように制限する

ASP.NET にはフォーム認証が含まれます。 これは、Windows アカウントを作成せずにユーザーを認証する一意の方法です。 ASP.NET には、これらのユーザーのさまざまな Web リソースへのアクセスを許可または拒否する機能も含まれています。

ユーザーごとに Web リソースへのアクセスを制御する方法の詳細については、「特定のユーザーが特定の Web リソース にアクセスできないように制限する方法」を参照してください。

サーバーで許可される Web サービス プロトコルを制限する

既定では、ASP.NET では、Web サービス クライアントが Web サービスに要求を発行するための 3 つの方法 (SOAP、HTTP GET、HTTP PUT) がサポートされています。 ただし、ほとんどのアプリケーションでは、これら 3 つの方法のうちの 1 つだけが必要です。 使用されていないプロトコルを無効にして、攻撃対象領域を減らすことをお勧めします。

へのブラウザー アクセスを許可しないでください。NET に接続された Web サービス

ASP.NET Web サービスは、開発者が Web サービス クライアントを簡単に作成できるように、ブラウザーに優しいインターフェイスを提供します。 このわかりやすいインターフェイスを使用すると、Web サービスにアクセスできるすべてのユーザーが、使用可能なメソッドと必要なパラメーターの完全な詳細を表示できます。 このアクセスは、パブリックに利用可能なメソッドのみを含むパブリック Web サービスに役立ちます。 ただし、プライベート Web サービスのセキュリティが低下する可能性があります。

ユーザーごとに Web リソースへのアクセスを制御する方法の詳細については、「特定のユーザーが特定の Web リソースにアクセスできないように制限する方法」を参照してください。

ASP.NET を使用してファイルの種類を保護する

ASP.NET アプリケーションの構造により、多くのプライベート ファイルが、エンド ユーザーが要求するファイルと共に格納されます。 ASP.NET は、ファイルの要求を傍受し、エラーを返すことによって、これらのファイルを保護します。 構成設定を使用して、この種類の保護を任意の種類のファイルに拡張できます。 アプリケーションに、プライベートのままである必要がある通常とは異なるファイルの種類が含まれている場合は、ASP.NET ファイル保護を使用してそれらのファイルを保護できます。

関連情報

.NET Frameworkに基づいて構築されたアプリケーションをセキュリティで保護する方法の詳細については、「Windows 10デプロイの新機能」を参照してください。