Amazon GuardDutyでセキュリティ強化

はじめに

AWSのサービスEC2では手軽にサーバをクラウド上に作成することができます。
ただ近年ではセキュリティーに関して、クラウドで運用するインスタンスは個人で守らなければなりません。
ちょっと軽い気持ちで初めてみて、セキュリティ設定などを疎かにしてしまうと、大事故に繋がりかねません。
そこで本記事では、AWSのセキュリティソリューションである「Amazon GuardDuty」について紹介させて頂きたいと思います。
AWSのセキュリティーが心配という方やこれからAWSを始める方などは是非本記事を一読して頂きたいと思います。

Amazon GuardDutyとは?

Amazon GuardDutyとはAWSのアカウントやワークロードを継続的に監視し、分析して、脅威を検知してくれるソリューションです。課金制で、AWSを利用していたら誰でも利用でき、ソフトウェアのインストールなども不要です。AWSでは数クリックで手軽に誰でもサーバを構築することができます。その利便性からセキュリティー設定を怠ってしますと、不正にログインされて、高額な使用量を請求されるということになりかねません。実際に起こったケースは、AWS上に検証環境を作って、開発者用のアカウントをチームで使い回していた結果、アカウント情報が洩れて、不正にログインされたケースです。検証環境はセキュリティー上軽視されやすいので、標的にされやすいです。またセキュリティー設定まで手が回らない使い始めの人も標的にされやすいです。こういう場合にAmazon GuardDutyが効力を発揮してきます。

Amazon GuardDutyでできること?

総合的な脅威の特定

まず総合的に脅威の特定をしてくれます。AWS CloudTrail(アカウントのアクティビティログ)、Amazon VPCフローログ(IPトラフィックのログ)、DNSログなどの各種AWSのログを自動で収集したものやAWS、CroudStrikeなどと統合された既存の脅威情報を活用し、機械学習させ、脅威を検知します。こうすることで通常の利用とは異なるリクエストなどを検知したり、不正なIPアドレスを検知させることが可能です。また不正に行われた仮想通過のマイニング(仮想通過のデータ整合性を保つための計算作業、正しい計算をした者に報酬がもらえる)などを検知することが可能です。実際に検知された場合の異常なアクティビティタイプと内容を何点か挙げます。

タイプ:Backdoor:EC2/DenialOfService.Tcp
内容:EC2 インスタンスが、TCP プロトコルを使用したサービス拒否 (DoS) 攻撃の実行に利用されている可能性がある。
タイプ:Stealth:IAMUser/PasswordPolicyChange
内容:アカウントの パスワードポリシーが弱化 された。
タイプ:Trojan:EC2/DropPoint!DNS
内容:EC2 インスタンスは、マルウェア によって収集された認証情報やその他の盗難されたデータによって認識されているリモートホストのドメイン名をクエリしている。

上述のようにDos攻撃やパスワードポリシーの変更、不正な承認情報などを検出してくれるようです。

実際に異常を検出した事例

実際には悪意のあるサイバー攻撃ではなくても、何かしらのアクションを起こした結果、GuardDutyが異常を検出することがあります。ここではそういった事例を紹介したいと思います。

UnauthorizedAccess:IAMUser/UnusualASNCaller検出

この異常はアクティビティが通常と異なるIPアドレスから呼び出された場合に発生します。事例では、普段オフィスで利用しているIAMユーザーが外出先からモバイルルーターを利用してアクセスした際に検出されたようです。近年ではコロナの影響もあり在宅勤務が広がっています。自宅のPCなどから(普段使っている端末以外)AWSにログインした際に検出されることがありますので、注意が必要です。実際に悪意のある攻撃の可能性もありますので、このエラーが発生した場合は、リソースに対して勝手に変更が加えられていないかなどを確認した方が良いでしょう。

Backdoor:EC2/Spambot検出

この異常は、EC2インスタンスがポート25でリモートホストと通信した場合に起こります。
EC2ではポート25は、スパムメール対策のためデフォルトで送信制限がかかっています。
事例としては、EC2にメールソフトをインストールして、テストメールを送信した際に検出されたようです。インターネットプロバイダ以外のメールソフトをEC2にインストールして利用する場合、送信用ポート25の制限は標準設定となっておりますので注意が必要です。

実際に異常を検出した事例まとめ

上述のように、悪意のある攻撃を検出するというよりは、その可能性を検出してくれることがわかります。異常を検出した際には、VPCフローログでホストのIPアドレスやポートを確認したり、AWS Configを有効化し、リソースの変更履歴を確認したりして異常の原因を特定する必要があります。

