Skip to content

Commit 92ae744

Browse files
authored
docs: 1.6.0 version docs (#128)
* preparting docs 1.6.0 * document sequence group policies * fix wording * fix wording
1 parent a0ca53b commit 92ae744

File tree

11 files changed

+141
-47
lines changed

11 files changed

+141
-47
lines changed

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828
### What is Fibratus?
2929

30-
Fibratus is a tool for exploration and tracing of the **Windows** kernel. It lets you trap system-wide [events](https://www.fibratus.io/#/kevents/anatomy) such as process life-cycle, file system I/O, registry modifications or network requests among many other observability signals. In a nutshell, Fibratus allows for gaining deep operational visibility into the Windows kernel but also processes running on top of it.
30+
Fibratus is a tool for exploration and tracing of the **Windows** kernel. It lets you trap system-wide [events](https://www.fibratus.io/#/kevents/anatomy) such as process life-cycle, file system I/O, registry modifications or network requests among many other observability signals. In a nutshell, Fibratus allows for gaining deep operational visibility into the Windows kernel but also processes running on top of it. It requires no drivers nor third-party software.
3131

32-
Events can be shipped to a wide array of [output sinks](https://www.fibratus.io/#/outputs/introduction) or dumped to [capture](https://www.fibratus.io/#/captures/introduction) files for local inspection and forensics analysis. The powerful [filtering](https://www.fibratus.io/#/filters/introduction) engine permits drilling into the event flux entrails.
32+
Events can be shipped to a wide array of [output sinks](https://www.fibratus.io/#/outputs/introduction) or dumped to [capture](https://www.fibratus.io/#/captures/introduction) files for local inspection and forensics analysis. The powerful [filtering](https://www.fibratus.io/#/filters/introduction) engine permits drilling into the event flux entrails and the [rules engine](https://www.fibratus.io/#/filters/rules) is capable of detecting stealthy adversary attacks and sophisticated threats.
3333

3434
You can use [filaments](https://www.fibratus.io/#/filaments/introduction) to extend Fibratus with your own arsenal of tools and so leverage the power of the Python ecosystem
3535

@@ -69,7 +69,7 @@ fibratus run -f watch_files
6969

7070
- :zap: blazing fast
7171
- :satellite: collects a wide spectrum of kernel events - from process to network observability signals
72-
- :mag: super powerful filtering engine
72+
- :mag: super powerful filtering and rule engine
7373
- :snake: running Python scriptlets on top of kernel event flow
7474
- :minidisc: capturing event flux to **kcap** files and replaying anywhere
7575
- :rocket: transporting events to Elasticsearch, RabbitMQ or console sinks
@@ -100,7 +100,7 @@ fibratus run -f watch_files
100100
* [**Network**](https://www.fibratus.io/#/kevents/network)
101101
* [**Handle**](https://www.fibratus.io/#/kevents/handle)
102102

103-
### Filters
103+
### Filters and Rules
104104

105105
* [**Needle in the haystack**](https://www.fibratus.io/#/filters/introduction)
106106
* [**Prefiltering**](https://www.fibratus.io/#/filters/prefiltering)
@@ -131,6 +131,8 @@ fibratus run -f watch_files
131131
* [**Null**](https://www.fibratus.io/#/outputs/null)
132132
* [**RabbitMQ**](https://www.fibratus.io/#/outputs/rabbitmq)
133133
* [**Elasticsearch**](https://www.fibratus.io/#/outputs/elasticsearch)
134+
* [**Eventlog**](https://www.fibratus.io/#/outputs/eventlog)
135+
* [**HTTP**](https://www.fibratus.io/#/outputs/http)
134136

135137

136138
### Transformers

configs/fibratus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ kstream:
185185
events:
186186
- CloseFile
187187
- CloseHandle
188-
# Contains a list of case-insensitive process image names including the extension.
188+
# Contains a list of case-sensitive process image names including the extension.
189189
# Any event originated by the image specified in this list is dropped from the event stream
190190
images:
191191
- System

docs/_coverpage.md

Lines changed: 1 addition & 2 deletions
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.5.0</small>
7+
# fibratus <small>1.6.0</small>
88

99
> A modern tool for the Windows kernel exploration and observability
1010
@@ -19,4 +19,3 @@
1919
<div>
2020
<img src='images/fibratus-term.gif'></img>
2121
</div>
22-

docs/_sidebar.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* [Registry](kevents/registry.md)
1414
* [Network](kevents/network.md)
1515
* [Handle](kevents/handle.md)
16-
* <ion-icon name="filter-outline"></ion-icon> Filters
16+
* <ion-icon name="filter-outline"></ion-icon> Filters and Rules
1717
* [Needle In The Haystack](filters/introduction.md)
1818
* [Prefiltering](filters/prefiltering.md)
1919
* [Filtering](filters/filtering.md)

docs/filters/fields.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ The following tables summarize available field names that can be used in filter
119119
| file.offset | Read/write position in the file | `file.offset = 1024` |
120120
| file.type | File type. Possible values are `file`, `directory`, `pipe`, `console`, `mailslot`, `other`, `unknown` | `file.type = 'directory'` |
121121
| file.extension | File extension represents the file extension (e.g. .exe or .dll) | `file.extension = '.dll'` |
122-
122+
| file.attributes | List of file attributes | `file.attributes in ('hidden', 'temporary')` |
123+
| file.status | System status message of the `CreateFile` operation | `file.status = 'success'` |
123124

124125
### Registry
125126
| Field Name | Description | Example |

docs/filters/filtering.md

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,35 @@ Filter expressions can accept escape sequences, such as newline characters (`\n`
5959
If a syntax error is present in the filter, a hint is given indicating the erroneous position in the expression.
6060

6161
```
62-
ps.name =
63-
^ expected field, string, number, bool, ip
62+
kevt.name in ('RegCreateKey', 'RegDeleteKey', 'RegSetValue', 'RegDeleteValue')
63+
and
64+
registry.key.name icontains
65+
(
66+
'CurrentVersion\\Run',
67+
'Windows\\System\\Scripts',
68+
'CurrentVersion\\Windows\\Load',
69+
'CurrentVersion\\Windows\\Run',
70+
'CurrentVersion\\Winlogon\\Shell',
71+
'CurrentVersion\\Winlogon\\System',
72+
'UserInitMprLogonScript'
73+
)
74+
or
75+
registry.key.name istartswith
76+
(
77+
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Notify',
78+
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Shell',
79+
'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Userinit',
80+
'HKEY_LOCAL_MACHINE\\Software\\WOW6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32',
81+
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\BootExecute',
82+
╭──────────^
83+
| 'HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug'
84+
| )
85+
| or
86+
| registry.key.name iendswith
87+
| (
88+
| 'user shell folders\\startup'
89+
| )
90+
|
91+
|
92+
╰─────────────────── expected field, string, number, bool, ip, function, pattern binding
6493
```

docs/filters/introduction.md

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,31 @@ ps.name in ('cmd.exe', 'powershell.exe', 'winword.exe')
1010

1111
It may look intimidating at first glance, but once you get familiar with the syntax and the field names you'll be able to write even the most intricate filters.
1212

13-
Filters can be used in various places:
13+
Filters represent the foundation of the [rule engine](/filters/rules) that provides threat detection capabilities. For example, the following stanza detects the outbound communication followed by the execution of the command shell within one-minute time window. The action invokes the [alert sender](/alerts/senders) to emit the security alert via email or Slack.
1414

15-
- the `run` command
16-
- the `capture` command when dumping the event flow to the capture file
17-
- the `replay` command when recovering the event flow from the capture file
18-
- filaments
15+
```yaml
16+
- group: remote connection and command shell execution
17+
policy: sequence
18+
rules:
19+
- name: establish remote connection
20+
condition: >
21+
kevt.name = 'Connect'
22+
and
23+
not
24+
cidr_contains(
25+
net.dip,
26+
'10.0.0.0/8',
27+
'172.16.0.0/12')
28+
- name: spawn command shell
29+
max-span: 1m
30+
condition: >
31+
kevt.name = 'CreateProcess'
32+
and
33+
ps.pid = $1.ps.pid
34+
and
35+
ps.sibling.name in ('cmd.exe', 'powershell.exe')
36+
action: >
37+
{{ emit "Command shell spawned after remote connection"
38+
(printf "%s process spawned a command shell after connecting to %s" .Kevts.k2.PS.Exe .Kevts.k1.Kparams.dip)
39+
}}
40+
```

docs/filters/prefiltering.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ The above is the summary of configuration options that influence the collection
1616
If you want to permanently exclude specific kernel events or processes that produce them from the event flow, you can achieve this by defining the blacklist in the `kstream.blacklist` configuration section:
1717

1818
- `events` contains a list of kernel event names that are dropped from the event stream.
19-
- `images` contains a list of case-insensitive process image names including the extension. Any event originated by the image specified in this list is dropped from the event stream.
19+
- `images` contains a list of case-sensitive process image names including the extension. Any event originated by the image specified in this list is dropped from the event stream.

0 commit comments

Comments
 (0)