攻撃ツールを用いたテスト
- English
- 日本語
Next-Gen WAF をセットアップした後は、攻撃データがキャプチャされ、ブロック機能が正しく動作することを確認するために、Web サイト上で攻撃ツールを実行してセットアップをテストすることを推奨します。
テストに使用する攻撃ツールは任意ですが、さまざまな脆弱性をテストするには Nikto の使用をお勧めします。Nikto の実行中、Next-Gen WAF エージェントは悪質または異常なリクエストを識別し、機密情報を削除してから関連するメタデータをバックエンドに送信します。
このガイドでは、Nikto のセットアップおよび3つのテストシナリオの実行方法について説明します。
設定前の注意点
Nikto の実行には Perl のインストールが必要です。perl -v を実行して、システムに Perl がインストールされているかどうかを確認します。Perl が見つからない場合は、Perl の Web サイトからダウンロードしてインストールできます。
Nikto のセットアップ
Nikto は、Web サーバーに対してセキュリティテストを実行する一般的なオープンソースツールです。Linux、OS X、Windows プラットフォームで実行できます。Nikto のセットアップ方法は以下のとおりです。
最新バージョンの Nikto を ダウンロード してください。
コマンドプロンプトを使用して、Nikto をダウンロードしたディレクトリに移動します。
unzip nikto-master.zipを入力してファイルを解凍します。cd nikto-master/program/を入力して、ディレクトリをプログラムディレクトリに変更します。./nikto.plを実行して、Nikto を実行できることを確認します。デフォルトのヘルプメッセージが表示されます。
権限が拒否されたというエラーメッセージが表示された場合、chmod +x nikto.pl を実行してスクリプトを実行可能にすることでエラーを解消できます。次に、./nikto.pl を再度実行します。
攻撃ツール検知のテスト
Nikto を使用して、攻撃ツール検知機能をテストできます。
テストの実行方法は以下のとおりです。
- Next-Gen WAF control panel
- Fastly control panel
- Next-Gen WAF コンソールにログインします。
- Sites メニューから、複数のサイトがある場合はサイトを選択します。
サイトナビゲーションバーのエージェントモードインジケーターに Not blocking と表示されていることを確認します。このモードでは、エージェントはリクエストをログに記録し、何もブロックしません。エージェントモードインジケーターに Blocking または Off と表示されている場合は、エージェントモードインジケーターをクリックしてから Manage をクリックして行動を更新します。
コマンドプロンプトで
cd nikto-master/program/と入力して、ディレクトリをプログラムディレクトリに変更します。コマンドプロンプトで以下のコマンドを実行して、Web サイトの最初の Nikto スキャンを開始します。
$ ./nikto.pl -h http://www.example.com攻撃の実行中に Next-Gen WAF コンソールの Site Overview ページに移動し、ダッシュボードメニュー () から Overview ダッシュボード を選択します。Overview ダッシュボードには、攻撃や異常が30秒以内に表示されます。
攻撃検知のテスト
攻撃ツールの検出を確認した後、Nikto を使用して攻撃を変更し、インジェクション攻撃によって IP アドレスがフラグ付けされていることを実証できます。このテストは、各リクエストで送信される User-Agent 文字列を変更することで実行できます。
テストの実行方法は以下のとおりです。
- Next-Gen WAF control panel
- Fastly control panel
- Next-Gen WAF コンソールにログインします。
- Sites メニューから、複数のサイトがある場合はサイトを選択します。
Events カードから、Nikto スキャナーホストに関連付けられた IP アドレスの横にある View をクリックします。
フラグされた IP アドレスの Remove flag now をクリックしてから、Remove flag をクリックします。
コマンドプロンプトで
cd nikto-master/program/と入力して、ディレクトリをプログラムディレクトリに変更します。以下のコマンドを実行して、Nikto スキャンを開始します。
$ ./nikto.pl -useragent “MyAgent (Demo/1.0)” -h http://www.example.com攻撃の実行中に Next-Gen WAF コンソールの Site Overview ページに戻り、ダッシュボードメニュー () から Overview ダッシュボード を選択します。Overview ダッシュボードには、攻撃や異常が30秒以内に表示されます。一つ前のテストとは異なり、攻撃ツールを含め、さまざまな攻撃に関するシグナルが表示されるはずです。これは、User-Agent 文字列の変更が機能し、さまざまな攻撃に基づいて IP アドレスが最終的にフラグ付けされることを示しています。
攻撃ブロックのテスト
Next-Gen WAF では、他のプロダクトとは異なるブロック手法を採用できます。具体的には、特定のシグネチャに一致する個別リクエストのブロックに限定されず、しきい値ベースのブロック機能を実装できます。しきい値ベースのブロックでは、特定の IP (全エージェントから集約) から悪意のあるトラフィックのスパイクを探し、1分、10分、または60分の時間枠で特定のしきい値を超えた場合、その IP にフラグを付けます。IP にフラグが付けられると、その IP からのすべての悪意のあるトラフィックをブロックします。トラフィックはデフォルトで24時間ブロックされます。攻撃しきい値を使用してしきい値を調整し、ブロック期間を短縮することも可能です。ブロック期間中は、攻撃を含まないリクエストが許可され、Next-Gen WAF による通常のトラフィック遮断機能は防止されます。
最後のテストにおいて、ブロックモードを有効にして Nikto を使用し、正規のトラフィックが Web サイトへのアクセスを継続しつつ、同一 IP アドレスからの悪意のあるトラフィックをブロックする方法を説明します。このテストを行うには、スキャンの実行と同一システム上にある Web ブラウザを使用する必要があります。
重要: 続行前に、フラグリストからスキャン中の IP アドレスを削除してください。
テストの実行方法は以下のとおりです。
- Next-Gen WAF control panel
- Fastly control panel
- Next-Gen WAF コンソールにログインします。
- Sites メニューから、複数のサイトがある場合はサイトを選択します。
サイトナビゲーションバーのエージェントモードインジケーターをクリックし、Manage をクリックします。
エージェントの行動を ブロック に更新します。
Update をクリックします。
ブラウザで Web サイトにアクセスします。
コマンドプロンプトで
cd nikto-master/program/と入力して、ディレクトリをプログラムディレクトリに変更します。以下のコマンドを実行して、Nikto スキャンを開始します。
$ ./nikto.pl -useragent “MyAgent (Demo/1.0)” -D V -T 9 -h http://www.example.comスキャンの実行中に以下の手順を実施します。
ブラウザウィンドウで Web サイトに移動し、正規のユーザートラフィックがブロックされていないことを確認します。
コマンドシェルウィンドウから、攻撃を含むリクエストがレスポンスコード406でブロックされていることを確認します。HTTP 406は、500や404などの運用上の検知を防ぐことを目的として使用されます。さらに、406などの一意のコードを使用すると、サーバーが返すエラーメッセージをカスタマイズできます。
スキャンを何度でも繰り返してください。
また、悪意のあるペイロード(例:https://www.example.com/?q=<script>alert('xss')</script>)を使ってWebサイトにアクセスして、ブロックを手動で確認することもできます。
