Detection rules › Panther

AWS GuardDuty Medium Severity Finding

Severity
medium
Log types
AWS.GuardDuty
Tags
AWS
Reference
https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings.html#guardduty_findings-severity
Source
github.com/panther-labs/panther-analysis

A medium-severity GuardDuty finding has been identified.

Rule body yaml

AnalysisType: rule
Filename: aws_guardduty_med_sev_findings.py
RuleID: "AWS.GuardDuty.MediumSeverityFinding"
DisplayName: "AWS GuardDuty Medium Severity Finding"
Enabled: true
LogTypes:
  - AWS.GuardDuty
Tags:
  - AWS
Severity: Medium
DedupPeriodMinutes: 480 # 8 hours
Description: >
  A medium-severity GuardDuty finding has been identified.
Runbook: >
  Search related logs to understand the root cause of the activity.
  Search the Panther Summary Attribute type value in https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html for additional details.
Reference: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings.html#guardduty_findings-severity
SummaryAttributes:
  - severity
  - type
  - title
  - p_any_domain_names
  - p_any_aws_arns
  - p_any_aws_account_ids
Tests:
  - Name: Medium Sev Finding
    ExpectedResult: true
    Log:
      {
        "schemaVersion": "2.0",
        "accountId": "123456789012",
        "region": "us-east-1",
        "id": "eeb88ab56556eb7771b266670dddee5a",
        "partition": "aws",
        "arn": "arn:aws:guardduty:us-west-2:123456789012:detector/111111bbbbbbbbbb5555555551111111/finding/90b82273685661b9318f078d0851fe9a",
        "type": "PrivilegeEscalation:IAMUser/AdministrativePermissions",
        "service":
          {
            "serviceName": "guardduty",
            "detectorId": "111111bbbbbbbbbb5555555551111111",
            "action":
              {
                "actionType": "AWS_API_CALL",
                "awsApiCallAction":
                  {
                    "api": "PutRolePolicy",
                    "serviceName": "iam.amazonaws.com",
                    "callerType": "Domain",
                    "domainDetails":
                      { "domain": "cloudformation.amazonaws.com" },
                    "affectedResources":
                      {
                        "AWS::IAM::Role": "arn:aws:iam::123456789012:role/IAMRole",
                      },
                  },
              },
            "resourceRole": "TARGET",
            "additionalInfo": {},
            "evidence": null,
            "eventFirstSeen": "2020-02-14T17:59:17Z",
            "eventLastSeen": "2020-02-14T17:59:17Z",
            "archived": false,
            "count": 1,
          },
        "severity": 5,
        "createdAt": "2020-02-14T18:12:22.316Z",
        "updatedAt": "2020-02-14T18:12:22.316Z",
        "title": "Principal AssumedRole:IAMRole attempted to add a policy to themselves that is highly permissive.",
        "description": "Principal AssumedRole:IAMRole attempted to add a highly permissive policy to themselves.",
      }
  - Name: Medium Sev Finding As Sample Data
    ExpectedResult: false
    Log:
      {
        "schemaVersion": "2.0",
        "accountId": "123456789012",
        "region": "us-east-1",
        "id": "eeb88ab56556eb7771b266670dddee5a",
        "partition": "aws",
        "arn": "arn:aws:guardduty:us-west-2:123456789012:detector/111111bbbbbbbbbb5555555551111111/finding/90b82273685661b9318f078d0851fe9a",
        "type": "PrivilegeEscalation:IAMUser/AdministrativePermissions",
        "service":
          {
            "serviceName": "guardduty",
            "detectorId": "111111bbbbbbbbbb5555555551111111",
            "action":
              {
                "actionType": "AWS_API_CALL",
                "awsApiCallAction":
                  {
                    "api": "PutRolePolicy",
                    "serviceName": "iam.amazonaws.com",
                    "callerType": "Domain",
                    "domainDetails":
                      { "domain": "cloudformation.amazonaws.com" },
                    "affectedResources":
                      {
                        "AWS::IAM::Role": "arn:aws:iam::123456789012:role/IAMRole",
                      },
                  },
              },
            "resourceRole": "TARGET",
            "additionalInfo": { "sample": true },
            "evidence": null,
            "eventFirstSeen": "2020-02-14T17:59:17Z",
            "eventLastSeen": "2020-02-14T17:59:17Z",
            "archived": false,
            "count": 1,
          },
        "severity": 5,
        "createdAt": "2020-02-14T18:12:22.316Z",
        "updatedAt": "2020-02-14T18:12:22.316Z",
        "title": "Principal AssumedRole:IAMRole attempted to add a policy to themselves that is highly permissive.",
        "description": "Principal AssumedRole:IAMRole attempted to add a highly permissive policy to themselves.",
      }

Detection logic

Condition

service.additionalInfo.sample is_null
severity ge "4.0"
severity le "6.9"

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
service.additionalInfo.sampleis_null
  • (no value, null check)
severityge
  • 4.0
severityle
  • 6.9

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

Field
description
severity
id
type
resource
service
accountId
title