脅威インテリジェンスの教科書の「脅威ハンティング」の章を読み直して、SIEM によるアラート検知を整理してみた

昨年購入していた「脅威インテリジェンスの教科書」ですが、再度必要に駆られて「脅威ハンティング」の章を読み直してみました。

脅威ハンティングの章ではありますが、日々のSIEMを使った攻撃検知方法の整理としても有用ではないかと感じた為、ここに記しておきます。(文中に記載のマトリックスは本教科書を読んで独自にまとめたものです。)

SIEMを利用したログ分析への考察

SIEM では、集めてきたログを分析して通常とは異なる状況(アノマリ)が発生した場合にアラートを発生させます。これは脅威ハンティングと共通するものがあると思います。

上記教科書では、脅威ハンティングにおけるアノマリ分析の種類としては、技術的な異常である「技術的アノマリ」と、技術的には問題ないが文脈(業務の内容や時間帯など)的に異常である「文脈的アノマリ」があるとしています。

そこで SIEM によるアラート検知でもこの考え方を元に整理してみました。

また、それぞれのアノマリ状態をSIEMで見つける方法としては、「ベースライン分析」「インテリジェンス分析」「頻度分析」「タイミング分析」などがあると考えています。(なお、上記教科書の中では、明に「インテリジェンス分析」とは書かれていませんので著者の意図とは異なるかもしれません。)

種別分析方法分析の具体例
技術的アノマリベースライン分析導入済のセキュリティ機器で防御できていない攻撃手法(TTPs)の検知(*1)(ただし、ログやアラートはSIEMに存在する前提)
ベースライン分析正当なアプリケーションになりすました逸脱の検知
ベースライン分析アカウント名が命名規則にしたがっていないものの検知
ベースライン分析引数やURL自体に暗号化された文字列が仕込まれた通信(*2)
インテリジェンス分析悪意のある活動を示す痕跡(IoC)が含まれているものを検知(IoCを一般化する方法もあり)
文脈的アノマリベースライン分析通常のユーザ活動から逸脱(異なる部門間での端末間でのPsExec(*3)を使った通信など)しているアカウントの検知
頻度分析通常アクセスしない国への接続検知(頻度が少ないものを検知)
頻度分析普段実行されないプロセス(ファイルパス含む)の検知(頻度が少ないものを検知)
頻度分析同一ドメインへの大量のDNSクエリなど(頻度が多いものを検知)
タイミング分析認証、外部への通信など普段業務を行っていない時間帯に実施された行動の検知
ベースライン分析プロセスの停止、ログ削除、ファイル削除の検知
SIEMにおけるアラート検知分類
*1 : 数が多い為、優先順位としてはBlue Teamが注目すべき優先度の高い検知ポイント等を優先とする
*2 : 暗号化文字列かどうかをどう判断するかが課題
*3 : SysinternalsのPsToolsに含まれるユーティリティ

なお、頻度分析は、LOTL/LoLBaS攻撃にも有効とのことです。

また、本書を読むまで、UEBA は SIEMと同じ位置づけ(日々アラートを出すので)だと考えていましたが、脅威ハンティングツールとしても利用可能と理解しました。(というか UEBA をそちらの位置づけで考えた方が、個人的にはすっきりしました。)

改めて本書を読み直し、セキュリティ関係者が読むべき良書と感じました。

新規にMITER ATT&CKベースでSplunkの監視ルールを作成する際の手順を整理してみた

新規にSplunkで監視ルールを作成する際の情報が流れとしてまとまったサイトがなかったのでまとめてみました。

1.Splunk に取り込むログを出力する機能を整理

例えば、AADRiskyUsersのログであれば、Identity Protectionの機能から出力されるよね、といったことを整理していく。

リスク データをエクスポートする(Microsoft Learn)
https://learn.microsoft.com/ja-jp/entra/id-protection/howto-export-risk-data

2.ログ出力機能から検知可能なATT&CKのテクニックを整理

ログを出力する機能が分かれば、MITRE CTID やDTT&CTなどを使って、ATT&CKのどのテクニックが検知できるか確認する。

Microsoft Azure Security Control Mappings to MITRE ATT&CK®(MITRE CTID)
https://center-for-threat-informed-defense.github.io/security-stack-mappings/Azure/README.html

rabobank-cdc / DeTTECT
https://github.com/rabobank-cdc/DeTTECT

3.テクニックを検知する為のSPLを検討

