Japan
サイト内の現在位置
SIEMシステム用シグネチャフォーマット「Sigma」とSigmaルールの変換ツール「Uncoder.io」のご紹介
NECセキュリティブログ2022年10月14日
NECサイバーセキュリティ戦略統括部セキュリティ技術センターの油布です。
Sentinel、Splunk、Arcsight、Kibana、SumoLogic等、複数のSIEMを導入しているため、各SIEMで異なるクエリを書かれている方はいらっしゃるのではないかと思います。
今回ご紹介するSIEMシステム用シグネチャフォーマット「Sigma」では、検知したい内容を「Sigma」ルールで書くことにより、各SIEM形式のルールに変換してくれます。また、「Sigma」ルールの変換ツールである「Uncoder.io」は、ブラウザ上で「Sigma」ルールから各SIEMのクエリに変換してくれるため、ソフトウェアのインストールなども必要ありません。
それでは、SIEMシステム用シグネチャフォーマットである「Sigma」と、「Sigma」ルールの変換ツールである「Uncoder.io」を紹介していきます。
「Sigma」について
「Sigma」とは、ログイベントをわかりやすく記述することができる、汎用的なシグネチャフォーマットです [1]。既存ツールとして、マルウェア等の悪意のあるファイルに対する検知ルールである「Yara」や、ネットワークトラフィックに対する検知ルールである「Snort」などがあります。しかし、これらの既存ツールでは、ログイベントに対する検知ルールを記述できません。「Sigma」は、SIEMを使って悪意のあるファイルやネットワーク接続を検出するためのメカニズムを、定義、共有、収集します。「Sigma」を使用することで、脅威のハンティングと検知を単一のプラットフォームに依存することがないため、技術の乗り換えや入れ替えが困難な状況を改善してくれます。

「Sigma」では、以下の製品をサポートしています。(2022/10/07時点)
<サポートされている製品>
- Splunk (plainqueries and dashboards)
- ElasticSearch Query Strings
- ElasticSearch Query DSL
- Kibana
- Elastic X-Pack Watcher
- Logpoint
- Microsoft Defender Advanced Threat Protection (MDATP)
- Azure Sentinel / Azure Log Analytics
- Sumologic
- ArcSight
- QRadar
- Qualys
- RSA NetWitness
- PowerShell
- Grep with Perl-compatible regular expression support
- LimaCharlie
- ee-outliers
- Structured Threat Information Expression (STIX)
- LOGIQ
- uberAgent ESA
- Devo
- LogRhythm
- Datadog Logs
- FortiSIEM
- HAWK.io MDR
図2.「Sigma」でサポートされている製品一覧
「Sigma」ルールについて
「Sigma」ルールの構造について説明します [2]。「Sigma」ルールは、必須項目とオプション項目で構成されています。
詳細はGithubにドキュメントとしてまとめられております。
title
id [optional]
related [optional]
- type {type-identifier}
id {rule-id}
status [optional]
description [optional]
author [optional]
references [optional]
logsource
category [optional]
product [optional]
service [optional]
definition [optional]
...
detection
{search-identifier} [optional]
{string-list} [optional]
{map-list} [optional]
{field: value} [optional]
...
condition
fields [optional]
falsepositives [optional]
level [optional]
tags [optional]
...
[arbitrary custom fields]
図3.「Sigma」ルールの構造
図4は、「Sigma」ルールの構造を示したものになります。
図4中の「required」は必須項目であり、「optional」はオプション項目です。

