PLAY DEVELOPERS BLOG

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

HuluやTVerなどの日本最大級の動画配信を支える株式会社PLAYが運営するテックブログです。

Amazon GuardDutyとAmazon Inspector:AWSセキュリティにおける継続的な監視と診断

プラットフォーム技術部のアーロンです。AWSのセキュリティサービスであるGuardDutyとInspectorについて紹介します。

これらのサービスは、AWS環境におけるセキュリティの監視と評価を支援するための強力なツールです。GuardDutyは、マルウェアの検出、不審なアクティビティの監視、および不正アクセスの検出など、リアルタイムのセキュリティ監視を提供します。一方、Inspectorは、システムの脆弱性のスキャンと評価を行い、セキュリティ上の問題を特定し、修正のためのガイダンスを提供します。本記事では、これらのサービスについて詳しく説明し、効果的な利用方法について解説します。

GuardDutyについて

Amazon GuardDutyは、AWS環境での不正アクティビティを自動的に検知し、警告するセキュリティサービスです。主な機能としては、機械学習を用いて、CloudTrailとVPCフローログなどから、リアルタイムで不審なアクセスの自動検知、データ漏洩の監視などがあります。

さらに、手動的にEC2マルウェアスキャン、または信頼できる IP リストと脅威リストを設定し、リストからのアクセスを除外または特定することもできます。

追加オプションで、ニーズに応じて、S3、EKS、Lambda、RDSなどへの脅威検知も選べます。

これにより、セキュリティインシデントを早期検知することができます。

aws.amazon.com

GuardDutyのセットアップ手順

GuardDutyの設定は比較的簡単です。まず、AWSマネジメントコンソールにログインし、GuardDutyのダッシュボードで「今すぐ始める」と「GuardDutyを有効にする」ボタンをクリックすると有効できます。

そして、GuardDutyのデータストアとして使用するS3バケットを指定する必要があります。既存のバケットを使用するか、新しいバケットを作成するかを選択します。

これによってAWSによる監視が開始されます。GuardDutyは自動的にアカウント内のリソースとネットワークトラフィックを監視し、潜在的なセキュリティリスクを検知します。*1

GuardDutyの検出結果

GuardDutyのダッシュボードで、検知された結果の一覧を確認できます。各結果には、重要度やリソースの関連情報、タイムスタンプなどが表示されます。高、中、低の重要度に分かれており、重要度が高いほどリスクが高まります。重要度の高い結果は深刻な脅威が存在することを示します。逆に、重要度の低い結果は軽微なリスクなので緊急修正の必要はありません。

検知結果を詳しく分析するためには、詳細ページに進む必要があります。詳細ページでは、関連するログ情報やアクティビティの詳細な説明、関連リソースなどが表示されます。

GuardDutyはポートスキャン、IAMパスワードポリシーの弱化、悪意のあるIPからのアクセスなど多くの検出結果タイプがあります。詳細はAWSドキュメントを参照してください。

docs.aws.amazon.com

問題に応じて、関連するログとデータを取得して追加の分析を行ってください。分析の結果、検知されたイベントが実際にセキュリティインシデントを示している場合には、適切な対応策を実施します。これには、インシデントの修復や被害の軽減、セキュリティ対策の強化などが含まれます。

例えば、誤ってS3バケットのブロックパブリックアクセス設定を無効化した場合、そのバケットは一般に公開されてしまう可能性があります。

検出結果により、必要に応じて設定を修正できます。S3バケットを一般に公開したくなければ、S3バケットの設定ページにブロックパブリックアクセス設定を編集できます。

ブロックパブリックアクセス設定を有効にすれば解消できます。

Inspectorについて

Amazon Inspectorは脆弱性スキャン、セキュリティガイドラインの遵守チェック、ネットワークセキュリティの評価など、さまざまな機能を提供しています。

脆弱性スキャンでEC2インスタンスやECRコンテナイメージやLambdaに対して自動的に脆弱性スキャンを実行し、セキュリティ上の脆弱性を特定します。

また、AWSのベストプラクティスに基づいてリソースのセキュリティ設定を評価と、ネットワーク接続や通信の構成を分析し、不正なアクセスポイントや脆弱性を検出します。

これらにより、セキュリティリスクを早期に発見し、評価結果や推奨事項を提供し、セキュリティの改善と脆弱性の修正を支援します。

aws.amazon.com

Inspectorのセットアップ手順

まず、AWS Inspectorをセットアップするためには、AWSマネジメントコンソールにログインし、Inspectorのダッシュボードで「使用を開始する」と「Inspectorをアクティブ化」ボタンをクリックと有効できます。

そして、監視したいリソースによっては、それぞれの設定が必要です。

EC2インスタンスはネットワークに対して自動的にスキャンが行われます。ただし、ソフトウェアの脆弱性スキャンを実施するには、AWS Systems Manager (SSM)を有効にする必要があります。 docs.aws.amazon.com

