Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
msticpyの実践活用: 高度な脅威ハンティングを実現すべくSIEMとの虹の懸け橋となる
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hackeT
October 10, 2023
Programming
120
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
msticpyの実践活用: 高度な脅威ハンティングを実現すべくSIEMとの虹の懸け橋となる
Japanese version
hackeT
October 10, 2023
More Decks by hackeT
See All by hackeT
ポートスキャナー入門: 正しく判断するために知っておきたいこと
hacket
0
41
OPSEC (Operations Security) について 知っておきたいこと
hacket
0
280
スレットハンティングについて知っておきたいこと
hacket
0
740
ランサムウェア攻撃について知っておきたいこと
hacket
0
280
APIセキュリティについて 知っておきたいこと
hacket
2
240
日曜フォレンジック ~デジタルカメラの写真と動画を復旧せよ~
hacket
0
86
Practical msticpy use ~ rainbow bridge to SIEM for advanced threat hunting ~
hacket
0
200
フィッシング詐欺について知っておきたいこと
hacket
1
160
知られざるLOADERマルウェアの世界
hacket
0
140
Other Decks in Programming
See All in Programming
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.1k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
410
setup-vp GitLab対応の裏側
naokihaba
0
140
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
610
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
430
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
130
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
1k
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
410
Agents on Rails - Rails at Scale 2026
irinanazarova
0
300
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
600
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
110
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
My Coaching Mixtape
mlcsv
0
330
4 Signs Your Business is Dying
shpigford
187
23k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Building Applications with DynamoDB
mza
96
7.2k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Ethics towards AI in product and experience design
skipperchong
2
400
The Mindset for Success: Future Career Progression
greggifford
PRO
0
520
Abbi's Birthday
coloredviolet
4
10k
Transcript
1
$WHOAMI • スレットハンター/アプリ開発/脅威研究 • OSS貢献者 • msticpy,unprotect,atomic-red-team,cuckoo,capev2.. • 保有資格 •
7 GIACs • CISSP、CISA • SNS • HN: hackeT • X: @T_8ase 2
$more 株式会社ゴーアヘッド KOBANZAME (IP Whois判定) Heuristic Logic (振る舞い解析) Data Visualization
(可視化) 最⼩のリソースで最⼤の効果を⽬指します。 代表取締役 中村光宏 Splunk.conf 2017@USA Splunk Champion受賞 2017年設⽴ セキュリティ課題に対し Splunkを強みとする データ分析企業 Splunkの App/Add-onを無償提供 https://splunkbase.splunk.com/apps?keyword=goahead 3
アジェンダ • SIEMの変わらない運⽤ • msticpy 101 Overview and Basics •
msticpy 201 Jupyter Notebook and ( pros | cons ) • msticpy 301 Practical use case • まとめ 4
5 SIEMの変わらない運⽤
背景と課題 6 分析︓rawログの⼈海戦術 監視︓メールアラート 分析︓フォーマット化ログの多軸検索 監視︓可視化ダッシュボード・アラー ト転送 近年 無くならない開発・運⽤タスク l
新たな脅威に追随すべく分析ロ ジックの改修・追加 l 世の中の脅威状況のみならず社 内の状況に合わせた閾値運⽤ 閾値 バグ パネル 追加 ドキュ メント 修正 更新 SIEM機能や既存ダッシュボードの バイアスで時に不⾃由な分析に陥る ⼀昔前
⽬的 脅威ハンティングとは • 能動的に悪意のある活動や脅威の予兆を発⾒し対処すること • 脅威インテリジェンスや未適⽤のIOC、異常検出などを⽤いて能動的に調査 • 仮説〜検証の繰り返し 7 ⾼度な脅威ハンティングを実現
⾼度な脅威ハンティングとは 「⾒逃しを限りなく減らす」思想 • rawデータから未検出の脅威を洗い出す • 未加⼯のデータも合わせて確認し、セキュリティ機器の処理・検出漏れも探す • 本来の⾃由なデータ分析 (アドホック) • 独⾃に考えられた切り⼝の分析ロジック • 制約のない外部連携 • 奇抜なビジュアライゼーション • 読み⼿にとって分かりやすい強調など • 継続的な更新運⽤ • 機械学習 (ML/DL) • ⾃動化
Security Information and Event Management • 主要SIEM製品 • Splunk/MS Sentinel/IBM
Qradar/ Exabeam/Sumo Logic/Elasticなど • セキュリティベンダーの囲い込みSIEM • 収集/抽出/検索/分析/可視化/検出/対応 • 独⾃の脅威ハンティング機能 • ML/DLの拡張機能 8 第⼀世代 第⼆世代 第三世代 Gartner 2005 ログとイベントの管理統合 CTIとの相関分析 ビッグデータ処理 Gartner 2017 UEBA、SOAR追加 Gartner社 2022年マジック・クアドラントより
SIEMの利点 • インデックスによる⾼速検索とフィールド正規化(CIM、ASIM) • その検索⾔語の恩恵で、統計計算が容易 • 脅威インテリジェンスを格納できる • 複数⼈が同じデータ・分析結果を参照できる •
SIEMベンダーが検出ロジックも多数提供 9
SIEMの綻び • インデックスによる⾼速検索とフィールド正規化(CIM、ASIM) • 抽出に失敗していると冒頭の検索や途中の分析から⽋落する • その検索⾔語の恩恵で、統計計算が容易 • 苦⼿な処理系が存在し、 また個別の学習コストもかかる
• 脅威インテリジェンスを格納できる • 多くのインテリジェンスは⾃前で⽤意し、運⽤する • 複数⼈が同じデータ・分析結果を参照できる • 共有リソースのため、様々な制限がある • SIEMベンダーが検出ロジックも多数提供 • 必要⼗分か︖否︕ 10
SIEMの分析に頼りすぎない • 障害が起きると、復旧まで全員が分析できない • SIEMの検索⾔語での分析のみに頼りすぎて、rawデータの分析⽅法を忘却 • データの完全性や検索結果の完全性は誰が担保してくれる? • SIEMには制限がある •
サブサーチやマルチバリューのデフォルト上限 (切り捨て) • グラフへのプロット数のデフォルト上限 (切り捨て) • 設定ミスによる検索漏れに気づけるか • 提供されたロジックのみに頼らない • Enterprise SIEMs Miss 76 Percent of MITRE ATT&CK Techniques • CardinalOps社、「2023 Report on State of SIEM Detection Risk」より 11
12 ⾼度な脅威ハンティングへ SIEM 時 系 列 分 析 ⾃ 動
化 ⼀ 貫 し た ⼊ 出 ⼒ デ ー タ 検 証 機 械 学 習 無 限 の 可 視 化 msticpy
13 msticpy 101 Overview and Basics
Microsoft Threat Intelligence Center (MSTIC) on Python and Jupyter notebooks
• MSTICpy: Microso/社のMSTICが開発したOSSライブラリ • Pythonで書かれ、主にJupyter notebook上で利⽤できる • 侵害調査・脅威ハンティングを⾏うための機能が豊富 • 2019年3⽉~ 200k+ ダウンロード数 h:ps://github.com/microso//msBcpy • BlackHat USA 2020で発表あり • 最近も頻繁に更新されており進化し続けている • アジア・⽇本での活⽤や、紹介ブログがいまだ少ない • ⼤きく分割すると以下の4つのジャンルに分類される • ライブラリ化されているため欲しい機能だけ断⽚的に利⽤可 14 msticpy データ取り込み データ加⼯ 機械学習も含めて分析 グラフによる可視化
msticpyドキュメンテーション&リソース • MSTICpy ☞ msticpy に本発表では統⼀ • 公式ドキュメント • https://msticpy.readthedocs.io
• ワードカウント 10万以上 • RSTファイル 80以上 • Jupyter Notebook サンプル数 40以上 • 過去のトレーニング資料も公開 • msticpy-lab、msticpy-trainingレポジトリ • 公式ブログ • https://msticpy.medium.com 15 リソースが豊富すぎて逆に習得には時間がかかることも
msticpy 機能の概要 16 Querying Logs Data Visualization Utility Pivot Data
Enrichment Security Analysis ms<cpyconfig.yaml Acquisition Visualization Enrichment Analysis Analysis Analysis h"ps://twi"er.com/fr0gger_/status/1623209441146593281?s=61&t=v8tLnMcFFdnsiT38CeGBcg
17 msticpyデータフロー図 SIEM DataLake (SIEM) raw Jupyter Notebook Internet Acquisi6on
Enrichment Analysis Visualization rich p Threat Intel Lookup p Whois, GeoIP p Decode p Extract p ML Local Local upload
msticpy:データ取り込み Acquisition (1) • Query Providerインスタンスを作成 • 左のデータソースから選択できる 18 LocalData:
./dataフォルダ内の.pklローカルファイルに接続の⼀例 Splunk: msticpyconfig.yaml を参照し、SplunkのREST APIに接続 通信は独⾃に暗号化されない => HTTPS (SSL) が必須
• 戻り値は、Pandas DataFrame • アドホック関数 • exec_query(): 任意のクエリ実⾏ • 組み込みクエリ関数
• 選択式 (データソース毎に異なる) 19 msticpy:データ取り込み Acquisition (2)
msticpy: 価値の付与 Enrichment • 戻り値は、Pandas DataFrame • Threat Intel Lookup
• Pivot TI 関数 (Jupyter Notebook上のみ可) • TILookupクラス (Pythonコード⽚でも可) • GeoIP (MaxMind GeoLite2, IPStack) • IPWhois (Cymru, RADB, RDAP) 20
msticpy: 分析 Analysis (Utility) • Base64 Decode • IoC Extract
21
msticpy: 分析 Analysis (Pivot) • Pivot Functions 基本的には”init_notebook()”によるロードが必須 • msticpyの関数やクラスをラップし、発⾒しやすく、使いやすくする
• 関数のパラメータ、構⽂、出⼒形式を標準化する • .mp_pivotを多段にパイプ接続できる 22
msticpy: 分析 Analysis (Security) • Event Clustering • ホストマシン上のプロセスイベントやログオンイベントの分類 •
Time Series Analysis • 季節変動を考慮した時系列データの異常検出 • Outlier Identification • 決定⽊を利⽤した外れ値検出 • Anomalous Session • 尤度の低い稀なイベントシーケンスの検出 • イベントのコマンド列、パラメータ名、パラメータ値の3つまでを特 徴量として利⽤ 23
msticpy: 可視化 Visualization • BokehJSで実装 • msticpyで実装している可視化グラフ • Timeline,ProcessTree,Folium Map,Matrix
Plot, Entity/Network Graph など • MorphChartsで組み込みチャートを作成できる 24
25 msticpy 201 Jupyter Notebook and ( pros | cons
)
Jupyter Notebookで分析する恩恵 • 途中結果のアプトプットを出⼒できるデータの再現性 • 外部ソースとの結合・統合の容易性 • 機械学習フレームワークの利⽤しやすさ • 豊富な可視化ライブラリを⾃由に活⽤
• データサイエンティストとして応⽤⼒が⾝に付く 26
Jupyter NotebookとSIEMの理想的な関係 27 msticpy SIEM ⾼度な脅威ハンティング インテリジェンス ナレッジ ノイズ除去されたデータに対する 深堀分析
⼤雑把なノイズ除去
msticpyʼs pros: Seasonal-Trend decomposition using LOESS 28 著書: 「セキュリティエンジニアのための機械学習 6章
異常検出」でも取り上げられている機能
msticpyʼs pros: ⼀貫した⼊出⼒ • Data Uploader機能による出⼒(転送) • 2023年8⽉時点で Azure SentinelとSplunkのみ対応
• DataFrame、ファイル、フォルダをアップロード可能 29 OSINT (Internet) SIEM ms6cpy SIEMをエンリッチメント︕ 可視化したチャートは転送できないが 分析結果の表を転送できると、 類似のチャートはSIEMでも描ける
Jupyter & msticpyʼs pros: データ検証 • Pandas DataFrameを逐次確認できる • copy()により退避しておけば誤った上書きに安⼼
• 値の型変換やNULL値への対応も容易 • ⽂字コードの確認や変換も楽々 • タイムレンジをGUIで操作 ☞ • QueryProviderの組み込みクエリ関数もprintオプションで事前確認 30 検索予定のクエリ
Jupyterʼs pros: ML/DLの利⽤ • msticpyにビルトイン実装されているMLモデルは少ない • Event Clustering ☞ scikit-learnのDBSCAN
• Time Series Analysis and Anomaries ☞ statsmodelsのSTL • Outlier Identification ☞ scikit-learnのIsolationForest • ”よく使う脅威ハンティングの⽤途に特化しているため、パラメータチ ューニングの必要が少ない • Pythonの豊富なライブラリが⾃由に使える柔軟性 31 ⾃然⾔語処理系 機械学習系 深層学習系
Jupyterʼs pros: 無限の可視化 32 Splunk MS Sentinel Jupyter 10,000 10,000
♾ (Infinity) データプロット上限数(デフォルト) Splunkのデータ切り捨て部分
[参考] ダッシュボードオプションで上限を変更 • Splunkではダッシュボードオプション「charting.data.count」で上限を変更できるが・・ 33
• Pythonライブラリ • ノートブックファイルを(パラメーターを変えて)バッチ実⾏ • msticpyのFIRECONのトレーニング資料の最後でも”Put it into Operation”で紹介されている⼿法 34
outputノートブックではパラメータが上書きされている CUI Python Jupyterʼs pros: papermillで⾃動化
• SIEM内の機微なデータも外部のJupyterに転送できる可能性 • SIEM側のACLで対応せざるをえない • 外部のJupyterへのデータ転送中の盗聴、MITM攻撃の可能性 • SIEM側のSSLセキュリティ依存 • セキュリティ設計がより煩雑に
• SIEMへ脅威インテリジェンス の転送は⽐較的クリア 35 SIEM msticpy (Jupyter) ʂ Jupyterʼs cons: データ転送の懸念
36 msticpy 301 Practical use case
msticpyの実践的な活⽤に向けて • Push⽅向は気兼ねなく使いやすい • 外部から収集し、分析・加⼯したインテリジェンスをSIEMに転送 • Pull⽅向に「データ転送のセキュリティ懸念」 • msticpyだけのために新規にセキュリティ設計を1から計画するのはハードルが⾼い •
SIEMベンダーのJupyterで⾼度に分析する仕掛け • MS Sentinel ☞「Microsoft Azure Machine Learning Workspace」 • データ転送がAzure内で完結。 • Splunk ☟ 「Splunk App for Data Science and Deep Learning (DSDL)」 • 外部にDockerコンテナなどのマシンリソースを準備 • コンテナとSplunkとの間でデータのやりとりを⾏う • msticpyをコンテナ側にインストール 37 msticpy Splunk DSDL + 資格情報は、「Azure Key Vault」 に保存して、そこから読み込む
$more Splunk App for DSDL • single-instance | side-by-side •
実装されているデータセキュリティ機能 • 独⾃のSSL証明書の利⽤ • Jupyterのカスタムパスワード設定 • Splunkアクセストークンによる細かいACL設計 • Splunk MLTKのコマンドでコンテナとやりとりできる • | fit (学習⽤データに対して訓練して、モデルを作る) • | apply (識別⽤データに対して、訓練したモデルを適⽤する) 38 ʂ ʂ
利⽤例: Powershellのプロセスコマンドライン(1) 39 Search in Splunk powershell -enc Decode base64
Delete null byte (¥x00) Extract IoC Enrichment IoC Return to Splunk | fit | apply モデル作成に初回必須 元々は機械学習アルゴリズム⽤の仕組みだが、ms<cpyを組み込んだカスタムモデルを開発してみた hOps://github.com/Tatsuya-hasegawa/MSTICPy_u6ls/blob/main/splunk_dsdl/ms6cpy_powershell_ioc.ipynb fitコマンドを実⾏することで、app/modelディレクトリに .ipynbからのエクスポート関数で構成された .py ファイル が作成される
利⽤例: Powershellのプロセスコマンドライン(2) 40 ※例: Splunk botsv2データ fit msticpyの結果 apply
まとめ • SIEMの分析に頼りすぎないように脅威ハンティング︕ • msticpyの布教活動: APACのユーザーが増えると嬉しい • Jupyter Notebookで分析し、コーディングしながら腕を磨こう •
データセキュリティの懸念は、既存の仕組みにうまく乗っかろう • 気に⼊ったOSSコントリビューターになろう。Happy msticpying! 41
引⽤・参考 • 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/en- us/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-detection- risk/ 42
43 Thank you !