Releases: rabbitstack/fibratus
Releases · rabbitstack/fibratus
v2.0.0
Release Notes
New features
- New
VirtualAllocandVirtualFreeevents. Read more - New
MapViewFileandUnmapViewFileevents and mapped-files state. Read more - New
DuplicateHandleevent Read more - DNS telemetry via
QueryDnsandReplyDnsevents Read more - New
RegCloseKeyevent - Image signature information exposed via parameters and
image.signature.type/image.signature.levelfilter fields Read more - Image format parameters and filter fields
- Decorate non-open disposition
CreateFileevents with image format parameters - Macros for detecting loading of unsigned/untrusted modules
ps.sidfilter field contains the raw SID value, e.g.S-1-5-18- Parse and append
create_optionsparameter toCreateFileevents - Certificate info and filter fields for
LoadImage/UnloadImageevents - Expand
pefilter field set and allow lazily value extraction Read more - Support for expressions with bare boolean filter fields
Enhancements
- Significant core refactoring to aim for a more sustainable codebase growth
- Refactored many tests to embrace table-driven testing
- Introduce a new set of parameter types such as flags, system status code, file path, address, etc.
- Switch to
golang.org/sys/windowspackage for the vast majority of API calls and structures - Use the syscall generator to produce stubs for the API calls not available through
golang.org/sys/windows - Bump
golangci-lintlinters to version1.52.2 - Event consumer tests to verify the correctness of captured events
- Trace controller tests to verify real-world tracing session management
- Harden driver handle objects decoration of the file path parameters
- Expand the size of the
Ktypetype to accommodate 2-bytes event hook identifiers - Switch to the upstream
saferwall/pepackage for version resource parsing - Only allow a single instance of the Fibratus process to be run simultaneously
Configuration changes
- Disable initial handle snapshot to reduce overall memory utilization
- Added
RegCloseKeyto the list of ignored events - Removed the
Systemprocess image from the list of ignored processes
Deprecation
- Remove
kstream.raw-event-parsingconfig flag as binary event parsing is the default option now - Nuke TDH event parsing functionality
- Sunset Antimalware provider as we can tap into driver loading events via
LoadImageevents
Bug fixes
- Resolution of success system codes should compare the range of information values
- Use only the rule name in the filter field deprecation log message
- Solved
yaratests hanging issues
Breaking changes
- Convert flags event parameters to uppercase strings
- The
sidparameter and theps.sidfilter fields contain the raw SID value instead of the username/domain tuple - Command line parameters and filter fields contain the original, unexpanded command line
- The major kcap file format version is increased in this version. The side-effect is the inability to replay old capture files
operationparameter name in theCreateFileevent is renamed tocreate_dispositionshare_maskparameter contains the full permission name, e.g.READ|WRITE|DELETEcommparameter name in process events is renamed tocmdline
v1.10.0
Release Notes
New features
- filter language grammar for sequence rules and decommission of sequence policy types Read more
- bound fields and sequence aliases Read more
- file path manipulation filter functions Read more
- registry query value filter function Read more
yarafilter function. This opens up new possibilities in terms of combining behavior and signature-based detections Read more- new detection tradecraft focused on credentials access tactic. Specifically, the following rules were implemented:
- Suspicious password filter DLL registered
- Potential credentials dumping or exfiltration via malicious password filter DLL
- Suspicious access to Windows DPAPI Master Keys
- Unusual access to Web Browser Credential stores
- LSASS memory dump preparation via SilentProcessExit
- LSASS memory dump via Windows Error Reporting
- Suspicious access to Active Directory domain database
- Unusual access to SSH keys
- Sensitive access to Unattended Panther files
- generic event parameter filter field. The
kevt.argfilter field is able to extract any event parameter by its internal name. For example,kevt.arg[exe]would extract the process image executable path - filter fields deprecation strategy. Use
fibratus list fieldsto check deprecated fields status process.uuidfilter field as a more robust alternative to process id fields that is resistant to repetition
Enhancements
- optimization of filter accessors to retain only accessors that are relevant to declared filter fields
- sunsetting standard library PE parser in favor of saferwall/pe parser
Bug fixes
in/iinoperators should operate on LHS/RHS values of slice type
Breaking changes
- sequence policy types are no longer supported and should be migrated to sequence rules
v1.8.0
Release Notes
New features
- driver load events Read more
- initial catalog of detection rules based on the MITRE ATT&CK framework Read more
- macro expansion in rules Read more
- beautiful HTML rule alert emails Read more
- allow enabling/disabling Audit API Calls and Antimalware Engine ETW providers
- enrich handle events with driver image path for
Driverobject types - add
ps.sibling.argsfilter field - field interpolation in alert title and text strings and the ability to use Markdown/HTML syntax Read more
~=operator for case-insensitive string comparisons in filtersis_minidumpfilter function for checking the signature ofminidumpfiles Read more
Enhancements
- Go 1.19 upgrade and migration of deprecated functions
- bumped
libyarato version 4.2 - bumped Golang CI Lint toolchain
- add
content-typeconfig flag for email alert sender - add
labelsanddescriptionattributes in rule groups - loading rule files from paths with glob expressions
- optimize filter field accessors to prevent unnecessary traversing
- lazy evaluation of binary expressions for
andandoroperators - decommission type/category selector in
include/excluderule policies - prevent executing rules in sequence policies if the incoming event is not eligible for evaluation
- avoid adding duplicate tuples in sequence policies internal state
- improve registry key formatting from native key names
- limit the number of handles per proc and per global handle snapshotter state
- speed up UTF-16 string decoding. Kudos to @skeeto
Bug fixes
- sequence expiration slice out of bounds
- transition sequence state machine when the rule in
includeproduces a match
Breaking changes
- rule policies with the
selectorattribute will fail to load. As a workaround, remove the selector attribute and include it as a first condition in the rule.
v1.6.0
Release Notes
New features
- support for stateful runtime detections Read more
- file attributes/status parameters and field filters Read more
Enhancements
- raw ETW event parsing and a number of optimizations leverage 10x performance gains
- trace controller is refactored to facilitate the addition of new event sources
notoperator can negate complex paren expressions and functions- beautify filter error reporting and make it compatible with multiline filter expressions
Bug fixes
- rule group selector should support
OpenProcessandOpenThreadevents cidr_containsfunction implementation should return a correct value if no subnets are matched- paren expression should be visited recursively
- process command line normalization wouldn't correctly complete missing command lines for system processes
- stack overflow when replaying captures with the process ancestor filters
Breaking changes
- file and handle object parameters are represented in decimal instead of hex format if
--kstream.raw-event-parsing=true - event exclusions by process name now require case-sensitive image names
v1.5.0
Release Notes
New features
- new
OpenProcessandOpenThreadevents Read more - eventlog output Read more
- HTTP output Read more
- string filter functions Read more
ps.sibling.*,ps.domain, andps.usernamefilter fields Read more
Enhancements
- while introducing new event types, a significant refactoring took place to streamline the adoption of future event providers
v1.4.2
v1.4.1
v1.4.0
Release Notes
New features
- support for rules Read more
- fuzzy matching operators Read more
- process ancestry filtering Read more
- ability to pass arguments to filaments Read more
Enhancements
- add
exeparameter toCreateThreadevents - add
thread.pidfilter field for matching the target thread's process id - case-insensitive variants of
in,startswith, andendswithoperators - upgrade Go toolchain to 1.16
Bug fixes
- inform about bad string escape in filter compile error messages
- fix retrieving executable path for system processes
v1.2.0
Release Notes
New features
- filament for identifying an executable or script file remotely downloaded via a TeamViewer transfer session
- reverse DNS lookups
- function support in filters and initial
cidr_containsandmd5functions dip.namesandsip.namesfilter fields- unary
notoperator in filters matchesandimatchesstring matching operators- make the use of fields possible in both LHS/RHS filter expressions
- full and slim MSI-based Windows installers
Enhancements
- introduce a new
file.extensionfilter field - documentation website tweaking
- make all string operators evaluable against lists
- tests refactoring
- satisfy all code linters
- upgrade to the latest
go-yarapackage - improvements in the
handleinterceptor when publishing deferredCreateHandleevents - reduce the pressure on the
TdhGetPropertySizeAPI call for static parameter types - prettify
fibratus versionoutput - modularize and improve signal handling
Bug fixes
- circumvent data races in kcap reader/writer
- prevent data races in the AMQP connection
- yara scanner should allocate a new scanner for each run
- fix
RecvUDPv4event type GUID - the
handleinterceptor should return theCloseHandleevent when entering the deferred map
1.0.0
The new generation Fibratus tool release!