- AWS Builder Center›
- builders.flash
わずか数クリックで多様な脅威を監視しクラウドを保護! 脅威検出サービス Amazon GuardDuty をグラレコで解説
2024-06-03 | Author : 米倉 裕基
はじめに
※ 本連載では、様々な AWS サービスをグラフィックレコーディングで紹介する awsgeek.com を、日本語に翻訳し、図の解説をしていきます。awsgeek.com は 、Jerry Hargrove 氏が運営しているサイトです。
builders.flash 読者のみなさん、こんにちは! テクニカルライターの米倉裕基と申します。
本記事では、AWS が提供するマネージド型の脅威検出サービス Amazon GuardDuty の機能と特徴について紹介します。
Amazon GuardDuty (以下、GuardDuty) は、AWS アカウントとワークロードを継続的にモニタリングして悪意のあるアクティビティがないかを確認し、可視化と修復のための詳細なセキュリティ検出結果を提供する脅威検出サービスです。
GuardDuty は、AWS 独自の分析に加えて、サードパーティーのセキュリティベンダーの最新の脅威インテリジェンスと連携することで、既知の脅威を迅速かつ包括的に検出します。また、機械学習によるパターン分析や AWS サービスの各種ログの解析結果を活用し、未知の脅威や異常なアクティビティを検知します。GuardDuty は、シンプルな操作で AWS 環境全体を包括的に監視し、さまざまな既知および未知の脅威から保護するサービスです。
本記事では、GuardDuty の以下の機能とメリットについて詳しく解説します。
-
Amazon GuardDuty とは
-
シンプルな導入手順
-
既知および未知の脅威検出
-
検出した脅威の確認
-
脅威検出の一元的な管理
-
脅威検出プロセスの自動化
-
GuardDuty の料金体系
それでは、項目ごとに詳しく見ていきましょう。
builders.flash メールメンバーへ登録
builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます。
Amazon GuardDuty とは
クラウド環境を安全に運用するためには、セキュリティ対策が最重要事項の一つです。日々生まれる新種の脅威に対抗するために、クラウドセキュリティ対策はいかに迅速に最新の対策を講じるかが重要になります。
クラウドセキュリティの課題
クラウド環境の利用には多くの利点がありますが、同時に以下のようなセキュリティ上の課題も存在します。
-
動的かつ複雑なインフラ:
クラウド環境は、仮想マシン、ストレージ、ネットワーク設定などのリソースが頻繁に変更される動的な環境のため、セキュリティ設定やアクセス制御を適切に維持することが不可欠です。 -
絶え間なく進化する脅威:
クラウド上に保管された機密データは、常に進化する新たな攻撃手法や未知の脆弱性を狙うサイバー攻撃の標的となりえます。 -
セキュリティ人材の不足:
クラウドセキュリティに精通した専門家の不足により、多くの企業がセキュリティ対策の計画、実行、監視に課題を抱えています。
GuardDuty の特徴
GuardDuty はクラウドセキュリティに関連するこれらの課題に対応するために設計された強力なセキュリティサービスです。
GuardDuty の主な特徴は以下のとおりです。
|
特徴 |
説明 |
|
包括的な脅威検知 |
機械学習、異常検出、脅威インテリジェンスなどを組み合わせて、包括的で高度な脅威検知を実現します。 |
|
継続的なモニタリング |
CloudTrail ログ、VPC フローログ、DNS クエリログなどの AWS サービスからのログデータを 24 時間 365 日監視し、潜在的な脅威を検出します。 |
|
高度な脅威インテリジェンス |
AWS 独自の脅威インテリジェンスに加え、CrowdStrike や Proofpoint などサードパーティーの脅威インテリジェンスフィードも活用し、最新の既知の脅威に対応します。 |
|
機械学習による異常検知 |
機械学習モデルを使って通常の動作パターンを学習し、それと異なる振る舞いを未知の脅威として検出できます。 |
|
可視化と保護 |
Amazon EC2、サーバーレス、コンテナなどあらゆる AWS ワークロードを包括的に可視化し、既知および未知の両タイプの脅威から保護します。 |
GuardDuty は、機械学習、異常検知、脅威インテリジェンスなどを組み合わせ、既知および未知の両タイプの脅威を検出します。AWS 環境全体のログを 24 時間 365 日継続的にモニタリングし、潜在的な脅威をリアルタイムで可視化します。導入も簡単で、コンソール上ですぐに高度なセキュリティ対策を有効にでき、誰もが手軽に包括的なクラウドセキュリティを実現できるサービスです。
その他、GuardDuty の特徴について詳しくは、製品ページの「Amazon GuardDuty の特徴」をご覧ください。
シンプルな導入手順
GuardDuty による保護は、AWS マネジメントコンソール上の GUI 操作で簡単に開始できます。AWS が提供する主要なセキュリティサービスの中でも、GuardDuty は容易に導入できるサービスの 1 つと言えます。
GuardDuty の有効化
GuardDuty の利用開始の手順は以下のとおりです。
-
GuardDuty コンソールを開きます。
-
[今すぐ始める] をクリックします。
-
[GuardDuty の有効化] をクリックします。
わずか 3 ステップで GuardDuty による保護が有効化され、不審なアクティビティの検知、脅威の可視化などが可能になります。
GuardDuty の有効化 (または無効化) は、GuardDuty コンソールだけでなく、AWS CLI、AWS SDK、または GuardDuty API からも可能です。
基礎データソースの監視対象ログ
GuardDuty を有効化した際に、基礎データソースで監視対象となるログは以下のとおりです。
|
AWS サービスログ |
監視内容 |
|
API コールや AWS リソースの作成、変更、削除などのイベントを監視し、不審または悪意のあるアクティビティを検出 |
|
|
Amazon VPC 内のネットワークトラフィックを監視し、不審な IP 通信、データ漏洩、悪意のある活動を検出 |
|
|
Amazon Route 53 の DNS クエリログを監視し、悪意のあるドメインや C&C サーバーとの通信を検出 |
上記以外にも、GuardDuty を有効化するとランタイムモニタリングを除くすべての保護プランが有効になり、各保護プランの対象のデータソースが監視対象となります。
保護プラン
GuardDuty は、基礎データソースのログ監視に加えてオプションで監視対象を拡張できます。GuardDuty 有効化時は、ランタイムモニタリングを除くすべての保護プランが自動的に有効になり、対象となる AWS サービスやワークロードに対する包括的な脅威検知が可能になります。保護プランは、個別に有効化 / 無効化を設定でき、監視対象を柔軟に選択できます。
-
S3 Protection:
Amazon S3 バケットへの不審なアクティビティやポリシー違反をモニタリングします。データの改ざんや不正アクセスを検出できます。 -
EKS Protection:
Amazon EKS クラスターのコントロールプレーンとデータプレーンの両方を包括的に監視し、マルウェアの実行やクラスター構成の不正変更などの脅威を検出します。 -
ランタイムモニタリング:
Amazon EC2 インスタンスやコンテナワークロードの OS レベル、ネットワーク、ファイルシステムイベントをリアルタイムで監視し、マルウェアの実行や悪意のあるアクティビティを検出します。 -
Malware Protection:
Amazon EC2 インスタンスやコンテナに接続された Amazon EBS ボリュームをスキャンし、既知のマルウェアシグネチャと動作を検出します。 -
RDS Protection:
Amazon Aurora データベースへの不審なログインアクティビティを監視し、データベースへの不正アクセスを検出します。 -
Lambda Protection:
AWS Lambda 関数の呼び出しを監視し、不審な呼び出しパターンや悪意のあるペイロードを検出します。
GuardDuty の有効化について詳しくは、「GuardDuty 機能のアクティベーション」をご覧ください。
既知および未知の脅威検出
GuardDuty は、すでに情報が特定されている既知の脅威と、まだ特定されていない未知の脅威の両方を検出するように設計されています。脅威インテリジェンスや機械学習などを活用することで、既知の脅威と未知の脅威の両方への包括的なアプローチでクラウド環境を保護します。
既知の脅威検出では、脅威インテリジェンスフィードや数百万件におよぶマルウェア分析結果が活用されます。一方、未知の脅威検出では、機械学習や異常検知システムが活用されます。
既知の脅威検出
既知の脅威とは、セキュリティコミュニティで特定され、特徴づけられ、文書化された脅威です。GuardDuty は以下のような多角的なアプローチでこれらの脅威を検出します。
-
自社のログデータ分析:
GuardDuty は、CloudTrail ログ、VPC フローログ、DNS クエリログなど、AWS アカウントから収集した包括的なログデータを分析します。機械学習アルゴリズムを活用して、これらのログ内の異常な行動や既知の脅威の兆候を特定します。 -
サードパーティの脅威インテリジェンス フィード:
CrowdStrike や Proofpoint などのセキュリティベンダーから商用の脅威インテリジェンス フィードを取得し、悪意のある IP、ドメイン、C&C サーバーに関する最新情報を活用し、GuardDuty の検出機能を強化します。 -
AWS 独自のマルウェア分析:
AWS 独自のマルウェア分析環境で、数百万のマルウェアサンプルが実行され、徹底的な分析が行われます。これにより、悪意のある URL や IP アドレスを特定し、GuardDuty の検出精度を高めます。
未知の脅威検出
未知の脅威は、新しい攻撃ベクトルやゼロデイ脆弱性の悪用など、従来のセキュリティソリューションでは特定が困難な脅威です。GuardDuty は以下のような先進的な技術で未知の脅威を検出します。
-
シグナル パターンの解析:
DNS 通信、API コールログ、ネットワークフローなど、様々な AWS サービス ログから得られるシグナルのパターンを解析します。機械学習モデルを活用して、通常の行動からの逸脱を特定し、未知の脅威の兆候を検出します。 -
異常検知システム:
GuardDuty は AWS 環境の正常な動作パターンを機械学習で学習し、高度な異常検知システムを構築します。正常な動作パターンからの逸脱を検知し、未知の脅威を特定します。 -
機械学習の活用:
過去の脅威事例から学習したパターンを活用し、新たな未知の脅威を検出します。GuardDuty は、コンテキストデータ、振る舞い分析、統計分析を組み合わせることで、高度な機械学習モデルを適用し、進化し続ける脅威を捕捉します。
GuardDuty は、脅威インテリジェンス、高度なログ分析、機械学習を組み合わせることで、クラウド環境を包括的に保護します。既知の脅威に対しては迅速な検出と対応を可能にし、未知の脅威に対しては先進的な技術で特定し、AWS 環境の安全性を確保します。この多角的なアプローチにより、GuardDuty は動的で信頼性の高いセキュリティソリューションを提供します。
GuardDuty の脅威検知について詳しくは、「Amazon GuardDuty による脅威検知」をご覧ください。
検出した脅威の確認
GuardDuty が潜在的な脅威を検知すると、その詳細を検出結果としてレポートします。検出結果には、検出された脅威の重要度、検出結果のタイプ、および影響を受けたリソースなどの情報が含まれています。
検出結果の情報
脅威の検出結果には以下のような情報が含まれます。
-
重要度レベル:検出した脅威の重要度が「高い」「ミディアム」「低い」の 3 レベルに分けられます。
-
検出結果タイプ:特定された脅威アクティビティの性質の分類が表示されます。詳細は以下で説明します。
-
リソース:脅威の影響を受けた EC2 インスタンス、IAM ユーザー、S3 バケットなど各種リソースが表示されます。
また、GuardDuty コンソールの詳細ビューでは、検出された脅威に関するより深い情報を確認できます。検出のタイミングと経緯、脅威の性質や挙動を示す付加データなどが提供され、脅威の全容を多角的に把握することができます。
検出結果タイプ
GuardDuty は、Recon (偵察)、Backdoor (バックドア)、Trojan (トロイの木馬) などのさまざまなタイプの脅威を検出できます。
以下は GuardDuty でカテゴライズされる代表的な脅威タイプです。ユーザーは、検出結果タイプから、GuardDuty が検出した脅威の内容や重要度を迅速に把握できます。
|
脅威の目的 |
検出結果タイプの例 |
脅威の内容 |
|
Recon |
攻撃者が標的環境の偵察をし、IP アドレス、ユーザー情報、ネットワーク構成などの情報を収集 |
|
|
Backdoor |
マルウェアがバックドア (不正な侵入経路) を開設し、制御サーバーとの通信を実施 |
|
|
Trojan |
トロイの木馬による、データの窃取、リソースの乗っ取り、ランサムウェアの実行など |
|
|
UnauthorizedAccess |
IP アドレスのレピュテーション情報やその他の脅威インテリジェンスに基づいて、悪意のある IP アドレスを特定 |
|
|
Stealth |
攻撃者が痕跡を残さずに活動するための、ログ無効化などの手口 |
|
|
CryptoCurrency |
暗号通貨マイニングのマルウェア実行や、暗号通貨ウォレットの不正利用 |
|
|
PenTest |
ペネトレーションテストや侵害行為に使われる環境からのアクセスを検知 |
上記以外にも、Exfiltration (機密情報の流出) や DefenseEvasion (セキュリティ回避)、CredentialAccess (資格情報への不正アクセス) など、さまざまな脅威の目的があります。詳しくは、「脅威の目的」または「検出結果タイプ」をご覧ください。
検出結果の修復
検出結果により、特定のリソースへの侵害が疑われる場合、適宜問題を修復する必要があります。修復方法は、各リソースや検出結果タイプによって異なります。
-
EC2 インスタンスの修復:
侵害された可能性のある EC2 インスタンスを隔離し、マルウェア調査を行います。マルウェアが発見されれば除去を試みます。問題が解決しない場合は、該当のインスタンスを終了し、新しいインスタンスを作成します。 -
S3 バケットの修復:
侵害された可能性のある S3 バケットとアクセス元を特定します。バケットポリシーやアクセス許可設定を見直し、不正アクセスを遮断します。必要に応じて新しいバケットにデータを移行します。 -
認証情報の修復:
アクセスキーが不正に使用された疑いがある場合、その IAM ユーザーのアクセスキーを無効化し、新しいキーを発行します。必要に応じて、IAM ユーザーのポリシーやグループなども見直します。
その他、Lambda 関数や ECS クラスター、Aurora データベースなど、リソースごとに修復方法が異なります。検出された脅威への対応について詳しくは、「検出結果の修復」をご覧ください。
脅威検出の一元的な管理
GuardDuty では、「管理者アカウント」と「メンバーアカウント」の役割分担により、複数の AWS アカウントにまたがる脅威検出を一元的に管理できます。
管理者アカウントとメンバーアカウント
一般的に管理者アカウントは組織のセキュリティチームが所有し、複数のメンバーアカウントの脅威検出を一元的に監視し、組織全体のセキュリティを統括します。
|
アカウントレベル |
役割 |
|
管理者アカウント |
複数のメンバーアカウントに対し、GuardDuty の有効化、検出結果の確認、抑制ルール設定などを一括で行えます。メンバーアカウントによる脅威検出結果を一元的に確認できます。 |
|
メンバーアカウント |
管理者アカウントが設定した GuardDuty のポリシーに従います。自身のアカウントによる検出結果は確認できますが、GuardDuty の詳細な設定は行えません。 |
GuardDuty 上で、1 つの AWS アカウントを管理者アカウントとして指定します。管理者アカウントが、メンバーアカウントの指定、管理を行います。メンバーアカウントの指定には、以下の 2 つの方法があります。
-
AWS Organizations でメンバーアカウントを所属組織に加える
-
GuardDuty 上で管理者アカウントからメンバーアカウントに招待を送る
なお、新規アカウントがメンバーアカウントに追加されると自動的に GuardDuty が有効化され、メンバーアカウントから離れたアカウントでも、GuardDuty の設定がそのまま維持されます。そのため、メンバーアカウントの追加・離脱時には、GuardDuty の設定を適切に見直す必要があります。
アカウントレベルを分けるメリット
GuardDuty のアカウントレベルを、管理者アカウントとメンバーアカウントに分けるメリットには以下のようなものがあります。
-
複数アカウントの脅威を一元的に監視・対応可能
-
管理者アカウントから一括でセキュリティポリシーを設定し、統一が実現
-
インシデント発生時、管理者アカウントに通知が集約され迅速な対応が可能
組織内の AWS アカウント数が増えるほど、管理者アカウントによる一元管理のメリットが大きくなります。
GuardDuty の複数アカウントの一元管理について詳しくは、「複数のアカウントの管理」をご覧ください。
脅威検出プロセスの自動化
GuardDuty では、検出した脅威に対する対応プロセスを Amazon EventBridge と AWS Lambda を活用して自動化できます。自動化により、セキュリティオペレーションの効率化とインシデント対応の迅速化を実現できます。
EventBridge ルール による自動化
Amazon EventBridge に GuardDuty のイベントソースを設定し、検出結果に基づくルールを作成することで、脅威検出時に自動で Lambda 関数を呼び出すことができます。
このフローを活用することで、以下のようなユースケースでの自動化が可能になります。
-
検出結果に基づいたインシデント対応ワークフローの自動実行
-
検出結果の可視化や通知の自動化
-
他の AWS サービスとの連携による自動対策の実施
具体例としては、高リスクの脅威が検出されたら Lambda 関数で EC2 インスタンスを隔離したり、通知用の Lambda を呼び出してチャットツールに警告を送信するなどの利用が考えられます。
AWS Lambda による自動対応
EventBridge から呼び出される Lambda 関数では、GuardDuty の検出結果に応じた対応処理を実装できます。例えば以下のような処理が可能です。
-
検出結果の内容に基づいた優先度判定とアクション実行
-
他の AWS サービスの API をコールしてリソースを制御 (EC2 インスタンスの隔離など)
-
検出結果の加工やフィルタリング
-
検出結果の別システムへの転送
GuardDuty は、Amazon EventBridge や AWS Lambda などと連携することで、検出した脅威への対応を柔軟にカスタマイズして自動化できます。なお、GuardDuty、EventBridge、Lambda はいずれもリージョンレベルで提供されるサービスであり、リージョンをまたいだ運用を行う場合は各リージョンでの個別の設定が必要になります。
上記のほかにも GuardDuty は、AWS Security Hub や Amazon Detective など他の AWS サービスとシームレスに統合でき、検出結果の管理や可視性を強化できます。詳しくは、「GuardDuty と AWS のサービスとの統合」をご覧ください。
GuardDuty の料金体系
GuardDuty は、分析されるログデータの量に基づいて従量課金制で料金が発生します。料金は以下の 2 つの要素から構成されています。
従量課金の料金モデル
GuardDuty はセキュリティ分析のためのログデータ処理に対して、従量課金制の料金モデルを採用しています。料金は主に以下の「基本料金」と「保護プラン」の 2 つの要素から構成されます。
基本料金
GuardDuty を有効化すると、AWS 環境内の基本的なログデータソースである、CloudTrail ログ、VPC フローログ、DNS クエリログの継続的な監視が開始され、それらの分析に対して基本料金が発生します。基本料金は、リージョンによって異なります。
-
CloudTrail 管理イベントログの分析:
CloudTrail 管理イベントログの分析には、1 か月あたり 100 万イベント単位で基本料金が課金されます。課金は日割り計算されます。アジアパシフィック (東京) リージョンでは、1 か月あたり 100 万イベント単位で 4.72 USD が課金されます。 -
VPC フローログと DNS クエリログの分析:
VPC フローログと DNS クエリログの分析には、1 か月あたりのギガバイト (GB) 単位で基本料金が課金されます。一定のデータ量を超えると段階的にボリュームディスカウントが適用されます。
保護プランの料金
GuardDuty には、基本のデータソースに加えて、AWS 環境内の他のデータソースからのデータを使用して脅威を検出する保護プランがあり、追加料金が発生します。保護プランの料金は、リージョンと保護対象のサービスによって異なります。
保護プランによっては、VPC フローログや DNS クエリログと同様にボリュームディスカウントが有効になります。保護プランごとの利用料金について詳しくは、製品ページの「GuardDuty 保護プラン」セクションをご覧ください。
GuardDuty の料金例
以下は、アジアパシフィック (東京) リージョンで GuardDuty を一般的な構成で利用した場合の料金例です。
|
課金対象 (1 か月間あたり) |
料金計算 |
合計金額 |
|
4,000 万件の CloudTrail 管理イベント分析 |
40 × 4.72 USD (100 万件の料金) |
188.8 USD/月 |
|
2,000 GB の VPC フローログと 1,000 GB の DNS クエリログを処理 |
500 GB x 1.18 USD (最初の 500 GB 分の単価)
|
1770 USD/月 |
|
10 億件の CloudTrail S3 データの処理 |
500 × 1.04 USD (最初の 5 億件の単価、100 万件の料金)
|
780 USD/月 |
新規の GuardDuty アカウントには、保護プランごとに有効化後 30 日間の無料トライアル期間が付与されます。
GuardDuty の料金体系について詳しくは、「Amazon GuardDuty の料金」をご覧ください。
GuardDuty のコスト最適化
GuardDuty の無用なコストを避けるため、以下のような点に留意してください。
-
30 日間の無料トライアル期間を利用して、必要な保護プランを選定し、コストを見積もることができます。
-
月の初めにコスト単価が高くなる傾向がありますが、ボリュームディスカウントにより月を通して分析イベント量が増加するにつれ段階的にコスト単価が安くなります。
-
コスト増加の要因を特定するために、Amazon Athena や CloudWatch Insights を活用して、CloudTrail イベント、VPC フローログ、DNS クエリログの利用状況を分析できます。
-
アカウントの構成変更や新規のアプリケーションのデプロイ、サードパーティのセキュリティツールの使用などによって、出力されるログの量が増えコストが増加する場合があります。
その他、GuardDuty のコスト最適化のベストプラクティスについて詳しくは、「Amazon GuardDuty Best Practices (英語)」をご覧ください。
まとめ
最後に、本記事で紹介した機能の全体図を見てみましょう。
この記事では、AWS の脅威検出サービス GuardDuty の機能と特徴について解説しました。GuardDuty は、マネージド型のサービスでありながら、自動化やカスタマイズへの対応力が非常に高いサービスです。AWS SDK や GuardDuty API を活用すればプログラムによる制御が可能で、AWS CDK など IaC 関連サービスにも柔軟に組み込めます。さらに、他の AWS サービスと連携させることで、検知された脅威に対する自動的な対策ワークフローを構築できます。
本記事を読んで Amazon GuardDuty に興味を持たれた方、実際に使ってみたいと思われた方は、ぜひ製品ページの「Amazon GuardDuty」やユーザーガイドの「GuardDuty をはじめてみる」なども合わせてご覧ください。
全体図
筆者プロフィール
米倉 裕基
アマゾン ウェブ サービス ジャパン合同会社
テクニカルライター・イラストレーター
日英テクニカルライター・イラストレーター・ドキュメントエンジニアとして、各種エンジニア向け技術文書の制作を行ってきました。
趣味は娘に隠れてホラーゲームをプレイすることと、暗号通貨自動取引ボットの開発です。
現在、AWS や機械学習、ブロックチェーン関連の資格取得に向け勉強中です。
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages