マルチアタック加害者からの保護¶
Wallarmがblocking modeの場合、悪意のあるペイロードを持つすべてのリクエストを自動的にブロックし、正当なリクエストのみを通過させます。同一IPからの異なる悪意のあるペイロード(一般にmulti-attack perpetratorと呼ばれる)の数が指定した閾値を超えた場合のWallarmのリアクションを設定することで、アプリケーションやAPIに対する追加の保護を構成できます。
このような加害者は自動的にdenylistに登録され、過去に大量の悪意のあるリクエストを送信していたという理由だけで、解析に時間をかけずに彼らからのすべてのリクエストをブロックします。
設定方法¶
以下の例を参照し、マルチアタック加害者からの保護を設定する方法を確認します。
例えば、1時間あたりに同一IPから3件以上の悪意のあるペイロードが送信された場合は、そのIPを完全にブロックする理由になると判断するとします。その場合、対応する閾値を設定し、システムに対して発信元IPを1時間ブロックするよう指示します。
-
Wallarm Consoleを開き、Triggersを選択してトリガー作成ウィンドウを開きます。
-
Number of malicious payloads条件を選択します。
-
閾値として
more than 3 malicious requests from the same IP per hour
を設定します。カウントされないもの
実験的なペイロード(custom regular expressionsに基づくもの)はカウントされません。
-
フィルターは設定しません。ただし、別々または組み合わせて使用できる以下の条件があることに留意します:
- Type はリクエストから検出された攻撃のtypeまたはリクエストが対象とする脆弱性の種類です。
- Application はリクエストを受信するapplicationです。
- IP はリクエストが送信されるIPアドレスです。フィルターは単一のIPのみを想定しており、サブネット、ロケーション、及びソースタイプは許可されません。
- Domain はリクエストを受信するドメインです。
- Response status はリクエストに返されるレスポンスコードです。
-
Denylist IP address -
Block for 1 hour
のトリガーリアクションを選択します。閾値を超えた後、Wallarmは発信元IPをdenylistに登録し、そのIPからのすべてのリクエストをブロックします。なお、bot IPがmulti-attack保護によりdenylistに登録された場合でも、デフォルトではWallarmはそのIPからのブロックされたリクエストに関する統計情報を収集し、表示します。
-
トリガーを保存し、Cloud and node synchronization completionの完了を待ちます(通常は2~4分かかります)。
事前設定されたトリガー¶
新規の会社アカウントには、1時間以内に3件以上の異なるmalicious payloadsを生成した場合に、そのIPを1時間graylistする事前設定(デフォルト)のNumber of malicious payloadsトリガーが用意されています。
Graylistは、ノードが処理する疑わしいIPアドレスのリストであり、graylistに登録されたIPから悪意のあるリクエストが発信された場合、ノードはそれらをブロックしつつ正当なリクエストは許可します。それに対して、denylistはアプリケーションへのアクセスが完全に禁止されるIPアドレスを示し、denylistに登録されたソースからの正当なトラフィックであってもノードはブロックします。IPのgraylistingは、false positivesの削減を目的としたオプションの1つです。
このトリガーはすべてのノードフィルトレーションモードで有効なため、ノードモードに依存せずIPをgraylistします。
ただし、ノードはgraylistの解析をsafe blockingモードでのみ行います。graylistに登録されたIPからの悪意のあるリクエストをブロックするには、まずその機能を確認した上で、ノードのモードをsafe blockingに切り替えます。
Brute force、Forced browsing、Resource overlimit、Data bomb、Virtual patchの攻撃タイプによるヒットは、このトリガーでは考慮されません。
デフォルトのトリガーは一時的に無効化、変更、または削除できます。
テスト¶
以下は事前設定されたトリガーのテスト例です。必要に応じて、トリガービューに合わせて調整できます。
-
保護されたリソースに対して以下のリクエストを送信します:
curl 'http://localhost/?id=1%27%20UNION%20SELECT%20username,%20password%20FROM%20users--<script>prompt(1)</script>' curl 'http://localhost/?id=1%27%20select%20version();' curl http://localhost/instructions.php/etc/passwd
これらのリクエストには、SQLi、XSS、およびPath Traversalタイプの悪意のあるペイロードが4件含まれています。
-
Wallarm Consoleを開き、IP lists → Graylistを選択し、リクエストの発信元IPアドレスが1時間graylistされていることを確認します。
-
Attacksセクションを開き、攻撃がリストに表示されていることを確認します:
攻撃を検索するには、
multiple_payloads
search tagを使用できます。