プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11g リリース2 (11.1.2.3) for All Platforms
E61950-08
目次へ移動
目次

前
次

E.15 サービス拒否攻撃

サービス拒否攻撃(DoS攻撃)または分散型サービス拒否攻撃(DDoS攻撃)は、コンピュータのリソースを対象ユーザーが利用できないようにする試みです。よくある1つの攻撃方法では、標的となるマシンを外部からの通信要求で溢れさせてしまいます。これにより、攻撃を受けたマシンは正規のトラフィックに応答できなくなるか、あるいは応答が遅くなり、事実上利用不可能になってしまいます。

サービス拒否攻撃は認証済リクエストと非認証リクエストに分類され、さらに次のように分類されます。

  • NAPリクエスト

  • HTTPリクエスト

認証済NAPリクエスト

認証済NAPリクエストの場合、OAMサーバーはセッション内でカウンタを使用して、再試行数を制限します。それでもユーザーはエラー・ページにリダイレクトされた後に、同じことを繰り返すことがあります。これによりサーバー・リソースが不必要に消費されて、OAMサーバーが過負荷状態になる可能性があります。

ノート:

OAMサーバーが認証済NAPリクエストで過負荷になるのを防ぐため、関連するWebLogic過負荷構成設定を使用します。これにより、サーバーは負荷でクラッシュしないようになります。しかし、これでは正当なユーザーが悪意のあるユーザーと区別されません。

認証済HTTPリクエスト

大量のHTTP認証済リクエストに対しては、WebLogic過負荷構成をmod_securityモジュール設定と組み合せることによって対処できます。

非認証NAPリクエスト

非認証NAPリクエストは、WebLogic MDBプール制限によって対処します。これにより、OAMサーバーに転送されるNAPリクエスト数が制限されます。

繰り返しますが、これでは正当なユーザーが悪意のあるユーザーと区別されません。

非認証HTTPリクエスト

OAMサーバーのフロントエンドとなるOHSサーバーにmod_securityモジュールを構成することにより、悪意のあるリクエスト(非認証HTTPリクエスト)を拒否できます。

詳細は、次を参照してください。

E.15.1 OAMサーバーを負荷でクラッシュしないようにする

OAMサーバーに対するリクエスト数が処理可能な量を予想外に上回ると、OAMサーバーはクラッシュすることがあります。

OAMサーバーに対するリクエストの数を制限するには:

  1. WebLogicコンソールで、Message Driven Beanプールを使用してOAMサーバーに対するNAPリクエスト数を制限します。

    MDBeanはNAPリクエストをサーバー・キューから取り出して、サーバーへ処理のために送ります。MDBeanインスタンスの数を制限することにより、任意の時点に処理されるリクエスト数が制限されます。

  2. WebLogicコンソールで、(OAMサーバーに対するリクエスト数を制限するために)使用できるWebLogicワーカー・スレッドの数を構成します。

    MDBeanはNAPリクエストをサーバー・キューから取り出して、サーバーへ処理のために送ります。MDBeanインスタンスの数を制限することにより、任意の時点に処理されるリクエスト数が制限されます。

  3. WebLogicコンソールで、(OAMサーバーに対するリクエスト数を制限するために)使用できるWebLogicワーカー・スレッドの数を構成します。

    『Oracle Fusion Middleware Oracle WebLogic Serverパフォーマンスおよびチューニング』のスレッド管理に関するトピックを参照してください。

  4. WebLogicコンソールで、『Oracle Fusion Middleware Oracle WebLogic Serverパフォーマンスおよびチューニング』の次のトピックに従い、最大着信リクエスト・サイズ、完了メッセージ・タイムアウトを指定し、ファイル記述子の数を設定して、パフォーマンスを最適化します。

    • メッセージ・サイズのチューニング

    • 完了メッセージ・タイムアウトのチューニング

    • ファイル記述子数のチューニング

E.15.2 ネットワーク遅延に対する補償

WebgateがOAMサーバーに認証リクエストを送信する場合を考えます。資格証明が正常に収集および検証された後で、OAMサーバーはセッションおよび関連Cookie (OAM_ID、ObSSOCookie)を作成します。ところがネットワーク遅延のために、OAMサーバーがそれをWebgateへ送信し、それによりWebgateが認証リクエストをOAMサーバーへ再送信する時間により、レスポンスはタイムアウトしてしまいます。OAMサーバーはセッションを認識し、それからObSSOCookieを再作成して、レスポンスをエージェントへ送信します。ネットワーク遅延がまだ続いていると、このサイクルはサーバーとWebgateの間で無限に繰り返します。ユーザーは再度ログインするように求められことがなく、エラー・メッセージも表示されません。

関連項目:

E.15.3 OAMサーバーを大量のHTTPリクエストから守る

ModSecurityは、既存のApacheベースのWebサーバー・インフラストラクチャの一部分としてデプロイできるWebアプリケーション・ファイアウォール(WAF)です。このモジュールを、OAMサーバーのフロントエンドとなるOHSサーバーにプラグインできます。こうすると、Mod_securityモジュールがOAMサーバーをサービス拒否攻撃から守ります。

柔軟なルール・エンジンがModSecurityの中心になります。HTTPトランザクション・データと連携する特殊なプログラミング言語である、ModSecurityルール言語を実装しています。新しい構成ディレクティブはhttpd-guardianスクリプトを使用して、サービス拒否(DoS)攻撃をモニターします。デフォルトでは、httpd-guardianは1分間で120個以上、または5分間で360個以上のリクエストを送信するクライアントから防御します。

関連項目:

http://www.modsecurity.org/documentation/modsecurity-apache/2.5.12/html-multipage/configuration-directives.html#N10689

大量のHTTPリクエストから防御する手順

  1. mod_securityモジュールを、OAMサーバーのフロントエンドとなるOHSサーバーに追加します。

  2. OHSサーバーの構成で、サービス拒否(DoS)攻撃をモニターするhttpd-guardianスクリプトを使用するよう構成ディレクティブを設定します。

    構文:

    SecGuardianLog |/path/to/httpd-guardian
    

    次に例を示します。

    SecGuardianLog |/usr/local/apache/bin/httpd-guardian