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