AWSでホストされているインターネット向けWebアプリケーションを保護する方法を解説!AWSセキュリティ製品を正しく使いこなしましょう

AWSでホストされているインターネット向けWebアプリケーションを保護する方法を解説!AWSセキュリティ製品を正しく使いこなしましょう

本記事では、AWSでホストされているインターネット向けWebアプリケーションを保護する方法について解説します。セキュリティ対策は、Webアプリケーションの可用性、整合性、機密性を維持するために不可欠です。この記事では、一般的な攻撃方法や、AWS WAFなどのセキュリティサービスを使用してアプリケーションを保護する方法について、具体的に説明します。

インターネット向けWebアプリケーションのアーキテクチャ

インターネットに公開されているWebアプリケーションの一般的なアーキテクチャは、以下の要素で構成されます。

要素説明
インターネットユーザーがWebアプリケーションにアクセスするためのグローバルネットワーク。
AWSリージョンAWSのサービスが提供される地理的なエリア。
アベイラビリティゾーンリージョン内に存在する、物理的に分離されたデータセンター。
VPC (Virtual Private Cloud)AWSアカウント内で論理的に分離されたネットワーク環境。
パブリックサブネットインターネットから直接アクセス可能なサブネット。
プライベートサブネットインターネットから直接アクセスできないサブネット。
アプリケーションロードバランサー (ALB)パブリックサブネットに配置され、トラフィックを複数のWebサーバーに分散させる。
Webサーバーインスタンスプライベートサブネットに配置され、Webアプリケーションを実行する。
データベースインスタンスプライベートサブネットに配置され、Webアプリケーションのデータを格納する。

典型的なWebアプリケーションでは、ユーザーはインターネット経由でALBにアクセスし、ALBはトラフィックをプライベートサブネット内のWebサーバーインスタンスに分散させます。Webサーバーインスタンスは、プライベートサブネット内のデータベースインスタンスと通信して、データの取得や更新を行います。

マルチベクトル攻撃の脅威

現代のサイバー攻撃は、複数の攻撃ベクトルを組み合わせた「マルチベクトル攻撃」が主流となっています。これは、攻撃者が単一の脆弱性ではなく、複数の脆弱性を悪用してシステムに侵入を試みる攻撃です。

例えば、ランサムウェア攻撃では、以下のような複数の段階を経て攻撃が実行されます。

段階説明
偵察活動攻撃者は、ポートスキャンや脆弱性スキャンなどを行い、標的システムの情報収集を行います。
バックドアアクセス脆弱性を悪用して、システムにバックドアを仕掛けることで、不正なアクセス経路を確保します。
マルウェア感染バックドアアクセスを利用して、ランサムウェアなどのマルウェアをシステムに侵入させます。
内部拡散マルウェアはシステム内で拡散し、他のシステムやデータを暗号化したり、盗み出したりします。

マルチベクトル攻撃に対抗するには、個々の攻撃要素を個別に防御するだけでなく、攻撃全体を時間軸に沿って把握し、それぞれの要素間の関連性を分析することが重要です。複数のセキュリティサービスを連携させることで、攻撃をより効果的に検知、防御、修復することが可能となります。

AWSのセキュリティサービス

AWSは、セキュリティ対策を多層的に行うための様々なセキュリティサービスを提供しています。これらのサービスは、大きく以下の5つのカテゴリに分類できます。

カテゴリサービス例
Identify (識別)AWS Organizations, AWS Shield, AWS Certificate Manager
Protect (保護)AWS WAF, AWS Firewall Manager, AWS Secrets Manager
Detect (検出)Amazon GuardDuty, Amazon Macie, Amazon Inspector, AWS Security Hub
Respond (対応)AWS Step Functions, AWS Lambda, Amazon CloudWatch
Recover (復旧)Amazon S3 Glacier, AWS CloudFormation

AWS WAFの活用

AWS WAF (Web Application Firewall) は、Webアプリケーションへの攻撃を防御するためのマネージド型サービスです。WAFは、HTTP/HTTPSトラフィックを検査し、定義したルールに基づいて不正なリクエストをブロックします。

WAFの主な機能は以下のとおりです。

