Back to Checks
A log monitoring and alert is set up for VPC network route changes
sls_vpc_network_route_changes_alert_enabled
Service: slsSeverity: medium
OfficialBuilt-inVerified
Categories:logging
Resource Type:ALIYUN::SLS::Alert
Alibaba Cloud SLS should have an alarm configured for VPC network route changes. By directing ActionTrail logs to SLS with alert rules, route table modifications are monitored in real time. This ensures creation, deletion, or modification of route entries is detected, verifying VPC traffic flows through expected paths.
Risk
Without monitoring for route table changes, unauthorized route modifications may go undetected, allowing attackers to redirect traffic through malicious intermediaries. This increases risk of man-in-the-middle attacks, data exfiltration, and service disruption as traffic is diverted from intended destinations, compromising confidentiality and integrity.
Run this check with Prowler
Run in Prowler CloudRun
prowler alibabacloud --checks sls_vpc_network_route_changes_alert_enabledRecommendation
- Log on to the SLS Console
- Ensure ActionTrail is enabled
- Select Alerts
- Ensure alert rule has been enabled for VPC network route changes
Remediation
CLI
aliyun sls create-alert --project <project-name> --alert-name vpc-route-changes --alert-displayname 'VPC Network Route Changes Alert' --condition 'event.serviceName: Vpc and (event.eventName: CreateRouteEntry or event.eventName: DeleteRouteEntry or event.eventName: ModifyRouteEntry)' --dashboard <dashboard-name> --schedule '{"type":"FixedRate","interval":"1m"}'Other
1Log on to the **SLS Console**.
2Ensure **ActionTrail** is enabled and delivering logs to a **Log Service** project.
3Navigate to the project receiving ActionTrail logs.
4Select **Alerts** and click **Create Alert Rule**.
5Configure the query to filter for VPC network route changes: `event.serviceName: Vpc and (event.eventName: CreateRouteEntry or event.eventName: DeleteRouteEntry or event.eventName: ModifyRouteEntry)`.
6Set the alert **schedule**, **notification method**, and **severity**.
7Save and enable the alert rule.
Check Code
from prowler.lib.check.models import Check, CheckReportAlibabaCloud
from prowler.providers.alibabacloud.services.sls.sls_client import sls_client
class sls_vpc_network_route_changes_alert_enabled(Check):
def execute(self) -> list[CheckReportAlibabaCloud]:
findings = []
found = False
for alert in sls_client.alerts:
query_list = alert.configuration.get("queryList", [])
if not query_list:
continue
for query_obj in query_list:
query = query_obj.get("query", "")
if ("Ecs" in query or "Vpc" in query) and (
"CreateRouteEntry" in query
or "DeleteRouteEntry" in query
or "ModifyRouteEntry" in query
or "AssociateRouteTable" in query
or "UnassociateRouteTable" in query
):
found = True
report = CheckReportAlibabaCloud(
metadata=self.metadata(), resource=alert
)
report.status = "PASS"
report.status_extended = f"SLS Alert {alert.name} is configured for VPC network route changes."
report.resource_id = alert.name
report.resource_arn = alert.arn
report.region = alert.region
findings.append(report)
break
if found:
break
if not found:
report = CheckReportAlibabaCloud(
metadata=self.metadata(), resource=sls_client.provider.identity
)
report.status = "FAIL"
report.status_extended = (
"No SLS Alert configured for VPC network route changes."
)
report.resource_id = sls_client.audited_account
report.resource_arn = sls_client.provider.identity.identity_arn
report.region = sls_client.region
findings.append(report)
return findings