Skip to content

Commit cadf377

Browse files
authored
Update RootA_Specification.md
1 parent 52bc4d5 commit cadf377

File tree

1 file changed

+91
-58
lines changed

1 file changed

+91
-58
lines changed

RootA_Specification.md

Lines changed: 91 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
- [class](#class)
1515
- [date](#date)
1616
- [mitre-attack](#mitre-attack)
17-
- [timeline](#timeline)
17+
- [detection](#detection)
18+
- [language](#language)
19+
- [body](#body)
1820
- [logsource](#logsource)
1921
- [product](#product)
2022
- [log_name](#log_name)
@@ -24,15 +26,15 @@
2426
- [audit](#audit)
2527
- [source](#source)
2628
- [enable](#enable)
27-
- [detection](#detection)
28-
- [language](#language)
29-
- [body](#body)
29+
- [timeline](#timeline)
3030
- [references](#references)
3131
- [tags](#tags)
3232
- [license](#license)
3333
- [version](#version)
3434
- [uuid](#uuid)
3535
- [correlation](#correlation)
36+
- [timeframe](#timeframe)
37+
- [functions](#functions)
3638
- [response](#response)
3739

3840
# Format
@@ -85,7 +87,7 @@ Required: *mandatory*
8587

8688
Description: The name of the rule which reflects the goal and the method used in the rule.
8789

88-
Example: name: `Possible Credential Dumping using comsvcs.dll`
90+
Example: `name: Possible Credential Dumping using comsvcs.dll`
8991

9092

9193
## details
@@ -184,7 +186,7 @@ Required: *optional*
184186

185187
Description: The date of rule creation.
186188

187-
Example: date: `2022-10-31`
189+
Example: `date: 2022-10-31`
188190

189191

190192
## mitre-attack
@@ -204,25 +206,47 @@ mitre-attack:
204206
```
205207

206208

207-
## timeline
209+
## detection
208210

209-
Format:
211+
Required: *mandatory*
210212

211-
```
212-
YYYY-MM-DD - YYYY-MM-DD: Actor1, Actor2, TLP:CLEAR
213-
YYYY-MM-DD: Actor1, Actor3, TLP:GREEN
214-
```
213+
Description: This section contains the fields that specify the detection logic and the language used to express it. See the specifications of the fields below.
215214

216-
Required: *optional*
217215

218-
Description: It has to include the name of the actor, TLP:key, and dates when the behavior described in the RootA rule was used by the Actor. On the contrary to indicators of compromise, which are Actor specific, behaviors are constant while Actor is a variable. If the TLP:key is not defined, it is perceived as TLP:CLEAR. The period can be defined with two dates (first and last seen) or with one date.
216+
### language
219217

220-
Example:
221-
```
222-
timeline:
223-
2023-01-01 - 2023-03-06: Ducktail, MerlinAgent
224-
2023-02-04: Lazarus
225-
```
218+
Format: `text (max 128 characters)`
219+
220+
Required: *mandatory*
221+
222+
Description: The field should specify the name of the SIEM/EDR/XDR in the appropriate format. See the list of supported platforms in the Possible Values section.
223+
224+
Possible Values:
225+
226+
- `sentinel-kql-query` for Microsoft Sentinel Query
227+
- `splunk-spl-query` for Splunk Query
228+
- `crowdstrike-spl-query` for CrowdStrike Query
229+
- `elastic-lucene-query` for Elasticsearch Query
230+
- `opensearch-lucene-query` for AWS OpenSearch Query
231+
- `logscale-lql-query` for Falcon LogScale Query
232+
- `mde-kql-query` for Microsoft Defender for Endpoint Query
233+
- `qradar-aql-query` for IBM QRadar Query
234+
- `sigma-yml-rule` for Sigma Rule
235+
- `athena-sql-query` for AWS Athena Query (Security Lake)
236+
- `chronicle-yaral-query` for Chronicle Security Query
237+
238+
Example: `language: splunk-spl-query`
239+
240+
241+
### body
242+
243+
Format: `text (max 8192 characters)`
244+
245+
Required: *mandatory*
246+
247+
Description: This section should contain the rule's logic. It should be a SIEM/EDR/XDR query in the native format. The query should be in one line. In case you have a multiline query, you should join lines before adding it to the RootA rule.
248+
249+
Example: `index=* source="WinEventLog:*" AND (Image="*.exe" OR Image="*.com")`
226250

227251

228252
## logsource
@@ -315,47 +339,25 @@ Description: This section provides detailed instructions on how to enable the re
315339
Example: `enable: 'Computer Configuration -> Windows Settings -> Security Settings -> Advanced Audit Policy Configuration -> System Audit Policies -> Detailed Tracking -> Audit Process Creation'`
316340

317341

318-
## detection
319-
320-
Required: *mandatory*
321-
322-
Description: This section contains the fields that specify the detection logic and the language used to express it. See the specifications of the fields below.
323-
324-
325-
### language
326-
327-
Format: `text (max 128 characters)`
328-
329-
Required: *mandatory*
330-
331-
Description: The field should specify the name of the SIEM/EDR/XDR in the appropriate format. See the list of supported platforms in the Possible Values section.
332-
333-
Possible Values:
334-
335-
- `sentinel-kql-query` for Microsoft Sentinel Query
336-
- `splunk-spl-query` for Splunk Query
337-
- `crowdstrike-spl-query` for CrowdStrike Query
338-
- `elastic-lucene-query` for Elasticsearch Query
339-
- `opensearch-lucene-query` for AWS OpenSearch Query
340-
- `logscale-lql-query` for Falcon LogScale Query
341-
- `mde-kql-query` for Microsoft Defender for Endpoint Query
342-
- `qradar-aql-query` for IBM QRadar Query
343-
- `sigma-yml-rule` for Sigma Rule
344-
- `athena-sql-query` for AWS Athena Query (Security Lake)
345-
- `chronicle-yaral-query` for Chronicle Security Query
346-
347-
Example: `language: splunk-spl-query`
348-
342+
## timeline
349343

350-
### body
344+
Format:
351345

352-
Format: `text (max 8192 characters)`
346+
```
347+
YYYY-MM-DD - YYYY-MM-DD: Actor1, Actor2, TLP:CLEAR
348+
YYYY-MM-DD: Actor1, Actor3, TLP:GREEN
349+
```
353350

354-
Required: *mandatory*
351+
Required: *optional*
355352

356-
Description: This section should contain the rule's logic. It should be a SIEM/EDR/XDR query in the native format. The query should be in one line. In case you have a multiline query, you should join lines before adding it to the RootA rule.
353+
Description: It has to include the name of the actor, TLP:key, and dates when the behavior described in the RootA rule was used by the Actor. On the contrary to indicators of compromise, which are Actor specific, behaviors are constant while Actor is a variable. If the TLP:key is not defined, it is perceived as TLP:CLEAR. The period can be defined with two dates (first and last seen) or with one date.
357354

358-
Example: `index=* source="WinEventLog:*" AND (Image="*.exe" OR Image="*.com")`
355+
Example:
356+
```
357+
timeline:
358+
2023-01-01 - 2023-03-06: Ducktail, MerlinAgent
359+
2023-02-04: Lazarus
360+
```
359361

360362

361363
## references
@@ -411,10 +413,41 @@ Required: *optional*
411413

412414
Description: Unique ID of the rule. UUID version 4 is recommended for use.
413415

414-
Example: 009a001b-1623-4320-8369-95bf0d651e8e
416+
Example: `uuid: 009a001b-1623-4320-8369-95bf0d651e8e`
415417

416418
## correlation
417-
Reserved for future
419+
Required: *optional*
420+
421+
Description: The correlation section is responsible for the correlation of query results.
422+
423+
Example:
424+
```
425+
correlation:
426+
timeframe: 1m
427+
functions: count() > 10
428+
```
429+
430+
### timeframe
431+
Format: `text (8 characters)`
432+
433+
Required: *optional*
434+
435+
Description: A time frame for the functions, which is defined as a span of seconds (s), minutes (m), hours (h), days (d), and weeks(w).
436+
437+
Example: `timeframe: 1m`
438+
439+
### functions
440+
Format: `text (128 characters)`
441+
442+
Required: *optional*
443+
444+
Description: Functions can be used for correlation of query results, for example, to trigger only in case certain thresholds of certain fields are met. This is still under development. First functions to be released:
445+
446+
- `count()` - count of field values
447+
- `by` - group by field
448+
- `dcount` - unique field values
449+
Example: `functions: count() > 10`
450+
418451

419452
## response
420453
Reserved for future

0 commit comments

Comments
 (0)