検知できそうなテクニックがわかったら、それに該当する検知ルールを Splunk Security Content や Sigmaルールを活用し検討する。

Splunk Security Content
https://research.splunk.com/detections/

SigmaHQ / sigma
https://github.com/SigmaHQ/sigma/tree/master/rules/cloud

NVISOsecurity / sigma-public
https://github.com/NVISOsecurity/sigma-public

夜景No.1と名高い「みたまの湯」に昼間にいってきたら、ホトトギスやキビタキなど野鳥もたくさんいそうだった件

昨日、おやすみをとって、山梨県の南甲府ICちかくにある「みたまの湯」にいってきました。

みたまの湯

入浴料は意外とやすく、2人で1400円台でした。(ひとり700円ちょっと。)

またお風呂のそばにはサウナもあり、せっかくなので汗を流してきました。

お風呂からあがったあとは、畳の部屋で暫し休憩。

そのあと、大浴場のそばにある食事処へ。

この日は標準のメニュー意外にエビフライとお刺身定食(2000円)があったので、それを注文しました。

エビフライとお刺身定食

えびがなかなか大きくて、納得の2000円でした。

そのあと、そとの農産物売り場へ。

どうやらとうもろこし(甘甘娘)が売りのようでしたので3本購入してかえりました。(家に帰ってからたべましたが、めちゃめちゃ甘かったです!)

外の農産物売り場

ちなみに駐車場からの見晴らしはこの通り。佇んでいると、ホトトギスやキビタキの声がきこえてきました。あまり近所の人に迷惑にならないようにしなければいけませんが、周辺では野鳥観察もできそうです。

駐車場からの見晴らし

なお、お風呂からは八ヶ岳も見えました。

台風がきていたのでちょっとくもってはいましたが、金曜日にゆっくりできてなかなかよい週末になりました。

台所の排水管を詰まらせない為の2つの対策を大家さんに教えてもらった話(高温水&パイプマン)

私の住んでいる賃貸アパートのキッチンの排水管の流れが悪くなって、お皿をあらっている時に、下水が下から溢れ出るようになってしまいました。

そこで大家さんに電話してきてもらったのですが、その時に普段から排水を詰まらせないようにする2つの方法を教えてもらいましたので共有しておきます。

ちなみに詰まり自体は、大家さんが長く太い針金を折り曲げたものを持参して、お湯をながしながらそれでつまったところを突いていたら、すぐに解消しました。

1.60度のお湯を流す

我が家のキッチンは比較的綺麗な方だといわれましたが、それでも定期的にメンテナンスはしておいた方がよいとのことです。

具体的には給湯器の温度をマックス(我が家の場合は60度)にし、2〜3分くらい流し続けると、パイプの汚れが落ちてくれるとのことです。

我が家の給湯器のコントローラ

給湯器で60度まで温度を上げられると思っていなくて、ちょっとびっくりしました。

2.パイプクリーナをつかう

1.の対応でつまりが解消しなければ、ということで大家さんがもってきてくれた2つ目のアイテムが、以下のパイプクリーナーでした。

大家さんからいただいたパイプマン

結局、今回、大家さんの針金&60度のお湯による対応でつまりが解消したのであまり使いませんでしたが、今後の為にということで、そのまま大家さんからいただきました。

大家さん、ありがとうございました。

Splunk Security Essentials に含まれている検知ルールにどんなものがあるが確認してみる

Splunk Security Essentials には様々なソース(監視対象ログ)に対する MITER ATT&CK に対応した検索文が用意されている。

この検索文を定期的に実行することで、該当するログが発生したときにアラートを発生されることも可能であり、とても有用な Appsになっている。

Analytic Story Detail

例えば、Security Essentials のメニューから「Analytic Story Detail」を選択してみます。

Splunk Security Essentials

すると下図のように、プルダウンが表示され、 Active Directory などさまざまなログソースを選択することができます。

Splunk Security Essentials – Analytic Story Detail

以下は 「Office 365 Detections」を選んだ結果ですが、「O365 Added Service Principal」など様々なログを検知する検索文とそれが MITER ATT&CKのどれに相当するのかが記載されています。

Splunk c- Analytic Story Detail検索例1
Splunk Security Essentials – Analytic Story Detail検索例2

Ransomware Content Browser

また、Security Essentials のメニューから「Ransomware Content Browser」を選択すると、ランサム攻撃のライフサイクルを可視化した図と共に、それぞれのシーンに該当するログが発生していないか検索することができるようです。(実際に試してはいませんが。。。)

