/
WAF ACL Firewall Access Control SQS Collector

WAF ACL Firewall Access Control SQS Collector

[ 1 Purpose ] [ 2 Example tables ] [ 3 Authorize It ] [ 4 Run It ] [ 5 Secure It ] [ 6 Monitor It ]

Purpose

An analyst wants to detect malicious network traffic in web applications.  Using the WAF ACL SQS collector to send firewall logs to Devo, the analyst will find malicious IP activity.  As a result, the analyst will use Access Control Lists to block the traffic, preventing attackers from cross-site scripting.

Devo recommends also logging AWS WAF actions using the CloudTrail SQS Collector.

Example tables

Table

Description

Table

Description

cloud.aws.waf.logs

Access Control List Traffic

Authorize It

  1. Authorize SQS Data Access.

    1. For this service, the bucket name must start with aws-waf-logs-.

  2. Add data to the S3 bucket.

    1. In WAF, select a Web ACL.

      image-20250129-211550.png
    2. Select “Logging” and “Enable.”

      image-20250129-211618.png
    3. Set the destination to the S3 bucket previously authorized.

Run It

In the Cloud Collector App, create an SQS Collector instance using this parameters template, replacing the values enclosed in < >.

{ "inputs": { "sqs_collector": { "id": "<FIVE_UNIQUE_DIGITS>", "services": { "<SERVICE_NAME>": {} }, "credentials": { "aws_cross_account_role": "arn:<PARTITION>:iam::<YOUR_AWS_ACCOUNT_NUMBER>:role/<YOUR_ROLE>", "aws_external_id": "<EXTERNAL_ID>" }, "region": "<REGION>", "base_url": "https://sqs.<REGION>.amazonaws.com/<YOUR_AWS_ACCOUNT_NUMBER>/<QUEUE_NAME>" } } }

Secure It

IP Evading Reputation Block List

/* It has been determined that a particular IP is malicious. Check if the IP has contacted the firewall, if it was allowed, if it was on Amazon's reputation list, and which terinating rules blocked the IP. If the reputation list did not terminate the request, then the rules need improvement. */ from cloud.aws.waf.logs where eq(httpRequest_clientIp,233.252.0.0)//example IP group by action, eq(terminatingRuleId,"AWS-AWSManagedRulesAmazonIpReputationList") as on_reputation_list select collectdistinct(ruleGroupList_terminatingRule_ruleId_str) as terminating_rules

Malicious WAF Rule Created

/* A malicious user has gained access to WAF configuration. The user has created a rule which has blocked critical traffic. Identify new rules which are blocking lots of traffic so they can be removed. */ from cloud.aws.waf.logs where eq(action,"BLOCK") group by terminatingRuleId select count() as requests_blocked, first(eventdate) as rule_started where rule_started>today()-7d //recently created rule

Monitor It

Create an inactivity alert to detect interruptions of transfer of data from the source to the SQS queue using the query

Set the inactivity alert to keep track of the collector_id.

 

If protection of a particular URI is very important, it can be monitored individually for inactivity.