Try in Splunk Security Cloud

Description

The following analytic identifies low, informational, or unknown severity findings from AWS Elastic Container Registry (ECR) image scans. It leverages AWS CloudTrail logs, specifically the DescribeImageScanFindings event, to detect these findings. This activity is significant for a SOC as it helps in early identification of potential vulnerabilities or misconfigurations in container images, which could be exploited if left unaddressed. If confirmed malicious, these findings could lead to unauthorized access, data breaches, or further exploitation within the containerized environment.

  • Type: Anomaly
  • Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud

  • Last Updated: 2024-05-15
  • Author: Patrick Bareiss, Eric McGinnis Splunk
  • ID: cbc95e44-7c22-443f-88fd-0424478f5589

Annotations

ATT&CK

ATT&CK

ID Technique Tactic
T1204.003 Malicious Image Execution
T1204 User Execution Execution
Kill Chain Phase
  • Installation
NIST
  • DE.AE
CIS20
  • CIS 13
CVE
1
2
3
4
5
6
7
8
9
10
11
12
13
`cloudtrail` eventSource=ecr.amazonaws.com eventName=DescribeImageScanFindings 
| spath path=responseElements.imageScanFindings.findings{} output=findings 
| mvexpand findings 
| spath input=findings
| search severity IN ("LOW", "INFORMATIONAL", "UNKNOWN") 
| rename name as finding_name, description as finding_description, requestParameters.imageId.imageDigest as imageDigest, requestParameters.repositoryName as repository, userIdentity.principalId as user 
| eval finding = finding_name.", ".finding_description 
| eval phase="release" 
| eval severity="low" 
| stats min(_time) as firstTime max(_time) as lastTime by awsRegion, eventName, eventSource, imageDigest, repository, user, src_ip, finding, phase, severity 
| `security_content_ctime(firstTime)` 
| `security_content_ctime(lastTime)` 
| `aws_ecr_container_scanning_findings_low_informational_unknown_filter`

Macros

The SPL above uses the following Macros:

:information_source: aws_ecr_container_scanning_findings_low_informational_unknown_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Required fields

List of fields required to use this analytic.

  • eventSource
  • eventName
  • responseElements.imageScanFindings.findings{}
  • awsRegion
  • requestParameters.imageId.imageDigest
  • requestParameters.repositoryName
  • user
  • userName
  • src_ip

How To Implement

You must install splunk AWS add on and Splunk App for AWS. This search works with AWS CloudTrail logs.

Known False Positives

unknown

Associated Analytic Story

RBA

Risk Score Impact Confidence Message
5.0 10 50 Vulnerabilities with severity $severity$ found in repository $repository$

:information_source: The Risk Score is calculated by the following formula: Risk Score = (Impact * Confidence/100). Initial Confidence and Impact is set by the analytic author.

Reference

Test Dataset

Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI. Alternatively you can replay a dataset into a Splunk Attack Range

source | version: 3