AWS WAFの解説(AWS認定クラウドプラクティショナーシラバス用語)

AWS WAFの解説(AWS認定クラウドプラクティショナーシラバス用語)
目次

AWS WAFとは

AWS_WAF.png

AWS WAF(Web Application Firewall:ウェブ・アプリケーション・ファイアウォール)とは、Webアプリケーションに対する悪意のある攻撃(ハッキングやデータ改ざんの試み)を検知し、アプリケーションの入り口でブロックするためのセキュリティサービスです。ネットワーク層の通信を制御する「セキュリティグループ」や、大量のトラフィック攻撃を防ぐ「AWS Shield」とは異なり、AWS WAFは「通信の中身(HTTP/HTTPSリクエストの内容)」まで深く検査します(OSI参照モデルのレイヤー7:アプリケーション層で動作)。SQLインジェクションやクロスサイトスクリプティング(XSS)といった、Webサイトの脆弱性を突く代表的なサイバー攻撃からシステムを保護し、安全なWebサービスの提供を支援します。

具体例

AWS WAFの働きを、空港の「手荷物検査(X線検査)」に例えてみましょう。
セキュリティグループ(ネットワークファイアウォール)は、パスポートを確認して「この国の人なら入ってよし」と判定する入国審査官のようなものです。しかし、入国審査官はカバンの中身までは見ません。
そこで、危険物を持ち込ませないために「X線検査(WAF)」を通します。WAFは、Webサイトを訪れた人が送信してきたデータ(カバンの中身)を開けて細かくチェックします。例えば、ログイン画面のユーザー名入力欄に、パスワードをハッキングするための特殊なプログラムコード(SQLインジェクションの武器)が隠されていないかを確認します。もしカバンの中に危険物(攻撃コード)を見つけたら、そのリクエストを即座に破棄(没収)し、Webサーバー(目的地)へ到達するのを防ぎます。安全な手荷物を持った一般の利用客のリクエストだけをWebサーバーへ通すのです。

もう少し詳しく

AWS WAFは、Amazon CloudFront(CDN)、Application Load Balancer(ALB)、Amazon API GatewayなどのAWSリソースの前段(フロント)に配置して使用します。WAFを機能させるには「Web ACL(Web Access Control List)」というルールセットを作成します。このルールの中で、「特定のIPアドレスからのアクセスをブロックする」「特定の国(地域)からのアクセスだけを許可する(ジオブロッキング)」「リクエストのURLやヘッダーに特定の文字列が含まれていたら遮断する」といった細かな条件(ルール)を定義します。

セキュリティ専門家がいなくても高度な防御を行えるよう、AWS WAFには「マネージドルール」という機能が用意されています。これは、AWSのセキュリティチームやサードパーティのセキュリティベンダー(トレンドマイクロやF5など)が作成・自動更新してくれる最新の防御ルールの詰め合わせです。マネージドルールを有効にするだけで、OWASP Top 10(Webアプリケーションの重大な脆弱性トップ10)に挙げられるような一般的な攻撃手法や、新たに発見された脆弱性(ゼロデイ攻撃)に対して、ユーザー自身でルールを書く手間なく即座に保護レベルを引き上げることができます。また、正当なトラフィックかBot(自動プログラム)かを判定する「Bot Control」機能なども備えています。

試験でのポイント

AWS認定クラウドプラクティショナー(CLF-C02)試験において、AWS WAFは「Webアプリケーション特有の攻撃からの保護」という観点で出題されます。
特に「SQLインジェクション」や「クロスサイトスクリプティング(XSS)」といった具体的な攻撃手法名が含まれる問題文が出た場合、正解は「AWS WAF」です。
よく似たセキュリティサービスとの明確な役割分担(レイヤーの違い)を理解しておくことが重要です。
セキュリティグループ / ネットワークACL:IPアドレスやポート番号レベル(レイヤー3/4)でのアクセス制御。
AWS Shield:DDoS攻撃(大量のトラフィックでサーバーをダウンさせる攻撃)からの保護。
AWS WAF:通信の中身(HTTPリクエストの内容、レイヤー7)を検査し、Webの脆弱性を突く攻撃からの保護。
これら3つを組み合わせて多層防御(Defense in Depth)を構築することがAWSのベストプラクティスです。

関連する用語

関連用語として、DDoS攻撃から保護する「AWS Shield」、WAFをアタッチできるフロントエンドリソースである「Amazon CloudFront」や「Application Load Balancer (ALB)」があります。これらは一緒に構成されることが多いサービスです。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