他サービスとの連携

Amazon GuardDutyと他サービスを連携させて、脅威発生時の対応を自動化させることができます。Amazon GuardDutyで脅威を検出したら、その脅威レベルに応じてAWS Lambdaを通じてチームのSlackに送信したり、組織内で複数のAWSアカウントやリージョンでシステムを展開している場合には一つのアカウントで検出されたGuardDutyの調査結果を他のアカウントに転送することで、一元管理することが可能です。

Guard Dutyの結果をメールで送る手順

ここでは、実際にGuard Dutyと他サービスの連携として、Guard Dutyの結果をメールで送る手順を紹介したいと思います。Guard Dutyが有効になっていることを前提にします。

Amazon SNSを準備する
  • Amazon SNSコンソールを開きます。
  • 「トピックの作成」セクションで、「トピック名」に名前を入力する。(これが送信者名になります。)
  • 「トピックの作成」を選択し、トピックを作成します。
サブスクリプションを作成する
  • Amazon SNSコンソールから「サブスクリプション」を押下します。
  • トピックARNに先程作成したトピック名を入れます。(自動で入力されています。)
  • プロトコルに「Eメール」を設定します。
  • エンドポイントにメールを送信する対象のEメールアドレスを入力します。
  • 「サブスクリプションの作成」を押下します。
  • 対象のメールアドレスに承認メールが届きますので、承認します。
  • 以上で準備完了になります。
CloudWatchイベントルールの作成
  • CloudWatchコンソールを開きます。
  • 左のナビゲーションペインから「ルール」を押下し、「ルールの作成」を押下します。
  • 「サービス名」に「GuardDuty」を選択します。(プルダウンから探せます。)
  • 「イベントタイプ」に「GuardDuty Finding」を選択します。
  • イベントパターンですが、「サービス名」と「イベントタイプ」を定義した際にデフォルトで、
    { “source”: [ “aws.guardduty” ], “detail-type”: [ “GuardDuty Finding” ] }
    となっております。
    この場合、GuardDutyのアクティビティすべてを検索します。もし重要度が高いもののみ取得したい場合は、
    { “source”: [ “aws.guardduty” ], “detail-type”: [ “GuardDuty Finding” ], “detail” : { “severity”: [ 7.0,7.1,7.2,7.3,7.4,7.5,7.6,7.7,7.8,7.9,8.0,8.1,8.2,8.3,8.4,8.5,8.6,8.7,8.8,8.9 ] } }
    のように設定します。上記は重要度が7.0以上~9.0未満のものを検索します。
  • 「ターゲット」で、「ターゲットの追加」を押下します。
  • ターゲットの種類は、「SNSトピック」にします。
  • 「トピック」に先程作成したトピックを選択します。
  • 右下の「設定の詳細」を押下します。
  • 「名前」と「説明」を入力し、「ルールの作成」を押下します。
GuardDutyの通知テスト
  • GuardDutyコンソールを開き、「設定」を押下します。
  • 「結果のサンプル」セクションで、「結果のサンプルの生成」を押下します。
  • GuardDuty上に異常検出通知が作成されます。(56個)
  • 5分程経って、対象のEメールアドレスにメールが届けば、完了です。

Amazon GuardDuty料金体系

Amazon GuardDutyの料金体系は、
分析されたAWS CloudTrailイベントの数量と分析されたAmazon VPC Flow LogおよびDNS Logデータの量にて応じて課金されます
AWS CloudTrailがイベント100万件あたり、4.00USD
VPCフローログとDNSログは

最初の500GB1GBあたり、1,00USD
次の2000GB1GBあたり、0,50USD
次の7500GB1GBあたり、0,15USD
10000GBを超えた場合0.15USD

となります。
利用量は会社の規模や自社のサービス利用者などによっても変わってきますので、
30日間の無料サービスを利用して確認するのが良いでしょう。

さいごに

いかがでしたでしょうか?
AWSのサービスを利用する上でGuardDutyはとても信頼できるセキュリティーソリューションです。
また他サービスと連携することで、任意で脅威発生時のアクションを自動化することが可能ですので、
運用コストを削減することが期待できます。AWS上のリソースを守るために導入してみてはいかがでしょうか?
まずは30日間の無料トライアルもありますので、使用感を確認したり、どれくらいの費用がかかるかを確認してみるのが良いかと思います。以上です。ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

Amazon Linux 2 ってどんなOS?

次の記事

Amazon Cloud9の基本