---
title: msticpyの実践活用: 高度な脅威ハンティングを実現すべくSIEMとの虹の懸け橋となる
tags:  #sans_dfir  
author: [Tatsuya-hasegawa](https://www.docswell.com/user/hackeT)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJW312ZPJ2.jpg?width=480
description: [JP]長谷川_DFIR_APAC_SUMMIT_2023 https://www.sans.org/cyber-security-training-events/apac-dfir-summit-2023/
published: September 08, 23
canonical: https://www.docswell.com/s/hackeT/Z98NXM-practical-msticpy-use-JP
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJW312ZPJ2.jpg)

1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EZVPD16J3.jpg)

$WHOAMI
• スレットハンター/アプリ開発/脅威研究
• OSS貢献者
• msticpy,unprotect,atomic-red-team,cuckoo,capev2..
• 保有資格
• 7 GIACs
• CISSP、CISA
• SNS
• HN: hackeT
• X: @T_8ase
2


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y765M1LLEV.jpg)

$more 株式会社ゴーアヘッド
代表取締役 中村光宏
Splunk.conf 2017@USA
Splunk Champion受賞
Splunkの App/Add-onを無償提供
https://splunkbase.splunk.com/apps?keyword=goahead
2017年設⽴
セキュリティ課題に対し
Splunkを強みとする
データ分析企業
KOBANZAME
(IP Whois判定)
Heuristic Logic
(振る舞い解析)
Data Visualization
(可視化)
最⼩のリソースで最⼤の効果を⽬指します。
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G75YZ41M74.jpg)

アジェンダ
• SIEMの変わらない運⽤
• msticpy 101 Overview and Basics
• msticpy 201 Jupyter Notebook and ( pros | cons )
• msticpy 301 Practical use case
• まとめ
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/9J2GRV1RJR.jpg)

SIEMの変わらない運⽤
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DEYVD3Z5EM.jpg)

⼀昔前
背景と課題
近年
無くならない開発・運⽤タスク
l 新たな脅威に追随すべく分析ロ
ジックの改修・追加
l 世の中の脅威状況のみならず社
内の状況に合わせた閾値運⽤
ドキュ
メント
バグ
分析︓rawログの⼈海戦術
監視︓メールアラート
分析︓フォーマット化ログの多軸検索
監視︓可視化ダッシュボード・アラー
ト転送
修正
更新
閾値
パネル
追加
SIEM機能や既存ダッシュボードの
バイアスで時に不⾃由な分析に陥る
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJNM6V3478.jpg)

⽬的
⾼度な脅威ハンティングを実現
脅威ハンティングとは
• 能動的に悪意のある活動や脅威の予兆を発⾒し対処すること
• 脅威インテリジェンスや未適⽤のIOC、異常検出などを⽤いて能動的に調査
• 仮説〜検証の繰り返し
⾼度な脅威ハンティングとは 「⾒逃しを限りなく減らす」思想
• rawデータから未検出の脅威を洗い出す
• 未加⼯のデータも合わせて確認し、セキュリティ機器の処理・検出漏れも探す
• 本来の⾃由なデータ分析 (アドホック)
•
•
•
•
独⾃に考えられた切り⼝の分析ロジック
制約のない外部連携
奇抜なビジュアライゼーション
読み⼿にとって分かりやすい強調など
• 継続的な更新運⽤
• 機械学習 (ML/DL)
• ⾃動化
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YE9NL694E3.jpg)

Security Information and Event Management
第⼀世代
Gartner 2005
ログとイベントの管理統合
第⼆世代
第三世代
CTIとの相関分析
ビッグデータ処理
Gartner 2017
UEBA、SOAR追加
• 主要SIEM製品
• Splunk/MS Sentinel/IBM Qradar/
Exabeam/Sumo Logic/Elasticなど
• セキュリティベンダーの囲い込みSIEM
• 収集/抽出/検索/分析/可視化/検出/対応
• 独⾃の脅威ハンティング機能
• ML/DLの拡張機能
Gartner社 2022年マジック・クアドラントより
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GE8KXZ9V7D.jpg)

