ラボの概要
AWS ウェブアプリケーションファイアウォールの課題ラボにようこそ。 AWS WAF は、可用性に影響を与えたり、セキュリティを侵害したり、あるいはリソースを過剰消費したりする可能性のある一般的なウェブエクスプロイトやボットからウェブアプリケーションや API を保護するウェブアプリケーションファイアウォールです。AWS WAF では、ボットトラフィックを制御して、SQL インジェクション (SQLi) やクロスサイトスクリプティング (XSS) などの一般的な攻撃パターンをブロックするセキュリティルールを作成することによって、トラフィックがアプリケーションに到達する方法を制御できます。これらのルールは、特定のトラフィックパターンをフィルターするようにカスタマイズすることもできます。
このラボでは、皆さんはオンラインのジュース店を立ち上げたばかりの会社で働くセキュリティエンジニアであると仮定します。ウェブアプリケーションの SQLi と XSS の脆弱性を探し、軽減するよう依頼されました。
手順がステップごとに記載されているこれまでのラボとは異なり、この課題ラボでは目標と最小限の指示しか提示されません。このタスクを完了させるには、セキュリティと一般的なウェブエクスプロイトに関する知識を応用する必要があります。
最初のタスクセットでは、セキュリティで保護されていないウェブアプリケーションが表示され、SQL インジェクションとクロスサイトスクリプティング攻撃を使ってそれをエクスプロイトするように求められます。作業に行き詰ったときは、Hint と Solution メニューを展開して、攻撃に関するサポートを表示してください。
2 つ目のタスクセットでは、先ほど開始した攻撃を軽減するための一連のマネージドルールとカスタムルールを使用して、AWS WAF をデプロイし、設定します。
目標
本ラボを修了すると、次のことができるようになります。
- 簡単な SQLi 攻撃と XSS 攻撃をデプロイして、ウェブアプリケーションを侵害する。
- AWS WAF でウェブアクセスコントロールリスト (ウェブ ACL) を作成し、それを Application Load Balancer に関連付ける。
- ウェブ ACL に AWS マネージドルールグループを適用する。
- カスタムルールをウェブ ACL に適用する。
技術知識の前提条件
このラボでは、SQL の高度な知識のほか、ネットワークセキュリティ、一般的なウェブプロトコル、RESTful フレームワークに関する十分な理解が必要です。また、リモートデスクトップを使用した Windows Server 環境での作業に慣れている必要もあります。
システム要件
このラボには以下が必要です。
- Google Chrome
所要時間
このラボの所要時間は約 60 分です。
アイコンキー
このラボでは、さまざまな種類の手順と注記への注意を促すため、各種アイコンが使用されています。以下のリストは、各アイコンの目的を説明したものです。
- コマンド: 実行する必要があるコマンドを表す。
- 想定される出力: 出力のサンプルであり、コマンドまたは編集済みファイルの出力を確認するときに使用する。
- 注意: ヒントや重要なガイダンスを表す。
- 詳細: 詳細情報が記載されている場所を示す。
- 警告: 特記事項または重要な情報を表す (この情報を読み忘れても、機器やデータに問題が発生するというわけではありませんが、特定のステップを繰り返す必要が生じる可能性があります)。
- 警告: コマンドやプロセスの失敗に影響を与える可能性のある、元に戻せないアクション (一度設定したら変更できない設定の警告も含む)。
- 検討: あるコンセプトを自分の環境でどのように応用できるかを考えたり、学習中のトピックについて議論したりする時間。
- セキュリティ: セキュリティのベストプラクティスを取り入れる機会。
- ヒント: 質問や課題のヒント
- 解答: 質問や課題の解答
ラボ環境
以下の図は、ラボ環境の基本的なアーキテクチャを示しています。
イメージの説明: 上の図は、データの流れを表しています。トラフィックは、Pen Testing Host と呼ばれる EC2 インスタンスから、AWS WAF を経由して、Application Load Balancer の前に置かれた CloudFront ディストリビューションに送られます。ALB はリクエストを Auto Scaling グループに転送します。
図に含まれている重要なリソースの詳細は、以下のとおりです。
- 2 つのアベイラビリティゾーンにまたがる 2 つのプライベートサブネットと 1 つのパブリックサブネットを持つ VPC。
- 2 つのノードを持つ Auto Scaling グループの前に配置された内部向け Application Load Balancer。
- Application Load Balancer の前に配置されている Cloudfront ディストリビューション。
- AWS WAF を通過してから Cloudfront ディストリビューションに到達するトラフィックパス。
- パブリックサブネットにある PenTestingHost と呼ばれる EC2 インスタンス。