AWS WAFでWebアプリケーションを保護する方法は?



この記事では、AWS WAFを使用してWebアプリケーションを保護し、実際のデモンストレーションでフォローアップする方法について説明します。

この記事では、Webアプリケーションを保護する方法について説明します。 WAFを実行し、実際のデモンストレーションでフォローアップします。この記事では、次のポイントについて説明します。

それでは始めましょう、





「AWSWAFでWebアプリケーションを保護する方法」に関するこの記事に進みます。

いくつかの基礎を始める

AWSは、EC2、ELB(Elastic Load Balancer)、S3(Simple Storage Service)、EBS(Elastic Block Storage)などのサービスを提供し、より少ないCAPEX(CAPital EXpenditure)で便利で豪華なアプリケーションをすばやく作成します。これらのアプリケーションを作成する際には、アプリケーションを保護し、データを保護することも同様に重要です。適切に保護されていない場合、最近の場合のように、アプリケーションデータが悪用される可能性があります キャピタルワン事件



Capital OneはEC2でWebアプリケーションをホストしており、適切に保護されていませんでした。元AWSの従業員は、この脆弱性を悪用して、S3から大量の顧客データをダウンロードすることができました。その後、他の30の組織からのデータもAWSからダウンロードされたことがわかりました。したがって、もう一度強調すると、アプリケーションを設計および設計するだけでなく、アプリケーションを保護することも同様に重要です。

キャピタルワン使用 AWS WAF(Webアプリケーションファイアウォール) Webアプリケーションを保護するためですが、ハッカーがS3のデータにアクセスしてダウンロードできたため、適切に構成されていませんでした。この記事では、SQLインジェクション、XSS(クロスサイトスクリプティング)などの一般的なWeb攻撃から保護するためにAWSWAFを使用および構成する方法について説明します。AWSWAFは アプリケーションロードバランサー 、CloudFrontまたはAPIゲートウェイ。このシナリオでは、Application LoadBalancerを使用します。ブラウザを介したお客様からのリクエストは、AWS WAFを経由して、Application Load Balancerに送信され、最後にEC2のWebアプリケーションに送信されます。 AWSWAFを使用して 悪意のあるリクエストをブロックする 一連のルールと条件を使用してハッカーから。

画像-AWSWAFを使用した安全なWebアプリケーション-Edureka

「AWSWAFでWebアプリケーションを保護する方法」に関するこの記事に進みます。



AWSWAFを開始するための一連の手順

ステップ1: 脆弱なWebアプリケーションを作成し、

最初のステップは、これで説明されているように、SSRF(Server Side Request Forgery)攻撃に対して脆弱なWebアプリケーションを作成することです。 ブログ キャピタルワン攻撃がどのように起こったかについて。このブログには、次の一連の手順があります。

  1. EC2を作成する
  2. SSRFの脆弱性を持つWebアプリケーションを作成するために必要なソフトウェアをインストールします
  3. S3読み取り専用権限を持つIAMロールを作成します
  4. IAMロールをEC2にアタッチします
  5. 最後に、SSRFの脆弱性を悪用して、IAMロールに関連するセキュリティ認証情報を取得します。

上記のブログで一連の手順が完了したら、5.6.7.8を以下のURLのEC2のパブリックIPアドレスに置き換えて、ブラウザーで開きます。 IAMロールに関連付けられているセキュリティ認証情報は、次のようにブラウザに表示されます。これが基本的にCapitalOneがハッキングされた方法です。セキュリティ認証情報が手元にあると、ハッカーはS3などの他のAWSサービスにアクセスしてデータをダウンロードすることができました。

http://5.6.7.8:80?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

ステップ2: アプリケーションロードバランサーの作成

AWSWAFをWebアプリケーションに直接関連付けることはできません。ただし、Application Load Balancer、CloudFront、APIGatewayにのみ関連付けることができます。このチュートリアルでは、 アプリケーションロードバランサーとAWSWAFの関連付け 同じで。

ステップ2a: ターゲットグループはEC2インスタンスのコレクションであり、アプリケーションロードバランサーを作成する前に作成する必要があります。 EC2 Management Consoleで、左側のペインの[Target Group]をクリックし、[Create targetgroup]をクリックします。

ステップ2b: ターゲットグループ名を入力し、「作成」をクリックします。ターゲットグループが正常に作成されます。

ステップ2c: ターゲットグループが選択されていることを確認し、[ターゲット]タブをクリックし、[編集]をクリックしてEC2インスタンスをターゲットグループに登録します。

ステップ2d: EC2インスタンスを選択し、[登録に追加]をクリックして、[保存]をクリックします。

以下に示すように、ターゲットグループにインスタンスを登録する必要があります。

ステップ2e: アプリケーションロードバランサーを作成する時間です。 EC2管理コンソールの左側のペインでロードバランサーをクリックし、[CreateLoadBalancer]をクリックします。

「アプリケーションロードバランサー」の「作成」をクリックします。

「AWSWAFでWebアプリケーションを保護する方法」に関するこの記事に進みます。

ステップ2f: アプリケーションロードバランサーの名前を入力します。そして、すべてのアベイラビリティーゾーンが選択されていることを確認し、[次へ]をクリックします。

ステップ2g: 「セキュリティ設定の構成」で、「次へ」をクリックします。

改行のhtmlタグ

「セキュリティグループの構成」で、新しいセキュリティグループを作成するか、既存のセキュリティグループの1つを選択します。 EC2のWebページにアクセスするためにポート80が開いていることを確認してください。 [次へ]をクリックします。