SIEMの利点
• インデックスによる⾼速検索とフィールド正規化(CIM、ASIM)
• その検索⾔語の恩恵で、統計計算が容易
• 脅威インテリジェンスを格納できる
• 複数⼈が同じデータ・分析結果を参照できる
• SIEMベンダーが検出ロジックも多数提供
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LELZ8DWRJR.jpg)

SIEMの綻び
• インデックスによる⾼速検索とフィールド正規化(CIM、ASIM)
• 抽出に失敗していると冒頭の検索や途中の分析から⽋落する
• その検索⾔語の恩恵で、統計計算が容易
• 苦⼿な処理系が存在し、 また個別の学習コストもかかる
• 脅威インテリジェンスを格納できる
• 多くのインテリジェンスは⾃前で⽤意し、運⽤する
• 複数⼈が同じデータ・分析結果を参照できる
• 共有リソースのため、様々な制限がある
• SIEMベンダーが検出ロジックも多数提供
• 必要⼗分か︖否︕
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JMV6P9PJW.jpg)

SIEMの分析に頼りすぎない
• 障害が起きると、復旧まで全員が分析できない
• SIEMの検索⾔語での分析のみに頼りすぎて、rawデータの分析⽅法を忘却
• データの完全性や検索結果の完全性は誰が担保してくれる?
• SIEMには制限がある
• サブサーチやマルチバリューのデフォルト上限 (切り捨て)
• グラフへのプロット数のデフォルト上限 (切り捨て)
• 設定ミスによる検索漏れに気づけるか
• 提供されたロジックのみに頼らない
• Enterprise SIEMs Miss 76 Percent of MITRE ATT&amp;CK Techniques
• CardinalOps社、「2023 Report on State of SIEM Detection Risk」より
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PJR2P1GYE9.jpg)

⾼度な脅威ハンティングへ
msticpy
時
系
列
分
析
⼀
貫
し
た
⼊
出
⼒
デ
ー
タ
検
証
機
械
学
習
無
限
の
可
視
化
⾃
動
化
SIEM
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PEXD3YX47X.jpg)

msticpy 101
Overview
and
Basics
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/3EKXY3WP7D.jpg)

Microsoft Threat Intelligence Center (MSTIC)
on Python and Jupyter notebooks
• MSTICpy: Microso/社のMSTICが開発したOSSライブラリ
• Pythonで書かれ、主にJupyter notebook上で利⽤できる
msticpy
• 侵害調査・脅威ハンティングを⾏うための機能が豊富
• 2019年3⽉~ 200k+ ダウンロード数
h:ps://github.com/microso//msBcpy
• BlackHat USA 2020で発表あり
• 最近も頻繁に更新されており進化し続けている
• アジア・⽇本での活⽤や、紹介ブログがいまだ少ない
• ⼤きく分割すると以下の４つのジャンルに分類される
• ライブラリ化されているため欲しい機能だけ断⽚的に利⽤可
データ取り込み
データ加⼯
機械学習も含めて分析
グラフによる可視化
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L7359G14E5.jpg)

msticpyドキュメンテーション&amp;リソース
• MSTICpy ☞ msticpy に本発表では統⼀
• 公式ドキュメント
•
•
•
•
•
https://msticpy.readthedocs.io
ワードカウント 10万以上
RSTファイル 80以上
Jupyter Notebook サンプル数 40以上
過去のトレーニング資料も公開
• msticpy-lab、msticpy-trainingレポジトリ
• 公式ブログ
• https://msticpy.medium.com
リソースが豊富すぎて逆に習得には時間がかかることも
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/87DDG1X57G.jpg)

msticpy 機能の概要
Acquisition
Querying Logs
Visualization
Data
Visualization
Analysis
Utility
Analysis
Pivot
Data
Enrichment
Security
Analysis
Enrichment
Analysis
ms&lt;cpyconﬁg.yaml
h&quot;ps://twi&quot;er.com/fr0gger_/status/1623209441146593281?s=61&amp;t=v8tLnMcFFdnsiT38CeGBcg
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJPX3QPD78.jpg)

