Cloudflare WAF

About The Device

Cloudflare’s Web Application Firewall (WAF) protects your website from SQL injection, cross-site scripting (XSS) and zero-day attacks, including OWASP-identified vulnerabilities and threats targeting the application layer.

Device Information

 Entity

Particulars

 Entity

Particulars

Vendor Name

Cloudflare

Product Name

WAF

Type of Device

Cloud

Collection Method

Log Type

 Ingestion label

Preferred Logging Protocol - Format

Log Collection Method

Log Type

 Ingestion label

Preferred Logging Protocol - Format

Log Collection Method

Cloudflare WAF

 CLOUDFLARE_WAF

CLOUDFLARE_AUDIT

CLOUDFLARE

Cloud Storage - JSON

C2C-Push

Device Configuration

Cloudflare WAF integration with AWS S3 and SQS:

Pre-Requisite:

  1. Amazon S3 bucket is created. Please refer the following page to create a S3 bucket.  https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html

  2. AWS Simple Queue Service (SQS) with S3 Storage configured. Please refer the following document to configure SQS with S3 storage. Accenture MDR Quick Start Guide in Configuring AWS Simple Queue Service (SQS) with S3 Storage

  3. A user in Cloudflare with Log Share role.

  4. AWS IAM user with name cloudflare-logpush

Create Logpush Job:

  1. Log in to the Cloudflare dashboard.

  2. Select the Enterprise account or domain you want to use with Logpush.

  3. Navigate to Analytics & Logs > Logpush.

  4. Select Create a Logpush job.

  5. In Select a destination, choose Amazon S3.

  6. Enter or select the following destination information:

    • Bucket - S3 bucket name

    • Path - bucket location within the storage container

    • Organize logs into daily subfolders (recommended)

    • Bucket region - provide the region of bucket

    • Encryption constraint in bucket policy

    • For Grant Cloudflare access to upload files to your bucket, make sure your bucket has a policy (if you did not add it already):

      • Copy the JSON policy, then go to your bucket in the Amazon S3 console and paste the policy in Permissions > Bucket Policy and select Save.