Splunk Security Essentials – Ransomware Content Browser

SIGMAルールのリポジトリ(GITHUB)からZIPをダウンロードし、どんなルールが含まれているか MITER ATT&CKにマッピングしてみた

Github 上などに標準化された SIEM ルールである SIGMAルールがたくさんおかれているのですが、これらのルールが ATT&CKのどの TTPs に該当するものなのか確認したいと考えていました。

調べてみたところ、SIGMAルールを PCにダウンロードし、sigmatools に含まれる sigma2attack というコマンドを実行すれば ATT&CK Navicgator のヒートマップが作れるということがわかってきたので、実際にやってみました。

1.ZIP(SIGMAルール)のダウンロード

以下のような Github サイトの SIGMAリポジトリにアクセスします。

Github - SigmaHQ/sigma 
https://github.com/SigmaHQ/sigma

すると、rules ディレクトリ配下にたくさんの SIGMA ルールが置かれていることが確認できます。

Github – SigmaHQ/sigma

このページを下にスクロールしていくと、「Rule Packages」という項目があるので、その中のリンク「release page」をクリックします。

Github – SigmaHQ/sigma

すると、さきほどの SIGMAルールがまとめて Zip化されて置いてあるページにとばされるので、その中から、sigma_all_rules.zip などをダウンロードします。

Github – SigmaHQ/sigma – Release

ZIPファイルをダウンロード後、ローカルのPC上で SIGMAルールを展開します。

Github – SigmaHQ/sigma – Release

2.ヒートマップ(json)ファイルの作成

1.で展開した SIGMAルールから MITER ATT&CK Navigator に取り込むヒートマップを作成するには、最初に書いたとおり sigmatools が必要ですので、以下の要領でダウンロード&インストールします。

 % pip3 install sigmatools

インストールが終わったら以下のような形式で sigmatattack コマンドを実行すれば、heatmap.json というファイルが、コマンドを実行したディレクトリに作成されます。

% sigma2attack --rules-directory ./rules

ちなみに、先ほど展開した SIGMAルール はコマンドを実行する直下の /rules フォルダに展開されている為、上記では –rules-directory でそのフォルダを指定しています。

3.ATT&CKへのヒートマップの取り込み

2.で作成した heatmap.json というファイルを MITER ATT&CK Navigator から取り込みます。

MITER ATT&CK Navigator
https://mitre-attack.github.io/attack-navigator/

下図の赤枠で示したボタンを押し、先ほどローカルPCで作成した heatmap.json を指定し取り込みます。

MITER ATT&CK Navigator

なお、取り込む際に以下のように取り込むヒートマップの ATT&CK対応バージョンが古い(v10)とでますので、最新の v15に変換するか聞かれました。(Yesと答えました。)

MITER ATT&CK Navigator – warning

すると、以下の通りMITER ATT&CK Navigator上にヒートマップが取り込まれ、該当する部分が色付きで表示されました。

MITER ATT&CK Navigator

SIGMAルールから Splunkルールに変換する

SIGMAルールとは、Splunk など製品固有の言語(SPLなど)で書かれた検知ルールではなく、より汎用的?に記載された検知ルールのようです。

したがって、SIGMAルールがあれば、そこから Splunk や Sentinelなどいろいろなベンダーの SIEM で利用できる検知ルールが作成できます。

ちなみに SIGMAルールは以下のGITHUBのサイトなどに置かれています。

GITHUB
https://github.com/SigmaHQ/sigma/tree/master
https://github.com/NVISOsecurity/sigma-public

なお、SIGMAルールから各SIEM固有の検知ルールを生成する方法としては、 Webサイトのサービスを利用する方法とコマンドラインの2通りがありそうです。

WebでのSIGMAルール → 各SIEM向けルール変換

Webサイトとしては、以下のUNCODER.IOが有名のようです。

UNCODER.IO
https://uncoder.io/

以下が実際の画面ですが、変換先を見ると Splunk, Sentinel, QRader, XSIAMと有名どころのSIEMへの変換が可能なようです。

UNCODER.IOサイト

そして実際に Splunkの SPLに変換してみたのがこちらです。変換後はシンプル&見慣れた表現なので少しわかりやすいですね。

UNCODER.IOサイト

コマンドでのSIGMAルール → 各SIEM向けルール変換

コマンドとしては sigmatools というものがあるようで、以下のコマンドで簡単にインストールできます。

