【新機能】Dome9で不審なアクティビティを検出/可視化する

中山(順)です

本日は、Dome9で新たに提供されるLog.icという機能をご紹介します。

Log.icとは

Log.icは、VPC FlowLogsおよびCloudTrailから不審なアクティビティを検出/可視化する機能です。

Transforming Logs into Security Logic

Log.ic (CloudGuard Dome9 User Guide)

Log.icは、本記事の執筆時点(2019年7月16日)ではプレビューリリースです。ここで紹介する機能は一般提供時に変更または削除されている可能性があります。

やってみた

それでは、実際にさわりながら機能を紹介していきます。

  • 事前準備
  • Threat Hunting
  • Account Activity(CloudTrailの可視化)
  • Network Activity(VPC FlowLogsの可視化)
  • RuleSet(不審なアクティビティの定義)
  • Policy, Notification(不審なアクティビティの監視と通知)

事前準備

まず、AWS上のアクティビティをDome9が取得できる必要があります。 AWSアカウント上のアクティビティは以下の2つのリソースから取得します。

  • CloudTrail
  • VPC FlowLogs

Dome9でLog.icを利用するにあたり、これらのリソースを事前に作成しておく必要があります。 また、いずれもCloudWatch Logsにログを出力しておく必要があります。

Dome9がこれらのログにアクセスできるようにするためには、IAM Roleを利用します。 詳細な手順に関しては、以下のドキュメントを参照してください。

Onboard AWS accounts to CloudGuard Log.ic

Threat Hunting

Dome9がログを取得できるようになると、そのログに対してクエリを実行することができます。 クエリは、Dome9独自のクエリ言語(GSL = Governance Specification Language)を利用します。

Dome9のコンソール上には、いくつかのクエリが定義済です。

例えば、VPC FlowLogsからMalicious IPが宛先の通信を抽出するクエリは以下の通りです。

vpcfl where dst.ismalicious=true

もちろん、独自のクエリを実行することもできます。

クエリを実行すると、Account ActivityおよびNetwork Activityの機能でクエリした結果を可視化することができます。

Account Activity(CloudTrailの可視化)

Threat Huntingで定義済のクエリを実行してみたいと思います。 今回は、S3バケットの作成が行われているかを調べます。

画面の通り、定義済のクエリを選択すればOKです。

すると、クエリ(GSL)を確認することができます。 クエリを実行する対象のAWSアカウントを選択し、「Run」をクリックします。

cloudtrail where event.name='CreateBucket'

すると、画像のように抽出されたログが可視化されます。

ノードをクリックすると、その詳細を確認できます。 "Identity"側のノードをクリックすると、S3バケットを作成したユーザーの属性等を確認できます。

"OPEN LOGS"をクリックすると、詳細なログを確認できます。

また、"ISOLATE NODE"をクリックすると、1つのノードとして表示されていたS3バケット(Target Asset)が1バケット=1ノードで表示されます。

Network Activity(VPC FlowLogsの可視化)

同様にNetwork Activityを確認してみます。 今回は、Malicious IPが宛先になっている通信を特定します。 なお、Malicious IPかどうかの判断にはCheckPoint社の脅威データベースを利用しています。

クエリを実行する対象のAWSアカウントを選択し、「Run」をクリックします。

vpcfl where dst.ismalicious=true

Account Activity同様にログが可視化されます。 この画面では、あるEC2インスタンスからMalicious IP宛ての通信が発生していることを示しています。

ノードを選択すると、その属性を確認することができます。 すると、Malicious IPが"Scanner"として分類されていることやIPアドレスのオーナーである会社名(通信会社)などを確認できました。

"OPEN LOGS"をクリックすると、詳細なログを確認できます。

RuleSet(不審なアクティビティの定義)

Dome9 Log.icでは、Threat Huntingから能動的に脅威を探索するだけでなく、事前に定義したルールにマッチするアクティビティを検知および通知することができます。 不審なアクティビティを定義することは一定のノウハウが無いと難しいですが、Dome9 Log.icでは多数のRuleSetが事前定義されています。

今回は、一例としてNetwork Securityを見てみます。

このルールセットでは、文字通りNetwork Securityに関連する脅威を検出します。 各ルールを見てみると、VPC FlowLogsとCloudTrailの両方に関する脅威を検知するルールが定義されています。

例えば、"Network ACL entry replaced"というルールでは、既存のNACLに対するルールの変更を検出します。

cloudtrail where event.name = 'ReplaceNetworkAclEntry'

"Outbound accepted traffic to blacklisted destinations"では、特定の国に分類されるIPアドレスに対するリクエストを検出します。

vpcfl where dst.geolocation.countrycode in ('CN','RU') and action='ACCEPT' and direction='Request'

Policy, Notification(不審なアクティビティの監視と通知)

また、Dome9 Log.icでは、RuleSetに基づいて不審なアクティビティを監視し、RuleSetにマッチしたアクティビティが発生した際に通知をおこなうことができます。

通知先はNotificationsで定義することができます。

監視設定はPoliciesでおこなうことができます。 ここでは、RuleSetとNotificationの関連付けをおこないます。 これによって、RuleSetにマッチしたアクティビティの発生を通知できます。

通知はメールやコンソールをはじめ、Amazon SNSを介して様々なサービスと連携したり、Security HubやPager Dutyなどのサービスとシームレスに連携することも可能です。 以下の画面は、コンソールにアクティビティを通知した結果です。

まとめ

これまでのDome9では、リソースの設定に対するリスク評価を行うことができました。 Log.icを利用することにより、AWS環境上のアクティビティに対して「リスク評価」「分析しやすくするための可視化」「アクティビティの監視と通知」などを行えるようになりました。 また、CheckPointの脅威データベース(Malicious IPなど)や事前定義されたRuleSetを利用することもできるため、不審なアクティビティを定義することに時間をかけなくても利用を開始することができます。

Log.icの主な特徴は、設定の容易さと可視化の機能ではないかと思います。

AWSにおいてもCloudWatch Logs InsightやAthenaを利用すれば、CloudWatch LogsやS3のログに対してクエリを実行することができます。 また、QuickSightやElasticsearch Serviceを利用すれば可視化も実現できるでしょう。 しかし、Dome9のようにCloudWatch Logsへのアクセス権限を付与するだけで可視化が実現できるわけではなく、一定のノウハウが必要です。 ダッシュボードの作成やログの絞り込みをどのように行うべきか、といったことを検討する必要があるでしょう。 また、Dome9 Log.icであれば特定のIDやリソースに関連するアクティビティだけを抽出する、といったことを直感的におこなうことができます。

AWS環境上に構築したシステムのセキュリティを重視する場合に利用を検討してみてはいかがでしょうか?

おしらせ

クラスメソッドは、チェックポイントソフトウェアテクノロジーズさんの年次イベントであるCPX 2019 Tokyoにスペシャルサポーターとして協賛させて頂くことになりました。 Dome9をはじめとしたサービスや近年のセキュリティに関するトレンドが紹介されますので、是非ともお越しください。

「CPX 2019 Tokyo」にスペシャルサポーターとして協賛します