総じて
以下の仕組みを持っています。
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などについて解説します。
コメントを残す