Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Elastic Cloudを活⽤︕︕
ゼロトラストセキュリティの「はじめの⼀歩」
クリエーションライン株式会社
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
⾃⼰紹介
2
【所属/⽒名】
クリエーションライン株式会社
データ分析テクニカルエバンジェリスト
⽇⽐野 恒 (ひびの ひさし)
【略歴】
10年間、ITコンサルティング会社に在籍。
現在はElasticをはじめ、データ分析基盤のアーキテクチャ設計
クラウドにおけるセキュリティ実装⽅式検討などに従事。
「Elastic Stack実践ガイド[Logstash/Beats編」の著者。
【執筆】
Elastic Stack実践ガイド [Logstash/Beats編]
CL LAB (Elastic技術ブログ)
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
会社紹介
3
会社概要
● 設⽴︓2006年1⽉
● 資本⾦︓215,572,000円
● 従業員数︓160名 (協⼒会社含む)
● 2020年度売上実績︓23.7億円
事業内容
● アジャイル開発⽀援
● DevOps⽀援
● サブスクリプション
● トレーニング
特徴
● 全社の85%以上がエンジニア
● アジャイル開発、DevOpsを正しく理解し導⼊推進できる技術⼒と体制
● オープンソース技術に注⼒、海外ソフトウェアベンダー、標準化団体とのパートナーシップ
● ⽇本初の認定 Kubernetesソリューションプロバイダー&トレーナー
● 国内130社超えるお客様への導⼊実績
クリエーションラインのミッション
「IT技術によるイノベーションにより顧客と共に社会の進化を実現する」
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
本⽇のテーマ
4
Google Driveを題材とした
Elastic Stackによる監査の仕組みをご紹介します
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
⽬次
5
1. 導⼊の背景
2. Google Driveの監査とは
3. アーキテクチャについて
4. 導⼊効果
5. ⾃⼰監査の仕組み
6. 苦労したポイント
7. まとめ
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
導⼊の背景
01
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
ファイルサーバの⽼朽化対応
7
オフィス
Internet
共有ドライブ
全社ファイルサーバ
(OmniOS)
移⾏⽤マシン
(win10)
共有ドライブ
G:
Z:
robocopy
ü きっかけは、2019年より計画していたファイルサーバの⽼朽化対応に伴う移⾏プロジェクトでした。
(計画当初は、事業継続性や運⽤管理⾯での検討が中⼼でした)
※ネットワークドライブとして割り当てたドライブ同⼠をrobocopyコマンドでデータ移⾏を実施。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
コロナ禍によるリモートワークへの移⾏
8
ü 2020年3⽉にフルリモートでの業務が開始、バーチャルオフィスなどを活⽤した新しい働き⽅に移⾏しました。
【参考】 oViceをバーチャルオフィスにしてみた
https://www.creationline.com/lab/38590
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
リモートワーク推進におけるゼロトラスト化
9
オフィス(境界)
社内サーバ群
IaaS SaaS
社内メンバー
❷オフィス外への業務アプリケーションの移⾏
⾃宅
❶コロナによるオフィス外でのリモートワーク化
!
"
#
$
%
&
'
(
)
*
+
,
-
.
監
視
1
必
要
ü ⼈とシステムがファイアウォール防御外へ移動したことで新たなセキュリティの仕組みが必要となりました。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
まずは、Google Driveの監査ログから︕
10
ü ということでElastic Stackを使って、クラウドサービスのログを監査するシステムを作ることにしました。
ログ監査システム
Google Workspace
Google Drive
共有ドライブ
不正ユーザ
不正アクセス
Filebeat Logstash Elasticsearch
Kibana
オブジェクト
ストレージ
保存期間:3ヶ⽉
保存期間:年単位
監査担当 情シス担当
ドライブ
監査ログ
定期監査 検知(Slack)
ニアリアルタイム
監査対象は、外部脅威
Reports API
【要件】
・「いつ」
・「どのIPアドレスから」
・「どのユーザで」
・「どのファイルが」
・「どのように利⽤されたか」
をログから追えること
【参考】 Elastic StackでGoogleドライブ監査をやってみた
https://www.creationline.com/lab/elastic/37417
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Google Driveの監査とは
02
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
ドライブ監査⽅法とは
12
ü Google Drive内のファイルに対するユーザー操作をログから確認することができるようになっています。
(47種類のイベント名で細かく操作が記録されています)
【参考】 ドライブの監査ログ
https://support.google.com/a/answer/4579696
add_to_folder
approval_canceled
approval_comment_added
approval_completed
approval_decisions_reset
approval_due_time_change
approval_requested
approval_reviewer_change
approval_reviewer_responded
copy
create
delete
download
email_as_attachment
edit
label_added
label_added_by_item_create
label_field_changed
label_removed
add_lock
move
preview
print
remove_from_folder
rename
untrash
sheets_import_range
trash
remove_lock
upload
view apply_security_update
shared_drive_apply_security_update
shared_drive_remove_security_update
publish_change
change_acl_editors
change_document_access_scope
change_document_access_scope_hierarchy_reconciled
change_document_visibility
change_document_visibility_hierarchy_reconciled
remove_security_update
shared_drive_membership_change
shared_drive_settings_change
sheets_import_range_access_change
change_user_access
change_user_access_hierarchy_reconciled
storage_usage_update
【access】 【acl_change】 【pooled_quota_metadata】
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
⼀般的な⽅法は...
13
ü 管理コンソールの[レポート] > [監査] > [ドライブ]で過去180⽇まで遡って検索することができます。
表⽰可能項⽬
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
ドライブ監査ログの取得⽅法
14
ü ドライブ監査ログを取得する⽅法には、3つの⽅法があります。
(今回はReports APIを利⽤した⽅式2を採⽤しています)
No 取得⽅法 メリット デメリット
1 管理コンソールでの
ファイル出⼒
・Businessエディション以上で利⽤することができる。
・⾮エンジニアのメンバーでも簡単にログ取得ができる。
・GUI操作のため、⼈⼿による作業が発⽣してしまう。
(⾃動化による継続的なログ取得が難しい)
2 Reports API ・Businessエディション以上で利⽤することができる。
・プログラムを組むことで継続的にログを取得することができる。
・ログの取得にエンジニアリングスキルが求められる。
(APIの実⾏、JSONのパース処理など)
3 BigQueryへの出⼒ ・⾮エンジニアのメンバーでも簡単にログ取得ができる。
・SQLスキルがあれば、ログの検索や分析を⾏うことができる。
・継続的にBigQueryにログ出⼒することができる。
・Enterpriseエディション以上が必要となる。
(監査ログ⽬的だけで考えるとにコスト増となってしまう)
・BigQueryの運⽤管理を⾏う必要がある。
(Google Workspace組織毎にBigQueryが必要)
【参考】 ログのレポートとBigQueryについて
https://support.google.com/a/answer/9079364?hl=ja
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Reports APIとは
15
ü Google Workspaceのユーザ操作に関する情報を取得できるREST APIになります。
【参考】 Reports API Overview
https://developers.google.com/admin-sdk/reports/v1/get-start/overview
Reports API Activity Reports
Usage Reports
❶ Admin Activity Reports
❷ Google Drive Activity Reports
❸ Login Activity Reports
❹ Mobile Activity Reports
❺ OAuth Token Activity Reports
❶ Customers Usage Reports
❷ Users Usage Reports
❸ Entities Usage Reports
Admin SDK
!
!
!
今
回
利
⽤
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Reports APIを使った監査ログ
16
ü 以下、1回のAPI実⾏で取得されるドライブ監査ログのJSONフォーマットとフィールドの構造になります。
(そこそこ複雑なJSON構造のログフォーマットになっています)
"kind": "admin#reports#activities",
"etag": "¥”xxxxxxxxxxxxxxxxxxxxxxxxxxx¥"",
"items": [ 配列オブジェクト ]
"kind": "admin#reports#activity",
"id": { オブジェクト },
"etag": "¥”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx¥"",
"actor": { オブジェクト },
“ipAddress”: "52.40.11.195", ❶
"events": [ 配列オブジェクト ]
“time”: "2021-10-11T09:55:03.790Z", ❸
"uniqueQualifier": "5042038333137309352",
"applicationName": "drive",
"customerId": "C12f1tdo6"
{
"name": "billable",
"boolValue": true
},
{
"name": "doc_title",
“value”: "サンプル.pdf" ❺
}
"type": "access",
"name": "view", ❷
"parameters": [ 配列オブジェクト ]
"email": "test-user@example.co.jp", ❹
"profileId": "115361142755381498172"
Parametersは、nameとvalue (or boolValue, intValue,
multiValue)がセットになったオブジェクトの繰り返しになっています
※監査でよく利⽤する項⽬
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
【参考】 サンプルログ
17
paramaters配下の
フィールド抽出処理の難易度が⾼い
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
ü Elasticには、ゼロトラストセキュリティを実現するためのFilebeat Modulesが⽤意されています。
(Google Workspace Moduleは、Reports APIの定期実⾏、ログのパース処理を簡単にしてくれます)
【参考】 Google Workspace Module
https://www.elastic.co/guide/en/beats/filebeat/7.12/filebeat-module-google_workspace.html
Google Cloud Module
AWS Module
Azure Module
Google Workspace Module
Office365 Module
Zoom Module
Cylance Module
Crowdstrike Module
Microsoft Module
Elasticを採⽤したポイントの1つは...
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
アーキテクチャについて
03
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
コードネーム: HARUMAKIとは
20
ü 今回構築したログ監査システムのプロジェクト名であり、システム名になります。
⾊々な種類の具材(ログ)を収集し
分析できるプラットフォームとして活躍してほしい︕
という期待を込めてカラッと揚げちゃいました
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
サーバレスなアーキテクチャ
21
ü ElasticsearchとKibanaは、マネージドサービスであるElastic Cloudを採⽤しました。
Container Managed Container Managed
Filebeat Kafka Logstash Elasticsearch Kibana
【Ingest】 【Messaging】 【Transform】 【Data Store】 【Visualize】
Elastic Cloud
IaaS
• スペックやデータ量、利⽤時間に応じた課⾦であるパブリッククラウドを採⽤
• 運⽤負荷軽減のため、マネージドサービスもしくはコンテナサービスを採⽤
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
セキュアで安全な接続⽅式
22
ü 当時、唯⼀AWSだけがプライベート接続が可能であったため、AWS上にElastic Cloudを構築しました。
(AWS東京リージョンに3AZ構成としています)
【参考】 Elastic Cloudへプライベート接続を試してみた
https://www.creationline.com/lab/35952
Elastic Cloud
Region (@ap-northeast-1)
AWS Cloud
AWS Cloud
AWS PrivateLink
Private
link
endpoint
Logstash
IP
filtering
利⽤者
Region (@ap-northeast-1)
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
スケールアウト可能なアーキテクチャ
23
ü Kafkaを挟むことで、Consumerの性能追加や新しいログの要件追加にも容易に対応できるようになっています。
Kafka
Filebeat
(Producer)
Logstash
(Consumer)
Topic A
Logstash
(Consumer)
!
!
!
Drive
Activity
Log
Consumer Group
Drive
Activity
Log
Google Drive
(Reports API)
"
#
$
%
新しいクラウド
サービスのログ
Producer Topic B
追加拡張
Log
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
悩み続けたETL処理の配置
24
ü Filebeat Moduleを採⽤したことで加⼯処理をLogstashに集約できなくなってしまいましたが(笑)
Google Drive
(Reports API)
Google Workspace
Module
output kafka
Filebeat
Kafka
google_workspace
(Topic)
Logstash
input kafka
input kafka
output elasticsearch
output s3
Elasticsearch
ingest pipeline
(google workspace
drive)
S3
Archive
(Bucket)
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
全体のシステムアーキテクチャ図
25
ü クラウド、サーバレス、セキュア、CICD、データドリブンをコンセプトとしたアーキテクチャとなっています。
notification
※ Elastic Stack: 7.12.1
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
導⼊効果
04
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
やはり、Kibanaによる強⼒な可視化
27
ü ⾼い技術⼒が無くともKibanaがデータ⺠主化を実現し、瞬時に現状把握することができるようになりました。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
では、具体的な事例について
28
ü HARUMAKI導⼊後、過去90⽇のファイルダウンロードの約70%がUSからのアクセスでした。
(具体的には、Amazon.com,Incからのアクセスでした)
【経緯】
当社メンバーによるGoogleDriveの利⽤は基本的には
⽇本国内になります。⽇本以外からのファイルダウンロードは
不正アクセスの可能性が⾼くことになります。
HARUMAKI導⼊後、この観点での調査を開始しました。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
時系列で⾒る海外からのダウンロード数
29
ü 継続的にUSからのダウンロードが発⽣していました。(過去90⽇)
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
originating_app_idとは (1/2)
30
ü ドライブ監査ログには、「何のアプリからアクセスされたのか」を⽰すアプリIDが記録されます。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
originating_app_idとは (1/2)
31
ü GoogleのAPI実⾏サイトでappIdを⼊⼒して[EXECUTE]すると、アプリの詳細を確認できます。
{
"kind": "drive#app",
"id": "19570130570",
"name": "Slack",
"shortDescription": "Slack is where work happens",
"longDescription": "",
"supportsCreate": false,
"supportsImport": false,
"supportsMultiOpen": false,
"supportsOfflineCreate": false,
"installed": false,
"authorized": false,
"hasDriveWideScope": false,
"useByDefault": false,
"productUrl": "https://gsuite.google.com/marketplace/app/detail/19570130570",
"productId": "ljbkkbbbcalchmohbdlkjabljkgpmjkg",
"primaryMimeTypes": [
"application/vnd.google-apps.drive-sdk.19570130570"
]
}
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
原因はSlackアプリ
32
ü SlackにGoogle Driveに保存されたドキュメントのリンクを張って[接続]すると
SlackbotがGoogle Driveに接続し、Slack AppとしてGoogle Driveが追加されます。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
定期的にダウンロードのログが出るようになります
33
ü 初回に4件、以降は不定期に1件ずつログが出⼒されていました。
❶Slackにリンクを貼り付けたタイミングで
4件ログが出ます。
❷数時間おき、不定期にログが出ます。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
解消⽅法
34
ü Slackのファイルブラウザから、共有した該当ファイルを削除するとログは出なくなります。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Kibanaの活⽤で「認知」から「原因特定」まで
35
ü 以下のステップで調査を⾏い、原因を特定することができました。
STEP❶
ダウンロードの
ログから使えそうな情
報を⾒つける
originating_app_idを使い
利⽤アプリがSlackであることが
特定できた。
STEP❷
海外からのダウンロード
の監視を追加してみる
(Slack通知)
ログの出ているメンバーに協⼒し
てもらい、Slackチャネルに
Google Driveのリンクを貼り付
けた時刻との⼀致を確認した。
STEP❸
継続的にログの出⼒を
ウォッチしてみる
ファイルブラウザでファイルを削除
することでログが出なくなることを
確認した。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
⾃⼰監査の仕組み
05
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
海外からの⼤量ダウンロードの調査を踏まえ
37
ü 管理者による監査だけでは限界を感じたため、ドライブ利⽤者⾃⾝で監査できる仕組みを導⼊しました。
利⽤した機能
1. Single sign-on (SAML, OIDC, Kerberos)
2. Kibana Spaces
3. Field and document level security
4. Role-based access control
ü ダッシュボードを操作することでデータ分析の基礎知識が⾝に付く
ü ⾃⾝の操作が詳細に記録されていることを認識することで不正防⽌の抑⽌効果になる
ü 管理者だけでは発⾒できない業務観点での違和感に気づく可能性が⾼まる
【期待する効果】
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
⾃⼰監査機能の実装イメージ図
38
ü Google認証でシングルサインオンすることで⾃⼰監査を実現しています。
Google認証 Google Drive
Elasticsearch
Filebeat Logstash
Kibana
User A
ドライブ利⽤
ログ取り込み
Kibana利⽤
【凡例】
Drive
Access
Get Reports API
Ingest
Search
Single sign-on
Login
• KibanaのログインアカウントはGoogle Driveの操作アカウントと同⼀
• Kibanaで検索できるログはログインに使⽤した⾃アカウントのみに制御
• Kibanaにログインすると上記の制限がされたロールが適⽤
• Kibanaにログインすると⾃⼰監査専⽤のKibana Spaceが適⽤
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Google Driveを操作したユーザ名
39
ü 「user.name」というフィールドにGoogleアカウントの@より前の部分がユーザ名として記録されます。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
⾃分の操作ログしか検索できないようにするには...
40
ü ロールに設定するGranted documents queryでユーザ名での検索可能ドキュメントの制御をします。
(下記の設定をするとuser.nameが「h-hibino」のログしか検索にかからなくなります)
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
でも、固定値にするわけにはいかないので...
41
ü Kibanaにログインしたユーザによって、ログインに使⽤したユーザ名を拾えるようにします。
(「_user.username」というテンプレートをロールクエリに組み込むことで実現します)
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Google認証でログインすると...
42
ü Googleアカウントの@より前の部分がKibanaのユーザ名となります。
【参考】 Kibana SpacesとField and Document Level Securityを使ってSelf Auditしちゃうぞ︕
https://www.creationline.com/lab/elastic/43851
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
Kibana Spacesを使ったアクセス制御
43
ü ⾃⼰監査に必要なKibanaの機能のみに絞ることで閲覧可能なダッシュボードを提供することができます。
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
こんな感じになります︕
44
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
苦労したポイント
06
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
当初はドライブ監査ログ以外のログも...
46
ü ドライブ監査ログはほぼリアルタイムですが、他の監査ログではログの発⽣から出⼒までに遅れがあります。
Filebeat取得対象
特にログイン、SAMLで最⼤数時間の遅延
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
ログの出⼒遅延とオフセット問題
47
ü Filebeatがログの発⽣時間ではなく、前回の実⾏時間でオフセット管理しているため、遅延が悪影響しました。
(今回は、ドライブ監査ログに限定して取得することで回避しましたが、⽅式は再検討中です)
ログ発⽣
ログ出⼒
Filebeat実⾏
時間の経過
数時間の遅延
数時間の遅延
数時間の遅延
30分間隔
0:00 1:00 2:00 3:00 4:00 5:00 6:00
0:00 1:30 4:10
この時点では0:00のログは
出⼒されていないため取得できない
この時点で0:00のログが出⼒さているが
前回実⾏時間が1:40のため取得できない
2:10
0:10
2:05
1:40
23:40
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
まとめ
07
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
総括
49
ü まずはやってみる︕そして、試しながら進化させていくこと︕︕
ü 今後はSlackやGitLabなど他のクラウドサービスのログも︕
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved 50
Copyright ⓒ2021 CREATIONLINE, INC. All Rights Reserved
参考URL
51
利⽤可能な監査ログ
https://support.google.com/a/answer/9725452
データの保持期間とタイムラグ
https://support.google.com/a/answer/7061566
Drive Audit Activity Events
https://developers.google.com/admin-sdk/reports/v1/appendix/activity/drive
Method: activities.list
https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list
Google Drive の監査ログでアプリの利⽤状況を特定
https://developers-jp.googleblog.com/2017/08/identifying-app-usage-in-your-google.html
Kibana SpacesとField and Document Level Securityを使ってSelf Auditしちゃうぞ︕
https://www.creationline.com/lab/elastic/43851

Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」

  • 1.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Elastic Cloudを活⽤︕︕ ゼロトラストセキュリティの「はじめの⼀歩」 クリエーションライン株式会社
  • 2.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ⾃⼰紹介 2 【所属/⽒名】 クリエーションライン株式会社 データ分析テクニカルエバンジェリスト ⽇⽐野 恒 (ひびの ひさし) 【略歴】 10年間、ITコンサルティング会社に在籍。 現在はElasticをはじめ、データ分析基盤のアーキテクチャ設計 クラウドにおけるセキュリティ実装⽅式検討などに従事。 「Elastic Stack実践ガイド[Logstash/Beats編」の著者。 【執筆】 Elastic Stack実践ガイド [Logstash/Beats編] CL LAB (Elastic技術ブログ)
  • 3.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 会社紹介 3 会社概要 ● 設⽴︓2006年1⽉ ● 資本⾦︓215,572,000円 ● 従業員数︓160名 (協⼒会社含む) ● 2020年度売上実績︓23.7億円 事業内容 ● アジャイル開発⽀援 ● DevOps⽀援 ● サブスクリプション ● トレーニング 特徴 ● 全社の85%以上がエンジニア ● アジャイル開発、DevOpsを正しく理解し導⼊推進できる技術⼒と体制 ● オープンソース技術に注⼒、海外ソフトウェアベンダー、標準化団体とのパートナーシップ ● ⽇本初の認定 Kubernetesソリューションプロバイダー&トレーナー ● 国内130社超えるお客様への導⼊実績 クリエーションラインのミッション 「IT技術によるイノベーションにより顧客と共に社会の進化を実現する」
  • 4.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 本⽇のテーマ 4 Google Driveを題材とした Elastic Stackによる監査の仕組みをご紹介します
  • 5.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ⽬次 5 1. 導⼊の背景 2. Google Driveの監査とは 3. アーキテクチャについて 4. 導⼊効果 5. ⾃⼰監査の仕組み 6. 苦労したポイント 7. まとめ
  • 6.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 導⼊の背景 01
  • 7.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ファイルサーバの⽼朽化対応 7 オフィス Internet 共有ドライブ 全社ファイルサーバ (OmniOS) 移⾏⽤マシン (win10) 共有ドライブ G: Z: robocopy ü きっかけは、2019年より計画していたファイルサーバの⽼朽化対応に伴う移⾏プロジェクトでした。 (計画当初は、事業継続性や運⽤管理⾯での検討が中⼼でした) ※ネットワークドライブとして割り当てたドライブ同⼠をrobocopyコマンドでデータ移⾏を実施。
  • 8.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved コロナ禍によるリモートワークへの移⾏ 8 ü 2020年3⽉にフルリモートでの業務が開始、バーチャルオフィスなどを活⽤した新しい働き⽅に移⾏しました。 【参考】 oViceをバーチャルオフィスにしてみた https://www.creationline.com/lab/38590
  • 9.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved リモートワーク推進におけるゼロトラスト化 9 オフィス(境界) 社内サーバ群 IaaS SaaS 社内メンバー ❷オフィス外への業務アプリケーションの移⾏ ⾃宅 ❶コロナによるオフィス外でのリモートワーク化 ! " # $ % & ' ( ) * + , - . 監 視 1 必 要 ü ⼈とシステムがファイアウォール防御外へ移動したことで新たなセキュリティの仕組みが必要となりました。
  • 10.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved まずは、Google Driveの監査ログから︕ 10 ü ということでElastic Stackを使って、クラウドサービスのログを監査するシステムを作ることにしました。 ログ監査システム Google Workspace Google Drive 共有ドライブ 不正ユーザ 不正アクセス Filebeat Logstash Elasticsearch Kibana オブジェクト ストレージ 保存期間:3ヶ⽉ 保存期間:年単位 監査担当 情シス担当 ドライブ 監査ログ 定期監査 検知(Slack) ニアリアルタイム 監査対象は、外部脅威 Reports API 【要件】 ・「いつ」 ・「どのIPアドレスから」 ・「どのユーザで」 ・「どのファイルが」 ・「どのように利⽤されたか」 をログから追えること 【参考】 Elastic StackでGoogleドライブ監査をやってみた https://www.creationline.com/lab/elastic/37417
  • 11.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Google Driveの監査とは 02
  • 12.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ドライブ監査⽅法とは 12 ü Google Drive内のファイルに対するユーザー操作をログから確認することができるようになっています。 (47種類のイベント名で細かく操作が記録されています) 【参考】 ドライブの監査ログ https://support.google.com/a/answer/4579696 add_to_folder approval_canceled approval_comment_added approval_completed approval_decisions_reset approval_due_time_change approval_requested approval_reviewer_change approval_reviewer_responded copy create delete download email_as_attachment edit label_added label_added_by_item_create label_field_changed label_removed add_lock move preview print remove_from_folder rename untrash sheets_import_range trash remove_lock upload view apply_security_update shared_drive_apply_security_update shared_drive_remove_security_update publish_change change_acl_editors change_document_access_scope change_document_access_scope_hierarchy_reconciled change_document_visibility change_document_visibility_hierarchy_reconciled remove_security_update shared_drive_membership_change shared_drive_settings_change sheets_import_range_access_change change_user_access change_user_access_hierarchy_reconciled storage_usage_update 【access】 【acl_change】 【pooled_quota_metadata】
  • 13.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ⼀般的な⽅法は... 13 ü 管理コンソールの[レポート] > [監査] > [ドライブ]で過去180⽇まで遡って検索することができます。 表⽰可能項⽬
  • 14.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ドライブ監査ログの取得⽅法 14 ü ドライブ監査ログを取得する⽅法には、3つの⽅法があります。 (今回はReports APIを利⽤した⽅式2を採⽤しています) No 取得⽅法 メリット デメリット 1 管理コンソールでの ファイル出⼒ ・Businessエディション以上で利⽤することができる。 ・⾮エンジニアのメンバーでも簡単にログ取得ができる。 ・GUI操作のため、⼈⼿による作業が発⽣してしまう。 (⾃動化による継続的なログ取得が難しい) 2 Reports API ・Businessエディション以上で利⽤することができる。 ・プログラムを組むことで継続的にログを取得することができる。 ・ログの取得にエンジニアリングスキルが求められる。 (APIの実⾏、JSONのパース処理など) 3 BigQueryへの出⼒ ・⾮エンジニアのメンバーでも簡単にログ取得ができる。 ・SQLスキルがあれば、ログの検索や分析を⾏うことができる。 ・継続的にBigQueryにログ出⼒することができる。 ・Enterpriseエディション以上が必要となる。 (監査ログ⽬的だけで考えるとにコスト増となってしまう) ・BigQueryの運⽤管理を⾏う必要がある。 (Google Workspace組織毎にBigQueryが必要) 【参考】 ログのレポートとBigQueryについて https://support.google.com/a/answer/9079364?hl=ja
  • 15.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Reports APIとは 15 ü Google Workspaceのユーザ操作に関する情報を取得できるREST APIになります。 【参考】 Reports API Overview https://developers.google.com/admin-sdk/reports/v1/get-start/overview Reports API Activity Reports Usage Reports ❶ Admin Activity Reports ❷ Google Drive Activity Reports ❸ Login Activity Reports ❹ Mobile Activity Reports ❺ OAuth Token Activity Reports ❶ Customers Usage Reports ❷ Users Usage Reports ❸ Entities Usage Reports Admin SDK ! ! ! 今 回 利 ⽤
  • 16.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Reports APIを使った監査ログ 16 ü 以下、1回のAPI実⾏で取得されるドライブ監査ログのJSONフォーマットとフィールドの構造になります。 (そこそこ複雑なJSON構造のログフォーマットになっています) "kind": "admin#reports#activities", "etag": "¥”xxxxxxxxxxxxxxxxxxxxxxxxxxx¥"", "items": [ 配列オブジェクト ] "kind": "admin#reports#activity", "id": { オブジェクト }, "etag": "¥”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx¥"", "actor": { オブジェクト }, “ipAddress”: "52.40.11.195", ❶ "events": [ 配列オブジェクト ] “time”: "2021-10-11T09:55:03.790Z", ❸ "uniqueQualifier": "5042038333137309352", "applicationName": "drive", "customerId": "C12f1tdo6" { "name": "billable", "boolValue": true }, { "name": "doc_title", “value”: "サンプル.pdf" ❺ } "type": "access", "name": "view", ❷ "parameters": [ 配列オブジェクト ] "email": "test-user@example.co.jp", ❹ "profileId": "115361142755381498172" Parametersは、nameとvalue (or boolValue, intValue, multiValue)がセットになったオブジェクトの繰り返しになっています ※監査でよく利⽤する項⽬
  • 17.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 【参考】 サンプルログ 17 paramaters配下の フィールド抽出処理の難易度が⾼い
  • 18.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ü Elasticには、ゼロトラストセキュリティを実現するためのFilebeat Modulesが⽤意されています。 (Google Workspace Moduleは、Reports APIの定期実⾏、ログのパース処理を簡単にしてくれます) 【参考】 Google Workspace Module https://www.elastic.co/guide/en/beats/filebeat/7.12/filebeat-module-google_workspace.html Google Cloud Module AWS Module Azure Module Google Workspace Module Office365 Module Zoom Module Cylance Module Crowdstrike Module Microsoft Module Elasticを採⽤したポイントの1つは...
  • 19.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved アーキテクチャについて 03
  • 20.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved コードネーム: HARUMAKIとは 20 ü 今回構築したログ監査システムのプロジェクト名であり、システム名になります。 ⾊々な種類の具材(ログ)を収集し 分析できるプラットフォームとして活躍してほしい︕ という期待を込めてカラッと揚げちゃいました
  • 21.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved サーバレスなアーキテクチャ 21 ü ElasticsearchとKibanaは、マネージドサービスであるElastic Cloudを採⽤しました。 Container Managed Container Managed Filebeat Kafka Logstash Elasticsearch Kibana 【Ingest】 【Messaging】 【Transform】 【Data Store】 【Visualize】 Elastic Cloud IaaS • スペックやデータ量、利⽤時間に応じた課⾦であるパブリッククラウドを採⽤ • 運⽤負荷軽減のため、マネージドサービスもしくはコンテナサービスを採⽤
  • 22.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved セキュアで安全な接続⽅式 22 ü 当時、唯⼀AWSだけがプライベート接続が可能であったため、AWS上にElastic Cloudを構築しました。 (AWS東京リージョンに3AZ構成としています) 【参考】 Elastic Cloudへプライベート接続を試してみた https://www.creationline.com/lab/35952 Elastic Cloud Region (@ap-northeast-1) AWS Cloud AWS Cloud AWS PrivateLink Private link endpoint Logstash IP filtering 利⽤者 Region (@ap-northeast-1)
  • 23.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved スケールアウト可能なアーキテクチャ 23 ü Kafkaを挟むことで、Consumerの性能追加や新しいログの要件追加にも容易に対応できるようになっています。 Kafka Filebeat (Producer) Logstash (Consumer) Topic A Logstash (Consumer) ! ! ! Drive Activity Log Consumer Group Drive Activity Log Google Drive (Reports API) " # $ % 新しいクラウド サービスのログ Producer Topic B 追加拡張 Log
  • 24.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 悩み続けたETL処理の配置 24 ü Filebeat Moduleを採⽤したことで加⼯処理をLogstashに集約できなくなってしまいましたが(笑) Google Drive (Reports API) Google Workspace Module output kafka Filebeat Kafka google_workspace (Topic) Logstash input kafka input kafka output elasticsearch output s3 Elasticsearch ingest pipeline (google workspace drive) S3 Archive (Bucket)
  • 25.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 全体のシステムアーキテクチャ図 25 ü クラウド、サーバレス、セキュア、CICD、データドリブンをコンセプトとしたアーキテクチャとなっています。 notification ※ Elastic Stack: 7.12.1
  • 26.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 導⼊効果 04
  • 27.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved やはり、Kibanaによる強⼒な可視化 27 ü ⾼い技術⼒が無くともKibanaがデータ⺠主化を実現し、瞬時に現状把握することができるようになりました。
  • 28.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved では、具体的な事例について 28 ü HARUMAKI導⼊後、過去90⽇のファイルダウンロードの約70%がUSからのアクセスでした。 (具体的には、Amazon.com,Incからのアクセスでした) 【経緯】 当社メンバーによるGoogleDriveの利⽤は基本的には ⽇本国内になります。⽇本以外からのファイルダウンロードは 不正アクセスの可能性が⾼くことになります。 HARUMAKI導⼊後、この観点での調査を開始しました。
  • 29.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 時系列で⾒る海外からのダウンロード数 29 ü 継続的にUSからのダウンロードが発⽣していました。(過去90⽇)
  • 30.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved originating_app_idとは (1/2) 30 ü ドライブ監査ログには、「何のアプリからアクセスされたのか」を⽰すアプリIDが記録されます。
  • 31.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved originating_app_idとは (1/2) 31 ü GoogleのAPI実⾏サイトでappIdを⼊⼒して[EXECUTE]すると、アプリの詳細を確認できます。 { "kind": "drive#app", "id": "19570130570", "name": "Slack", "shortDescription": "Slack is where work happens", "longDescription": "", "supportsCreate": false, "supportsImport": false, "supportsMultiOpen": false, "supportsOfflineCreate": false, "installed": false, "authorized": false, "hasDriveWideScope": false, "useByDefault": false, "productUrl": "https://gsuite.google.com/marketplace/app/detail/19570130570", "productId": "ljbkkbbbcalchmohbdlkjabljkgpmjkg", "primaryMimeTypes": [ "application/vnd.google-apps.drive-sdk.19570130570" ] }
  • 32.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 原因はSlackアプリ 32 ü SlackにGoogle Driveに保存されたドキュメントのリンクを張って[接続]すると SlackbotがGoogle Driveに接続し、Slack AppとしてGoogle Driveが追加されます。
  • 33.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 定期的にダウンロードのログが出るようになります 33 ü 初回に4件、以降は不定期に1件ずつログが出⼒されていました。 ❶Slackにリンクを貼り付けたタイミングで 4件ログが出ます。 ❷数時間おき、不定期にログが出ます。
  • 34.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 解消⽅法 34 ü Slackのファイルブラウザから、共有した該当ファイルを削除するとログは出なくなります。
  • 35.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Kibanaの活⽤で「認知」から「原因特定」まで 35 ü 以下のステップで調査を⾏い、原因を特定することができました。 STEP❶ ダウンロードの ログから使えそうな情 報を⾒つける originating_app_idを使い 利⽤アプリがSlackであることが 特定できた。 STEP❷ 海外からのダウンロード の監視を追加してみる (Slack通知) ログの出ているメンバーに協⼒し てもらい、Slackチャネルに Google Driveのリンクを貼り付 けた時刻との⼀致を確認した。 STEP❸ 継続的にログの出⼒を ウォッチしてみる ファイルブラウザでファイルを削除 することでログが出なくなることを 確認した。
  • 36.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ⾃⼰監査の仕組み 05
  • 37.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 海外からの⼤量ダウンロードの調査を踏まえ 37 ü 管理者による監査だけでは限界を感じたため、ドライブ利⽤者⾃⾝で監査できる仕組みを導⼊しました。 利⽤した機能 1. Single sign-on (SAML, OIDC, Kerberos) 2. Kibana Spaces 3. Field and document level security 4. Role-based access control ü ダッシュボードを操作することでデータ分析の基礎知識が⾝に付く ü ⾃⾝の操作が詳細に記録されていることを認識することで不正防⽌の抑⽌効果になる ü 管理者だけでは発⾒できない業務観点での違和感に気づく可能性が⾼まる 【期待する効果】
  • 38.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ⾃⼰監査機能の実装イメージ図 38 ü Google認証でシングルサインオンすることで⾃⼰監査を実現しています。 Google認証 Google Drive Elasticsearch Filebeat Logstash Kibana User A ドライブ利⽤ ログ取り込み Kibana利⽤ 【凡例】 Drive Access Get Reports API Ingest Search Single sign-on Login • KibanaのログインアカウントはGoogle Driveの操作アカウントと同⼀ • Kibanaで検索できるログはログインに使⽤した⾃アカウントのみに制御 • Kibanaにログインすると上記の制限がされたロールが適⽤ • Kibanaにログインすると⾃⼰監査専⽤のKibana Spaceが適⽤
  • 39.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Google Driveを操作したユーザ名 39 ü 「user.name」というフィールドにGoogleアカウントの@より前の部分がユーザ名として記録されます。
  • 40.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ⾃分の操作ログしか検索できないようにするには... 40 ü ロールに設定するGranted documents queryでユーザ名での検索可能ドキュメントの制御をします。 (下記の設定をするとuser.nameが「h-hibino」のログしか検索にかからなくなります)
  • 41.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved でも、固定値にするわけにはいかないので... 41 ü Kibanaにログインしたユーザによって、ログインに使⽤したユーザ名を拾えるようにします。 (「_user.username」というテンプレートをロールクエリに組み込むことで実現します)
  • 42.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Google認証でログインすると... 42 ü Googleアカウントの@より前の部分がKibanaのユーザ名となります。 【参考】 Kibana SpacesとField and Document Level Securityを使ってSelf Auditしちゃうぞ︕ https://www.creationline.com/lab/elastic/43851
  • 43.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved Kibana Spacesを使ったアクセス制御 43 ü ⾃⼰監査に必要なKibanaの機能のみに絞ることで閲覧可能なダッシュボードを提供することができます。
  • 44.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved こんな感じになります︕ 44
  • 45.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 苦労したポイント 06
  • 46.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 当初はドライブ監査ログ以外のログも... 46 ü ドライブ監査ログはほぼリアルタイムですが、他の監査ログではログの発⽣から出⼒までに遅れがあります。 Filebeat取得対象 特にログイン、SAMLで最⼤数時間の遅延
  • 47.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved ログの出⼒遅延とオフセット問題 47 ü Filebeatがログの発⽣時間ではなく、前回の実⾏時間でオフセット管理しているため、遅延が悪影響しました。 (今回は、ドライブ監査ログに限定して取得することで回避しましたが、⽅式は再検討中です) ログ発⽣ ログ出⼒ Filebeat実⾏ 時間の経過 数時間の遅延 数時間の遅延 数時間の遅延 30分間隔 0:00 1:00 2:00 3:00 4:00 5:00 6:00 0:00 1:30 4:10 この時点では0:00のログは 出⼒されていないため取得できない この時点で0:00のログが出⼒さているが 前回実⾏時間が1:40のため取得できない 2:10 0:10 2:05 1:40 23:40
  • 48.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved まとめ 07
  • 49.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 総括 49 ü まずはやってみる︕そして、試しながら進化させていくこと︕︕ ü 今後はSlackやGitLabなど他のクラウドサービスのログも︕
  • 50.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 50
  • 51.
    Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved 参考URL 51 利⽤可能な監査ログ https://support.google.com/a/answer/9725452 データの保持期間とタイムラグ https://support.google.com/a/answer/7061566 Drive Audit Activity Events https://developers.google.com/admin-sdk/reports/v1/appendix/activity/drive Method: activities.list https://developers.google.com/admin-sdk/reports/reference/rest/v1/activities/list Google Drive の監査ログでアプリの利⽤状況を特定 https://developers-jp.googleblog.com/2017/08/identifying-app-usage-in-your-google.html Kibana SpacesとField and Document Level Securityを使ってSelf Auditしちゃうぞ︕ https://www.creationline.com/lab/elastic/43851