{ "Id": "<POLICY_ID>", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1506627150918", "Action": ["s3:PutObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::burritobot/logs/*", "Principal": { "AWS": ["arn:aws:iam::391854517948:user/cloudflare-logpush"] } } ] }

Replace the Resource value with your own bucket path. The AWS Principal is owned by Cloudflare and should not be changed.

a. Cloudflare uses Amazon Identity and Access Management (IAM) to gain access to your S3 bucket. The Cloudflare IAM user needs PutObject permission for the bucket.

b. Logs are written into that bucket as gzipped objects using the S3 Access Control List (ACL) Bucket-owner-full-control permission.

c. For illustrative purposes, imagine that you want to store logs in the bucket  burritobot, in the logs directory. The S3 URL would then be s3://burritobot/logs.

d. Ensure Log Share permissions are enabled, before attempting to read or configure a Logpush job. For more information refer to the Roles section.

e. When you are done entering the destination details, select Continue.

  1. To prove ownership, Cloudflare will send a file to your designated destination. To find the token, select the Open button in the Overview tab of the ownership challenge file, then paste it into the Cloudflare dashboard to verify your access to the bucket. Enter the Ownership Token and select Continue.

  2. Select the Firewall Events dataset to push to the storage service.

  3. In the next step, you need to configure your logpush job:

    • Enter the Job Name

    • Under If logs match, you can select the events to include and/or remove from your logs.

    • In Send the following fields, you can choose to either push all logs to your storage destination or selectively choose which logs you want to push.

Do not selectively choose to push only limited fields, please ensure that all log fields are selected.

  1. In Advanced Options,

    • Choose default time format

11. Select Submit once you are done configuring your logpush job.

  1. Repeat Steps 4 to 12 and create log push jobs for HTTP Requests from Zone Scope dataset and again repeat Steps 4 to 10 one more time for Audit Log from Account Scope dataset. 

Please refer below page to check required IAM user policies.

https://mdrkb.atlassian.net/wiki/x/hoCdEQ

IAM: For any logging source IAM URL should be allowed

https://docs.aws.amazon.com/general/latest/gr/iam-service.html

S3: For S3 or SQS logging source, S3 URL should be allowed.

https://docs.aws.amazon.com/general/latest/gr/s3.html

SQS: For SQS logging source, SQS URL should be allowed.

https://docs.aws.amazon.com/general/latest/gr/sqs-service.html

Integration Parameters

Integration via AWS SQS:

Property

Default Value

Description

Property

Default Value

Description

REGION

Yes

Select the region of your S3 bucket

QUEUE NAME

Yes

The SQS queue name.

ACCOUNT NUMBER

Yes

The account number for the SQS queue and S3 bucket.

QUEUE ACCESS KEY ID

Yes

This is the 20 character ID associated with your Amazon IAM account.

QUEUE SECRET ACCESS KEY

Yes

This is the 40 character access key associated with your Amazon IAM account.

SOURCE DELETION OPTION

Yes

Whether to delete source files after they have been transferred to Chronicle. This reduces storage costs. Valid values are:

  • SOURCE_DELETION_NEVER: Never delete files from the source.

  • SOURCE_DELETION_ON_SUCCESS:Delete files and empty directories from the source after successful ingestion.

  • SOURCE_DELETION_ON_SUCCESS_FILES_ONLY:Delete files from the source after successful ingestion.

S3 BUCKET ACCESS KEY ID

No

This is the 20 character ID associated with your Amazon IAM account. Only specify if using a different access key for the S3 bucket.

S3 BUCKET SECRET ACCESS KEY

No

This is the 40 character access key associated with your Amazon IAM account. Only specify if using a different access key for the S3 bucket.

ASSET NAMESPACE

No

To assign an asset namespace to all events that are ingested from a particular feed, set the "namespace" field within details. The namespace field is a string.

About Accenture:
Accenture is a leading global professional services company that helps the world’s leading businesses, governments and other organizations build their digital core, optimize their operations, accelerate revenue growth and enhance citizen services—creating tangible value at speed and scale. We are a talent and innovation led company with 738,000 people serving clients in more than 120 countries. Technology is at the core of change today, and we are one of the world’s leaders in helping drive that change, with strong ecosystem relationships. We combine our strength in technology with unmatched industry experience, functional expertise and global delivery capability. We are uniquely able to deliver tangible outcomes because of our broad range of services, solutions and assets across Strategy & Consulting, Technology, Operations, Industry X and Accenture Song. These capabilities, together with our culture of shared success and commitment to creating 360° value, enable us to help our clients succeed and build trusted, lasting relationships. We measure our success by the 360° value we create for our clients, each other, our shareholders, partners and communities. Visit us at www.accenture.com.

About Accenture Security
Accenture Security is a leading provider of end-to-end cybersecurity services, including advanced cyber defense, applied cybersecurity solutions and managed security operations. We bring security innovation, coupled with global scale and a worldwide delivery capability through our network of Advanced Technology and Intelligent Operations centers. Helped by our team of highly skilled professionals, we enable clients to innovate safely, build cyber resilience and grow with confidence. Follow us @AccentureSecure on Twitter or visit us at www.accenture.com/security.

Legal notice: Accenture, the Accenture logo, and other trademarks, service marks, and designs are registered or unregistered trademarks of Accenture and its subsidiaries in the United States and in foreign countries. All trademarks are properties of their respective owners. This document is intended for general informational purposes only and does not take into account the reader’s specific circumstances, and may not reflect the most current developments. Accenture disclaims, to the fullest extent permitted by applicable law, any and all liability for the accuracy and completeness of the information in this presentation and for any acts or omissions made based on such information. Accenture does not provide legal, regulatory, audit, or tax advice. Readers are responsible for obtaining such advice from their own legal counsel or other licensed professionals.