こんにちは。かじです。今回はWAFの各概念について、まとめたいと思います。
AWS WAFでは下記の用語を押さえておく必要があります。
1.ルール
WAFがHTTPリクエストを検査し、許可/拒否を判断する基準となるものがルールです。ルールには主にマネージドルールとカスタムルールの2種類あります。
マネージドルール
マネージドルールは、あらかじめAWSがまとめてくれているルールになります。
Webアプリケーションで頻繁に起こる攻撃への防御をまとめたルールやPHPの脆弱性に対する攻撃への防御をまとめたルールなどです。
マネージドルールはの一覧は下記を参照ください。
カスタムルール
続いてはカスタムルールになります。
簡単に説明すると、利用者が好みで作成することのできるWAFルールです。
「HTTPリクエストに〇〇のデータが含まれていたら」とか「同一のIPから〇〇くらいアクセスが来たら」などWAFの基準を自分で定めることのできるルールになります。
どのアクセスをブロックするか明確になっている必要があります。
また、カスタムルールはマネージドルールに比べると、処理がシンプルであるため、後ほど説明するWCUが低いのも特徴です。
Web ACL
Web ACLは、WAFのルールの集まりです。ALBやCloudfrontには、このWeb ACL単位で適用します。
例えば、WordPressサーバーにてきようするのでであれば、PHPの脆弱性対策である、PHP アプリケーションマネージドルールグループとWordPressの脆弱性対策であるWordPress アプリケーションマネージドルールグループを適用したいとします。この場合は、Web ACLに両ルールグループを追加し、これをALBにアタッチします。
ここまではそんなに難しいことはなく、じゃあ、これでWAFにどんどんルールを追加したらええやんと思うかもしれませんが、そうはいきません。
なぜなら、WCUという概念が存在するからです。
WCU
WCUはWeb ACL キャパシティユニットの略です。一つのWeb ACL当たり設定できるルールの上限のようなものです。
取り敢えず、なんでもかんでもWAFルールを追加していくのは、ユーザーにとってはいいかもしれませんが、AWSとしては処理が増えるので、負荷がかかってしまいます。そのため、WCUという上限を設けているのです。
ルールにはそれぞれの処理の複雑さに応じて、WCUポイントが設定されています。
PHP アプリケーションマネージドルールグループ、WordPress アプリケーションマネージドルールグループだと100、カスタムルールだと1〜10程というような感じです。
WCUは1つのWeb ACLあたり1500を超えると追加料金がかかり5000が最大となっています。
WCUを考慮しつつ適切なルールを適用するために基本的なセキュリティの知識を持って、何に対処したいかをはっきりさせることが大切になります。
NLBにアタッチすることはできない
WAFはNLBに対して適用することは出来ません。その理由については、NLBが負荷分散を行っているのは、ネットワークのレイヤ4のトランスポート層であるのに対して、WAFで防御しているのはレイヤ7のアプリケーション層であるためです。
WAFをNLBにアタッチしたところで、取り扱うネットワークレイヤーが異なるため、攻撃を防御できません。
そういった時に使用するのはAWS Shieldになります。AWS Shieldはレイヤ3およびレイヤ4の攻撃に対して防御をしてくれるサービスになり、有料版のAdvancedと無料版のStandardがあります。必要に応じて選定するのが良いかと思います。
今回はここまでとなります。最後まで閲覧くださりありがとうございました。