ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

Sumo LogicでGuardDutyの脅威検出結果を可視化する

こんにちは。クラウドインテグレーション事業部の栗原です。

今回はAmazon GuardDutyで検知した脅威情報をSumo Logicを使って可視化してみたいと思います。

Amazon GuardDutyとは

GuardDutyは、AWSアカウントにおける悪意のある操作や不正な動作といった脅威を検出するマネージドサービスです。 aws.amazon.com

検出した脅威(イベント)は以下のような形で確認することができます。 f:id:kurihara_fv:20190611105735p:plain

これらをSumo Logicに取り込んで可視化します。

GuardDutyのログ収集

それではSumo Logicの設定を行っていきます。

ホスト型コレクタの設定

まずはログ転送用のHTTPエンドポイントを作成します。

Sumo Logicにログインし、[Manage Data] - [Collection] - [Add Source] を選択します。 f:id:kurihara_fv:20190610174601p:plain

[Hosted Collector]を選択します。 f:id:kurihara_fv:20190610174742p:plain

Nameに任意の値を入力し、[Save]を選択します。 f:id:kurihara_fv:20190610174955p:plain

[OK]を選択します。

f:id:kurihara_fv:20190610175226p:plain

HTTPソースの設定

ソース設定画面に遷移するので、[HTTP Logs & Metrics]を選択します。 f:id:kurihara_fv:20190611122803p:plain

Nameに「Amazon GuardDuty」、Source Categoryに「aws/guardduty」、 Formatに「yyyy-MM-dd'T'HH:mm:ss.SSS'Z'」、Timestamp locatorに「."updatedAt":"(.)".*」をそれぞれ入力し、[Save]を選択します。 f:id:kurihara_fv:20190611132017p:plain

ここまで完了するとURLが表示されます。後で必要になりますので記録しておきましょう。[OK]を選択すると画面が閉じます。 f:id:kurihara_fv:20190610181035p:plain

ソースに追加されていることが確認できました。 f:id:kurihara_fv:20190610181613p:plain

Lambda関数のデプロイ

次にGuardDutyで検出したイベントをSumo Logicに送信するためのLambda関数を作成します。 AWS Serverless Application Repositoryに公開されているGuardDutyイベント送信用のアプリケーションをAWSアカウントにデプロイするという手順となります。 aws.amazon.com

それではデプロイを行っていきます。

https://serverlessrepo.aws.amazon.com/applicationsにアクセスし、「sumologic-guardduty-events-processor」を検索、選択します。 f:id:kurihara_fv:20190610182150p:plain

遷移後の画面で[Deploy]を選択するとAWSマネジメントコンソールに遷移します。 f:id:kurihara_fv:20190610182354p:plain

[アプリケーションの設定] - [SumoEndpointUrl] に、先ほど取得したHTTPエンドポイントのURLを入力します。

f:id:kurihara_fv:20190610183311p:plain

ページ下部の[デプロイ]を選択することで、CloudFormationによるデプロイが開始します。 f:id:kurihara_fv:20190610185546p:plain

デプロイが完了し、Lambda関数が作成されました。 f:id:kurihara_fv:20190610185609p:plain

Lambdaの関数一覧でも作成されていることが確認できます。 f:id:kurihara_fv:20190611141343p:plain

最後に、Lambdaの環境変数を編集します。 環境変数に、キー「SOURCE_CATEGORY_OVERRIDE」値「aws/guardduty」を入力し、[保存]を選択します。 f:id:kurihara_fv:20190610190912p:plain

これでログ収集の設定はすべて完了です。

GuardDutyのサンプルイベント生成

ここまでの設定が完了するとSumo LogicにGuardDutyのイベントが送られるようになるのですが、今回はサンプルデータを利用して可視化を行います。 サンプルデータはマネジメントコンソールで生成することができます。

GuardDutyコンソールの [設定] - [結果のサンプル] で[結果サンプルの生成]を選択します。 f:id:kurihara_fv:20190611193155p:plain

生成されていることが確認できます。 f:id:kurihara_fv:20190611194333p:plain

GuardDutyアプリケーションのインストール

他の記事でも紹介していますが、Sumo Logicにはダッシュボードのテンプレート(App Catalog)が用意されています。 GuardDuty用のダッシュボードもありますのでインストールします。

左ペインのApp Catalogを選択し、GuardDutyを検索、選択します。 f:id:kurihara_fv:20190611190723p:plain

[Add to Library]を選択します。 f:id:kurihara_fv:20190611190902p:plain

App Nameに「Amazon GuardDuty」、Source Categoryに「aws/guardduty」と入力し、[Add to Library]を選択します。 f:id:kurihara_fv:20190611191218p:plain

Personalフォルダにダッシュボードが追加されました。

f:id:kurihara_fv:20190611191532p:plain

GuardDutyダッシュボード

App Catalogで以下のダッシュボードが作成されました。それぞれ見ていきたいと思います。

  • Amazon GuardDuty - Overview
  • Amazon GuardDuty - Details
  • Amazon GuardDuty - CloudTrail Details
  • Amazon GuardDuty - VPCs, Subnets, Security Group Details

Amazon GuardDuty - Overview

f:id:kurihara_fv:20190614113856p:plain 脅威の概要を表示するダッシュボードです。 脅威の重大度や目的(BackdoorやBehaviorなど)、発生地域などが各種グラフで表示されており、概要の把握に役立ちます。

Amazon GuardDuty - Details

f:id:kurihara_fv:20190614115501p:plain 脅威の詳細を表示するダッシュボードです。 脅威を目的、重大度、リソースタイプ、ポート、セキュリティグループ別に表示したり、今回は表示されていませんが脅威の外れ値の表示したりと詳細な情報が確認できます。

Amazon GuardDuty - CloudTrail Details

f:id:kurihara_fv:20190614120128p:plain CloudTrailイベントに関連する脅威を表示するダッシュボードです。 脅威の目的や発生数などの詳細を確認できます。

Amazon GuardDuty - VPCs, Subnets, Security Group Details

f:id:kurihara_fv:20190614122133p:plain 脅威をVPC、セキュリティグループ、サブネットID別に表示するダッシュボードです。

さいごに

今回はGuardDutyの脅威情報をSumo Logicで可視化してみました。

事前に用意されているテンプレートを追加するだけで今回ご紹介したような便利なダッシュボードがすぐに利用できます。 これだけでも状況や傾向の把握はある程度できますし、もちろん必要に応じで新たにダッシュボードを作成することも可能です。

GuardDutyを有効化したものの活用できていないという方はSumo Logicを利用して可視化や分析を始めてみてはいかがでしょうか。