ECRはデフォルトでベーシックスキャン機能が設定されており、オープンソースのClairプロジェクトの共通脆弱性識別子(CVE)データベースを使用して、イメージのプッシュ時にスキャンが行われます。ECRダッシュボードでAmazon Inspector拡張スキャンを有効することにより、OSやプログラミング言語パッケージの脆弱性スキャンが行われ、EventBridgeに通知することもできます。

Lambdaに関しては、デフォルトの標準スキャンでパッケージの脆弱性スキャンを提供しています。Lambdaコードスキャンを有効するには、Amazon Inspectorのダッシュボードの設定ページに移動し、アカウント管理の設定で、[アクティベート] を選択し、[AWS Lambda 標準スキャン + AWS Lambda コードスキャン]を選択してください。

Inspectorの検出結果

Inspectorダッシュボードに、GuardDutyの重要度のように脆弱性スコアで格付けされた検出結果が羅列されます。"Critical"と"High"の結果から注意深く確認し、リソースに存在する具体的なセキュリティ上の問題を特定し、分析・調査を行います。

Inspectorは暗号の弱さ、データの機密性、ネットワーク接続性など多くの検出結果タイプがあります。詳細はAWSドキュメントを参照してください。

docs.aws.amazon.com

検出結果を他のセキュリティ情報やログと関連付けて分析し、修正策や対策方法を検討します。Inspectorから詳細な情報やガイダンスが提供されている場合、それを参考に具体的な対策手順を策定します。また、セキュリティポリシーやベストプラクティスに従って対策を実施することも重要です。

例えば、Lambda関数にユーザーから提供された文字列をそのままログに出力している場合、InspectorはLog Injectionについて通知します。

推奨される修復はログを表示する前にログをサニタイズ(無害化)することです。ただし、この例ではログが必要ないため、ログを削除するだけで対処できます。

GuardDutyとInspectorのユースケース

GuardDutyとInspectorは似ているように見えるかもしれません。例えば両者ともAWSリソースの継続的なセキュリティ監視を提供しています。しかし、2つのサービスにはいくつかの重要な違いがあります。

GuardDutyは、特にセキュリティインシデントのリアルタイムな検知と対応が必要な場合に有効です。不正なアクセスやマルウェアの検知、DDoS攻撃の監視など、セキュリティインシデントの早期検知に焦点を当てています。GuardDutyは、自動的に検出されたセキュリティイベントに基づいてアラートや通知を送信し、迅速な対応を可能にします。

一方、Inspectorは、リソースに対して定期的なスキャンを実施し、セキュリティガイドラインの違反とセキュリティ上の脆弱性を特定します。さらに、ネットワークセキュリティの評価により、不正なアクセスポイントやセキュリティリスクを検出することも可能です。

GuardDutyとInspectorを組み合わせて使用する場合もあります。GuardDutyは、リアルタイムな動作監視と検知に優れており、Inspectorは定期的な脆弱性スキャンとセキュリティ評価に特化しています。両サービスを組み合わせることで、セキュリティインシデントの早期検知とリソースのセキュリティ評価を網羅的に実施することができます。

費用

Amazon GuardDutyとInspectorは有料サービスですので、料金プランについてご確認ください。

無料トライアル期間中には、利用料金を把握するために確認をおすすめします。

Amazon GuardDuty - 料金

Amazon Inspector - 料金

他の留意点

  • Amazon GuardDutyとInspectorはリージョナルサービスですので、監視したいリージョン毎にセットアップする必要があります。
  • Amazon GuardDutyとInspectorは脅威検出と監視サービスです。自動的にブロックや修正などの動作は行われないため、脅威に対策を講じる必要があります。
  • Amazon InspectorがサポートをしていないOSやプログラミング言語もあるため、サポートされるOSと言語をご確認ください。例えばEC2でのパッケージ脆弱性スキャンは、執筆時点でJava、JavaScript、Pythonのみをサポートしています。サポートされているEC2インスタンスに対してのみ、SSMを有効にすることがおすすめです。

末筆

GuardDutyとInspectorは、AWSセキュリティの監視と診断において強力なツールです。両サービスを適切に設定し、適用するリージョンを選択しましょう。定期的な監視と評価を行うためのスケジュールを作成し、結果の分析と対応策の実施を継続的に行うことも重要です。

また、セキュリティポリシーやベストプラクティスに従ってリソースのセキュリティを改善するための追加の手順も検討しましょう。例えば、パッチ適用、アクセス制御の見直し、ログの収集と監視などの対策を実施することが有益です。

セキュリティを強化するための次のステップを着実に進めることで、AWS環境のセキュリティを向上させましょう!

参考資料

Amazon GuardDuty - ドキュメント

Amazon Inspector - ドキュメント

ぎりぎり20分で話しきる Amazon GuardDuty による脅威検知

Amazon Inspector - AWS Black Belt Online Seminar

*1:このセクションにある例は、GuardDutyの検出結果サンプル生成機能によって生成されています。