Skip to content

Commit 72cb6e8

Browse files
[8.7] Add new data stream for API event types (#328)
* Define the schema for CredentialAccess events under `process.Ext.api` * Adds a generic schema for API * Describes the schema of parameters for `Credential_access` API events * Added missing files: manifest, ingest pipeline configuration and sample_Event * Regenerated yamls: fields and api
1 parent 960fce7 commit 72cb6e8

File tree

11 files changed

+2883
-0
lines changed

11 files changed

+2883
-0
lines changed

custom_schemas/custom_api.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
- name: api
3+
title: API
4+
group: 2
5+
short: Fields describing an API call.
6+
type: object
7+
description: >
8+
These fields describe an API call (function, or system call).
9+
10+
reusable:
11+
top_level: true
12+
expected:
13+
- process.Ext
14+
15+
fields:
16+
- name: name
17+
level: custom
18+
type: keyword
19+
index: false
20+
description: >
21+
The name of the API, usually the name of the function or system call.
22+
23+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
- name: Credential_access
3+
title: Credential_access
4+
group: 2
5+
short: These fields contain information about API calls related to Credential Access.
6+
description: >
7+
These fields contain information about API calls related to a Credential Access event
8+
on Windows.
9+
10+
Credential Access events are usually triggered by malicious programs in an attempt to
11+
dump credential stored in the memory of targeted processes, such as `lsass.exe` on
12+
Windows. To do, those programms will invoke specific API calls, such as `OpenProcess`
13+
or `OpenThread` which can be detected.
14+
15+
reusable:
16+
top_level: true
17+
expected:
18+
- { at: process.Ext.api, as: parameters }
19+
type: group
20+
21+
fields:
22+
- name: handle_type
23+
level: custom
24+
type: keyword
25+
description: >
26+
This parameter indicates whether the detected access was attempt against a process or a thread.
27+
example: process
28+
29+
- name: desired_access_numeric
30+
level: custom
31+
type: long
32+
description: >
33+
This parameter indicates the numeric value of the `DesiredAccess` field passed to `OpenProcess` or `OpenThread`.
34+
35+
- name: desired_access
36+
level: custom
37+
type: keyword
38+
description: >
39+
This parameter indicates the string value of the `DesiredAccess` field to `OpenProcess` or `OpenThread`.
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
name: api
3+
fields:
4+
base:
5+
fields:
6+
"@timestamp": {}
7+
message: {}
8+
data_stream:
9+
fields: "*"
10+
ecs:
11+
fields:
12+
version: {}
13+
event:
14+
fields:
15+
action: {}
16+
category: {}
17+
created: {}
18+
end: {}
19+
hash: {}
20+
id: {}
21+
ingested: {}
22+
outcome: {}
23+
start: {}
24+
type: {}
25+
user:
26+
fields:
27+
domain: {}
28+
email: {}
29+
full_name: {}
30+
hash: {}
31+
id: {}
32+
name: {}
33+
host:
34+
fields:
35+
architecture: {}
36+
domain: {}
37+
hostname: {}
38+
id: {}
39+
ip: {}
40+
mac: {}
41+
name: {}
42+
type: {}
43+
uptime: {}
44+
os:
45+
fields:
46+
family: {}
47+
full: {}
48+
kernel: {}
49+
platform: {}
50+
version: {}
51+
name: {}
52+
type: {}
53+
Ext:
54+
fields:
55+
variant: {}
56+
Target:
57+
fields:
58+
process:
59+
fields:
60+
name: {}
61+
pid: {}
62+
process:
63+
fields:
64+
pid: {}
65+
name: {}
66+
executable: {}
67+
entity_id: {}
68+
thread:
69+
fields:
70+
id: {}
71+
Ext:
72+
fields:
73+
ancestry: {}
74+
api:
75+
fields:
76+
name: {}
77+
parameters:
78+
fields:
79+
desired_access: {}
80+
desired_access_numeric: {}
81+
handle_type: {}
82+
thread:
83+
fields:
84+
id: {}
85+
Ext:
86+
fields:
87+
call_stack:
88+
enabled: false
89+
fields:
90+
module_path: {}
91+
instruction_pointer: {}
92+
call_stack_contains_unbacked: {}
93+
call_stack_final_user_module:
94+
fields:
95+
path: {}
96+

go.sum

Lines changed: 875 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
dynamic_fields:
2+
event.ingested: ".*"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"events": [
3+
{}
4+
]
5+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"description": "Pipeline for setting event.ingested",
3+
"processors": [
4+
{
5+
"set": {
6+
"field": "event.ingested",
7+
"value": "{{ _ingest.timestamp }}",
8+
"ignore_failure": true
9+
}
10+
}
11+
]
12+
}

0 commit comments

Comments
 (0)