msticpyデータフロー図
Internet
Enrichment
SIEM
raw
p Threat Intel Lookup
p Whois, GeoIP
Acquisi6on
upload
Local
Analysis
DataLake
(SIEM)
rich
Local
p Decode
p Extract
p ML
Visualization
Jupyter Notebook
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2EVL452GJQ.jpg)

msticpy:データ取り込み Acquisition (1)
• Query Providerインスタンスを作成
• 左のデータソースから選択できる
LocalData: ./dataフォルダ内の.pklローカルファイルに接続の⼀例
Splunk: msticpyconﬁg.yaml を参照し、SplunkのREST APIに接続
通信は独⾃に暗号化されない
=&gt; HTTPS (SSL) が必須
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/57GX16LDEL.jpg)

msticpy:データ取り込み Acquisition (2)
• 戻り値は、Pandas DataFrame
• アドホック関数
• exec_query(): 任意のクエリ実⾏
• 組み込みクエリ関数
• 選択式 (データソース毎に異なる)
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EQ8D4YXJP.jpg)

msticpy: 価値の付与 Enrichment
• 戻り値は、Pandas DataFrame
• Threat Intel Lookup
• Pivot TI 関数 (Jupyter Notebook上のみ可)
• TILookupクラス (Pythonコード⽚でも可)
• GeoIP (MaxMind GeoLite2, IPStack)
• IPWhois (Cymru, RADB, RDAP)
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/KJ42ZQW2E1.jpg)

msticpy: 分析 Analysis (Utility)
• Base64 Decode
• IoC Extract
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LE1MRPYK7G.jpg)

msticpy: 分析 Analysis (Pivot)
• Pivot Functions
基本的には”init_notebook()”によるロードが必須
• msticpyの関数やクラスをラップし、発⾒しやすく、使いやすくする
• 関数のパラメータ、構⽂、出⼒形式を標準化する
• .mp_pivotを多段にパイプ接続できる
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GEW312GPE2.jpg)

msticpy: 分析 Analysis (Security)
• Event Clustering
• ホストマシン上のプロセスイベントやログオンイベントの分類
• Time Series Analysis
• 季節変動を考慮した時系列データの異常検出
• Outlier Identification
• 決定⽊を利⽤した外れ値検出
• Anomalous Session
• 尤度の低い稀なイベントシーケンスの検出
• イベントのコマンド列、パラメータ名、パラメータ値の３つまでを特
徴量として利⽤
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47ZVPDL6E3.jpg)

msticpy: 可視化 Visualization
• BokehJSで実装
• msticpyで実装している可視化グラフ
• Timeline,ProcessTree,Folium Map,Matrix Plot, Entity/Network Graph など
• MorphChartsで組み込みチャートを作成できる
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/YJ65M1WL7V.jpg)

msticpy 201
Jupyter Notebook
and
( pros | cons )
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJ5YZ4MMJ4.jpg)

Jupyter Notebookで分析する恩恵
• 途中結果のアプトプットを出⼒できるデータの再現性
• 外部ソースとの結合・統合の容易性
• 機械学習フレームワークの利⽤しやすさ
• 豊富な可視化ライブラリを⾃由に活⽤
• データサイエンティストとして応⽤⼒が⾝に付く
26


# Page. 27