また、表1で項目の説明を記載します。
項目名 | 項目の説明 |
---|---|
Title | ルールの内容を含む、ルールの簡単なタイトル(最大256文字) |
id [optional] | ルールの識別、ID(id属性にグローバルに一意な識別子を指定する) |
related [optional] - type {type-identifier} id {rule-id} |
関連するルールの情報 関連するルール 関連するルールのID |
status [optional] | ルールのステータス |
description [optional] | ルールと検出される悪意のあるアクティビティの説明 (最大65,535文字) |
author [optional] | ルールの作成者 |
references [optional] | ルールの元となったソースの参照先 ブログ記事、技術論文、プレゼンテーション、ツイートなど |
logsource category [optional] product [optional] service [optional] definition [optional] ... |
ログソース(検知の対象となるログデータを記述する。ログソース、プラットフォーム、アプリケーション、検知に必要なタイプについて記述) category - 例:ファイアウォール、ウェブ、アンチウィルス product - 例: Windows、apache、check point fw1 service - 例: sshd, applocker |
detection {search-identifier} [optional] {string-list} [optional] {map-list} [optional] {field: value} [optional] ... condition |
検出(ログデータに対する検索のプロパティを表すSearch-Identifierのセット) |
fields [optional] | イベントの更なる分析において興味深い可能性があり、分析者に表示されるべきログフィールドのリスト |
falsepositives [optional] | 発生する可能性のある既知のfalse positiveのリスト |
level [optional] | レベル。5つで判定(informational,low,medium,high,critical) |
tags [optional] ... [arbitrary custom fields] |
タグ。ルールをタグによって分類することが可能 |
表1.「Sigma」ルールの項目名と説明
「Uncoder.io」について
「Uncoder.io」とは、オンライン上で「Sigma」ルールを様々なSIEMやEDR、XDRに取り込める形式に変換することができるツールです [3]。「Uncoder.io」は、ブラウザ上で動くWebアプリのため、ソフトウェアやツールのインストールが必要なく、非常に使いやすいツールです。
「Uncoder.io」の使い方
「Uncoder.io」には、「Sigma」ルールを効率良く作成するためのテンプレートが複数用意されているため、これらのテンプレートから検出したい内容を導くことも可能です。
図5はテンプレートの一つであり、イベントログから“mimikatz”のキーワードを検出するルールです。

図6に”mimikaz”を検出するテンプレートを載せました。図6を参考に「Sigma」ルールの解説をします。
title: Mimikatz Use
description: This method detects mimikatz keywords in different Eventlogs (some of them only appear in older Mimikatz version that are however still used by different threat groups)
author: Florian Roth
logsource:
product: windows
detection:
keywords:
- mimikatz
- mimilib
- <3 eo.oe
- eo.oe.kiwi
- privilege::debug
- sekurlsa::logonpasswords
- lsadump::sam
- mimidrv.sys
condition: keywords
falsepositives:
- Naughty administrators
- Penetration test
level: critical
図6.「Sigma」ルールのテンプレート文(mimikatzの検出)
図6の内容を項目ごとに説明します。
Title
title: Mimikatz Use
「Sigma」ルールで検知したい内容のタイトルになります。
Description
description: This method detects mimikatz keywords in different Eventlogs (some of them only appear in older Mimikatz version that are however still used by different threat groups)
「Sigma」ルールの検知したい内容の説明になります。
ここでは、以下のように説明しております。
“この方法では、様々なイベントログからmimikatzのキーワードを検出する(そのうちのいくつかは、古いMimikatzのバージョンのみが現れるが、古いバージョンでも様々な脅威グループが使用している)。”
author
author: Florian Roth
「Simga」ルールを書いた人の名前が記述されています。
logsource
logsource:
product: windows
検知の対象となるログデータを記述します。上記では、Windowsのログを対象にしています。
detection
detection:
keywords:
- mimikatz
- mimilib
- <3 eo.oe
- eo.oe.kiwi
- privilege::debug
- sekurlsa::logonpasswords
- lsadump::sam
- mimidrv.sys
condition: keywords
検出したい内容を記述します。
“keywords”では、指定している文字列を検出します。
“condition”では、検出したい条件を記述します。
“keywords”にある内容を検出するため、“condition: keywords”と記述しています。
また今回のテンプレートではありませんでしたが、“detection”で検知したい内容を“condition”で組み合わせて指定する場合は、以下のようにand/orで記載します。
detection:
selection:
EventID: 4656
ProcessName: ‘C:\Windows\System32\hoge.exe’
keywords:
- mimikatz
condition: selection and keywords
falsepositives
falsepositives:
- Naughty administrators
- Penetration test
発生する可能性のある誤検出のリストを記述します。
“Penetration test”で、“mimikatz”を使用することがあるので、誤検出のリストに記述しています。
level
level: critical
「Sigma」ルールの内容をレベル付けします。
5段階で分類します。
informational:情報提供。
low:低。注目すべきイベントだが、インシデントになることはほとんどない。
medium:中。より頻繁に手動でレビューする必要がある関連性の高いイベント。
high:高。内部警告を発するべき関連性の高い事象で、迅速なレビューが必要。
critical:クリティカル。インシデントを示す関連性の高いイベントで、直ちにレビューが必要。
検証
検証用のルール
title: Security Eventlog Cleared
description: Some threat groups tend to delete the local 'Security' Eventlog using certain utitlities
author: Yufu
references: hxxps://jpn.nec.com/cybersecurity/blog/
logsource:
product: windows
service: security
detection:
selection:
EventID:
- 517
- 1102
condition: selection
level: high
図7.検証用の「Sigma」ルール
(*注:referencesは、NECのセキュリティブログのURLを記述しており、本ルール内容と関連があるURLではありません。)
検証用のルールでは、“logsource”で、Windowsのセキュリティログを対象にしています。
また、“detection”では、Windowsのセキュリティログの削除を示すEventID(512,1102)を表記しております。

