-
Notifications
You must be signed in to change notification settings - Fork 352
feat(query): implements "Beta - Activity Log Alert For Create or Update SQL Server Firewall Rule Not Configured" #7813
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…17653_36_6.1.2.7_ensure_activity_log_alert_for_create_or_update_sql_server_firewall_rule
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 21271469 | Triggered | Generic Password | 9be8f38 | assets/queries/terraform/azure/unrestricted_sql_server_access/test/negative6.tf | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
cx-eduardo-semanas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…alert_for_create_or_update_sql_server_firewall_rule








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 SQL server firewall rule events.
Quoting CIS_Microsoft_Azure_Foundations_Benchmark_v5.0.0 page 251: "
Monitoring for Create or Update SQL Server Firewall Rule events gives insight into network access changes 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.Sql/servers/firewallRules/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:
Additionally the query should flag the "project" itself when there is not a single log alert with both mandatory fields correct. Currently this is not possible but the query should be reworked once it is since there are plans to implement this feature eventually.
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. This priority is shown in the positive4 test.I submit this contribution under the Apache-2.0 license.