ステップ2h: 「ルーティングの構成」で「既存のターゲットグループ」を選択し、前の手順で作成したものを選択します。 [次へ]をクリックします。

ステップ2i: ターゲットEC2インスタンスは、ターゲットグループの一部としてすでに登録されています。したがって、[ターゲットの登録]タブで、変更を加えずに[次へ]をクリックします。

ステップ2j: 最後に、Application Load Balancerのすべての詳細を確認し、[作成]をクリックします。アプリケーションロードバランサーは、次のように作成されます。

ステップ2k: Application Load Balancerのドメイン名を取得し、以下のURLで強調表示されているテキストを置き換えて、ブラウザーで同じものを開きます。アプリケーションロードバランサーを介してWebアプリケーションにアクセスしており、セキュリティ資格情報が次のように表示されていることに注意してください。以下のURLは、セキュリティ認証情報の漏洩を防ぐための後続の手順に示すように、AWSWAFを使用してブロックできます。

MyALB-1929899948.us-east-1.elb.amazonaws.com ?url = http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

ステップ3: AWS WAF(Webアプリケーションファイアウォール)の作成

ステップ3a: AWS WAF管理コンソールに移動し、「ウェブACLの設定」をクリックします。 AWSWAFの概要が表示されます。 AWSWAFの階層は次のとおりです。 Web ACLには一連のルールがあり、ルールには後続の手順で作成する一連の条件があります。 [次へ]をクリックします。

ステップ3b: Web ACL名、North Virginia(またはEC2が作成された場所)としてのリージョン、「Application Load Balancer」としてのリソースタイプを入力し、最後に前の手順で作成されたApplication LoadBalancerを選択します。 [次へ]をクリックします。

ステップ3c: ここで 特定のWebアプリケーション要求をブロックする条件 作成する必要があります。下にスクロールして、「文字列と正規表現の一致条件」の「条件の作成」をクリックします。

ステップ3d: 条件の名前、タイプを「文字列一致」として入力し、「すべてのクエリパラメータ」でフィルタリングし、残りのパラメータを以下に示すとおりに正確に入力します。そして、「フィルターの追加」をクリックしてから、「作成」をクリックします。ここでは、クエリパラメータの値を169.254.169.254として含むURLに一致する条件を作成しようとしています。このIPアドレスはに関連しています EC2メタデータ

ステップ3e: 今こそ、条件のコレクションであるルールを作成するときです。 「ルールの作成」をクリックして、以下に示すようにパラメーターを指定します。 「条件の追加」、「作成」、「レビューと作成」をクリックします。

「AWSWAFでWebアプリケーションを保護する方法」に関するこの記事に進みます。

ステップ3f: 最後にすべての詳細を確認し、「確認して作成」をクリックします。以下に示すように、Web ACL(アクセス制御リスト)が作成され、アプリケーションロードバランサーに関連付けられます。

ステップ3g: 次に、ブラウザを介してアプリケーションロードバランサーのURLにアクセスしてみます。 ステップ2k 。今回は、URLがWeb ACL条件に一致し、それをブロックしているため、「403Forbidden」が表示されます。リクエストがEC2のアプリケーションロードバランサーまたはWebアプリケーションに到達することはありません。ここで、アプリケーションはセキュリティ資格情報へのアクセスを許可していますが、WAFは同じものをブロックしていることがわかります。

ステップ4: このチュートリアルで作成したAWSリソースをクリーンアップします。クリーンアップは、以下に記載されているのとまったく同じ順序で実行する必要があります。これは、AWSがこのチュートリアルの一部として作成された関連リソースの請求を確実に停止するためです。

  • ルールの条件を削除する
  • WebACLのルールを削除します
  • WebACLでALBの関連付けを解除します
  • WebACLを削除する
  • ルールを削除する
  • 条件のフィルターを削除します
  • 条件を削除する
  • ALBとターゲットグループを削除します
  • EC2を終了します
  • IAMロールを削除する

結論

前述のように、AWSを使用したWebアプリケーションの作成は非常に簡単で興味深いものです。ただし、アプリケーションが安全であり、データが悪意のある人の手に漏れないようにする必要もあります。セキュリティは複数のレイヤーに適用できます。このチュートリアルでは、AWS WAF(Webアプリケーションファイアウォール)を使用して、EC2メタデータのIPアドレスとの一致などの攻撃からWebアプリケーションを保護する方法を説明しました。また、WAFを使用して、SQLインジェクションやXSS(クロスサイトスクリプティング)などの一般的な攻撃から保護することもできます。

AWS WAFを使用するか、実際には他のセキュリティ製品を使用してもアプリケーションは安全になりませんが、製品を適切に構成する必要があります。適切に構成されていない場合、Capital Oneや他の組織で発生したように、データが悪用される可能性があります。また、考慮すべきもう1つの重要な点は、セキュリティは最初から考えなければならず、後の段階でアプリケーションに接続しないようにする必要があるということです。

これで、AWSWAFを使用してWebアプリケーションを保護する方法に関するこの記事は終わりです。また、ソリューションアーキテクト試験をクラックするために必要なものを正確にカバーするカリキュラムを考案しました。あなたはのためのコースの詳細を見ることができます トレーニング。

質問がありますか?この「AWSとは」ブログのコメントセクションにその旨を記載してください。折り返しご連絡いたします。