AWS・Azure・Google Cloudの基礎(NWセキュリティ編)

目次
はじめに
アジアクエスト クラウドインテグレーション部の須藤匠です。
クラウド環境のセキュリティは非常に重要です。
この記事では、AWS、Azure、Google Cloudのネットワークセキュリティサービスについて比較し、それぞれの特徴を見ていきます。
まずはファイアウォール、WAF(Web Application Firewall)、IDS/IPS(Intrusion Detection System / Intrusion Prevention System)について基本的な知識を確認していきたいと思います。
ファイアウォールとは
ファイアウォールとは、送受信される通信を監視し、IPアドレスやポート番号に基づいて通信を許可・拒否するセキュリティ対策です。
ファイアウォールには「ステートフル」と「ステートレス」の2種類があります。
-
ステートフルファイアウォールは、通信設定を行う際にアウトバウンド(戻り)の通信も動的に許可します
-
ステートレスファイアウォールは、インバウンド(行き)とアウトバウンド(戻り)の両方の通信を個別に許可する必要があります。これにより、設定が複雑になりますが、きめ細かなアクセス制御が可能です
WAFとは
WAF(Web Application Firewall)とは、ウェブアプリケーションをその脆弱性を悪用した攻撃から保護するためのセキュリティ対策です。
WAFはHTTPプロトコルの中身(リクエストヘッダーやパラメータなど)をチェックし、通信の許可・拒否を判断します。
シグネチャと呼ばれるルール集を用いて、既知の不正な通信や攻撃パターンを識別します。
最新の攻撃に対応するためには、これらのシグネチャを定期的に更新することが必要です。
特に、OWASP(Open Web Application Security Project)という非営利団体が数年ごとに発表しているOWASP Top 10に基づいて、セキュリティリスクのランキングが作成されており、多くのシグネチャではこの情報をもとにルールを定義しています。
執筆時点である2024年版の最新版はOWASP TOP10: 2021で、次回の発表は2025年となっています。
OWASP TOP10: 2021概要
OWASP Top 10には以下のような重大なセキュリティリスクが含まれています。すべてのリスクをWAFで防げるわけではないため、他のサービスやシステム全体の設計での対策が必要です。
つまり、WAFなど一つの層のみで防御を固めるのではなく、その前後の層でも防御を固めることで、攻撃者がシステム全体にアクセスすることを防ぐアプローチが必要です。
このような考え方を多層防御と言います。
例えばインジェクションやサーバーサイド・リクエスト・フォージェリはWAFによって防げる場合がありますが、認証、ログのモニタリングや分析、脆弱性の検知などについては他のサービスを使用してセキュリティを固める必要があります。
-
- アクセス制御の不備
-
- 暗号化の失敗
-
- インジェクション
- 攻撃者が不正なコードやデータをアプリケーションに注入し、アプリケーションがそのコードを実行することを悪用する攻撃手法のことです
-
- 安全が確認されない不安な設計
-
- セキュリティの設定ミス
-
- 脆弱で古くなったコンポーネント
-
- 識別と認証の失敗
-
- ソフトウェアとデータの整合性の不具合
- 整合性に不具合があるということは、データの改ざんや破損の検出ができないことを意味します
-
- セキュリティログとモニタリングの失敗
-
- サーバーサイド・リクエスト・フォージェリ
- サーバーサイド・リクエスト・フォージェリ(SSRF) は、フォームなどへの悪意ある入力を通じて、外部に公開されたサーバーを使って他のサーバーにリクエストを送信させる攻撃手法です。この攻撃により、攻撃者は公開されていない内部サーバーやサービスにアクセスしたり、機密情報を盗んだりすることができます
IDS/IPSとは
IDS(Intrusion Detection System:侵入検知システム)は、悪意のある第三者からの攻撃を検知するシステムです。
通信パケットの中身から、OSやミドルウェアの脆弱性を突いた攻撃を検出し、通知します。
IPS(Intrusion Prevention System:侵入防止システム)は、不正な通信を検知するほか、その通信を遮断する機能を持っています。
両者を合わせてIDPS(Intrusion Detection and Prevention System)と呼ぶこともあります。
検知方法には、WAFと同様に既知の不正な通信を定義したシグネチャ型と、正常な通信から逸脱したものを検知するアノマリ型の2パターンがあります。
- シグネチャ型
- メリット:
- 誤検出が少なく、特定の攻撃に対して確実に防御が可能です
- シグネチャが明確に定義されているため、設定や運用が比較的簡単で、迅速に検知システムを導入できます
- デメリット:
- シグネチャにない攻撃は検出できません
- メリット:
- アノマリ型
- メリット:
- 未知の攻撃の検出が可能: 既知の攻撃パターンに依存せず、正常な通信の逸脱を検出するため、新たな攻撃にも柔軟に対応できます
- 動的な防御: 正常通信パターンが変更されるたびにシステムが適応し、リアルタイムで攻撃を検出できます
- デメリット:
- 誤検出が多くなりやすいです
- 業務内容の変化に応じて正常通信の基準を見直す必要があります
- メリット:
防御範囲まとめ
攻撃 | 防御 | 対象 | 保護レイヤ |
---|---|---|---|
Webアプリの脆弱性を利用した攻撃 | WAF | Webアプリケーション ミドルウェア |
アプリケーション層 |
OS・ミドルウェア脆弱性を利用した攻撃 Dos/DDoS攻撃など |
IDS/IPS | ミドルウェア OS |
トランスポート層 ネットワーク層 |
不正アクセス・ポートスキャン | ファイアウォール | ネットワーク | ネットワーク層 |
それぞれの防御方法で保護レイヤが異なるため、1種類の防御だけでは完全に攻撃を防ぐことができません。
複数の防御方法を選択することでより強固なシステムを構築することができます。
ただし、組み合わせが多くなるとコストも多く発生するため、要件やシステムに応じてコストとセキュリティのトレードオフを検討する必要があります。
各クラウドのファイアウォールサービス
以下の表に、AWS、Azure、Google Cloudのファイアウォールサービスを比較しました。
AWS | Azure | Google Cloud | ||
セキュリティグループ | ネットワークアクセスコントロールリスト | Azureネットワークセキュリティグループ | VPCファイアウォールルール | |
設定できるルール | 許可のみ | 許可・拒否 | 許可・拒否 | 許可・拒否 |
ステート | フル | レス | フル | フル |
設定単位 | EC2 | サブネット | VM・サブネット | GCE・VPC |
AWSのみがステートレスのファイアウォールを提供しているため、ステートレスファイアウォールが必要な場合はAWS一択となります。
各クラウドのWAFサービス
次に、各クラウドのWAFサービスの比較です。
AWS | Azure | Google Cloud | |
---|---|---|---|
AWS WAF | Azure WAF | Cloud Armor | |
特徴 | 3rd Partyのマネージドルールの選択が可能 | DDoS Protectionと組み合わせることでアプリケーション層でのDDoS保護が可能 | Google/YouTubeに対応してきたWAF+DDoS対策 |
設定単位 | CloudFront/ALB/API Gateway/AppSync その他については公式ドキュメントのAWS WAF で保護できるリソースを参照 |
Azure Application Gateway/Front Door/Azure Content Delivery Network | Cloud Load Balancing |
マネージドルール | ◯ | ◯ | ◯ |
カスタムルール | ◯ | ◯ | ◯ |
3rd Partyマネージドルール | ◯ | - | - |
DDoS対策 | - (AWS Shield StandardおよびAdvancedにて対応) |
- (Azure DDoS Protectionと連携) |
◯ |
AWS WAFではサードパーティのマネージドルールを使用することができます。
標準マネージドルールだけでは防御しきれない最新・未知の脅威に対処しなければならないケースでも、
サードパーティマネージドルールを使用することでカスタムルールの作成と運用が不要となり、運用管理の負荷を軽減できます。
Google Cloudは内蔵のDDoS対策を提供しており、一つのソリューションでDDoS対策まで済ませることができます。
料金に関しては、各サービス間でほぼ差はありません。
またカスタムルールは各クラウドで利用可能で、特定のIPやHTTPメソッド、任意の正規表現と一致するリクエストなどを指定してアクセスの拒否やレート制限を行うルールを作成できます。
各クラウドのIDS/IPSサービス
各クラウドのIDS/IPSサービスについて比較します。
AWS | Azure | Google Cloud | |
---|---|---|---|
AWS Network Firewall | Azure Firewall | Cloud IDS | |
特徴 | OSSのシグネチャ型IPSであるSuricataと互換 | StandardとPremiumの2種類のSKUが提供されている | Palo Alto Networksによって保護 |
設定単位 | サブネット | サブネット | プライベートサービスアクセス |
IDS/IPS | IDS/IPS | IDS/IPS | IDS |
シグネチャ | Suricata | 非公表 | PaloAlto |
ルール | 約35,000ルール | 約60,000ルール | 非公表 |
カテゴリー | 15カテゴリー | 50カテゴリー | 29カテゴリー |
Cloud IDSが採用しているPalo Altoは2022年と2023年の調査ではセキュリティベンダーのシェア世界1位であり、信頼と実績に優れたシグネチャとなっています。
参考:総務省|令和6年版 情報通信白書|データ集 | 世界のサイバーセキュリティ主要事業者
利用できるルールとカテゴリーはAzureが最多であり、ルールベースでできることはAzureが最も多いと言えます。
ハンズオン
最後に、簡単ですがAWS WAFとDVWAを使用して実際に悪意あるアクセスを拒否してみたいと思います。
DVWA(Damn Vulnerable Web Application)はその名の通り脆弱なWebアプリケーションで、セキュリティツールなどのテストを支援する目的で公開されています。
EC2上にDVWAをデプロイし、DVWAのセキュリティレベルをlowに設定した上で、インジェクションを行ってみます。
例として、pingするIPアドレスの入力フォーム内への"|| ls"の入力と、user idの入力フォームへの"1' or 'a'='a"の入力を試してみます。
① IPアドレスの入力フォームへ"|| ls"を入力します。
IPアドレスではなくパイプとコマンドを入力することで、lsコマンドが実行されていることが確認できます。
OSコマンドインジェクションを実行できてしまう状態になっていることがわかりました。
③ user idの入力フォームへ"1 or 'a'='a"を入力します。
WHERE句で常にTRUEとなる式を入力することで、全てのユーザーの情報を閲覧できることが確認できます。
SQLインジェクションを実行できてしまう状態になっていることがわかりました。
ALBを作成してEC2をターゲットグループとし、WAFを作成した上で防御できるかを検証します。
⑤ 無料のマネージドルールであるCoreruleset、POSIXoperatingsystem、SQLdatabaseを選択しています。
⑥ ①〜④と同じ操作をしても、403エラーが発生し、情報を閲覧することができないようになっています。
まとめ
このように、AWS、Azure、Google Cloudそれぞれのセキュリティサービスには独自の特徴があります。
これらのサービスを利用して複数の防御層を組み合わせることで、より強固なセキュリティを実現できます。
ただし、コストや運用の複雑さも考慮し、システムの要件に応じた適切な防御策を選ぶことが求められます。
アジアクエスト株式会社では一緒に働いていただける方を募集しています。
興味のある方は以下のURLを御覧ください。