Configuring AWS GuardDuty Connectors

The AWS GuardDuty connector allows Stellar Cyber to collect Amazon GuardDuty logs. Use these instructions to obtain credentials and set up the connector.

You can also use an AWS CloudWatch connector to ingest logs from Amazon GuardDuty findings by exporting those logs to your AWS CloudWatch service. Refer to Amazon's documentation for configuration of this export: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html .

Stellar Cyber connectors with the Collect function (collectors) may skip collecting some data when the ingestion volume is large, which potentially can lead to data loss. This can happen when the processing capacity of the collector is exceeded.

Connector Overview: AWS GuardDuty

Capabilities

  • Collect: Yes

  • Respond: No

  • Native Alerts Mapped: Yes

  • Runs on: DP

  • Interval: Configurable

Collected Data

Content Type

Index

Locating Records

N/A

Syslog

msg_class:

aws_guardduty_finding

msg_origin.source:

aws_guardduty

msg_origin.vendor:

aws

msg_origin.category:

paas

Domain

N/A

Response Actions

N/A

Third Party Native Alert Integration Details

This connector ingests logs from AWS GuardDuty to get the raw alerts that are stored in the Syslog index.

Stellar Cyber maps AWS GuardDuty alerts. The alerts are read from the Syslog index, enriched with Stellar Cyber fields, and mapped (with deduplication) to the Alerts index.

Deduplication is by aws_guardduty_id.

In the logs, the msg_class aws_guardduty_finding will have different values for aws_guarduty.Resource.ResourceType. The resource types are Instance, AccessKey, S3Bucket, KubernetesCluster, ECSCluster, Container, RDSDBInstance, or Lambda.

For details, see Integration of Third Party Native Alerts.

Required Credentials

  • Access Key and Secret Key

Locating Records

To search the alerts in the Alerts index, use the query: msg_class: aws_guardduty_finding AND exists:event.threat.name

To search the Original Records in the Syslog index, use the query: msg_class: aws_guardduty_finding AND exists:event.threat.name

               Let us know if you find the above overview useful.

Adding an AWS GuardDuty Connector

To add an AWS GuardDuty connector:

  1. Add an AWS user
  2. Create an access key
  3. Enable AWS GuardDuty in a region
  4. Add the connector in Stellar Cyber
  5. Test the connector
  6. Verify ingestion

Adding an AWS User for Stellar Cyber

Use our example as a guideline, as you might be using a different software version.

To add a user with the appropriate permissions:

  1. Log in to your AWS Management Console at https://aws.amazon.com/console. View the services in the Console Home or choose View all services.

  2. Choose IAM. The IAM Dashboard appears.

  3. Choose Policies and then choose Create Policy.

  4. In the Create policy pane, choose the JSON tab.

  5. Using the example below as a guide, edit the JSON policy document.

    The following is just an EXAMPLE. You must modify this JSON to match the resources in your own environment.

    Copy

    GuardDuty policy

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "guardduty:GetFindings",
                    "guardduty:ListDetectors",
                    "guardduty:ListFindings",
                    "guardduty:GetDetector"
                ],
                "Resource": "*",
                "Condition": {
                    "StringEquals": {
                        "aws:RequestedRegion": [
                            "us-west-1",
                            "us-west-2"
                        ]
                    }
                }
            }
        ]
    }
  6. Choose Next.

  7. Give your policy a name to associate it with Stellar Cyber, then choose Create policy.

    The policy can now be attached to a user.

  8. From the IAM navigation pane, choose Users and then choose Create user.

  9. In the Specify user details page for User details, enter a User name for the new user.

  10. Choose Provide user access to the – AWS Management Console optional to produce login credentials for the new user, such as a password.

  11. Choose how you want to create the Console password and then choose Next.

  12. For Set permissions, choose Attach policies directly. Then search for the policy you created above.

  13. Select the checkbox to the left of the policy name, then choose Next.

  14. Verify the information and then choose Create user.

Creating an Access Key

  1. Log in to the IAM Console with your AWS account ID, your IAM user name, and password. You must have the permissions required to create access keys for a user.

  2. Choose Users, then choose the user name, and click Security credentials.

  3. In the Access keys section, choose Create access key. Access keys have two parts: an access key ID and a secret access key. Click Create access key.

  4. On the Access key best practices & alternatives page, choose Other and then choose Next.

  5. Click Create access key.

  6. On the Retrieve access keys page, choose Show to reveal the value of the user's secret access key. Save the access key ID and secret access key in a secure location. You will need them when configuring the connector in Stellar Cyber.

  7. Click Done.

