Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
msticpyの実践活用: 高度な脅威ハンティングを実現すべくSIEMとの虹の懸け橋となる
Search
hackeT
October 10, 2023
Programming
96
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
29
OPSEC (Operations Security) について 知っておきたいこと
hacket
0
220
スレットハンティングについて知っておきたいこと
hacket
0
700
ランサムウェア攻撃について知っておきたいこと
hacket
0
270
APIセキュリティについて 知っておきたいこと
hacket
2
230
日曜フォレンジック ~デジタルカメラの写真と動画を復旧せよ~
hacket
0
80
Practical msticpy use ~ rainbow bridge to SIEM for advanced threat hunting ~
hacket
0
180
フィッシング詐欺について知っておきたいこと
hacket
1
150
知られざるLOADERマルウェアの世界
hacket
0
130
Other Decks in Programming
See All in Programming
New "Type" system on PicoRuby
pocke
1
1k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
A2UI という光を覗いてみる
satohjohn
1
150
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
750
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
160
1B+ /day規模のログを管理する技術
broadleaf
0
110
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
160
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.8k
Oxlintのカスタムルールの現況
syumai
6
1.2k
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.4k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
What's in a price? How to price your products and services
michaelherold
247
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
4 Signs Your Business is Dying
shpigford
187
22k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
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 !