Back to Checks
alibabacloud

A log monitoring and alert is set up for Management Console authentication failures

sls_management_console_authentication_failures_alert_enabled
Service: slsSeverity: medium
OfficialBuilt-inVerified
Categories:logging
Resource Type:ALIYUN::SLS::Alert

Alibaba Cloud SLS should have an alarm configured for failed console authentication attempts. By directing ActionTrail logs to SLS with alert rules, repeated login failures are detected promptly, enabling early identification of brute-force or credential stuffing attacks against the Management Console.

Risk

Without monitoring for failed console authentication, brute-force and credential stuffing attacks may go undetected, increasing the risk of unauthorized access. Failed login monitoring provides source IP indicators for threat correlation and proactive blocking, reducing time to detect and respond to account compromise attempts.

Run this check with Prowler

Run in Prowler Cloud
Run
prowler alibabacloud --checks sls_management_console_authentication_failures_alert_enabled

Recommendation

  1. Log on to the SLS Console
  2. Ensure ActionTrail is enabled
  3. Select Alerts
  4. Ensure alert rule has been enabled for Management Console authentication failures

Remediation

CLI

aliyun sls create-alert --project <project-name> --alert-name console-auth-failures --alert-displayname 'Console Authentication Failures Alert' --condition 'event.eventName: ConsoleSignin and event.errorCode: *' --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 failed console authentication: `event.eventName: ConsoleSignin and event.errorCode: *`.
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_management_console_authentication_failures_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 "ConsoleSignin" in query and "event.errorCode" 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 Management Console authentication failures."
                    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 Management Console authentication failures."
            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