StepSecurity outlines defenses against Trivy and KICS GitHub Actions compromises

· Original article ↗

Summary

StepSecurity describes defenses for the reported Trivy and KICS GitHub Actions compromises, including immutable SHA pinning, egress controls, process monitoring, imposter-commit detection, pre-run policies and organization-wide inventory.

Key points

  • The article says TeamPCP compromised 76 of 77 aquasecurity/trivy-action version tags and that malware in the action attempted to read secrets from the runner's Runner.Worker process memory.
  • It also reports that the Checkmarx KICS GitHub Action was compromised, with malware injected into its Git tags.
  • StepSecurity says Harden Runner can block outbound traffic outside an allowlist and detect suspicious process behavior; it cites an attempted connection to scan[.]aquasecurtiy[.]org.
  • The post recommends pinning GitHub Actions to immutable commit SHAs to prevent mutable-tag changes from silently changing workflow code.
  • StepSecurity describes detecting imposter commits by identifying action SHAs that are not on a branch of the source repository, and cancelling runs that reference known-compromised actions.
  • The company says its Actions Inventory can identify repositories using an affected action, show whether references are pinned or mutable, and help scope runs during a compromise window.

Article Details

Defense Focus
Protect GitHub Actions workflows from supply-chain compromises by preventing credential theft and exfiltration, detecting anomalous execution, and containing affected runs.
Detection Methods
  • Compare outbound connections with per-workflow baselines and flag new or previously unseen endpoints.
  • Monitor runner processes and flag reads of /proc/pid/mem targeting the Runner.Worker process.
  • Analyze workflow logs for action commits that resolve to a SHA not present on any branch of the source repository.
  • Monitor repositories for unusual tag activity and suspicious commit patterns; validate suspected compromises and collect indicators.
  • Use organization-wide detections and Actions Inventory to identify workflows using compromised actions, mutable tags, and runs during the compromise window.
Data Sources
  • Outbound network connections from GitHub Actions workflow runs
  • Runner process activity, including process execution and memory-read behavior
  • Workflow logs and resolved action commit SHAs compared with source repository branches
  • Repository action references, tag usage, and workflow-run timestamps
  • Threat intelligence signals from GitHub Actions repositories, package registries, and community channels
Platforms
  • GitHub-hosted runners
  • Self-hosted VMs
  • Bare-metal runners
  • Actions Runner Controller (ARC) clusters
Defensive Actions
  • Enforce network egress allowlists in block mode; use observed endpoints from baseline runs to inform authorized destinations.
  • Deploy Harden Runner to monitor network and process behavior; enable process lockdown to isolate the runner and terminate suspicious jobs.
  • Pin GitHub Actions to immutable full-length commit SHAs and Docker images to immutable digests.
  • Restrict GITHUB_TOKEN permissions to least privilege and replace risky third-party actions with securely maintained alternatives.
  • Apply a pre-execution policy that cancels runs referencing known-compromised actions.
  • Use the Global Block List to block validated malicious domains and IPs, and use workflow-log analysis to detect imposter commits.
  • Use Actions Inventory and workflow-run records to find affected repositories, mutable references, and runs during the compromise window.

Indicators of compromise

TypeIndicatorContext
DOMAINscan[.]aquasecurtiy[.]orgIdentified as the attacker-controlled C2 domain used to receive stolen credentials from compromised GitHub Actions workflows.
IPV445[.]148[.]10[.]212Identified as the attacker IP to which the malicious C2 domain resolves.

MITRE ATT&CK

CVE

Threat Actors

Malware

Vendors

Products

Tools

Related Articles