Skip to content

Commit c0ed89c

Browse files
authored
Documentation changes for the version 2.0.0 (#191)
1 parent 795a0eb commit c0ed89c

File tree

14 files changed

+207
-43
lines changed

14 files changed

+207
-43
lines changed

docs/_coverpage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<img src='logo.png'></img>
55
</div>
66

7-
# fibratus <small>1.10.0</small>
7+
# fibratus <small>2.0.0</small>
88

99
> A modern tool for Windows kernel exploration and observability with a focus on security
1010

docs/_sidebar.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
* [Network](kevents/network.md)
1515
* [Handle](kevents/handle.md)
1616
* [Driver](kevents/driver.md)
17+
* [Memory](kevents/mem.md)
1718
* <ion-icon name="filter-outline"></ion-icon> Filters and Rules
1819
* [Needle In The Haystack](filters/introduction.md)
1920
* [Prefiltering](filters/prefiltering.md)

docs/filters/fields.md

Lines changed: 56 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The following tables summarize available field names that can be used in filter
4848
| ps.exe | Full name of the process' executable | `ps.exe = 'C:\\Windows\\system32\\cmd.exe'` |
4949
| ps.args | Process command line arguments | `ps.args in ('/cdir', '/-C')` |
5050
| ps.cwd | Process current working directory | `ps.cwd = 'C:\\Users\\Default'` |
51-
| ps.sid | Security identifier under which this process is run | `ps.sid contains 'SYSTEM'` |
51+
| ps.sid | Security identifier under which this process is run | `ps.sid = 'S-1-5-18'` |
5252
| ps.domain | Process domain name | `ps.domain = 'NT AUTHORITY'` |
5353
| ps.username | Process user name | `ps.username = 'SYSTEM'` |
5454
| ps.sessionid | Unique identifier for the current session | `ps.sessionid = 1` |
@@ -67,7 +67,7 @@ The following tables summarize available field names that can be used in filter
6767
| ps.parent.cmdline| Parent process command line | `ps.parent.cmdline contains 'attrib'` |
6868
| ps.parent.exe | Full name of the parent process executable | `ps.parent.exe = 'C:\\Windows\\system32\\cmd.exe'` |
6969
| ps.parent.cwd | Parent process current working directory | `ps.parent.cwd = 'C:\\Users\\Default'` |
70-
| ps.parent.sid | Security identifier under which the parent process is run | `ps.parent.sid contains 'SYSTEM'` |
70+
| ps.parent.sid | Security identifier under which the parent process is run | `ps.parent.sid = 'S-1-5-18'` |
7171
| ps.parent.domain | Parent process domain name | `ps.parent.domain = 'NT AUTHORITY'` |
7272
| ps.parent.username | Parent process user name | `ps.parent.username = 'SYSTEM'` |
7373
| ps.parent.sessionid | Unique identifier for the current session of the parent process | `ps.parent.session = 1` |
@@ -81,7 +81,7 @@ The following tables summarize available field names that can be used in filter
8181
| ps.child.cmdline | Child process command line | `ps.child.cmdline contains '/k /v'` |
8282
| ps.child.exe | Child process executable full path | `ps.child.exe = 'C:\\Windows\\system32\\cmd.exe'` |
8383
| ps.child.args | Child process command line arguments | `ps.child.args in ('C:\\Windows\\system32\\cmd.exe')` |
84-
| ps.child.sid | Child process security identifier | `ps.child.sid contains 'SYSTEM'` |
84+
| ps.child.sid | Child process security identifier | `ps.child.sid = 'S-1-5-20'` |
8585
| ps.child.sessionid | Child process session identifier | `ps.child.sessionid = 1` |
8686
| ps.child.domain | Child process domain name | `ps.child.domain = 'NT AUTHORITY'` |
8787
| ps.child.username | Child process user name | `ps.child.username = 'SYSTEM'` |
@@ -103,7 +103,7 @@ The following tables summarize available field names that can be used in filter
103103
| thread.entrypoint | Starting address of the function to be executed by the thread | `thread.entrypoint = '7efe0000'` |
104104
| thread.access.mask | Thread access rights | `thread.access.mask = '0x1800'` |
105105
| thread.access.mask.names | Thread access human-readable rights | `thread.access.mask.names in ('QUERY_LIMITED_INFORMATION')` |
106-
| thread.access.status | Thread access status | `thread.access.status = 'success'` |
106+
| thread.access.status | Thread access status | `thread.access.status = 'Success'` |
107107

108108

109109
### Image
@@ -114,20 +114,32 @@ The following tables summarize available field names that can be used in filter
114114
| image.checksum | Image checksum | `image.checksum = 746424` |
115115
| image.size | Image size | `image.size > 1024` |
116116
| image.default.address | Default image address | `image.default.address = '7efe0000'` |
117+
| image.signature.type | Image signature type | `image.signature.type != 'NONE'` |
118+
| image.signature.level | Image signature level | `image.signature.level = 'AUTHENTICODE'` |
119+
| image.cert.serial | Image certificate serial number | `image.cert.serial = '330000023241fb59996dcc4dff000000000232'` |
120+
| image.cert.subject | Image certificate subject | `image.cert.subject contains 'Washington, Redmond, Microsoft Corporation'` |
121+
| image.cert.issuer | Image certificate CA | `image.cert.issuer contains 'US, Washington, Redmond, Microsoft Windows Production PCA 2011` |
122+
| image.cert.after | Image certificate expiration date | `image.cert.after contains '2024-02-01 00:05:42 +0000 UTC'` |
123+
| image.cert.before | Image certificate enrollment date | `image.cert.before contains '2024-02-01 00:05:42 +0000 UTC'` |
124+
117125

118126
### File
119127
| Field Name | Description | Example |
120128
| :--- | :---- | :---: |
121129
| file.object | File object address in the kernel space | `file.object = 18446738026482168384` |
122130
| file.name | Full file name | `file.name = 'C:\\Windows\\Sytem32\\regedit.exe'` |
123-
| file.operation | Operation performed on the file or I/O device | `file.operation = 'open'` |
124-
| file.share.mask | File share mask | `file.share.mask = 'rw-'` |
131+
| file.operation | Operation performed on the file or I/O device | `file.operation = 'OPEN'` |
132+
| file.share.mask | File share mask | `file.share.mask = 'READ'` |
125133
| file.io.size | I/O read/write size | `file.io.size > 512` |
126134
| file.offset | Read/write position in the file | `file.offset = 1024` |
127-
| file.type | File type. Possible values are `file`, `directory`, `pipe`, `console`, `mailslot`, `other`, `unknown` | `file.type = 'directory'` |
135+
| file.type | File type. Possible values are `File`, `Directory`, `Pipe`, `Console`, `Mailslot`, `Other`, `Unknown` | `file.type = 'Directory'` |
128136
| file.extension | File extension represents the file extension (e.g. .exe or .dll) | `file.extension = '.dll'` |
129-
| file.attributes | List of file attributes | `file.attributes in ('hidden', 'temporary')` |
130-
| file.status | System status message of the `CreateFile` operation | `file.status = 'success'` |
137+
| file.attributes | List of file attributes | `file.attributes in ('HIDDEN', 'TEMPORARY')` |
138+
| file.status | System status message of the `CreateFile` operation | `file.status = 'Success'` |
139+
| file.view.base | Base address of the mapped/unmapped section view | `file.view.base = '25d42170000'` |
140+
| file.view.size | Size of the mapped/unmapped section view | `file.view.size > 1024` |
141+
| file.view.type | Type of the mapped/unmapped section view | `file.view.type = 'IMAGE'` |
142+
131143

132144
### Registry
133145
| Field Name | Description | Example |
@@ -136,7 +148,7 @@ The following tables summarize available field names that can be used in filter
136148
| registry.key.handle | Registry key object address | `registry.key.handle = 'FFFFB905D60C2268'` |
137149
| registry.value | Registry value content | `registry.value = '%SystemRoot%\\system32'` |
138150
| registry.value.type | Registry value type | `registry.value.type = 'REG_SZ'` |
139-
| registry.status | Registry operation status | `registry.status != 'success'` |
151+
| registry.status | Registry operation status | `registry.status != 'Success'` |
140152

141153
### Network
142154
| Field Name | Description | Example |
@@ -160,6 +172,27 @@ The following tables summarize available field names that can be used in filter
160172
| handle.name | Handle name | `handle.name = '\\Device\\NamedPipe\\chrome.12644.28.105826381'` |
161173
| handle.type | Handle type | `handle.type = 'Mutant'` |
162174

175+
### Memory
176+
| Field Name | Description | Example |
177+
| :--- | :---- | :---: |
178+
| mem.address | Base address of the allocated region | `mem.address = '211d13f2000'` |
179+
| mem.size | Size of the allocated region | `mem.size > 438272` |
180+
| mem.alloc | Region allocation or release type | `mem.alloc = 'COMMIT'` |
181+
| mem.type | Designates the page type of the allocated region | `mem.type = 'PRIVATE'` |
182+
| mem.protection | Designates the protection type of the allocated region | `mem.protection = 'READWRITE'` |
183+
| mem.protection.mask | Designates the allocated region protection in mask notation | `mem.protection.mask = 'RWX'` |
184+
185+
186+
### DNS
187+
| Field Name | Description | Example |
188+
| :--- | :---- | :---: |
189+
| dns.name | DNS query name | `dns.name = 'example.org'` |
190+
| dns.rr | DNS resource record type | `dns.rr = 'AA'` |
191+
| dns.options | DNS query options | `dns.options in ('ADDRCONFIG', 'DUAL_ADDR')` |
192+
| dns.rcode | DNS response status | `dns.rcode = 'NXDOMAIN'` |
193+
| dns.answers | DNS response answers | `dns.answers in ('o.lencr.edgesuite.net', 'a1887.dscq.akamai.net')` |
194+
195+
163196
### PE
164197
| Field Name | Description | Example |
165198
| :--- | :---- | :---: |
@@ -180,4 +213,16 @@ The following tables summarize available field names that can be used in filter
180213
| pe.file.version | File version supplied at compile-time | `pe.file.version = '10.0.18362.693 (WinBuild.160101.0800)'` |
181214
| pe.product | Internal product name of the file provided at compile-time | `pe.product = 'Microsoft® Windows® Operating System'` |
182215
| pe.product.name | Internal product version of the file provided at compile-time | `pe.product.version = '10.0.18362.693'` |
183-
216+
| pe.is_dll | Indicates if the loaded image or a created file is a DLL | `pe.is_dll` |
217+
| pe.is_driver | Indicates if the loaded image or a created file is a driver | `pe.is_driver` |
218+
| pe.is_exec | Indicates if the loaded image or a created file is an executable | `pe.is_exec` |
219+
| pe.is_dotnet | Indicates if the PE contains CLR (Common Language Runtime) data | `pe.is_dotnet` |
220+
| pe.is_signed | Indicates if the PE has embedded or catalog signature | `pe.is_signed` |
221+
| pe.is_trusted | Indicates if the PE certificate chain is trusted | `pe.is_trusted` |
222+
| pe.imphash | Import hash | `pe.impash = '5d3861c5c547f8a34e471ba273a732b2'` |
223+
| pe.anomalies | Contains PE anomalies detected during parsing | `pe.anomalies in ('number of sections is 0')` |
224+
| pe.cert.serial | PE certificate serial number | `pe.cert.serial = '330000023241fb59996dcc4dff000000000232'` |
225+
| pe.cert.subject | PE certificate subject | `pe.cert.subject contains 'Washington, Redmond, Microsoft Corporation'` |
226+
| pe.cert.issuer | PE certificate CA | `pe.cert.issuer contains 'US, Washington, Redmond, Microsoft Windows Production PCA 2011'` |
227+
| pe.cert.after | PE certificate expiration date | `pe.cert.after contains '2024-02-01 00:05:42 +0000 UTC'` |
228+
| pe.cert.before | PE certificate enrollment date | `pe.cert.before contains '2024-02-01 00:05:42 +0000 UTC'` |

docs/filters/filtering.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ At its simplest form, a filter is composed of the LHS (Left Hand Side) and RHS (
99
kevt.category = 'net'
1010
```
1111

12+
Boolean fields, that is the fields that always evaluate to either `true` or `false` can appear alone in the filter expression. For example, `pe.is_dll` is the short form of `pe.is_dll = true` expression.
13+
1214
The RHS expressions can be strings, numbers, IP addresses, boolean values, and fields. In the above snippet, the RHS is a simple string literal, but we could have written filters with the following RHS expressions:
1315

1416
- IP addresses: `net.sip = 127.0.0.1`

docs/filters/prefiltering.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ The above is the summary of configuration options that influence the collection
1111
- `enable-image` enables/disables the collection of image loading/unloading events
1212
- `enable-handle` enables/disables the collection of handle events
1313
- `enable-audit-api` enables/disables kernel audit API calls events
14-
- `enable-antimalware-engine` enables/disables Antimalware Engine events, which primarily provide a source of [driver-loading](kevents/driver.md) events
14+
- `enable-mem` enables/disables the collection of memory events
15+
- `enable-dns` enables/disables DNS telemetry
1516

16-
### Blacklisting {docsify-ignore}
17+
### Excluding processes or events {docsify-ignore}
1718

1819
If you want to permanently exclude specific events or processes that produce them from the event flow, you can achieve this by defining the blacklist in the `kstream.blacklist` configuration section:
1920

docs/kevents/driver.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
#### LoadDriver
44

5-
Driver loading events are triggered when the driver object is loaded into the kernel. The `image_name` parameter represents the full path of the driver file located in the file system.
6-
Driver events are consumed from the `Microsoft Antimalware Engine` ETW provider, thus the events are only published if the Windows Defender Antivirus realtime protection is activated.
5+
Driver loading events are triggered when the driver object is loaded into the kernel. Regular `LoadImage` events are triggered when the kernel driver is loaded or when the driver is unloaded, the `UnloadImage` event is received.
76

87
An alternative route for detecting driver loading events is based on observing the [handle manager](kevents/handle.md) events. For example, a filter expression for pinpointing such events could be arranged as follows.
98

0 commit comments

Comments
 (0)