記述した「Sigma」ルールを変換したいSIEMやEDR、XDRを選択し、「Translate」ボタンをクリックすると、変換後のクエリが記載されます。
source="WinEventLog:Security" AND (EventCode="517" OR EventCode="1102")
図9.「Uncoder.io」でSplunkに変換後のクエリ
図9のクエリは、「EventCode=”517”」となっておりますが、SplunkでWindowsのEventIDを指定する際は、「“EventID”=517」と記述する必要があります。そのため、図10のように一部修正を行いました。
source="test_audit.csv" AND ("Event ID"=1102 OR "Event ID"=512)
`comment("Uncoder.IO::source="WinEventLog:Security"AND (EventCode="517" OR EventCode="1102") ")`
図10.「Unicoder.io」の結果を参考にしたクエリ
図10のクエリを使ってSplunkでサーチをした結果、図11のようにWindowsのセキュリティログの削除を検出することができました。

まとめ・感想
今回は、関連するログイベントをわかりやすく記述することができる「Sigma」と、「Sigma」ルールの変換ツールである「Uncoder.io」を紹介しました。実際に使用してみた感想として、ログイベントの検出方法の参考になりました。私は業務において複数のSIEMを使用することがありますが、「Uncoder.io」を使用すると、各SIEMで利用できる形式に変換してくれるので、各SIEMのクエリを調査する時間も減少しました。
業務の用途によっては、使用するSIEMやEDR、XDRが増加する、もしくは乗り換えることも想定されます。利用するSIEMやEDR、XDRを増設や製品を変更した場合に、ぜひ「Sigma」や「Uncoder.io」の導入を検討してみるのはいかがでしょうか。
参考情報
- [1]
https://github.com/SigmaHQ/sigma (Florian Roth and Thomas Patzke)
- [2]
- [3]
https://Uncoder.io/(SOC Prime)
- [4]
- [5]
執筆者プロフィール
油布 翔平(ゆふ しょうへい)
セキュリティ技術センター リスクハンティングチーム
監視サービスの導入・EDR製品の検証・インシデントレスポンス対応に従事。

執筆者の他の記事を読む
アクセスランキング
2025年4月13日~4月19日に読まれた記事のランキング