Releases: AttackIQ/pySigma-backend-kusto
v0.4.3 - EventID Query Table Inference
What's Changed
- add: mapped GrandParentImage with InitiatingProcessParentFileName by @0xFustang in #30
- add: EventID to query_table mappings by @slincoln-aiq in #32
- Previously, the
query_table
was selected bylogsource.category
, or provided by the user via a pipeline or pipeline arg.query_table
is required in order for fieldmappings and valid query tables in the final query. This new feature also allowsquery_table
to be set if an EventID is present in anyselection
detection sections andlogsource.category
is missing and thequery_table
is not supplied by the user. This allows for more rules to be translated to KQL queries
- Previously, the
- fix:
SigmaNumber
conversion errors when in a grouped as-in expression of mixed types by @slincoln-aiq in #32- This fixes #29
- Minor formatting with black/ruff
New Contributors
- @0xFustang made their first contribution in #30
Full Changelog: v0.4.2...v0.4.3
v0.4.2 - Minor bug fix
๐ Release Notes
๐ Bug Fixes
- query_table param fix: Resolved issue where
query_table
would not persist when provided in another pipeline merged bysigma-cli
v0.4.1 - Bug Fixes
๐ Release Notes
๐ Bug Fixes
-
Keyword Detection Items: Resolved an issue where "Invalid SigmaDetectionItem field name encountered: None" was incorrectly raised for keyword detection items. (Fixes #27 )
-
Table Name Prepending: Fixed a bug where table names were only prepended to queries in
SigmaCollection
objects and notSigmaRule
objects. This was addressed by implementing a postprocessing item on each rule instead of using a finalizer. (Fixes #28 )
๐งช Testing Improvements
- Comprehensive Test Coverage: Added tests to cover both SigmaCollection and SigmaRule objects for all pipelines, ensuring more robust functionality across different use cases.
๐ Documentation
- README Update: The README file has been updated to reflect recent changes and provide more accurate information.
๐ Maintenance
-
Code Formatting: Applied minor formatting updates.
-
Development Dependencies: Updated the dev dependency group in pyproject.toml.
v0.4.0 - Azure Monitor Pipeline & Code Refactoring
๐ Release Notes
๐ Major Changes
๐ก๏ธ Microsoft XDR Pipeline (formerly Microsoft 365 Defender)
- ๐ Microsoft 365 Defender pipeline renamed to Microsoft XDR
โ ๏ธ Users should migrate to the new Microsoft XDR pipeline
๐ Azure Monitor Pipeline (NEW!)
- ๐งช New Azure Monitor pipeline introduced (alpha status)
- ๐๏ธ Supports field mappings for SecurityEvents and SigninLogs tables
- ๐ All 698 Azure Monitor tables supported in final queries
๐ Enhanced Sentinel ASIM Pipeline (Beta)
- ๐ Additional field mappings added (beta status)
๐ Expanded Table Support
- Microsoft XDR: 38 tables
- Sentinel ASIM: 8 tables
- Azure Monitor: 698 tables
๐๏ธ Codebase Refactoring
- ๐งฑ Improved organization and structure
- ๐ Better sharing of components across pipelines
โจ New Features
๐๏ธ Custom Table Name Support
- ๐ Set custom table names with
query_table
parameter - ๐ Configurable via YAML or Python
๐ Flexible Rule Category Handling
- ๐ซ "Unsupported rule category" error suppressed when the following conditions are met:
- Rule category is absent or category not in
mappings.py
for each pippeline
- Rule category is absent or category not in
- A valid table is supplied via
query_table
param
๐ ๏ธ Technical Improvements
๐ Table Generation Scripts
- ๐ค New scripts in
utils
folder - ๐ Auto-populate valid tables and field schema in
tables.py
for each pipeline
๐บ๏ธ Field Mappings
- ๐จ Ongoing improvements for all pipelines
๐ Rule-to-Table Mapping
- ๐ง Work in progress on advanced mapping methods
๐ Documentation
- ๐ Updated README with
query_table
usage - ๐ก New examples for YAML and Python implementations
- FAQ/Troubleshooting section
โ ๏ธ Deprecation Notices
- ๐ซ Microsoft 365 Defender pipeline is deprecated
- ๐ Users should migrate to Microsoft XDR pipeline
๐ฎ Future Work
- ๐ Expanding field mappings across pipelines
- ๐ง Developing sophisticated rule-to-table mapping
- ๐ง Refining Azure Monitor and Sentinel ASIM pipelines
๐ Please refer to the updated README for detailed usage instructions and examples of the new features.
v0.3.3 - SentinelASIM Pipeline Bug Fixes
๐ Release Notes: pySigma Kusto Backend v0.3.2
๐ Bug Fixes
๐ก๏ธ Sentinel ASIM Pipeline
- Resolved issues with the
sentinelasim
pipeline, improving its stability and reliability.- Fixes #25
๐งช Testing Improvements
๐ Sentinel ASIM Pipeline
- Added basic test coverage for the
sentinelasim
pipeline, enhancing our ability to catch potential issues early.
๐ฎ Ongoing Development
We're actively working on expanding and refining our pipeline support:
- The
sentinelasim
pipeline and other pipelines are under active development. - We're continuously adding more tables and features to these pipelines.
- We're also working on refactoring the codebase to make it more organized and easier to contribute to
- Your patience and feedback during this process are greatly appreciated!
v0.3.1 - Now with more Kusto!
๐ Release Notes: pySigma Kusto Backend v0.3.1
๐ท๏ธ Repository Rename
We've renamed the repository from pySigma-backend-microsoft365defender
to pySigma-backend-kusto
. This change reflects our expanded focus on supporting the Kusto Query Language (KQL) as a backend for various platforms.
๐ New Features
๐ Sentinel ASIM Pipeline
- Introduced the
sentinel_asim
pipeline, providing initial beta support for the Sentinel Advanced Security Information Model (ASIM) tables. (Thanks @adonm!)
๐ ๏ธ Backend Enhancements
- Renamed
Microsoft365DefenderBackend
toKustoBackend
for clarity and broader applicability. - The
microsoft_365_defender_pipeline
is no longer automatically applied by the backend, allowing for more flexible configurations.
๐ง Microsoft 365 Defender Pipeline Improvements
- Table renaming is now performed within the pipeline rather than the backend.
- Added the ability to override Sigma Rule category -> table name mappings with a custom
query_table
parameter.
๐ Usage Example
For details on using custom table names, see the README.
๐ฎ Future Plans
We're actively working on expanding support for additional KQL-based platforms. Stay tuned for updates on Microsoft XDR and other integrations!
๐ Acknowledgements
Special thanks to the SigmaHQ Discord community for their valuable input on the repository direction.
v0.2.6
What's Changed
- Update microsoft365defender.py by @adonm in #19
- Ignores the "Initiated" field in network connections as for endpoints almost all events are outbound
- Increased pinned
certifi
dependency version
New Contributors
Full Changelog: v0.2.4...v0.2.5
v0.2.4: Wildcard escaping fixes
- Fixed issue #13 where '*' character was being escaped incorrectly CommandLine strings
- Fixed issue #14 where Sigma schema wildcards ('*', '?') in the middle of a string would create nonsense queries
- Since KQL does not use wildcards, anytime a wildcard value is seen inside a string (not at the beginning or end) from the Sigma Rule, we now split it by the wildcard and use a
contains
for each substring. - Example: a CommandLine field with a value of
advfirewall firewall add rule name=Dropbox dir=in action=allow "program=?:\Program Files (x86)\Dropbox\Client\Dropbox.exe" enable=yes profile=Any
will be converted to(ProcessCommandLine contains "advfirewall firewall add rule name=Dropbox dir=in action=allow \"program=" and ProcessCommandLine contains ":\\Program Files (x86)\\Dropbox\\Client\\Dropbox.exe\" enable=yes profile=Any")
- Since KQL does not use wildcards, anytime a wildcard value is seen inside a string (not at the beginning or end) from the Sigma Rule, we now split it by the wildcard and use a
v0.2.3
v0.2.2
- Increased supported pySigma version to
>= 0.9.0, <= 0.10.6