% pip3 install sigmatools

そして、UNCODER.IOで変換したものと同じSIGMAルールを sigmac コマンドでも変換してみた結果がこちらです。

% vi tmp/proxy_susp_flash_download_loc.yml
% sigmac -t splunk -c splunk-windows tmp/proxy_susp_flash_download_loc.yml
(((c-uri="*/flash_install.php*" OR c-uri="*/install_flash_player.exe") NOT ((cs-host="*.adobe.com"))))

-t の引数で変換先の SIEM として Splunk を指定しています。

Webで変換したものと大体一緒ですが、なぜか先頭に “source=”が付いていませんね。引数が足りないのかな?

<参考サイト>
・Sigmaルールのすすめ(Qiita)(https://qiita.com/sec-chick/items/4416bff231d7a55da75a)
・SIEMクエリ変換ツール「Sigma」を使ってみた(DeveloppersIO)(https://dev.classmethod.jp/articles/sigma-siem-transition-tool/)
・SIEMシステム用シグネチャフォーマット「Sigma」とSigmaルールの変換ツール「Uncoder.io」のご紹介(NEC)(https://jpn.nec.com/cybersecurity/blog/221014/index.html)

DeTT&CTを使って指定したログソースでMITER ATT&CKのどのTTPsが検知できる可能性があるのか確認してみた

前回、DeTT&CTをインストールしてみました。

http://k2-ornata.com/dettck_install

そこで今回は、 DeTT&CTを使うと SIEMで保有しているログソースで、MITER ATT&CKのどのTTPsを検知できる(可能性がある)か確認できるようなので、試してみることにしました。

YAMLファイルを作成する

とりあず Zscalerのログがある場合を想定し、試してみました。

DeTT&CTの画面の左ペインにある DATA SOURCESをクリックすると以下のような画面がでるので、必要な項目を入力していきます。

DeTT&CT
①「New File」を選択
②「Name」を適当に入力
③「Add Data Source」をクリック
④「Data Source」のカテゴリを選択
⑤ Data Sourceの入手状況などを適当に入力
⑥「Save YAML file」を押して、Downloadsディレクトリのファイルを保存

この操作によりDownloadsディレクトリの配下に、「data-sources-new.yaml」というファイルが生成されます。

なお、上図の①〜⑤を順番に行っていけばいいのですが、④のカテゴリを何にすればいいのかが一番悩むところだと思います。

そこで、④を決める際に以下のコマンドを打って、そもそもどんな Data Souceカテゴリがあるのか確認します。

% python dettect.py generic -ds
Count Data Source Platform(s)
-------------------------------------------------------------------------
280 Command Execution Containers, Linux, Network, Windows, macOS
247 Process Creation Linux, Windows, macOS
108 File Modification Linux, Network, Windows, macOS
102 File Creation Linux, Network, Windows, macOS
99 OS API Execution Linux, Windows, macOS
94 Network Traffic Flow IaaS, Linux, Windows, macOS
85 Network Traffic Content IaaS, Linux, Windows, macOS
83 Application Log Content Google Workspace, IaaS, Linux, Office 365, SaaS, Windows, macOS
67 Windows Registry Key Modification Windows
61 Network Connection Creation IaaS, Linux, Windows, macOS
55 Module Load Linux, Windows, macOS
49 File Access Linux, Network, Windows, macOS
48 Web [DeTT&CT data source] Windows, macOS, Linux, IaaS, Office 365, Google Workspace, SaaS,
Network, Containers
47 File Metadata Linux, Network, Windows, macOS
39 Logon Session Creation Azure AD, Google Workspace, IaaS, Linux, Office 365, SaaS, Windows,
macOS
31 Script Execution Windows
・・・

今回、Zscalerは「Web [DeTT&CT data source]」に該当するとおもわれたので、これを選択しています。

この辺については、以下のURLが参考になるのではないかと思われます。

DeTT&CT data sources
(https://github.com/rabobank-cdc/DeTTECT/wiki/DeTT&CT-data-sources#web)

また、以下のサンプルでは、Zscaler のData sourceが Web [DeTT&CT data source]に設定されています。

DeTTECT
(https://github.com/rabobank-cdc/DeTTECT/blob/master/sample-data/data-sources-endpoints.yaml)

YAMLをファイル JSONファイルに変換する

MITER ATT&CK Navigator にDeTT&CTで作成した情報を取り込むには、JSONファイルに変換する必要があるので、以下のコマンドを実行します。

前述の通り Downloadsディレクトリの配下に、「data-sources-new.yaml」というファイルが生成されますので、ここから JSONファイルを生成するには以下のようにコマンドを実行します。

% python dettect.py ds -fd /Users/(ディレクトリ名)/Downloads/data-sources-new.yaml -l

すると、DeTT&CTをインストールしたディレクトリDeTTECTの配下の tmp フォルダに jsonファイル(data_sources_example.json)が作成されます。

MITER ATT&CK Navigatorにインポートしマッピングする

MITER ATT&CK Navigatorトップページの「Open Existing Layer」から「Upload from local」を選択し、先ほど YAMLから変換して生成した「data_sources_example.json」ファイルを取り込みます。

MITER ATT&CK Navigator

すると、以下のとおり Zscalerのログで検知できる可能性のある TTPSが色塗り(下図の紫部分)されて表示されます。

MITER ATT&CK Navigator

MITRE ATT&CKの補助ツール DeTT&CTをインストール&起動してみた

Splunk にていろいろなログソースをつかった検知ルールをつくりたいと考えていたところ、DeTT&CTというツールを見つけたのでインストールしてみた。

まだはっきりと理解していませんが、各ログソースから MITRE ATT&CK のどの TTPs に該当する検知ができるかマッピングする際に利用できるツールではないかと考えています。

1.インストール

インストールは意外と簡単で、Macのコンソールからおもむろに以下のコマンド(太字部分)を打ち込んでいくだけで大丈夫です。

% git clone https://github.com/rabobank-cdc/DeTTECT.git
% cd DeTTECT
DeTTECT % cat requirements.txt
DeTTECT % pip install -r requirements.txt

2.起動

インストールが終わったら DeTT&CTを起動します。
起動は、DeTTECTディレクトリ配下にある detteck.py をつかって以下のコマンドを実行するだけです。

DeTTECT % python dettect.py editor
Editor started at port 8080
Opening webbrowser: http://localhost:8080/

実行すると自動的にブラウザが起動し、以下の画面が表示されます。

ScreenshotDeTT&CT起動直後

<参考サイト>

・How to Download DeTT&CT Editor For MITRE ATT&ACK Techniques(https://systemweakness.com/how-to-download-dett-ct-editor-for-mitre-att-ack-techniques-dd41b21ebcfe)
・MITRE Practical Use Cases(Youtube、https://www.youtube.com/watch?v=1zgpTR6D3M8&list=LL&index=2&t=168s)
・MITRE DeTTECT – Data Source Visibility and Mapping(Youtube、https://www.youtube.com/watch?v=EXnutTLKS5o)

ロードスターNC2の夏タイヤをBRIGISTONE POTENZA S007に交換しました

これまでロードスターの夏タイヤとして使っていたBRIGISTONE POTENZA S001が今年の春で7年目を迎えました。

いつもタイヤはタイヤ館さんに預かっていただいており、今回も交換してもらったのですが、その時にタイヤの表面にヒビが入っていますよと言われ、よくよく見てみると確かにタイヤの接地面にびっしりこまかなヒビが入っていました。(ただ、このタイプのタイヤは新しくてもヒビが入りやすいらしいですが。特にフロントタイヤは入りやすいとのこと。)

どうやらこの状態だと雨の日にスリップしやすいらしいので、思い切って新しいタイヤを購入することにしました。

そこでタイヤ館の人が薦めてくれたのが、このBRIGISTONE POTENZA S007でした。

BRIGISTONE POTENZA S007

7年履いて、S001がS007に変わっていることを考えると、どうやら毎年番号が一つずつ上がっているようですね。

ちなみにサイズは 205/45 R17 です。どうもこのサイズはタイヤの選択肢がすくなく、スポーツタイプ用、スポーツ用、レース用といった形の3種類しかないようです。POTENZAは真ん中のスポーツ用だったと思います。

サイズは 205/45 R17

お値段は、多少値引きはしてもらったものの4本で、163,000円でした。

年間で考えると30,000円弱くらいですね。

またS001から S007 に履き替えた感じですが、さすがに7年前のものをつかっていたので、それに比べるとかなりしっとり路面に吸い付いている感じはしますね。(振動もすくなくなったような。)

BRIGISTONE POTENZA S007 トレッドパターン(1週間履いたあと)

このタイヤであと5年はロードスターと一緒に走っていければと考えています。