Enabling AWS GuardDuty in a Region

You must enable AWS GuardDuty in the AWS console in a selected region. This automatically creates a detector, which is needed for the configuration.

  1. Open the AWS GuardDuty console: https://console.aws.amazon.com/guardduty/.

  2. Choose Get Started.

  3. Choose Enable GuardDuty.

If you are redirected to the Get started page when you open the AWS GuardDuty console, AWS GuardDuty is not enabled in the selected region.

When AWS GuardDuty is enabled, to verify that you have a detector for your current region, navigate to the Settings page in the AWS GuardDuty console.

Adding the Connector in Stellar Cyber

With the credential and log information available, you can now add the AWS GuardDuty connector in Stellar Cyber:

  1. Log in to Stellar Cyber.

  2. Click System | Integration | Connectors. The Connector Overview appears.

  3. Click Create. The General tab of the Add Connector screen appears. The information on this tab cannot be changed after you add the connector.

    The asterisk (*) indicates a required field.

  4. Choose PaaS from the Category drop-down.

  5. Choose AWS GuardDuty from the Type drop-down.

  6. For this connector, the supported Function is Collect, which is enabled already.

  7. Enter a Name.

    Notes:
    • This field does not accept multibyte characters.
    • It is recommended that you follow a naming convention such as tenantname-connectortype.
  8. Choose a Tenant Name. The Interflow records created by this connector include this tenant name.

  9. Choose the device on which to run the connector.

  10. (Optional) When the Function is Collect, you can apply Log Filters. For information, see Managing Log Filters.

  11. Click Next. The Configuration tab appears.

    The asterisk (*) indicates a required field.

  12. Enter the Access Key you noted above.

  13. Enter the Secret Key you noted above.

  14. Choose a Region from the available regions in the drop-down.

  15. Choose the Interval (min). This is how often the logs are collected.

  16. Click Next. The final confirmation tab appears.

  17. Click Submit.

    To pull data, a connector must be added to a Data Analyzer profile if it is running on the Data Processor.

The new connector is immediately active and starts collecting logs.

Testing the Connector

When you add (or edit) a connector, we recommend that you run a test to validate the connectivity parameters you entered. (The test validates only the authentication / connectivity; it does not validate data flow).

For connectors running on a sensor, Stellar Cyber recommends that you allow 30-60 seconds for new or modified configuration details to be propagated to the sensor before performing a test.

  1. Click System | Integrations | Connectors. The Connector Overview appears.

  2. Locate the connector that you added, or modified, or that you want to test.

  3. Click Test at the right side of that row. The test runs immediately.

    Note that you may run only one test at a time.

Stellar Cyber conducts a basic connectivity test for the connector and reports a success or failure result. A successful test indicates that you entered all of the connector information correctly.

To aid troubleshooting your connector, the dialog remains open until you explicitly close it by using the X button. If the test fails, you can select the  button from the same row to review and correct issues.

The connector status is updated every five (5) minutes. A successful test clears the connector status, but if issues persist, the status reverts to failed after a minute.

Repeat the test as needed.

ClosedDisplay sample messages...

Success !

Failure with summary of issue:

Show More example detail:

If the test fails, the common HTTP status error codes are as follows:

HTTP Error CodeHTTP Standard Error NameExplanationRecommendation
400Bad RequestThis error occurs when there is an error in the connector configuration.

Did you configure the connector correctly?

401Unauthorized

This error occurs when an authentication credential is invalid or when a user does not have sufficient privileges to access a specific API.

Did you enter your credentials correctly?

Are your credentials expired?

Are your credentials entitled or licensed for that specific resource?

403ForbiddenThis error occurs when the permission or scope is not correct in a valid credential.

Did you enter your credentials correctly?

Do you have the required role or permissions for that credential?

404Not FoundThis error occurs when a URL path does not resolve to an entity.Did you enter your API URL correctly?
429Too Many Requests

This error occurs when the API server receives too much traffic or if a user’s license or entitlement quota is exceeded.

The server or user license/quota will eventually recover. The connector will periodically retry the query.

If this occurs unexpectedly or too often, work with your API provider to investigate the server limits, user licensing, or quotas.

For a full list of codes, refer to HTTP response status codes.

Verifying Ingestion

To verify ingestion:

  1. Click Investigate | Threat Hunting. The Interflow Search tab appears.
  2. Change the Indices to Syslog. The table immediately updates to show ingested Interflow records.