webサービスをWeb Application Firewall (WAF) に追加した後、基本的な保護ルールモジュールの保護ルールとルールグループを設定して、SQLインジェクション攻撃、クロスサイトスクリプティング (XSS) 攻撃、コード実行、webshellアップロード、コマンドインジェクション攻撃などの一般的なwebアプリケーション攻撃からwebサービスを保護できます。 このトピックでは、基本保護ルールモジュールの保護ルールとルールグループを設定する方法について説明します。
背景情報
デコード
基本保護ルールモジュールは、23の復号フォーマットをサポートする。
モジュールは検出精度を改善するためにさまざまなフォーマットのデータを解析できます。 データ形式には、JSON、XML、およびMultipartが含まれます。
モジュールは、WAFをバイパスするようにエンコードされたデータを識別して、検出のリコール率を向上させます。 エンコード形式には、UnicodeエンコードとHTMLエンティティエンコードがあります。
サポートされている検出モジュール
ルールエンジン (デフォルトで有効)
この検出モジュールは、所定のルールに基づいて既知の攻撃モードを識別し、一般的なウェブアプリケーション攻撃に対して防御する。
WAFは、次のデフォルトルールグループを提供します。
中程度のルールグループ: デフォルトでは、このルールグループが選択されています。
柔軟なルールグループ: 誤検知を減らす場合は、このルールグループを選択することを推奨します。
厳格なルールグループ: WAFで攻撃を厳密にブロックする場合は、このルールグループを選択することを推奨します。
ビジネス要件に基づいてカスタムルールグループを設定することもできます。
セマンティックエンジン (デフォルトで有効)
この検出モジュールは、セマンティクスおよびシンタックス構造を理解するために、要求の内容およびコンテキストを分析する。 これにより、未知の攻撃を特定し、SQLインジェクション攻撃から防御できます。 このモジュールを使用して、よりインテリジェントな方法でwebサービスを保護できます。
インテリジェントO&M (デフォルトで無効)
WAFは、過去のサービストラフィックに基づいてインテリジェントな学習を実行し、誤検知を引き起こす可能性のある保護ルールを特定します。 次に、WAFは誤ってブロックされたURLをインテリジェントなホワイトリストに追加します。 これにより、通常のリクエストがブロックされなくなります。
サポートされている保護テンプレート
保護テンプレート | デフォルト | カスタム | |
作成方法 | 組み込み。 | 手動で作成します。 | |
検出モジュール | ルールエンジン | デフォルトでは、この検出モジュールは有効になっており、中程度のルールグループとブロックが選択されています。 | [ルールグループの種類] パラメーターをデフォルトまたはカスタムルールグループに設定し、ビジネス要件に基づいて アクション パラメーターを設定できます。 |
セマンティックエンジン | デフォルトでは、この検出モジュールは有効になっており、モニター が選択され、完全な SQL 文の検出 がオンになっています。 スイッチがオンになると、モジュールは非注入攻撃を検出します。 | ビジネス要件に基づいて、アクション および 完全な SQL 文の検出 パラメーターを設定できます。 | |
インテリジェントO&M | デフォルトでは、この検出モジュールは無効になっています。 | ビジネス要件に基づいて、インテリジェントホワイトリストをオンまたはオフにできます。 | |
有効範囲 | WAFに追加されているが、カスタム保護テンプレートに関連付けられていない保護オブジェクトまたは保護オブジェクトグループ。 | 選択した保護オブジェクトまたは保護オブジェクトグループ。 |
前提条件
WAF 3.0インスタンスを購入しました。 詳細については、「サブスクリプションWAF 3.0インスタンスの購入」および「従量課金WAF 3.0インスタンスの購入」をご参照ください。
EnterpriseまたはUltimateエディションを実行する従量課金WAFインスタンスまたはサブスクリプションWAFインスタンスが利用可能です。 カスタムルールグループを作成する場合は、この前提条件が満たされていることを確認してください。
Webサービスは、保護されたオブジェクトとしてWAF 3.0に追加されます。 詳細については、「保護オブジェクトと保護オブジェクトグループの設定」をご参照ください。
カスタマイズルールグループの作成
カスタムルールグループは、最初から、またはデフォルトのルールグループから作成できます。
WAF 3.0コンソールにログインします。 上部のナビゲーションバーで、WAFインスタンスのリソースグループとリージョンを選択します。 中国本土 または 中国本土以外 を選択できます。
左側のナビゲーションウィンドウで、 を選択します。
では、基本保護ルールセクション、をクリックルールグループの管理.
ルールグループページをクリックします。ルールグループの作成.
[ルールグループの基本情報の設定] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表にパラメーターを示します。
重要カスタムルールグループの作成後、ルールグループに関する基本情報を変更することはできません。
パラメーター
説明
ルールグループ名
ルールグループの名前を指定します。
ルールの名前には、英数字、ピリオド (.) 、アンダースコア (_) 、およびハイフン (-) を使用できます。
保護テンプレートの選択
ルールグループのルールテンプレートを選択します。 有効な値:
スクラッチから作成: テンプレートが指定されていません。 手動でルールを追加する必要があります。
重要このオプションを選択すると、自動更新がオフになり、オンにできなくなります。
デフォルトルールグループの使用: ルースルールグループ、ミディアムルールグループ、厳密ルールグループなどのデフォルトルールグループを選択できます。
自動アップデート
この機能を有効にすると、選択したデフォルトルールグループに追加または削除されたルールは、現在のカスタムルールグループに自動的に同期されます。
重要カスタムルールグループの作成後、この機能を有効または無効にすることはできません。
[保護テンプレートの選択] で [デフォルトのルールグループを使用] を選択した場合にのみ、この機能を有効または無効にできます。
[保護ルールの設定] で、[ルールの追加] をクリックします。 [ルールの追加] ダイアログボックスで、ルールグループに追加するルールを選択します。 ルールIDまたはCVE IDを入力して、ルールを検索できます。 リスクレベル、保護ルールタイプ、およびアプリケーションタイプパラメーターを設定して、ルールを検索することもできます。 次に、[追加] をクリックします。 [すべて追加] をクリックして、すべてのルールをルールグループに追加することもできます。
説明手順5の [保護テンプレートの選択] で [デフォルトのルールグループを使用] を選択し、追加するルールが選択したデフォルトのルールグループに含まれている場合は、この手順をスキップできます。
ルールリスト内のルールは、更新時間に基づいて降順にソートされます。
追加後にルールを削除する場合は、ルールリストにルールのルールIDまたはCVE IDを入力してルールを検索できます。 リスクレベル、保護ルールタイプ、およびアプリケーションタイプパラメーターを設定して、ルールを検索することもできます。 次に、ルールを選択し、ルールリストの下にある [削除] をクリックします。 [すべてクリア] をクリックして、すべてのルールを削除することもできます。
[次へ] をクリックします。 [完了] ステップで、[完了] をクリックします。
ルールグループを作成したら、ルールグループリストのルールグループに対して次の操作を実行できます。
[組み込みルールの数] 列の番号をクリックして、ルールグループの組み込みルールを表示します。
[操作] 列の [編集] 、[コピー] 、または [削除] をクリックして、ルールグループを変更、コピー、または削除します。
説明ルールグループの基本情報は変更できません。
コピーされたルールグループのデフォルト名は、元のルールグループ名-コピー形式です。 コピーされたルールグループは保護オブジェクトに関連付けられていません。
保護テンプレートに関連付けられているルールグループは削除できません。 ルールグループを削除する場合は、保護テンプレートからルールグループを分離する必要があります。
基本保護ルールモジュールの保護テンプレートを作成する
左側のナビゲーションウィンドウで、 を選択します。
では、基本保護ルールのセクション基本的な Web 保護ページをクリックします。テンプレートの作成.
説明基本保護ルールモジュールの保護テンプレートを初めて作成する場合は、基本的な Web 保護 ページの上部にある [基本的な保護ルール] カードの [今すぐ設定] をクリックすることもできます。
[テンプレートの作成-基本保護ルール] パネルでパラメーターを設定し、[OK] をクリックします。 下表にパラメーターを示します。
説明デフォルトでは、新しく作成された保護テンプレートが有効になります。
パラメーター
説明
テンプレート情報
テンプレート名:
テンプレートの名前を指定します。
ルールの名前には、英数字、ピリオド (.) 、アンダースコア (_) 、およびハイフン (-) を使用できます。
デフォルトテンプレートとして保存:
テンプレートを保護モジュールのデフォルトテンプレートとして設定するかどうかを指定します。
保護モジュールに指定できるデフォルトテンプレートは1つだけです。 デフォルトテンプレートとして保存をオンにした場合、[適用] パラメーターを設定する必要はありません。 デフォルトテンプレートは、カスタム保護テンプレートが適用されていないすべての保護オブジェクトおよび保護オブジェクトグループに適用されます。
ルール設定
アクション:
ルールに一致するリクエストに対してWAFで実行するアクションを指定します。 有効な値:
ブロック: ルールに一致するリクエストをブロックし、リクエストを開始したクライアントにブロックページを返します。
説明デフォルトでは、WAFは事前設定されたブロックページを返します。 カスタム応答機能を使用して、カスタムブロックページを設定できます。 詳細については、「カスタムブロックページを設定するためのカスタム応答モジュールの保護ルールの設定」をご参照ください。
観察: ルールに一致するリクエストをログに記録し、リクエストをブロックしません。 ルールに一致するリクエストのログを照会し、保護パフォーマンスを分析できます。 たとえば、ログを照会して、通常のリクエストがブロックされているかどうかを確認できます。
重要WAF機能が有効になっている場合にのみ、ログを照会できます。 詳細については、「Simple Log Service For WAF機能の有効化または無効化」をご参照ください。
観察 を選択した場合、ルールでドライランを実行して、ルールが通常のリクエストをブロックするかどうかを確認できます。 ルールがドライランに合格した場合、Actionパラメーターをブロックに設定できます。
説明セキュリティレポート ページで、一致したルールの詳細をモニターモードまたはブロックモードで照会できます。 詳細については、「セキュリティレポート」をご参照ください。
ルールグループタイプ:
テンプレートを関連付けるルールグループのタイプを選択し、使用するルールグループを選択します。 有効な値:
デフォルト: このオプションを選択すると、テンプレートはデフォルトのルールグループに関連付けられます。 ドロップダウンリストから、[ルーズルールグループ] 、[中ルールグループ] 、または [厳密ルールグループ] を選択できます。
カスタム: このオプションを選択すると、テンプレートはカスタムルールグループに関連付けられます。 ドロップダウンリストからカスタムルールグループを選択する必要があります。 ルールグループの作成方法の詳細については、「カスタムルールグループの作成」をご参照ください。
セマンティックエンジン
デフォルトでは、セマンティックエンジンはSQLインジェクション攻撃から防御するために有効になっています。
[セマンティックエンジン] の下の [完全なSQL文検出] をオンにして、非インジェクション攻撃を検出することもできます。 詳細については、「完全なSQL文の検出」をご参照ください。
説明次のリストは、SQLインジェクション攻撃と非インジェクション攻撃の違いを示しています。
SQLインジェクション攻撃: リクエストには、
/query.php?name='and 1=1% 23
などの悪意のあるSQLコードが含まれます。非インジェクション攻撃: リクエストには、
/query.php? SQL=select name from users where 1=1% 23
などの完全なsql文が含まれます。
セマンティックエンジンセクションでは、次のパラメーターを設定できます。
アクション:
ルールに一致するリクエストに対してWAFで実行するアクションを指定します。 有効な値:
ブロック: ルールに一致するリクエストをブロックし、リクエストを開始したクライアントにブロックページを返します。
説明デフォルトでは、WAFは事前設定されたブロックページを返します。 カスタム応答機能を使用して、カスタムブロックページを設定できます。 詳細については、「カスタムブロックページを設定するためのカスタム応答モジュールの保護ルールの設定」をご参照ください。
観察: ルールに一致するリクエストをログに記録し、リクエストをブロックしません。 ルールに一致するリクエストのログを照会し、保護パフォーマンスを分析できます。 たとえば、ログを照会して、通常のリクエストがブロックされているかどうかを確認できます。
重要WAF機能が有効になっている場合にのみ、ログを照会できます。 詳細については、「Simple Log Service For WAF機能の有効化または無効化」をご参照ください。
観察 を選択した場合、ルールでドライランを実行して、ルールが通常のリクエストをブロックするかどうかを確認できます。 ルールがドライランに合格した場合、Actionパラメーターをブロックに設定できます。
説明セキュリティレポート ページで、一致したルールの詳細をモニターモードまたはブロックモードで照会できます。 詳細については、「セキュリティレポート」をご参照ください。
完全な SQL 文の検出 (デフォルトで有効)
WAFが非インジェクション攻撃を検出した場合、WAFは攻撃に対して指定されたアクションを実行します。 たとえば、リクエストに
/query.php?sql=select name from users where 1=1% 23
が含まれている場合、WAFはそのリクエストを攻撃リクエストとして識別します。説明phpMyAdminやAdminerなどのツールを使用してビジネスデータを分析する場合は、非注入攻撃の検出を無効にすることを推奨します。
プロトコルコンプライアンス
異なるプログラミング言語は、HTTP要求に対する異なるレベルのフォーマット処理要件を有する。 これにより、ファイルのアップロードなど、WAFをバイパスするために悪用される可能性のある脆弱性が発生します。 プロトコルコンプライアンス機能は、脆弱性や攻撃を防ぐためにHTTPリクエストがプロトコル層で正しいフォーマットを使用しているかどうかをチェックします。
プロトコルコンプライアンス機能は、EnterpriseまたはUltimateエディションを実行する従量課金WAFインスタンスおよびサブスクリプションWAFインスタンスでのみサポートされます。
インテリジェントO&M
インテリジェントホワイトリストをオンにすると、WAFは過去のサービストラフィックに基づいてインテリジェント学習を実行し、誤検知の原因となる保護ルールを特定します。 次に、WAFは誤ってブロックされたURLをインテリジェントなホワイトリストに追加します。 これにより、通常のリクエストがブロックされなくなります。
ホワイトリストモジュールの保護ルールは自動的に作成されます。 保護ルールは、[基本的なWeb保護] ページの [ホワイトリスト] セクションの [AutoTemplate] 保護テンプレートで確認できます。 詳細については、「特定のリクエストを許可するためのホワイトリストモジュールの保護ルールの設定」をご参照ください。
説明インテリジェントなホワイトリスト機能は、EnterpriseまたはUltimateエディションを実行する従量課金WAFインスタンスおよびサブスクリプションWAFインスタンスでのみサポートされます。
申請先
テンプレートを適用する 保護対象 および 保護対象グループ を選択します。
保護対象オブジェクトまたは保護対象オブジェクトグループに適用できる保護モジュールのテンプレートは1つだけです。 保護オブジェクトの追加と保護オブジェクトグループの作成方法の詳細については、「保護オブジェクトと保護オブジェクトグループの設定」をご参照ください。
保護テンプレートを作成したら、保護テンプレートリストの保護テンプレートに対して次の操作を実行できます。
テンプレートに関連付けられている保護オブジェクトおよび保護オブジェクトグループの数を 保護対象 / グループ 列に表示します。
ステータス 列のスイッチをオンまたはオフにして、テンプレートを有効または無効にします。
[操作] 列の 編集 または 削除 をクリックして、テンプレートを変更または削除します。
[操作] 列の [配信記録] をクリックして、自動的に作成されたホワイトリストモジュールの保護ルールを表示します。 テンプレートの作成時に [インテリジェントホワイトリスト] をオンにすると、テンプレートの名前の横にアイコンが表示されます。 テンプレートを作成したときにインテリジェントホワイトリストをオンにしなかった場合、アイコンがテンプレートの名前の横に表示されます。 [インテリジェントホワイトリスト] 列のスイッチを直接オンにすることができます。
テンプレート名の左側にあるアイコンをクリックして、テンプレート内の保護ルールを表示します。
[基本保護ルール] セクションの [ルールグループ] をクリックすると、各ルールグループに関連付けられた保護テンプレートが表示されます。
次のステップ
[セキュリティレポート] ページの [基本的な保護ルール] タブで、設定された保護ルールの保護の詳細を表示できます。 たとえば、保護ルールのIDを見つけて、[操作] 列の [詳細の表示] をクリックして、ルールの保護の詳細を表示できます。 詳細については、「基本的な保護ルールモジュール」をご参照ください。
基本的な Web 保護 ページで、ルールIDで基本保護ルールモジュールの保護ルールを検索することはできません。 保護ルールが通常のトラフィックをブロックする場合、ホワイトリストモジュールを設定してルールをホワイトリストに追加できます。 ホワイトリストモジュールの設定方法の詳細については、「特定のリクエストを許可するためのホワイトリストモジュールの保護ルールの設定」をご参照ください。
関連ドキュメント
WAF 3.0の保護オブジェクト、保護モジュール、および保護プロセスの詳細については、「保護構成の概要」をご参照ください。
API操作を呼び出して保護テンプレートを作成する方法の詳細については、「CreateDefenseTemplate」をご参照ください。
API操作を呼び出して保護ルールを作成する方法の詳細については、「CreateDefenseRule」をご参照ください。