機能説明
レート制限特定のIPアドレスからのリクエスト数を制限することで、DoS攻撃やブルートフォース攻撃を緩和します。
ジオベースのブロッキング特定の国や地域からのアクセスをブロックすることで、地域を限定した攻撃や不正アクセスを防止します。
IPベースのルール特定のIPアドレスやIPアドレス範囲からのアクセスを許可または拒否するルールを設定できます。
マネージドルールAWSが提供する既製のルールセットを使用することで、一般的なWeb攻撃を簡単に防御できます。
カスタムルール独自のルールを作成することで、特定のニーズに合わせたセキュリティ対策を実現できます。
ボットコントロールボットによるアクセスを検知し、ブロックする機能です。
SQLインジェクション対策SQLインジェクション攻撃を検知し、ブロックするルールが用意されています。
クロスサイトスクリプティング (XSS) 対策XSS攻撃を検知し、ブロックするルールが用意されています。

WAFは、ALBやCloudFrontなどのサービスと連携して使用することができます。WAFをALBに設定することで、ALBに届くトラフィックをWAFで検査し、不正なリクエストをブロックすることができます。また、WAFをCloudFrontに設定することで、CloudFrontのエッジロケーションでトラフィックを検査し、世界中のユーザーからの攻撃を防御することができます。

攻撃シナリオと対策例

具体的な攻撃シナリオと、WAFやその他のセキュリティサービスを使用した対策例を以下に示します。

シナリオ1: ボリューム型攻撃

攻撃者は、大量のUDPトラフィックをWebアプリケーションに送信し、サービスを妨害しようとします。

対策:

対策説明
AWS Shield StandardAWS Shield Standardは、AWSのインフラストラクチャを標的としたDDoS攻撃を自動的に防御する無料のサービスです。
AWS Shield Advancedより高度なDDoS対策が必要な場合は、AWS Shield Advancedを使用することができます。Shield Advancedは、DDoS攻撃を検知し、緩和するための追加機能を提供します。
CloudFrontCloudFrontは、コンテンツ配信ネットワーク (CDN) サービスです。CloudFrontを使用してWebアプリケーションの静的コンテンツをキャッシュし、エッジロケーションから配信することで、オリジンサーバーへの負荷を軽減することができます。

シナリオ2: SQLインジェクション攻撃

攻撃者は、Webアプリケーションの入力フォームに悪意のあるSQL文を注入し、データベースに不正にアクセスしようとします。

対策:

対策説明
AWS WAFWAFのSQLインジェクション対策ルールを使用して、SQLインジェクション攻撃を検知し、ブロックすることができます。
データベースセキュリティデータベースインスタンスにセキュリティグループを設定し、アクセスを制限することができます。また、データベースの認証情報を適切に管理し、不正アクセスを防ぐ必要があります。

シナリオ3: アカウント乗っ取り

攻撃者は、ダークウェブなどで入手した不正な認証情報を使用して、Webアプリケーションにログインしようとします。

対策:

対策説明
AWS WAFWAFのレート制限機能を使用して、特定のIPアドレスからのログイン試行回数を制限することで、ブルートフォース攻撃を緩和することができます。
多要素認証 (MFA)MFAを有効にすることで、ユーザー名とパスワードに加えて、追加の認証要素 (SMSコードや認証アプリなど) を入力させることで、アカウント乗っ取りを防止することができます。
AWS Secrets Managerデータベースの認証情報など、機密性の高い情報をSecrets Managerで管理することで、不正アクセスを防ぐことができます。

まとめ

AWSでホストされているインターネット向けWebアプリケーションを保護するには、複数のセキュリティ対策を組み合わせて、多層的な防御体制を構築することが重要です。AWS WAFなどのセキュリティサービスを活用することで、一般的なWeb攻撃を効果的に防御し、アプリケーションの可用性、整合性、機密性を維持することができます。

セキュリティ対策は、常に進化する攻撃手法に対応するために、継続的な見直しと改善が必要です。AWSは、セキュリティに関する最新の情報を提供し、お客様のセキュリティ対策を支援しています。

AWSモダナイズ開発データ分析基盤構築とデータ活用支援、基幹業務システムのUI.UX刷新はお気軽にお問い合わせください。