Skip to content

Commit a487613

Browse files
ebeahanAndrew Stucki
andauthored
[1.x] Add ssdeep hash (#1169) (#1227)
Co-authored-by: Andrew Stucki <andrew.stucki@elastic.co>
1 parent 36ebb01 commit a487613

File tree

21 files changed

+410
-11
lines changed

21 files changed

+410
-11
lines changed

CHANGELOG.next.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Thanks, you're awesome :-) -->
1919

2020
* Added `http.request.id`. #1208
2121
* Added `cloud.service.name`. #1204
22+
* Added `hash.ssdeep`. #1169
2223

2324
#### Improvements
2425

code/go/ecs/hash.go

Lines changed: 8 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/field-details.asciidoc

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3023,10 +3023,12 @@ Note also that the `group` fields may be used directly at the root of the events
30233023
[[ecs-hash]]
30243024
=== Hash Fields
30253025

3026-
The hash fields represent different hash algorithms and their values.
3026+
The hash fields represent different bitwise hash algorithms and their values.
30273027

30283028
Field names for common hashes (e.g. MD5, SHA1) are predefined. Add fields for other hashes by lowercasing the hash algorithm name and using underscore separators as appropriate (snake case, e.g. sha3_512).
30293029

3030+
Note that this fieldset is used for common hashes that may be computed over a range of generic bytes. Entity-specific hashes such as ja3 or imphash are placed in the fieldsets to which they relate (tls and pe, respectively).
3031+
30303032
[discrete]
30313033
==== Hash Field Details
30323034

@@ -3096,6 +3098,22 @@ type: keyword
30963098

30973099

30983100

3101+
| extended
3102+
3103+
// ===============================================================
3104+
3105+
|
3106+
[[field-hash-ssdeep]]
3107+
<<field-hash-ssdeep, hash.ssdeep>>
3108+
3109+
| SSDEEP hash.
3110+
3111+
type: keyword
3112+
3113+
3114+
3115+
3116+
30993117
| extended
31003118

31013119
// ===============================================================

experimental/generated/beats/fields.ecs.yml

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -951,6 +951,12 @@
951951
ignore_above: 1024
952952
description: SHA512 hash.
953953
default_field: false
954+
- name: hash.ssdeep
955+
level: extended
956+
type: keyword
957+
ignore_above: 1024
958+
description: SSDEEP hash.
959+
default_field: false
954960
- name: name
955961
level: core
956962
type: keyword
@@ -1682,6 +1688,12 @@
16821688
type: keyword
16831689
ignore_above: 1024
16841690
description: SHA512 hash.
1691+
- name: hash.ssdeep
1692+
level: extended
1693+
type: keyword
1694+
ignore_above: 1024
1695+
description: SSDEEP hash.
1696+
default_field: false
16851697
- name: inode
16861698
level: extended
16871699
type: keyword
@@ -2068,11 +2080,16 @@
20682080
- name: hash
20692081
title: Hash
20702082
group: 2
2071-
description: 'The hash fields represent different hash algorithms and their values.
2083+
description: 'The hash fields represent different bitwise hash algorithms and
2084+
their values.
20722085
20732086
Field names for common hashes (e.g. MD5, SHA1) are predefined. Add fields for
20742087
other hashes by lowercasing the hash algorithm name and using underscore separators
2075-
as appropriate (snake case, e.g. sha3_512).'
2088+
as appropriate (snake case, e.g. sha3_512).
2089+
2090+
Note that this fieldset is used for common hashes that may be computed over
2091+
a range of generic bytes. Entity-specific hashes such as ja3 or imphash are
2092+
placed in the fieldsets to which they relate (tls and pe, respectively).'
20762093
type: group
20772094
fields:
20782095
- name: md5
@@ -2095,6 +2112,12 @@
20952112
type: keyword
20962113
ignore_above: 1024
20972114
description: SHA512 hash.
2115+
- name: ssdeep
2116+
level: extended
2117+
type: keyword
2118+
ignore_above: 1024
2119+
description: SSDEEP hash.
2120+
default_field: false
20982121
- name: host
20992122
title: Host
21002123
group: 2
@@ -3500,6 +3523,12 @@
35003523
type: keyword
35013524
ignore_above: 1024
35023525
description: SHA512 hash.
3526+
- name: hash.ssdeep
3527+
level: extended
3528+
type: keyword
3529+
ignore_above: 1024
3530+
description: SSDEEP hash.
3531+
default_field: false
35033532
- name: name
35043533
level: extended
35053534
type: wildcard
@@ -3645,6 +3674,12 @@
36453674
ignore_above: 1024
36463675
description: SHA512 hash.
36473676
default_field: false
3677+
- name: parent.hash.ssdeep
3678+
level: extended
3679+
type: keyword
3680+
ignore_above: 1024
3681+
description: SSDEEP hash.
3682+
default_field: false
36483683
- name: parent.name
36493684
level: extended
36503685
type: wildcard

experimental/generated/csv/fields.csv

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
108108
1.9.0-dev+exp,true,dll,dll.hash.sha1,keyword,extended,,,SHA1 hash.
109109
1.9.0-dev+exp,true,dll,dll.hash.sha256,keyword,extended,,,SHA256 hash.
110110
1.9.0-dev+exp,true,dll,dll.hash.sha512,keyword,extended,,,SHA512 hash.
111+
1.9.0-dev+exp,true,dll,dll.hash.ssdeep,keyword,extended,,,SSDEEP hash.
111112
1.9.0-dev+exp,true,dll,dll.name,keyword,core,,kernel32.dll,Name of the library.
112113
1.9.0-dev+exp,true,dll,dll.path,keyword,extended,,C:\Windows\System32\kernel32.dll,Full file path of the library.
113114
1.9.0-dev+exp,true,dll,dll.pe.architecture,keyword,extended,,x64,CPU architecture target for the file.
@@ -186,6 +187,7 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
186187
1.9.0-dev+exp,true,file,file.hash.sha1,keyword,extended,,,SHA1 hash.
187188
1.9.0-dev+exp,true,file,file.hash.sha256,keyword,extended,,,SHA256 hash.
188189
1.9.0-dev+exp,true,file,file.hash.sha512,keyword,extended,,,SHA512 hash.
190+
1.9.0-dev+exp,true,file,file.hash.ssdeep,keyword,extended,,,SSDEEP hash.
189191
1.9.0-dev+exp,true,file,file.inode,keyword,extended,,256383,Inode representing the file in the filesystem.
190192
1.9.0-dev+exp,true,file,file.mime_type,keyword,extended,,,"Media type of file, document, or arrangement of bytes."
191193
1.9.0-dev+exp,true,file,file.mode,keyword,extended,,0640,Mode of the file in octal representation.
@@ -395,6 +397,7 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
395397
1.9.0-dev+exp,true,process,process.hash.sha1,keyword,extended,,,SHA1 hash.
396398
1.9.0-dev+exp,true,process,process.hash.sha256,keyword,extended,,,SHA256 hash.
397399
1.9.0-dev+exp,true,process,process.hash.sha512,keyword,extended,,,SHA512 hash.
400+
1.9.0-dev+exp,true,process,process.hash.ssdeep,keyword,extended,,,SSDEEP hash.
398401
1.9.0-dev+exp,true,process,process.name,wildcard,extended,,ssh,Process name.
399402
1.9.0-dev+exp,true,process,process.name.text,text,extended,,ssh,Process name.
400403
1.9.0-dev+exp,true,process,process.parent.args,keyword,extended,array,"[""/usr/bin/ssh"", ""-l"", ""user"", ""10.0.0.16""]",Array of process arguments.
@@ -414,6 +417,7 @@ ECS_Version,Indexed,Field_Set,Field,Type,Level,Normalization,Example,Description
414417
1.9.0-dev+exp,true,process,process.parent.hash.sha1,keyword,extended,,,SHA1 hash.
415418
1.9.0-dev+exp,true,process,process.parent.hash.sha256,keyword,extended,,,SHA256 hash.
416419
1.9.0-dev+exp,true,process,process.parent.hash.sha512,keyword,extended,,,SHA512 hash.
420+
1.9.0-dev+exp,true,process,process.parent.hash.ssdeep,keyword,extended,,,SSDEEP hash.
417421
1.9.0-dev+exp,true,process,process.parent.name,wildcard,extended,,ssh,Process name.
418422
1.9.0-dev+exp,true,process,process.parent.name.text,text,extended,,ssh,Process name.
419423
1.9.0-dev+exp,true,process,process.parent.pe.architecture,keyword,extended,,x64,CPU architecture target for the file.

experimental/generated/ecs/ecs_flat.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,6 +1298,17 @@ dll.hash.sha512:
12981298
original_fieldset: hash
12991299
short: SHA512 hash.
13001300
type: keyword
1301+
dll.hash.ssdeep:
1302+
dashed_name: dll-hash-ssdeep
1303+
description: SSDEEP hash.
1304+
flat_name: dll.hash.ssdeep
1305+
ignore_above: 1024
1306+
level: extended
1307+
name: ssdeep
1308+
normalize: []
1309+
original_fieldset: hash
1310+
short: SSDEEP hash.
1311+
type: keyword
13011312
dll.name:
13021313
dashed_name: dll-name
13031314
description: 'Name of the library.
@@ -2722,6 +2733,17 @@ file.hash.sha512:
27222733
original_fieldset: hash
27232734
short: SHA512 hash.
27242735
type: keyword
2736+
file.hash.ssdeep:
2737+
dashed_name: file-hash-ssdeep
2738+
description: SSDEEP hash.
2739+
flat_name: file.hash.ssdeep
2740+
ignore_above: 1024
2741+
level: extended
2742+
name: ssdeep
2743+
normalize: []
2744+
original_fieldset: hash
2745+
short: SSDEEP hash.
2746+
type: keyword
27252747
file.inode:
27262748
dashed_name: file-inode
27272749
description: Inode representing the file in the filesystem.
@@ -5283,6 +5305,17 @@ process.hash.sha512:
52835305
original_fieldset: hash
52845306
short: SHA512 hash.
52855307
type: keyword
5308+
process.hash.ssdeep:
5309+
dashed_name: process-hash-ssdeep
5310+
description: SSDEEP hash.
5311+
flat_name: process.hash.ssdeep
5312+
ignore_above: 1024
5313+
level: extended
5314+
name: ssdeep
5315+
normalize: []
5316+
original_fieldset: hash
5317+
short: SSDEEP hash.
5318+
type: keyword
52865319
process.name:
52875320
beta: Note the usage of `wildcard` type is considered beta. This field used to be
52885321
type `keyword`.
@@ -5518,6 +5551,17 @@ process.parent.hash.sha512:
55185551
original_fieldset: hash
55195552
short: SHA512 hash.
55205553
type: keyword
5554+
process.parent.hash.ssdeep:
5555+
dashed_name: process-parent-hash-ssdeep
5556+
description: SSDEEP hash.
5557+
flat_name: process.parent.hash.ssdeep
5558+
ignore_above: 1024
5559+
level: extended
5560+
name: ssdeep
5561+
normalize: []
5562+
original_fieldset: hash
5563+
short: SSDEEP hash.
5564+
type: keyword
55215565
process.parent.name:
55225566
beta: Note the usage of `wildcard` type is considered beta. This field used to be
55235567
type `keyword`.

experimental/generated/ecs/ecs_nested.yml

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1644,6 +1644,17 @@ dll:
16441644
original_fieldset: hash
16451645
short: SHA512 hash.
16461646
type: keyword
1647+
dll.hash.ssdeep:
1648+
dashed_name: dll-hash-ssdeep
1649+
description: SSDEEP hash.
1650+
flat_name: dll.hash.ssdeep
1651+
ignore_above: 1024
1652+
level: extended
1653+
name: ssdeep
1654+
normalize: []
1655+
original_fieldset: hash
1656+
short: SSDEEP hash.
1657+
type: keyword
16471658
dll.name:
16481659
dashed_name: dll-name
16491660
description: 'Name of the library.
@@ -3170,6 +3181,17 @@ file:
31703181
original_fieldset: hash
31713182
short: SHA512 hash.
31723183
type: keyword
3184+
file.hash.ssdeep:
3185+
dashed_name: file-hash-ssdeep
3186+
description: SSDEEP hash.
3187+
flat_name: file.hash.ssdeep
3188+
ignore_above: 1024
3189+
level: extended
3190+
name: ssdeep
3191+
normalize: []
3192+
original_fieldset: hash
3193+
short: SSDEEP hash.
3194+
type: keyword
31733195
file.inode:
31743196
dashed_name: file-inode
31753197
description: Inode representing the file in the filesystem.
@@ -3902,11 +3924,16 @@ group:
39023924
title: Group
39033925
type: group
39043926
hash:
3905-
description: 'The hash fields represent different hash algorithms and their values.
3927+
description: 'The hash fields represent different bitwise hash algorithms and their
3928+
values.
39063929
39073930
Field names for common hashes (e.g. MD5, SHA1) are predefined. Add fields for
39083931
other hashes by lowercasing the hash algorithm name and using underscore separators
3909-
as appropriate (snake case, e.g. sha3_512).'
3932+
as appropriate (snake case, e.g. sha3_512).
3933+
3934+
Note that this fieldset is used for common hashes that may be computed over a
3935+
range of generic bytes. Entity-specific hashes such as ja3 or imphash are placed
3936+
in the fieldsets to which they relate (tls and pe, respectively).'
39103937
fields:
39113938
hash.md5:
39123939
dashed_name: hash-md5
@@ -3948,6 +3975,16 @@ hash:
39483975
normalize: []
39493976
short: SHA512 hash.
39503977
type: keyword
3978+
hash.ssdeep:
3979+
dashed_name: hash-ssdeep
3980+
description: SSDEEP hash.
3981+
flat_name: hash.ssdeep
3982+
ignore_above: 1024
3983+
level: extended
3984+
name: ssdeep
3985+
normalize: []
3986+
short: SSDEEP hash.
3987+
type: keyword
39513988
group: 2
39523989
name: hash
39533990
prefix: hash.
@@ -6379,6 +6416,17 @@ process:
63796416
original_fieldset: hash
63806417
short: SHA512 hash.
63816418
type: keyword
6419+
process.hash.ssdeep:
6420+
dashed_name: process-hash-ssdeep
6421+
description: SSDEEP hash.
6422+
flat_name: process.hash.ssdeep
6423+
ignore_above: 1024
6424+
level: extended
6425+
name: ssdeep
6426+
normalize: []
6427+
original_fieldset: hash
6428+
short: SSDEEP hash.
6429+
type: keyword
63826430
process.name:
63836431
beta: Note the usage of `wildcard` type is considered beta. This field used
63846432
to be type `keyword`.
@@ -6614,6 +6662,17 @@ process:
66146662
original_fieldset: hash
66156663
short: SHA512 hash.
66166664
type: keyword
6665+
process.parent.hash.ssdeep:
6666+
dashed_name: process-parent-hash-ssdeep
6667+
description: SSDEEP hash.
6668+
flat_name: process.parent.hash.ssdeep
6669+
ignore_above: 1024
6670+
level: extended
6671+
name: ssdeep
6672+
normalize: []
6673+
original_fieldset: hash
6674+
short: SSDEEP hash.
6675+
type: keyword
66176676
process.parent.name:
66186677
beta: Note the usage of `wildcard` type is considered beta. This field used
66196678
to be type `keyword`.

0 commit comments

Comments
 (0)