総じて

以下の仕組みを持っています。

sequenceDiagram participant 攻撃者 participant Apache participant ファイル群 攻撃者->>Apache: HTTPリクエスト note over Apache: 第1段階: spam-ips.txt によるIP評価 Apache->>ファイル群: spam-ips.txt を参照 alt IPがリストに存在 Apache-->>攻撃者: 404 Not Found (アクセス拒否) else IPは問題なし note over Apache: 第2段階: bad-botリストによる評価 Apache->>ファイル群: bad-botリストを参照 alt bad-bot と判定 Apache-->>攻撃者: 403 -> 404 Not Found (アクセス拒否) else bad-botではない note over Apache: 第3段階: ModSecurity による評価 Apache->>Apache: ModSecurityエンジンへ処理を渡す note over Apache: 3a: ip-blacklist.txt を評価 Apache->>ファイル群: ip-blacklist.txt を参照 alt IPがリストに存在 Apache-->>攻撃者: 404 Not Found (ログなし拒否) else IPは問題なし note over Apache: 3b: CRSルールでリクエスト内容を解析 alt 攻撃パターンを検知 (スコア超過) Apache-->>攻撃者: 403 Forbidden (アクセス拒否) else 攻撃パターンなし note over Apache: 全てのチェックを通過 Apache->>Apache: アプリケーションへ処理を渡す Apache-->>攻撃者: 200 OK (正常なレスポンス) end end end end

この記事のまとめ

  • AbuseIPdb等でも多数攻撃が上がっている不適切なホスト群をアクセスさせずに拒否。(1 Strike)
  • 過剰なクロールを繰り返す不適切なクローラー/bot群をまとめて拒否。 (2 Strike)
  • 過去に学んだIPアドレスを自動的に拒否。 (3 Strike)

のバッターアウト後、最後に残った不審な攻撃をMod_Securityが処理していく流れ。

今後、別の記事にて、自動的に生成されるip-blacklistなどについて解説します。