![Page Image](https://bcdn.docswell.com/page/9E2GRV9RER.jpg)

Jupyter NotebookとSIEMの理想的な関係
⾼度な脅威ハンティング
msticpy
インテリジェンス
ナレッジ
ノイズ除去されたデータに対する
深堀分析
SIEM
⼤雑把なノイズ除去
27


# Page. 28

![Page Image](https://bcdn.docswell.com/page/D7YVD3457M.jpg)

msticpyʼs pros:
Seasonal-Trend decomposition using LOESS
著書: 「セキュリティエンジニアのための機械学習 6章
異常検出」でも取り上げられている機能
28


# Page. 29

![Page Image](https://bcdn.docswell.com/page/VENM6VY4J8.jpg)

msticpyʼs pros: ⼀貫した⼊出⼒
• Data Uploader機能による出⼒（転送）
• 2023年8⽉時点で Azure SentinelとSplunkのみ対応
• DataFrame、ファイル、フォルダをアップロード可能
ms6cpy
OSINT
(Internet)
SIEMをエンリッチメント︕
可視化したチャートは転送できないが
分析結果の表を転送できると、
類似のチャートはSIEMでも描ける
SIEM
29


# Page. 30

![Page Image](https://bcdn.docswell.com/page/Y79NL6P473.jpg)

Jupyter &amp; msticpyʼs pros: データ検証
• Pandas DataFrameを逐次確認できる
• copy()により退避しておけば誤った上書きに安⼼
• 値の型変換やNULL値への対応も容易
• ⽂字コードの確認や変換も楽々
• タイムレンジをGUIで操作 ☞
• QueryProviderの組み込みクエリ関数もprintオプションで事前確認
検索予定のクエリ
30


# Page. 31

![Page Image](https://bcdn.docswell.com/page/G78KXZDVJD.jpg)

Jupyterʼs pros: ML/DLの利⽤
• msticpyにビルトイン実装されているMLモデルは少ない
•
•
•
•
Event Clustering
☞ scikit-learnのDBSCAN
Time Series Analysis and Anomaries ☞ statsmodelsのSTL
Outlier Identiﬁcation
☞ scikit-learnのIsolationForest
”よく使う脅威ハンティングの⽤途に特化しているため、パラメータチ
ューニングの必要が少ない
• Pythonの豊富なライブラリが⾃由に使える柔軟性
⾃然⾔語処理系
機械学習系
深層学習系
31


# Page. 32

![Page Image](https://bcdn.docswell.com/page/L7LZ8DMRER.jpg)

Jupyterʼs pros: 無限の可視化
Splunkのデータ切り捨て部分
データプロット上限数（デフォルト）
Splunk
MS Sentinel
Jupyter
10,000
10,000
♾ (Inﬁnity)
32


# Page. 33

![Page Image](https://bcdn.docswell.com/page/4EMV6PYPEW.jpg)

[参考] ダッシュボードオプションで上限を変更
• Splunkではダッシュボードオプション「charting.data.count」で上限を変更できるが・・
33


# Page. 34

![Page Image](https://bcdn.docswell.com/page/PER2P19Y79.jpg)

Jupyterʼs pros: papermillで⾃動化
• Pythonライブラリ
• ノートブックファイルを（パラメーターを変えて）バッチ実⾏
• msticpyのFIRECONのトレーニング資料の最後でも”Put it into Operation”で紹介されている⼿法
CUI
outputノートブックではパラメータが上書きされている
Python
34


# Page. 35

![Page Image](https://bcdn.docswell.com/page/P7XD3YQ4JX.jpg)

Jupyterʼs cons: データ転送の懸念
• SIEM内の機微なデータも外部のJupyterに転送できる可能性
• SIEM側のACLで対応せざるをえない
• 外部のJupyterへのデータ転送中の盗聴、MITM攻撃の可能性
• SIEM側のSSLセキュリティ依存
• セキュリティ設計がより煩雑に
msticpy
(Jupyter)
！
SIEM
• SIEMへ脅威インテリジェンス
の転送は⽐較的クリア
35


# Page. 36

![Page Image](https://bcdn.docswell.com/page/37KXY39PJD.jpg)

msticpy 301
Practical use case
36


# Page. 37

![Page Image](https://bcdn.docswell.com/page/LJ359GW475.jpg)

msticpyの実践的な活⽤に向けて
• Push⽅向は気兼ねなく使いやすい
• 外部から収集し、分析・加⼯したインテリジェンスをSIEMに転送
• Pull⽅向に「データ転送のセキュリティ懸念」
• msticpyだけのために新規にセキュリティ設計を１から計画するのはハードルが⾼い
• SIEMベンダーのJupyterで⾼度に分析する仕掛け
• MS Sentinel ☞「Microsoft Azure Machine Learning Workspace」
• データ転送がAzure内で完結。
• Splunk ☟
「Splunk App for Data Science and Deep Learning (DSDL)」
• 外部にDockerコンテナなどのマシンリソースを準備
• コンテナとSplunkとの間でデータのやりとりを⾏う
• msticpyをコンテナ側にインストール
+ 資格情報は、「Azure Key Vault」 に保存して、そこから読み込む
msticpy
Splunk DSDL
37


# Page. 38

![Page Image](https://bcdn.docswell.com/page/8JDDG1K5JG.jpg)

$more Splunk App for DSDL
！
！
• single-instance | side-by-side
• 実装されているデータセキュリティ機能
• 独⾃のSSL証明書の利⽤
• Jupyterのカスタムパスワード設定
• Splunkアクセストークンによる細かいACL設計
• Splunk MLTKのコマンドでコンテナとやりとりできる
• | ﬁt （学習⽤データに対して訓練して、モデルを作る）
• | apply （識別⽤データに対して、訓練したモデルを適⽤する）
38


# Page. 39

![Page Image](https://bcdn.docswell.com/page/VEPX3QKDJ8.jpg)

利⽤例: Powershellのプロセスコマンドライン(1)
| fit
Search in
Splunk
モデル作成に初回必須
powershell
-enc
Decode
base64
Delete null
byte (¥x00)
Extract IoC
Enrichment
IoC
Return to
Splunk
| apply
元々は機械学習アルゴリズム⽤の仕組みだが、ms&lt;cpyを組み込んだカスタムモデルを開発してみた
ﬁtコマンドを実⾏することで、app/modelディレクトリに
.ipynbからのエクスポート関数で構成された .py ファイル
が作成される
hOps://github.com/Tatsuya-hasegawa/MSTICPy_u6ls/blob/main/splunk_dsdl/ms6cpy_powershell_ioc.ipynb
39


# Page. 40

![Page Image](https://bcdn.docswell.com/page/27VL45VGEQ.jpg)

利⽤例: Powershellのプロセスコマンドライン(2)
fit
※例: Splunk botsv2データ
apply
msticpyの結果
40


# Page. 41

![Page Image](https://bcdn.docswell.com/page/5JGX161D7L.jpg)

まとめ
•
•
•
•
•
SIEMの分析に頼りすぎないように脅威ハンティング︕
msticpyの布教活動: APACのユーザーが増えると嬉しい
Jupyter Notebookで分析し、コーディングしながら腕を磨こう
データセキュリティの懸念は、既存の仕組みにうまく乗っかろう
気に⼊ったOSSコントリビューターになろう。Happy msticpying!
41


# Page. 42

![Page Image](https://bcdn.docswell.com/page/47Q8D4DXEP.jpg)

引⽤・参考
msticpy docs https://msticpy.readthedocs.io/en/latest/
msticpy-training https://github.com/microsoft/msticpy-training
msticpy-lab https://github.com/microsoft/msticpy-lab
Splunk DSDL docs https://docs.splunk.com/Documentation/DSDL/5.1.0/User/IntroDSDL
Splunk botsv2 dataset https://github.com/splunk/botsv2
Microsoft Sentinel Notebook and msticpy https://learn.microsoft.com/enus/azure/sentinel/notebook-get-started
• papermill docs https://papermill.readthedocs.io/en/latest/
• macnica SIEM⼊⾨ (exabeam)
https://www.macnica.co.jp/business/security/manufacturers/exabeam/feature_07.html
• My Qiita about msticpy https://qiita.com/hackeT
•
•
•
•
•
•
• セキュリティエンジニアのための機械学習 https://www.oreilly.co.jp/books/9784873119076/
• awesome detection engineering https://github.com/infosecB/awesome-detection-engineering
• CardinalOps社 2023レポート https://cardinalops.com/whitepapers/2023-report-on-state-of-siem-detectionrisk/
42


# Page. 43

![Page Image](https://bcdn.docswell.com/page/KE42ZQZ271.jpg)

Thank you !
43


