feat(query): implements "Beta - Activity Log Alert For Create or Update Security Solution Not Configured" #7811
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.








Reason for Proposed Changes
Currently there is no query to ensure that there is a "azurerm_monitor_activity_log_alert" resource configured to capture create or update security solution events.
Quoting CIS_Microsoft_Azure_Foundations_Benchmark_v5.0.0 page 243: "
Monitoring for Create or Update Security Solution events gives insight into changes to the active security solutions and may reduce the time it takes to detect suspicious activity."Through the CIS benchmark we can also determine that detecting the target configuration boils down to checking 2 fields in the
criteriablock:categoryshould be set to "Administrative"operation_nameshould be set to "Microsoft.Security/securitySolutions/write"Additionally we must ensure the log alert resource does not set any "filters" that act "on Level, Status or
Caller" these can be set on the "azurerm_monitor_activity_log_alert" resource through the following fields : "caller", "level", "levels", "status", "statuses", "sub_status" or "sub_statuses". Since these could suppress or cause the log alert to miss relevant events they must not be set.
Finally it must be ensured that the "action_group_id" field is set (inside an "action" block).
Proposed Changes
Implemented the missing query.
The query will trigger if:
In a given document if there are multiple "azurerm_monitor_activity_log_alert" and none of them fully align with the required requisites the query will prioritize flagging all the ones only missing the "action_group_id" first, then all the ones that flag due to a filter being set and, if none of the resources set the two mandatory fields to the expected values, it will flag all log alert resources. These priorities are demonstrated through the positive4 and positive5 tests and their results.
I submit this contribution under the Apache-2.0 license.