[SUP] Trivy Supply Chain Attack Credential Compromise and Release Channel Poisoning

Report Type

Threat Intelligence Assessment

Threat Category

Supply Chain Compromise

CI/CD Pipeline Compromise

Credential Theft and Identity Abuse

Assessment Date

March 26, 2020

Primary Impact Domain

Software Supply Chain Integrity (CI/CD Ecosystems)

Identity and Access Management (Service Accounts, Tokens, Secrets)

Cloud and Build Infrastructure Security (AWS, Azure, GCP)


BLUF

 Organizations using Trivy within CI/CD pipelines face material business risk from a supply chain attack in which compromised publishing credentials were used to inject malicious code into official release channels, GitHub Actions, and container images, causing trusted pipeline components to execute attacker-controlled payloads. The technical cause is a failure in upstream trust controls, where authenticated access to release infrastructure enabled modification of version tags, binaries, and images that downstream systems implicitly trust and execute. The threat posture is elevated because the attack requires no victim-side vulnerability exploitation, leverages legitimate distribution mechanisms, and involves a vulnerability now confirmed exploited in the wild through CISA KEV, allowing malicious components to propagate silently through automated pipelines at scale. Executive action is required to assume credential exposure, rotate all pipeline secrets, validate all consumed artifacts, and enforce controls that eliminate implicit trust in upstream-managed or mutable components.

Executive Risk Translation

This attack converts trusted software supply chain components into execution paths for credential theft and downstream system compromise without requiring exploitation of target environments.

S3 Why This Matters Now

·        Confirmed compromise of multiple upstream distribution channels:

o   GitHub releases

o   GitHub Actions (trivy-action, setup-trivy)

o   Docker Hub images

·        CVE-2026-33634 is a confirmed exploited vulnerability in CISA KEV, which elevates this from high-priority to immediate remediation priority under standard vulnerability management practice.

·        Attack targets distribution trust and dependency consumption, not runtime vulnerabilities

·        CI/CD pipelines commonly:

o   Pull and execute external components automatically

o   Trust version tags and upstream sources without verification

·        Multi-channel compromise increases:

o   Exposure likelihood

o   Complexity of incident scoping

·        Exposure may be silent and retroactive, requiring historical pipeline and artifact analysis

·        Aqua’s advisory confirms compromised credentials were used to publish a malicious Trivy v0.69.4 release, hijack trivy-action tags, replace setup-trivy tags, and later publish malicious Docker Hub images.

S4 Key Judgments

·        This is a release-channel supply chain compromise enabled by valid credentials, not a traditional victim-side vulnerability exploitation chain

·        The attack required no victim-side exploitation, only consumption of trusted upstream components

·        CVE-2026-33634 is confirmed exploited and should be treated as an immediate remediation and response priority, not a watchlist item.

·        Malicious components were:

o   Distributed through official sources

o   Executed within normal CI/CD workflows

·        Highest-risk environments:

o   Pipelines using mutable tags or unpinned dependencies

o   Environments exposing secrets during pipeline execution

·        The attack enables:

o   Credential theft

o   Downstream system access

o   Lateral movement via pipeline permissions

·        Aqua’s incident details confirm the actor used compromised credentials and targeted release assets, action tags, and container images across multiple channels.

S5 Executive Risk Summary

Primary Risk

o   Execution of attacker-controlled code within CI/CD pipelines via compromised trusted components

Secondary Risk

o   Exposure and theft of pipeline credentials, tokens, and secrets

Operational Impact

o   Unauthorized access to source code, registries, and deployment environments

o   Mandatory credential rotation and pipeline-wide validation

Strategic Impact

o   Loss of trust in software supply chain dependencies

o   Governance failure in third-party component validation

S6 Executive Cost Summary (Improved Presentation)

This cost analysis was developed by the CyberDax team using expert judgment and assisted analytical tools to support clarity and consistency.

Low Impact — $50K–$250K

Limited exposure requiring targeted credential rotation, artifact validation, and verification of affected pipeline components

Moderate Impact — $250K–$2M

Confirmed execution of compromised components requiring full credential rotation, pipeline audit, artifact revalidation, and investigation of historical exposure windows

High Impact — $2M–$10M+

Broad credential compromise and downstream system access requiring enterprise-wide secret rotation, full CI/CD pipeline rebuild, cache and dependency purge, retrospective exposure analysis, and regulatory response

S6A Key Cost Drivers

·        Emergency credential rotation across CI/CD, cloud, and registry environments

·        Retrospective exposure scoping across pipeline executions and logs

·        Artifact validation, recall, and cache purging

·        Pipeline integrity re-establishment and dependency governance enforcement

·        Incident response, forensic investigation, and operational disruption

S6B Compliance and Risk Context

Compliance Exposure Indicator

·        Violations of:

o   NIST SSDF supply chain and dependency controls

o   SOC 2 control integrity and access management

o   ISO 27001 supplier security and application integrity controls

Risk Register Entry

·        Risk Title

o   Supply Chain Compromise via Trivy Release Channel Poisoning

·        Risk Category

o   Supply Chain Security / Identity and Access Risk

·        Likelihood

o   Moderate to High in automated CI/CD environments

·        Impact

o   High due to credential exposure and control bypass

Annualized Risk Exposure

·        Estimated range: $750K–$8M annually depending on pipeline scale and credential scope

S8 Bottom Line for Executives

This is a credential-driven supply chain attack targeting trusted distribution channels

CVE-2026-33634 is confirmed exploited and should be treated as an immediate remediation priority within vulnerability and incident response workflows.

The core failure is implicit trust in upstream components and mutable references

Immediate priorities:

·        Rotate all credentials

·        Validate all artifacts

·        Enforce immutable and verified dependencies

·        Review historical pipeline executions during the exposure windows identified by Aqua

S9 Board-Level Takeaway

This incident demonstrates that authenticated access to release infrastructure can bypass downstream security controls entirely

Because CVE-2026-33634 is in the KEV catalog, this issue should be treated as a confirmed active exploitation risk with immediate governance and remediation significance, not merely an emerging threat.


Organizational risk stems from:

·        Trust assumptions

·        Lack of dependency validation

·        Overreliance on upstream integrity without independent verification

Board oversight should ensure:

·        Supply chain trust verification mechanisms

·        Dependency governance enforcement

·        Continuous validation of control effectiveness



S10 Supply Chain Attack Overview

The Trivy incident represents a supply chain attack in which an adversary used compromised credentials to modify trusted upstream distribution channels, including GitHub releases, GitHub Actions, and Docker Hub images, causing downstream systems to retrieve and execute malicious components. The attack bypasses traditional exploitation by targeting the trust relationship between software publishers and consumers, allowing poisoned artifacts to be delivered through legitimate update and dependency mechanisms. Once integrated into CI/CD pipelines, these components execute as part of normal workflows, enabling credential theft and downstream access without triggering conventional exploit detection mechanisms.

S11 Affected Product / Trust Dependency Overview

Primary Product

Trivy vulnerability scanner and associated ecosystem components

Affected Components

  • Trivy binary releases

  • GitHub Action: trivy-action

  • GitHub Action: setup-trivy

  • Docker Hub Trivy images

Trust Dependency Role

  • Used within CI/CD pipelines to:

    • Perform vulnerability scanning

    • Prepare runtime environments

    • Enforce security validation

Critical Trust Assumption

  • Upstream releases and version tags are authentic and safe

Trust Boundary Location

  • Between:

    • Upstream distribution channels

    • CI/CD execution environments

Failure Condition

  • Compromised upstream artifacts are executed as trusted components

S12 Enabling Vulnerability and Exposure Context

Enabling Condition

Compromised credentials allowing modification of upstream release and distribution infrastructure

CVE Context

CVE-2026-33634 is associated with the broader Trivy ecosystem but is not a primary driver of this incident and does not represent the core attack mechanism

Attack Mechanism

·        Publishing malicious releases

·        Overwriting version tags

·        Replacing GitHub Action references

·        Distributing compromised container images

Security Impact

·        Execution of attacker-controlled code within CI/CD pipelines

·        Credential harvesting from pipeline execution environments

Exposure Conditions

Use of:

·        Mutable tags

·        Unpinned dependencies

·        Automated dependency retrieval

S13 Exploitability, Patch, and Exposure Management Status

Exploitability

High in environments consuming affected artifacts through automated or trusted dependency mechanisms

Attack Preconditions

·        No direct compromise of target systems required

·        Only dependency consumption within CI/CD workflows

KEV Status

Confirmed in the CISA Known Exploited Vulnerabilities catalog

KEV Prioritization Implication

Immediate remediation priority. KEV inclusion means the vulnerability should be treated as confirmed exploited in the wild and prioritized accordingly within vulnerability management and incident response workflows.

EEP Statement

EEP is a forward-looking analytic measure of operational exploitation potential, not a statement of confirmed exploitation, KEV inclusion, or incident activity.

Patch / Remediation Status

·        Malicious artifacts removed from upstream sources

·        Safe versions and tags restored by the vendor

·        Organizations must:

o   Rotate credentials

o   Validate artifact usage

o   Rebuild trust in pipeline components

o   Hunt for lingering exposure through intermediary caches
Aqua’s advisory identifies patched or safe references including setup-trivy 0.2.6, trivy-action 0.35.0, and unaffected Trivy usage such as v0.69.3 or earlier, pinned digests, and source builds.

Exposure Management Risk

High due to:

·        Confirmed exploitation

·        Multi-channel trusted-distribution compromise

·        Potential persistence in cached or mirrored artifacts after upstream cleanup. Aqua explicitly warns removed malicious artifacts may linger in intermediary caches.

S14 Sectors / Countries Affected

·       Technology and SaaS providers

·       Financial services

·       Healthcare

·       Government and defense

·       Any organization using Trivy within CI/CD pipelines

Geographic Scope

·       Global

S15 Adversary Capability Profiling

Skill Level

Moderate

Technique Requirements

·       Access to publishing credentials

·       Ability to modify release assets and distribution channels

Operational Maturity

High impact achieved through low-complexity access abuse

Scalability

Very high due to widespread dependency consumption

Operational Objectives

·       Credential theft

·       Pipeline compromise

·       Downstream system access

S16 Targeting Probability Assessment

Highest Probability Targets

·       CI/CD-intensive organizations using Trivy

Moderate Probability Targets

·       Organizations using third-party GitHub Actions without validation

Lower Probability Targets

·       Environments enforcing dependency pinning and verification

Targeting Drivers

·       Pipeline automation

·       Credential exposure potential

·       Dependency trust model

S17 MITRE ATT&CK Chain Flow Mapping

Initial Access

·       T1078 – Valid Accounts

·       Use of compromised credentials to access release infrastructure

Initial Access

·       T1195 – Supply Chain Compromise

·       Injection of malicious artifacts into trusted distribution channels

Execution

·       T1059 – Command and Scripting Interpreter

·       Malicious components executed within CI/CD workflows

Credential Access

·       T1552 – Unsecured Credentials

·       Extraction of pipeline secrets during execution

Defense Evasion

·       T1036 – Masquerading

·       Malicious artifacts presented as legitimate versions

Persistence

·       T1574 – Hijack Execution Flow

·       Continued execution via trusted pipelines

Impact

·       Not observed in currently available reporting; may occur during post-exploitation depending on attacker objectives and target environment

S18 Attack Path Narrative

The attack begins with adversary access to credentials capable of modifying Trivy release and distribution infrastructure, enabling direct manipulation of upstream assets without requiring exploitation of target environments. Using these credentials, the attacker publishes malicious Trivy binaries, force-modifies GitHub Action tags (trivy-action, setup-trivy), and distributes compromised container images through Docker Hub, poisoning multiple trusted acquisition channels.


Downstream CI/CD pipelines ingest these artifacts through standard dependency retrieval mechanisms, including version tags, mutable references, and automated pulls from upstream repositories. Because pipelines commonly trust these sources and do not enforce immutability or verification, the malicious components are treated as legitimate and executed during build, scan, or deployment stages.


Execution occurs within trusted automation contexts where environment variables, API tokens, cloud credentials, and repository access secrets are accessible. The malicious payload leverages this execution context to access and extract these credentials, enabling exfiltration to attacker-controlled infrastructure.


The attacker can then use harvested credentials to access additional systems, including source repositories, container registries, and cloud environments, extending the compromise beyond the initial pipeline. Because the attack leverages trusted execution paths, compromised artifacts may propagate across multiple environments and persist through repeated pipeline executions.


Exposure may extend retroactively due to cached artifacts and previously executed pipelines, requiring organizations to analyze historical usage to determine the full scope of compromise.

S19 Attack Chain Risk Amplification Summary

Upstream Trust Inheritance

Compromised artifacts inherit legitimacy from official distribution channels, allowing malicious components to bypass downstream validation controls

Automated Execution Scaling

CI/CD pipelines automatically retrieve and execute dependencies, enabling rapid and repeated propagation across environments

Credential Exposure Amplification

Pipeline execution contexts expose sensitive credentials, enabling attacker access beyond the initial compromised component

Multi-Channel Distribution

Simultaneous compromise of GitHub releases, GitHub Actions, and Docker images increases likelihood and scale of exposure

Cache Persistence Risk

Malicious artifacts may remain in local caches, intermediate registries, and mirrored repositories, extending exposure beyond initial remediation

Silent Execution Risk

Attack operates within expected pipeline behavior, reducing detection likelihood

Retroactive Exposure Window

Organizations must assess historical pipeline executions to determine full compromise scope


S20 Tactics, Techniques, and Procedures

T1078 – Valid Accounts

Adversary uses compromised credentials to access and modify release infrastructure

T1195 – Supply Chain Compromise

Malicious artifacts are introduced into trusted distribution channels

T1036 – Masquerading

Malicious components are presented as legitimate versions or tags

T1059 – Command and Scripting Interpreter

Malicious code executes within CI/CD workflows

T1528 – Steal Application Access Token

Pipeline tokens and access credentials are extracted during execution

T1071 – Application Layer Protocol

Exfiltration of credentials and data to attacker-controlled infrastructure

Conditional Post-Exploitation Behaviors

Not observed in currently available reporting; may occur during post-exploitation depending on attacker objectives and target environment

S20A Adversary Tradecraft Summary

Tradecraft Theme

Credential-enabled compromise of trusted software distribution channels

Operational Approach

Use of authenticated access to modify upstream release assets rather than exploiting downstream systems

Core Tradecraft Insight

Abuse of centralized trust within CI/CD ecosystems, where a single upstream compromise propagates across dependent environments

Stealth Characteristics

Delivery through legitimate channels and execution within normal pipeline workflows reduces detection likelihood

Scalability

High
One upstream compromise impacts multiple downstream environments

Primary Objective

Credential theft from pipeline execution contexts

Secondary Objectives

Persistence and expansion of access using stolen credentials

Adversary Efficiency Assessment

High
Converts trusted automation into a scalable compromise mechanism

S21 Detection Strategy Overview

Detection of this supply chain attack requires correlation across upstream artifact integrity, CI/CD pipeline execution behavior, and credential access patterns. Because the attack leverages trusted distribution channels and executes within legitimate workflows, signature-based detection is insufficient.

Effective detection must correlate signals across three primary telemetry pillars:

·        Source control and CI/CD telemetry to identify unauthorized modification of release assets, tags, and dependency references

·        Endpoint and execution telemetry to detect anomalous process behavior within pipeline runners

·        Network telemetry to identify outbound communication associated with credential exfiltration

The strategy focuses on detecting trust-boundary violations, anomalous dependency ingestion, and credential access patterns inconsistent with expected pipeline execution.

S22 Primary Detection Signals

Release and Dependency Integrity Signals

·        Force-push or modification events on version tags associated with trivy-action or setup-trivy

·        Changes in referenced GitHub Action versions without corresponding repository release activity

·        Pipeline retrieval of newly published or previously unused artifact versions

Pipeline Execution Signals

·        Execution of pipeline steps invoking binaries or scripts not previously observed in baseline workflows

·        Changes in job execution sequences within CI/CD workflows

·        Invocation of external scripts or commands during scanning or setup phases not present in prior pipeline runs

Credential Access Signals

·        Access to environment variables or secrets outside defined pipeline stages

·        Token usage by processes not mapped to expected CI/CD execution components

·        Access to repository, registry, or cloud credentials during non-authentication phases

Network Communication Signals

·        Outbound connections from pipeline runners to domains or IPs not previously associated with build or scan processes

·        DNS queries initiated during pipeline execution that deviate from established baselines

·        Data transfer patterns inconsistent with standard dependency retrieval or build operations

S23 Telemetry Requirements

Source Control and CI/CD Telemetry

·        GitHub audit logs capturing:

o   tag modification and force-push events

o   release publishing activity

·        GitHub Actions workflow and runner logs capturing:

o   execution steps

o   job sequence changes

o   command invocation patterns

Endpoint and Execution Telemetry

·        EDR telemetry from build agents and runners capturing:

o   process execution

o   command-line arguments

o   script invocation patterns

Network Telemetry

·        DNS logs capturing:

o   domain lookups originating from pipeline runners

·        Web proxy or firewall logs capturing:

o   outbound connections

o   data transfer behavior

Credential and Identity Telemetry

·        Access logs capturing:

o   API token usage

o   cloud credential access

o   repository and registry authentication events


S24 Detection Opportunities and Gaps

Detection Opportunities

·        Identification of unauthorized tag or release modification activity in upstream repositories

·        Detection of pipeline execution deviations through baseline comparison

·        Monitoring for abnormal credential access patterns during CI/CD runs

·        Correlation of execution anomalies with outbound network activity

Detection Gaps

·        Limited visibility into execution behavior of third-party GitHub Actions

·        Reduced telemetry fidelity in ephemeral pipeline environments

·        Lack of artifact integrity validation for externally sourced dependencies

·        Insufficient correlation across CI/CD, endpoint, and network telemetry layers


S25 Ultra-Tuned Detection Engineering Rules

Suricata

Rule Name

CI/CD Runner HTTP POST to Non-Allowlisted External Destination

Purpose

Detect outbound HTTP POST requests from CI/CD runner infrastructure to non-allowlisted external destinations. In this campaign, compromised Trivy artifacts and related GitHub Actions can execute inside trusted pipeline workflows and attempt outbound communication to attacker-controlled infrastructure for credential theft follow-on activity.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

Suricata HTTP visibility for CI/CD runner traffic
Accurate identification of CI/CD runner subnets, hosts, or VLANs
Environment-specific allowlist covering approved source-control, package, artifact, and business workflow destinations
Best results where outbound web traffic is proxied or decrypted; fidelity drops significantly where HTTPS inspection is unavailable

Tuning Explanation

This rule must be restricted to CI/CD runner assets and used with a mature allowlist. It is intended to catch unexpected outbound POST behavior from runner infrastructure after execution of poisoned dependencies, not general web traffic. Approved destinations such as GitHub, package registries, artifact repositories, internal APIs, and sanctioned cloud services should be suppressed through pass rules or upstream filtering.

Detection Logic

Alert on outbound HTTP POST traffic from CI/CD runner infrastructure to the external network.

Operational Context

This rule is an early-warning network anomaly detector for pipeline environments where runners normally retrieve dependencies but do not routinely POST data to varied internet destinations. It is most valuable when correlated with:

·        unexpected Trivy-related dependency pulls

·        anomalous GitHub Actions execution

·        suspicious process activity on build agents

Logical Notes

This rule does not prove credential theft by itself. Its value is in identifying suspicious outbound web behavior from trusted automation infrastructure that should have narrow and predictable communication patterns.

Rule Regret Check

Deployment caution

Do not deploy broadly across enterprise networks. Restrict to CI/CD runner infrastructure and maintain an allowlist or the rule will generate noise.

Confidence caution

Confidence decreases sharply where HTTPS traffic is not decrypted or proxied because destination context may be limited.

Coverage value

High as an early-warning signal for suspicious outbound communication from poisoned pipeline execution paths.

Execution Validity Status

Conditional production-ready

System-Ready Code

alert http $CI_CD_NET any -> $EXTERNAL_NET any (
    msg:"CYBERDAX CI/CD runner HTTP POST to non-allowlisted external destination";
    flow:established,to_server;
    http.method;
    content:"POST";
    classtype:policy-violation;
    sid:2100001;
    rev:3;
)

Rule Name

CI/CD Runner Large Outbound HTTP POST Payload

Purpose

Detect probable outbound data transfer from CI/CD runner infrastructure by identifying large HTTP POST payloads sent to external destinations. In this campaign, malicious Trivy ecosystem components executed inside pipelines can access tokens, API keys, and environment secrets, then transmit them externally.

ATT&CK Technique

T1041 – Exfiltration Over C2 Channel

Telemetry Dependency

Suricata HTTP inspection with payload-size visibility
CI/CD runner network scoping
Destination allowlisting for legitimate artifact uploads or external business integrations
Strongly benefits from SSL interception, web proxy visibility, or plaintext HTTP inspection

Tuning Explanation

This rule is intended to be a higher-confidence exfiltration detector than Rule 1 by requiring materially sized outbound POST bodies. The payload threshold should be tuned to the environment. If CI/CD jobs legitimately upload artifacts externally, those destinations must be excluded or handled separately.

Detection Logic

Alert on outbound HTTP POST requests from CI/CD runner infrastructure when the payload size exceeds expected baseline thresholds.

Operational Context

This rule is best deployed in environments where pipeline runners normally pull dependencies but do not perform frequent large outbound uploads to the public internet. It is particularly useful during incident triage when validating whether suspicious pipeline execution led to probable exfiltration behavior.

Logical Notes

This rule is intentionally narrower than Rule 1. Rule 1 identifies suspicious outbound POST behavior. Rule 2 is designed to raise confidence when that behavior also includes likely outbound transfer volume.

Rule Regret Check

Deployment caution

Requires careful exclusion of legitimate artifact upload paths, software publishing workflows, and approved cloud destinations.

Confidence caution

Even with size thresholds, this rule indicates suspicious outbound transfer behavior rather than proving the exact content of exfiltrated material.

Coverage value

High for practical identification of likely outbound data transfer from compromised runner infrastructure.

Execution Validity Status

Conditional production-ready

System-Ready Code

alert http $CI_CD_NET any -> $EXTERNAL_NET any (
    msg:"CYBERDAX CI/CD runner large outbound HTTP POST payload";
    flow:established,to_server;
    http.method;
    content:"POST";
    dsize:>1000;
    classtype:exfiltration;
    sid:2100002;
    rev:3;
)

Rule 3

Rule Name

CI/CD Runner Suspicious High-Entropy DNS Query

Purpose

Detect suspicious high-entropy DNS queries originating from CI/CD runner infrastructure that may indicate malware callback, dynamically generated infrastructure, or exfiltration support traffic after execution of compromised Trivy-related dependencies.

ATT&CK Technique

T1071.004 – Application Layer Protocol: DNS

Telemetry Dependency

Suricata DNS visibility from CI/CD runner infrastructure
Accurate identification of runner hosts or subnets
DNS logging sufficient to inspect query strings
Environment-specific suppression for known enterprise tooling, CDNs, telemetry platforms, and approved package ecosystems

Tuning Explanation

This rule must be treated as a corroborating or hunt-support rule, not a primary production alert. High-entropy DNS can be noisy in modern environments. It should be used to strengthen investigations where other indicators already exist, such as anomalous runner execution or suspicious outbound POST traffic.

Detection Logic

Alert on DNS queries from CI/CD runner infrastructure containing unusually long or random-looking labels.

Operational Context

This rule is most useful when pipeline runners normally communicate with a stable and predictable set of package, artifact, and source-control domains. In mature environments, it should be correlated with:

·        unexpected pipeline execution behavior

·        outbound HTTP POST anomalies

·        suspicious credential-access events from endpoint or SIEM tooling

Logical Notes

This rule is intentionally not positioned as a primary detection for this campaign. It is a supporting signal that helps identify suspicious communications from runner infrastructure when combined with stronger execution or exfiltration indicators.

Rule Regret Check

Deployment caution

Will produce false positives without aggressive allowlisting and runner-only scoping.

Confidence caution

Do not escalate this as a standalone high-confidence alert. Use it as corroborating evidence or hunt support.

Coverage value

Medium as a practical corroborating signal for suspicious outbound communications from CI/CD runner infrastructure.

Execution Validity Status

Conditional production-ready / correlation-required

System-Ready Code

alert dns $CI_CD_NET any -> any any (
    msg:"CYBERDAX CI/CD runner suspicious high-entropy DNS query";
    dns.query;
    pcre:"/([a-z0-9]{20,})/i";
    classtype:bad-unknown;
    sid:2100003;
    rev:3;
)

SentinelOne

Rule Name

CI/CD Runner Unexpected Executable Launch

Purpose

Detect execution of non-baseline binaries inside CI/CD runner environments where poisoned Trivy-related components may introduce attacker-controlled executables into otherwise deterministic workflows.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

SentinelOne Deep Visibility process creation telemetry
Reliable identification of CI/CD runner assets through site, group, tag, or hostname convention
Local baseline of expected executable names used in build, scan, and dependency setup workflows

Tuning Explanation

This rule should be limited to CI/CD runner systems and tuned with an allowlist of expected executables used by:

·        runner services

·        Trivy execution

·        container tooling

·        approved setup actions

The rule is intended to identify newly introduced or unexpected executables during pipeline activity, not to detect all binary launches on build systems.

Detection Logic

Detect process launches on CI/CD runner systems where the executable name falls outside the approved baseline for runner workflows.

Operational Context

This is a primary execution-anomaly rule for the campaign. It is strongest where pipelines are stable and tooling is predictable.

Logical Notes

This rule is designed to catch malicious executable introduction. It does not require network visibility and does not depend on known IOCs.

Rule Regret Check

Deployment caution

Requires a maintained executable baseline for CI/CD runners or the alert volume will increase during legitimate pipeline changes.

Confidence caution

Confidence decreases in highly dynamic engineering environments where runner tooling changes frequently.

Coverage value
Very High for detecting malicious execution introduced by poisoned dependencies.

Execution Validity Status
Production-ready with baseline

System-Ready Code

event.type = "Process Creation"
AND agent.group.name = "CI-CD-Runners"
AND tgt.process.image.path NOT CONTAINS ANY ("\\runner\\", "\\docker\\", "\\trivy\\")
AND tgt.process.name NOT IN ("trivy.exe","trivy","bash","sh","python","python3","node","docker","containerd","git","curl","tar","gzip")

Rule Name
CI/CD Runner Suspicious Interpreter Spawn from Trivy or Setup Workflow

Purpose

Detect unexpected interpreter execution spawned from Trivy-related setup or runner workflow lineage, which may indicate malicious script execution introduced through compromised GitHub Actions or poisoned dependencies.

ATT&CK Technique
T1059 – Command and Scripting Interpreter

Telemetry Dependency

SentinelOne Deep Visibility process ancestry telemetry
Command-line visibility
Reliable parent-child process tracking on runner hosts

Tuning Explanation
This rule should focus on interpreters launched from:

·        Trivy execution context

·        setup-trivy style workflow context

·        runner orchestration processes

Suppress known-good interpreter usage where CI/CD jobs intentionally run approved scripts.

Detection Logic

Detect shell or scripting interpreter launches where the parent or grandparent process belongs to Trivy-related setup, runner orchestration, or dependency execution lineage, but the behavior is not part of the approved workflow baseline.

Operational Context

This is a behavioral rule intended to detect malicious script staging and execution after compromised dependency ingestion.

Logical Notes

This rule is narrower than Rule 1. Rule 1 detects unexpected executables broadly. Rule 2 specifically targets interpreter-driven malicious behavior in workflow lineage.

Rule Regret Check

Deployment caution
Requires understanding of legitimate interpreter use in build jobs and setup actions.

Confidence caution

Can alert on legitimate custom automation if scripting behavior is not well baselined.

Coverage value
High for post-ingestion script execution associated with poisoned runner workflows.

Execution Validity Status
Production-ready with tuning

System-Ready Code

event.type = "Process Creation"
AND agent.group.name = "CI-CD-Runners"
AND tgt.process.name IN ("bash","sh","python","python3","node","pwsh","powershell")
AND src.process.name IN ("trivy","runner","docker","node","bash","sh")
AND tgt.process.cmdline NOT CONTAINS ANY ("approved-script","known-good-workflow")

Rule Name
CI/CD Runner Suspicious Secret Harvesting Command Behavior

Purpose

Detect command execution patterns consistent with secret harvesting inside CI/CD runner environments, including attempts to enumerate environment variables, read credential-bearing files, or access token material during workflow execution.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

SentinelOne Deep Visibility process creation telemetry
Command-line visibility
Process ancestry visibility
Local knowledge of expected credential-handling utilities in pipeline jobs

Tuning Explanation

This rule should focus on suspicious secret-access commands that are atypical for normal runner workflows, including:

·        broad environment enumeration

·        direct reads of token-bearing paths

·        shell usage patterns associated with dumping secrets for exfiltration or reuse

Known-good secret initialization scripts and approved credential brokers should be excluded.

Detection Logic

Detect shell or utility execution on CI/CD runner systems where command lines indicate broad environment enumeration, token-file access, or direct reads of credential-bearing paths outside expected credential-handling processes.

Operational Context

This rule targets the campaign’s primary operational objective: theft of usable CI/CD secrets and access tokens.

Logical Notes
This rule is stronger than generic keyword search because it is restricted to runner systems and intended for suspicious credential-harvesting patterns, not all secret use.

Rule Regret Check

Deployment caution
Requires exclusions for approved secret bootstrap scripts, vault clients, and normal token initialization behavior.

Confidence caution
Some debugging or troubleshooting workflows may resemble secret enumeration if not excluded.

Coverage value
Very High for detecting the campaign’s central attacker objective.

Execution Validity Status

Conditional production-ready

System-Ready Code

event.type = "Process Creation"
AND agent.group.name = "CI-CD-Runners"
AND tgt.process.name IN ("bash","sh","cat","grep","find","env","printenv","python","python3")
AND tgt.process.cmdline CONTAINS ANY ("/proc/self/environ","/proc/*/environ",".npmrc",".docker/config.json","GITHUB_TOKEN","AWS_ACCESS_KEY_ID","AZURE_CLIENT_SECRET","GOOGLE_APPLICATION_CREDENTIALS","printenv","env")
AND src.process.name NOT IN ("approved-vault-client","approved-bootstrap")

Rule Name
CI/CD Runner Suspicious Process Followed by External Network Connection

Purpose

Detect suspicious process execution on CI/CD runner systems followed by outbound network communication to external destinations, consistent with secret exfiltration or attacker-controlled callback behavior after poisoned dependency execution.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

SentinelOne Deep Visibility process telemetry
SentinelOne network connection telemetry
Ability to correlate process and outbound connection activity on runner systems
Runner scoping and local destination baseline

Tuning Explanation
This rule should prioritize suspicious processes launched during:

·        Trivy execution

·        setup workflow execution

·        dependency ingestion steps

Known-good destinations such as GitHub, approved registries, artifact repositories, and sanctioned internal APIs should be excluded where possible.

Detection Logic

Detect processes on CI/CD runner systems that initiate outbound external network connections after suspicious or non-baseline process execution.

Operational Context
This is a high-value correlation rule bridging endpoint behavior with likely exfiltration or callback activity. It is strongest when paired with Rule 1 or Rule 3 hits.

Logical Notes

This rule does not prove successful exfiltration. It identifies suspicious process-linked outbound communication that should be escalated quickly in runner environments.

Rule Regret Check

Deployment caution
Requires destination tuning and may generate noise where pipelines call many external services.

Confidence caution
Confidence increases substantially when correlated with suspicious executable or secret-harvesting activity.

Coverage value
High for detecting active follow-on communication from compromised runner processes.

Execution Validity Status
Production-ready with tuning

System-Ready Code

event.type = "Network Connection"
AND agent.group.name = "CI-CD-Runners"
AND network.direction = "OUTGOING"
AND tgt.process.name NOT IN ("trivy","docker","git","curl","node","bash","sh")
AND dst.ip.is_private = false

Splunk

Rule Name

Trivy Reference Drift Outside Approved Change Window

Purpose

Detect unexpected changes in Trivy-related versions, tags, commit SHAs, or GitHub Action references used by CI/CD workflows outside approved deployment or maintenance windows. In this campaign, poisoned Trivy ecosystem components were introduced through trusted release channels and action references, making unauthorized reference drift a high-value ingestion-stage signal.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

GitHub Actions workflow logs
CI/CD pipeline execution logs
Normalized extraction of Trivy-related action references, tags, versions, or commit SHAs
Change-management window data or approved rollout metadata

Tuning Explanation

This rule should compare observed Trivy references against an approved baseline or allowlist rather than relying only on first-seen values. It should alert when:

·        a workflow uses a non-approved Trivy reference

·        a mutable tag appears where pinned references are expected

·        a Trivy-related reference changes outside an approved rollout window

Suppress known change windows, approved maintenance events, and authorized migration periods.

Detection Logic

Identify CI/CD workflow executions that invoke Trivy-related versions, tags, or action references not present in the approved baseline or occurring outside approved change windows.

Operational Context

This is an ingestion-stage control detection. It is strongest in environments that standardize Trivy usage and maintain a controlled set of approved action references or digests.

Logical Notes

This rule is intentionally baseline-driven rather than novelty-driven. Its purpose is to catch unauthorized dependency drift, not simply any newly seen value.

Rule Regret Check

Deployment caution

Requires a maintained reference baseline or allowlist and access to approved rollout context.

Confidence caution

Confidence drops if engineering teams frequently change Trivy references without structured change controls.

Coverage value

High for detecting downstream consumption of poisoned or unauthorized Trivy-related dependencies.

Execution Validity Status

Conditional production-ready

System-Ready Code

index=ci_cd OR index=github_actions OR index=devops
("trivy-action" OR "setup-trivy" OR "aquasecurity/trivy" OR "trivy:")
| rex field=_raw "(?<trivy_ref>(trivy-action[:@][^ \"\r\n\t]+|setup-trivy[:@][^ \"\r\n\t]+|aquasecurity\/trivy[:@][^ \"\r\n\t]+|trivy:[^ \"\r\n\t]+))"
| search trivy_ref=*
| lookup approved_trivy_references trivy_ref OUTPUT trivy_ref as approved_ref
| eval approved_status=if(isnull(approved_ref),"unapproved","approved")
| where approved_status="unapproved"
| table time repo pipelinename host user trivy_ref approved_status

Rule Name

CI/CD Runner Suspicious Process Chain After Trivy or Setup Execution

Purpose

Detect suspicious process execution chains on CI/CD runner systems following Trivy-related execution or setup activity. This supports detection of malicious runner-side behavior introduced by poisoned Trivy binaries or compromised GitHub Actions.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

Splunk ingestion of endpoint process telemetry from EDR, Sysmon, or equivalent sources
Runner asset identification through host tagging, asset inventory, or lookup
Parent-child process telemetry with command-line visibility

Tuning Explanation

Focus on shells, interpreters, and utility execution spawned from:

·        Trivy execution context

·        setup-trivy workflow context

·        runner orchestration processes

Exclude approved bootstrap scripts, sanctioned helper utilities, and known pipeline automation.

Detection Logic

Detect shell, interpreter, or utility execution on runner systems where parent or grandparent context indicates Trivy-related setup, scan, or runner lineage, but the execution is outside the approved baseline.

Operational Context

This is one of the strongest Splunk detections for the campaign because it combines runner context, lineage, and behavioral deviation rather than relying on static indicators.

Logical Notes

This rule complements endpoint-native detections by providing SIEM-level correlation across multiple process telemetry sources.

Rule Regret Check

Deployment caution

Requires reliable parent-child process normalization and accurate runner asset scoping.

Confidence caution

Noise will increase in environments with extensive custom scripting unless pipeline-specific exclusions are maintained.

Coverage value

Very High for malicious execution following poisoned dependency ingestion.

Execution Validity Status

Production-ready with baseline

System-Ready Code

(index=edr OR index=sysmon OR index=endpoint)
(host_category="ci_cd_runner" OR asset_role="ci_cd_runner")
(
    parent_process_name IN ("trivy","runner","docker","bash","sh","node")
    OR parent_process_cmdline="*trivy*"
    OR process_parent_path="*setup-trivy*"
)
process_name IN ("bash","sh","python","python3","pwsh","powershell","curl","wget","nc","tar")
| lookup approved_runner_process_chains parent_process_name process_name OUTPUT process_name as approved_chain_match
| where isnull(approved_chain_match)
| stats count min(_time) as firstTime max(_time) as lastTime by host user process_name process_cmdline parent_process_name parent_process_cmdline
| convert ctime(firstTime) ctime(lastTime)

Rule Name

Runner Secret Harvesting Followed by External Network Activity

Purpose

Detect likely secret-harvesting activity on CI/CD runner systems followed by near-term outbound communication to external destinations. This aligns directly to the campaign objective of stealing tokens and credentials from poisoned pipeline execution.

ATT&CK Technique

T1528 – Steal Application Access Token
T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

Process telemetry with command-line visibility
Network telemetry with host identity preserved across data sources
Time-synchronized endpoint and network logs
Reliable runner asset scoping
Destination enrichment or a workable definition of external communication

Tuning Explanation

This rule should correlate:

·        suspicious secret-enumeration or token-access commands

·        with outbound network activity from the same runner within a short time window

Use exclusions for approved vault clients, sanctioned publishing workflows, known external APIs, and expected package or artifact interactions.

Detection Logic

Detect suspicious credential-access commands on CI/CD runners followed within a short window by outbound communication to non-approved external destinations.

Operational Context

This is a high-value sequence correlation rule. It is stronger than isolated secret-access or isolated outbound network detections because it models the likely attacker workflow.

Logical Notes

This rule depends on endpoint and network telemetry joining cleanly on host identity and time. Where that normalization is weak, use it as a hunt or high-value correlation search rather than a fully automated alert.

Rule Regret Check

Deployment caution

Requires synchronized endpoint and network telemetry plus reliable host identity normalization across sources.

Confidence caution

Do not overtrust this rule in environments where outbound network logs are incomplete or runner identity is inconsistent across telemetry sets.

Coverage value

Very High where cross-source correlation is mature; Medium where telemetry joining is inconsistent.

Execution Validity Status

Conditional production-ready

System-Ready Code

(
    search index=edr (host_category="ci_cd_runner" OR asset_role="ci_cd_runner")
    process_name IN ("bash","sh","cat","grep","find","env","printenv","python","python3")
    (process_cmdline="*/proc/*/environ*" OR process_cmdline="*printenv*" OR process_cmdline="* env " OR process_cmdline="GITHUB_TOKEN*" OR process_cmdline="*AWS_ACCESS_KEY_ID*" OR process_cmdline="*AZURE_CLIENT_SECRET*" OR process_cmdline="*GOOGLE_APPLICATION_CREDENTIALS*" OR process_cmdline="*.docker/config.json*" OR process_cmdline="*.npmrc*")
    | eval phase="secret_access"
    | table time host processname process_cmdline phase
)
| append [
    search index=network (host_category="ci_cd_runner" OR asset_role="ci_cd_runner")
    (direction=outbound OR network_direction=outbound)
    | eval external_dest=if(cidrmatch("10.0.0.0/8",dest_ip) OR cidrmatch("172.16.0.0/12",dest_ip) OR cidrmatch("192.168.0.0/16",dest_ip),0,1)
    | where external_dest=1
    | eval phase="outbound_net"
    | table time host destip dest_domain bytes_out phase
]
| sort 0 host time
| streamstats current=f last(phase) as prev
phase last(_time) as prev_time by host
| where phase="outbound_net" AND prev_phase="secret_access" AND (_time - prev_time) <= 300
| table host prev_time time destip dest_domain bytes_out

Rule Name

Unauthorized Trivy-Related Tag or Release Modification

Purpose

Detect suspicious tag modification, force-push, or release publication activity affecting Trivy-related repositories or mirrored internal repositories. This supports upstream integrity monitoring where GitHub or source-control audit telemetry is available.

ATT&CK Technique

T1078 – Valid Accounts
T1195 – Supply Chain Compromise

Telemetry Dependency

GitHub audit logs or equivalent repository activity logs ingested into Splunk
Normalized fields for actor, action, repo, tag, release, and push events
Coverage for Trivy-related repositories, actions, or organizational mirrors
Optional enrichment for approved release bots and authorized maintainers

Tuning Explanation

Focus on:

·        tag deletion or recreation

·        force-push behavior

·        unexpected release publication or update

·        actor activity outside known release engineering workflows

Suppress approved release bots, authorized maintainers, and known release windows.

Detection Logic

Detect suspicious tag or release modification activity affecting Trivy-related repositories, especially force-push, tag recreation, or release publication by unexpected actors.

Operational Context

This rule is highly valuable when upstream audit coverage exists. In environments without GitHub audit normalization, it should be treated as a conditional SIEM analytic rather than a guaranteed production alert.

Logical Notes

This rule’s value depends heavily on the quality of source-control audit logging. It is strongest in enterprises that ingest GitHub Enterprise Cloud audit data or equivalent mirrored-source telemetry.

Rule Regret Check

Deployment caution

Action names and field names vary by GitHub ingestion method and normalization pipeline; local adaptation is likely required.

Confidence caution

Without release-bot suppression and actor allowlisting, legitimate engineering operations may resemble suspicious tag activity.

Coverage value

High where repository audit telemetry is mature; Partial where audit detail is limited.

Execution Validity Status

Conditional production-ready / local adaptation required

System-Ready Code

index=github_audit (repo="*trivy*" OR repo="*trivy-action*" OR repo="*setup-trivy*")
(action IN ("git.tag.create","git.tag.delete","repo.release.create","repo.release.update","git.push","git.force_push") OR operation IN ("tag.create","tag.delete","release.create","release.update","force_push"))
| eval suspicious_action=if(match(action,"force_push|git.tag.delete|git.tag.create|repo.release.create|repo.release.update") OR match(operation,"force_push|tag.create|tag.delete|release.create|release.update"),1,0)
| where suspicious_action=1
| lookup approved_release_actors actor OUTPUT actor as approved_actor
| where isnull(approved_actor)
| stats count min(_time) as firstTime max(_time) as lastTime by actor repo action operation src_ip user_agent
| convert ctime(firstTime) ctime(lastTime)

Elastic

Rule Name

CI/CD Workflow Unapproved Trivy Reference Usage

Purpose

Detect CI/CD workflow executions invoking Trivy-related actions, images, or binaries that are not part of an approved reference baseline. In this campaign, poisoned Trivy components were distributed through trusted release and action channels, making unauthorized reference usage a high-value ingestion-stage detection.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

Elastic ingestion of CI/CD workflow logs, GitHub Actions logs, or build-system logs
Parsed workflow or message fields containing action references, image tags, or Trivy command invocation
Approved-reference enrichment through lookup, enrich policy, or equivalent local normalization
Pipeline, workflow, or runner identification through metadata enrichment

Tuning Explanation

This rule must rely on a maintained allowlist of approved:

·        Trivy action references

·        container image tags

·        pinned commit SHAs

·        immutable digests

It should alert only when Trivy-related references are outside the approved baseline or outside an authorized rollout window. It should not be used as a generic first-seen detector.

Detection Logic

Identify CI/CD workflow or build execution events containing Trivy-related references that are not present in the approved reference baseline.

Operational Context

This is an ingestion-stage detection for downstream use of poisoned dependencies. It is strongest in environments where dependency usage is standardized and approved references are centrally managed.

Logical Notes

This detects consumption of unauthorized Trivy-related components. It does not detect the upstream compromise directly.

Rule Regret Check

Deployment caution

Requires reliable parsing of workflow references and a maintained approved-reference enrichment source.

Confidence caution

Legitimate upgrades and emergency pin changes will alert unless rollout windows and approved exceptions are tracked.

Coverage value

High for detecting unauthorized dependency consumption.

Execution Validity Status

Conditional production-ready / enrichment required

System-Ready Code

any where
  event.dataset in ("github.actions", "ci_cd.workflow", "build.pipeline")
  and (
    stringContains(message, "trivy-action") or
    stringContains(message, "setup-trivy") or
    stringContains(message, "aquasecurity/trivy") or
    stringContains(message, "trivy:")
  )
  and not labels.approved_trivy_reference == true

Rule Name

CI/CD Runner Suspicious Interpreter Spawn from Trivy or Setup Context

Purpose

Detect shell or interpreter execution on CI/CD runner systems where the parent process or lineage indicates Trivy execution, setup-trivy workflow activity, or runner orchestration context. This supports detection of malicious runner-side script execution introduced by poisoned Trivy components.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

Elastic Defend, Sysmon, or equivalent endpoint process telemetry
Reliable CI/CD runner identification through host tags, asset enrichment, or index scoping
Parent-child process ancestry and command-line visibility

Tuning Explanation

Focus on shell and interpreter execution launched from:

·        Trivy execution context

·        setup-trivy workflow context

·        runner orchestration processes

Exclude approved bootstrap scripts, sanctioned helper utilities, and known custom workflow automation.

Detection Logic

Detect interpreter execution on CI/CD runner systems where parent or lineage context indicates Trivy-related setup or runner workflow activity and the behavior is outside the approved baseline.

Operational Context

This is one of the strongest endpoint detections for the campaign because it captures malicious script execution after dependency ingestion.

Logical Notes

This is intentionally behavior-driven and does not depend on static indicators or known malicious hashes.

Rule Regret Check

Deployment caution

Requires accurate runner scoping and reliable process ancestry telemetry.

Confidence caution

Noise will increase where engineering teams use dynamic scripting in runner workflows without maintained exclusions.

Coverage value

Very High for malicious script execution following poisoned dependency ingestion.

Execution Validity Status

Production-ready with baseline

System-Ready Code

process where
  host.roles == "ci_cd_runner"
  and process.name in ("bash","sh","python","python3","pwsh","powershell")
  and (
process.parent.name in ("trivy","runner","docker","bash","sh","node") or
    stringContains(process.parent.command_line, "trivy") or
    stringContains(process.parent.executable, "setup-trivy")
  )
  and not process.command_line like~ ("*approved-script*", "*known-good-workflow*", "*approved-bootstrap*")

Rule Name

CI/CD Runner Suspicious Secret Enumeration or Token Material Access

Purpose

Detect command execution on CI/CD runner systems consistent with secret harvesting, including environment enumeration, token discovery, or direct access to credential-bearing paths during workflow execution.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

Elastic endpoint process telemetry with command-line visibility
Reliable CI/CD runner identification through host tags, asset enrichment, or index scoping
Optional file-access telemetry for higher fidelity
Approved secret-bootstrap and vault-client exclusions

Tuning Explanation

This rule should target suspicious commands that enumerate or read:

·        environment variables

·        token material

·        credential-bearing files

·        cloud credential references

Exclude approved vault clients, sanctioned token bootstrap routines, and normal secret-initialization logic.

Detection Logic

Detect suspicious environment enumeration or credential-material access commands on CI/CD runner systems outside approved workflow processes.

Operational Context

This rule addresses the campaign’s primary objective: theft of usable CI/CD tokens and secrets.

Logical Notes

This rule is stronger when correlated with suspicious execution lineage or outbound communication, but it retains standalone value when runner scoping and exclusions are mature.

Rule Regret Check

Deployment caution

Requires exclusions for approved secret-bootstrap, vault-client, and credential-broker workflows.

Confidence caution

Debugging or troubleshooting jobs may resemble secret enumeration if exclusions are incomplete.

Coverage value

Very High for detecting runner-side credential-harvesting behavior.

Execution Validity Status

Conditional production-ready

System-Ready Code

process where
  host.roles == "ci_cd_runner"
  and process.name in ("bash","sh","cat","grep","find","env","printenv","python","python3")
  and (
    process.command_line like~ ("*/proc/*/environ*") or
    process.command_line like~ ("*printenv*") or
    process.command_line like~ ("*GITHUB_TOKEN*") or
    process.command_line like~ ("*AWS_ACCESS_KEY_ID*") or
    process.command_line like~ ("*AZURE_CLIENT_SECRET*") or
    process.command_line like~ ("*GOOGLE_APPLICATION_CREDENTIALS*") or
    process.command_line like~ ("*.docker/config.json*") or
    process.command_line like~ ("*.npmrc*")
  )
  and not process.parent.name in ("approved-vault-client","approved-bootstrap")

Rule Name

CI/CD Runner Suspicious Interpreter or Utility Followed by External Network Connection

Purpose

Detect suspicious interpreter or utility execution on CI/CD runner systems followed by outbound communication to external destinations. This supports detection of exfiltration or callback behavior after malicious Trivy-related execution.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

Elastic endpoint process telemetry
Elastic network connection telemetry
Common host identity across process and network events
Reliable CI/CD runner scoping
Destination enrichment or allowlisting for approved external services

Tuning Explanation

Focus on suspicious interpreters or utilities launched during:

·        Trivy execution

·        setup workflow execution

·        dependency ingestion steps

Exclude approved destinations such as GitHub, artifact registries, sanctioned APIs, and expected cloud endpoints where possible.

Detection Logic

Detect suspicious interpreter or utility execution on CI/CD runner systems followed within a short window by outbound communication to an external destination.

Operational Context

This is a high-value endpoint-plus-network correlation rule. It is narrower and higher-confidence than generic process-plus-network sequencing because it starts from suspicious runner-side execution classes.

Logical Notes

This rule is intended to complement Rule 2 and Rule 3, not replace them. It models likely attacker progression from execution to outbound communication.

Rule Regret Check

Deployment caution

Requires destination allowlisting and process baseline tuning to avoid alerts on legitimate automation.

Confidence caution

Confidence increases substantially when the process also matches suspicious lineage or secret-access behavior.

Coverage value

High for detecting active follow-on communication from compromised runner processes.

Execution Validity Status

Production-ready with tuning

System-Ready Code

sequence by host.id with maxspan=5m
  [process where
      host.roles == "ci_cd_runner"
      and process.name in ("bash","sh","python","python3","pwsh","powershell","curl","wget","nc")
      and not process.command_line like~ ("*approved-script*", "*known-good-workflow*", "*approved-bootstrap*")
  ]
  [network where
      host.roles == "ci_cd_runner"
      and network.direction == "outgoing"
      and destination.ip != null
      and not cidrmatch(destination.ip, "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16")
  ]

Rule Name

Unauthorized Trivy-Related Tag or Release Modification

Purpose

Detect suspicious tag modification, force-push, or release publication activity affecting Trivy-related repositories or mirrored internal repositories where source-control audit telemetry is available in Elastic.

ATT&CK Technique

T1078 – Valid Accounts
T1195 – Supply Chain Compromise

Telemetry Dependency

GitHub audit logs, GitHub Enterprise logs, or equivalent repository activity logs ingested into Elastic
Normalized fields for actor, repository, action, release, tag, and push activity
Optional enrichment for approved release bots and authorized maintainers
Local understanding of audit field and action-name normalization

Tuning Explanation

Focus on:

·        tag deletion or recreation

·        force-push activity

·        release publication or update outside normal release engineering workflows

·        unexpected actors modifying Trivy-related repositories

Suppress approved bots, known maintainers, and approved release windows.

Detection Logic

Detect suspicious tag or release modification activity affecting Trivy-related repositories, especially force-push or tag recreation by unexpected actors.

Operational Context

This is an upstream integrity rule. It is highly valuable where repository audit data exists, but should be treated as locally adapted where audit normalization is incomplete.

Logical Notes

This rule can detect the upstream side of the campaign before downstream runner execution occurs, but only where source-control audit visibility is mature.

Rule Regret Check

Deployment caution

Field names and action values vary significantly by GitHub ingestion method and local normalization pipeline.

Confidence caution

Without actor allowlisting and release-bot suppression, legitimate release engineering can resemble suspicious activity.

Coverage value

High where repository audit telemetry is mature; Partial where telemetry is incomplete.

Execution Validity Status

Conditional production-ready / local adaptation required

System-Ready Code

event.dataset:(github.audit OR github.enterprise.audit) and
repository.name:(*trivy* OR trivy-action OR setup-trivy) and
(event.action:(git.tag.create OR git.tag.delete OR git.force_push OR repo.release.create OR repo.release.update) or
 github.action:(tag.create OR tag.delete OR force_push OR release.create OR release.update)) and
not labels.approved_release_actor:true

QRadar

Rule Name

CI/CD Workflow Unapproved Trivy Reference Usage

Purpose

Detect CI/CD workflow or build execution events invoking Trivy-related actions, images, binaries, or references that are not part of the approved dependency baseline. In this campaign, poisoned Trivy components were distributed through trusted release and action channels, making unauthorized reference usage a high-value ingestion-stage signal.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

QRadar ingestion of CI/CD workflow logs, GitHub Actions logs, or build-system logs
Custom property extraction for Trivy-related references from workflow content, action metadata, image tags, or command lines
Reference set or enrichment source containing approved Trivy references
Reliable workflow, runner, or pipeline identification

Tuning Explanation

This rule should alert only when a Trivy-related reference falls outside the approved baseline or appears outside an authorized rollout window. It should rely on a maintained reference set containing approved:

·        trivy-action references

·        setup-trivy references

·        Trivy image tags

·        pinned commit SHAs

·        immutable digests

This rule is not suitable as a raw “first seen” detector.

Detection Logic

Detect CI/CD execution events containing Trivy-related references not present in the approved reference baseline.

Operational Context

This is an ingestion-stage detection for downstream use of poisoned dependencies. It is strongest where dependency usage is standardized and approved references are centrally managed.

Logical Notes

This rule does not detect the upstream compromise directly. It detects downstream workflow consumption of unauthorized Trivy-related references.

Rule Regret Check

Deployment caution

Requires stable custom-property extraction and disciplined maintenance of approved reference sets.

Confidence caution

Legitimate upgrades, emergency pin changes, or workflow migrations will alert unless rollout windows and approved exceptions are incorporated.

Coverage value

High for detecting unauthorized or poisoned dependency consumption.

Execution Validity Status

Conditional production-ready / local enrichment and parsing required

System-Ready Code

when events match ALL of the following:
  Log Source Type in ("GitHub Actions", "CI/CD", "Build Pipeline")
  AND Event Name contains any of ("trivy-action","setup-trivy","aquasecurity/trivy","trivy:")
  AND Custom Property("Trivy_Reference") is not null
  AND NOT Reference Set Contains("Approved_Trivy_References", Custom Property("Trivy_Reference"))

Rule Name

CI/CD Runner Suspicious Interpreter Spawn from Trivy or Setup Context

Purpose

Detect suspicious shell or interpreter execution on CI/CD runner systems where parent process context indicates Trivy execution, setup workflow activity, or runner orchestration. This supports detection of malicious runner-side script execution introduced by poisoned Trivy components.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

QRadar ingestion of endpoint process telemetry from EDR, Sysmon, or equivalent sources
Custom properties for process name, parent process name, parent command line, and command line
Reliable CI/CD runner identification through asset model, building blocks, asset tags, or reference sets

Tuning Explanation

Focus on interpreter processes launched from:

·        Trivy execution context

·        setup workflow context

·        runner orchestration processes

Exclude:

·        approved bootstrap scripts

·        sanctioned helper utilities

·        known custom pipeline automation

Because parser fidelity varies by source, this rule should be deployed only where process ancestry normalization is reliable.

Detection Logic

Detect interpreter execution on CI/CD runner assets where parent or lineage context indicates Trivy-related or setup-related activity and the process is outside the approved baseline.

Operational Context

This is one of the strongest runner-side detections for the campaign because it captures malicious script execution after poisoned dependency ingestion.

Logical Notes

This is a behavior-driven execution rule. It does not depend on known malicious hashes or static indicators.

Rule Regret Check

Deployment caution

Requires normalized process ancestry and dependable runner asset scoping.

Confidence caution

Noise increases in environments with dynamic scripting or poorly maintained workflow exclusions.

Coverage value

Very High for malicious script execution following poisoned dependency ingestion.

Execution Validity Status

Production-ready with baseline and parser validation

System-Ready Code

when events match ALL of the following:
  Log Source Type in ("Sysmon","EDR","Endpoint")
  AND Asset Category equals "CI/CD Runner"
  AND Process Name in ("bash","sh","python","python3","pwsh","powershell")
  AND (
    Parent Process Name in ("trivy","runner","docker","bash","sh","node")
    OR Parent Command Line contains "trivy"
    OR Parent Command Line contains "setup-trivy"
  )
  AND Command Line does not contain any of ("approved-script","known-good-workflow","approved-bootstrap")

Rule Name

CI/CD Runner Suspicious Secret Enumeration or Token Material Access

Purpose

Detect runner-scoped command execution consistent with secret harvesting, including environment enumeration, token discovery, or direct reads of credential-bearing paths during workflow execution.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

QRadar ingestion of endpoint process telemetry with command-line visibility
Reliable CI/CD runner identification through asset model, asset tags, or reference sets
Optional file-access telemetry for stronger fidelity
Exclusions for approved vault clients, credential brokers, and secret bootstrap workflows

Tuning Explanation

Focus on suspicious commands that:

·        enumerate environment variables

·        read /proc/*/environ

·        access token-bearing files

·        reference cloud credential variables or runner credential stores

This rule should be tightly scoped to runner assets and supported by exclusions for approved bootstrap and credential-broker activity.

Detection Logic

Detect suspicious environment enumeration or credential-material access commands on CI/CD runner systems outside approved workflow processes.

Operational Context

This rule targets the campaign’s primary objective: theft of usable CI/CD tokens and secrets.

Logical Notes

This rule is strongest when correlated with suspicious execution lineage or outbound communication, but it still has standalone value when runner scoping and exclusions are mature.

Rule Regret Check

Deployment caution

Requires exclusions for approved secret-bootstrap, vault-client, and credential-broker workflows.

Confidence caution

Debugging, troubleshooting, or ad hoc engineering jobs may resemble secret enumeration if exclusions are incomplete.

Coverage value

Very High for detecting runner-side credential harvesting behavior.

Execution Validity Status

Conditional production-ready

System-Ready Code

when events match ALL of the following:
  Log Source Type in ("Sysmon","EDR","Endpoint")
  AND Asset Category equals "CI/CD Runner"
  AND Process Name in ("bash","sh","cat","grep","find","env","printenv","python","python3")
  AND Command Line contains any of ("/proc/", "printenv", "GITHUB_TOKEN", "AWS_ACCESS_KEY_ID", "AZURE_CLIENT_SECRET", "GOOGLE_APPLICATION_CREDENTIALS", ".docker/config.json", ".npmrc")
  AND Parent Process Name not in ("approved-vault-client","approved-bootstrap")

Rule Name

CI/CD Runner Suspicious Interpreter or Utility Execution Followed by External Network Communication

Purpose

Detect suspicious interpreter or utility execution on CI/CD runner systems followed by outbound communication to a non-approved external destination. This supports detection of callback or exfiltration behavior after malicious Trivy-related execution.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

QRadar correlation across endpoint process telemetry and network telemetry
Common host identity across data sources
Reliable CI/CD runner scoping
Reference sets or categorization for approved external destinations

Tuning Explanation

This rule should begin from suspicious execution classes rather than generic process activity. Focus on interpreters and utilities commonly abused after malicious dependency execution, then correlate them with outbound communication to non-approved external destinations.

Exclude:

·        approved external registries

·        sanctioned APIs

·        known artifact systems

·        expected cloud service destinations

Detection Logic

Detect suspicious interpreter or utility execution on CI/CD runner systems followed within a short time window by outbound communication to non-approved external destinations.

Operational Context

This is a high-value execution-to-communication correlation rule. It is stronger and narrower than generic outbound monitoring because it begins with suspicious runner-side execution behavior.

Logical Notes

This rule complements Rule 2 and Rule 3. It is intended to model likely attacker progression from execution to external communication, not replace standalone execution detections.

Rule Regret Check

Deployment caution

Requires good host correlation between endpoint and network events and disciplined destination allowlisting.

Confidence caution

Confidence rises significantly when the preceding process also matches suspicious lineage or secret-access behavior.

Coverage value

High for detecting active follow-on communication from compromised runner processes.

Execution Validity Status

Production-ready with tuning

System-Ready Code

when event A followed by event B within 5 minutes on same source IP or hostname:
  Event A:
    Log Source Type in ("Sysmon","EDR","Endpoint")
    AND Asset Category equals "CI/CD Runner"
    AND Process Name in ("bash","sh","python","python3","pwsh","powershell","curl","wget","nc")
    AND Command Line does not contain any of ("approved-script","known-good-workflow","approved-bootstrap")
  Event B:
    Log Source Type in ("Firewall","Proxy","EDR Network","Zeek")
    AND Asset Category equals "CI/CD Runner"
    AND Direction equals "Outbound"
    AND Destination Category not in ("Internal","Approved External")

Rule Name

Unauthorized Trivy-Related Tag or Release Modification

Purpose

Detect suspicious tag modification, force-push, or release publication activity affecting Trivy-related repositories or mirrored internal repositories where source-control audit telemetry is available.

ATT&CK Technique

T1078 – Valid Accounts
T1195 – Supply Chain Compromise

Telemetry Dependency

QRadar ingestion of GitHub audit logs, GitHub Enterprise logs, or equivalent repository activity logs

Normalized properties for actor, repository, event action, tag, release, and push activity
Reference sets for approved release bots and authorized maintainers
Local understanding of audit field and action normalization

Tuning Explanation

Focus on:

·        tag deletion or recreation

·        force-push activity

·        release publication or update outside normal release engineering workflows

·        unexpected actors modifying Trivy-related repositories

Suppress approved bots, known maintainers, and approved release windows. This rule should be deployed only after validating how the local GitHub ingestion normalizes repository actions and actor identity.

Detection Logic

Detect suspicious tag or release modification activity affecting Trivy-related repositories, especially force-push or tag recreation by unexpected actors.

Operational Context

This is an upstream integrity rule. It is highly valuable where repository audit telemetry exists, but should be treated as locally adapted where audit normalization is incomplete.

Logical Notes

This rule can identify the upstream side of the campaign before downstream execution occurs, but only where source-control audit visibility is mature.

Rule Regret Check

Deployment caution

Field names and action values vary significantly by GitHub ingestion method and local normalization pipeline.

Confidence caution

Without actor allowlisting and release-bot suppression, legitimate release engineering may resemble suspicious activity.

Coverage value

High where repository audit telemetry is mature; Partial where telemetry is incomplete.

Execution Validity Status

Conditional production-ready / local adaptation required

System-Ready Code

when events match ALL of the following:
  Log Source Type in ("GitHub Audit","GitHub Enterprise Audit")
  AND Repository Name contains any of ("trivy","trivy-action","setup-trivy")
  AND Event Action in ("tag_create","tag_delete","force_push","release_create","release_update","git.tag.create","git.tag.delete","git.force_push","repo.release.create","repo.release.update")
  AND NOT Reference Set Contains("Approved_Release_Actors", Username)

QRadar Coverage Validation

Detected Behaviors
Unauthorized or non-approved Trivy reference usage in CI/CD workflows
Suspicious interpreter execution on runner systems following Trivy-related activity
Secret enumeration or credential-material access behavior on CI/CD runners
Suspicious outbound communication following suspicious runner-side execution
Unauthorized upstream tag or release modification where repository audit telemetry exists

Partially Detected Behaviors
Credential theft where endpoint visibility or event correlation is incomplete
Upstream compromise where source-control audit coverage is limited or inconsistently normalized

Not Covered
Artifact poisoning that produces no observable workflow, endpoint, or audit signal
Credential access occurring entirely inside opaque third-party infrastructure outside available telemetry

Sigma

Rule Name

CI/CD Workflow Trivy Reference Usage (Baseline Comparison Required)

Purpose

Identify CI/CD workflow executions invoking Trivy-related actions, images, or binaries. In this campaign, poisoned Trivy components were distributed through trusted release channels, making reference usage a critical detection point when compared against approved baselines.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

CI/CD or GitHub Actions logs
Message or command-line fields containing Trivy references
External baseline comparison capability (required)

Tuning Explanation

This rule must be paired with:

·        approved reference allowlist

·        change window awareness

Sigma alone cannot enforce baseline comparison; backend enrichment is required.

Detection Logic

Identify workflow events containing Trivy-related references for comparison against approved baseline.

Operational Context

Used as a signal generator, not a standalone alert, unless backend enrichment is implemented.

Logical Notes

This rule is intentionally incomplete without backend validation. Treat as ingestion signal, not final detection.

Rule Regret Check

Deployment caution

Requires backend enrichment for baseline comparison

Confidence caution

High false positives if used without baseline enforcement

Coverage value

High when paired with enrichment

Execution Validity Status

Conditional / translation-required analytic

System-Ready Code

title: CI/CD Workflow Trivy Reference Usage
id: 91c3a9a2-3a52-4a9e-b1e2-5e1b3c7a9d11
status: experimental
logsource:
  product: ci_cd
  category: pipeline
detection:
  selection:
    Message|contains:
      - 'trivy-action'
      - 'setup-trivy'
      - 'aquasecurity/trivy'
      - 'trivy:'
  condition: selection
falsepositives:
  - Legitimate Trivy usage
level: low
tags:
  - attack.t1195

Rule Name
CI/CD Runner Suspicious Interpreter Execution from Trivy Context

Purpose

Detect interpreter execution on CI/CD runners where parent process context indicates Trivy execution or workflow setup activity, consistent with malicious script execution introduced by poisoned dependencies.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency
Process creation logs
Parent-child process telemetry
Runner scoping via backend

Tuning Explanation

Focus on:

·        interpreter execution

·        Trivy-related parent lineage

Requires backend scoping to CI/CD runners.

Detection Logic

Detect interpreter processes spawned from Trivy-related or runner-related parent processes.

Operational Context

Captures malicious execution behavior following dependency ingestion.

Logical Notes

Parent process matching must be validated against local telemetry normalization.

Rule Regret Check

Deployment caution

Requires normalized parent process fields and runner scoping

Confidence caution

Custom automation may trigger alerts without exclusions

Coverage value

Very High

Execution Validity Status

Production-ready with backend tuning

System-Ready Code

title: CI/CD Runner Suspicious Interpreter from Trivy Context
id: 7b4f8a52-1e7b-4b9a-9f4c-0c2d7f8a521e
status: stable
logsource:
  product: linux
  category: process_creation
detection:
  selection_proc:
    Image|endswith:
      - '/bash'
      - '/sh'
      - '/python'
      - '/python3'
  selection_parent:
    ParentImage|contains:
      - 'trivy'
      - 'setup-trivy'
      - 'runner'
  filter_known:
    CommandLine|contains:
      - 'approved-script'
      - 'known-good-workflow'
  condition: selection_proc and selection_parent and not filter_known
falsepositives:
  - CI/CD automation scripts
level: high
tags:
  - attack.t1059

Rule Name

CI/CD Runner Credential Material Access Behavior

Purpose

Detect process activity on CI/CD runners consistent with access to credential-bearing data, including environment variables and token storage locations.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

Process command-line telemetry
Runner scoping
Optional file-access telemetry

Tuning Explanation

Focus on:

·        direct credential material access

·        token references

·        environment extraction

Requires exclusion of approved secret-handling workflows.

Detection Logic

Detect process execution referencing credential-bearing paths or token variables.

Operational Context

Targets credential harvesting behavior following malicious dependency execution.

Logical Notes

This rule is most effective when combined with execution lineage or network activity.

Rule Regret Check

Deployment caution
Requires careful exclusion tuning

Confidence caution

Debugging workflows may trigger

Coverage value

Very High

Execution Validity Status

Conditional production-ready

System-Ready Code

title: CI/CD Runner Credential Material Access Behavior
id: 2e9b1d4f-8a3c-4f2e-b7a9-3c1e9b2d4f8a
status: stable
logsource:
  product: linux
  category: process_creation
detection:
  selection_cmd:
    CommandLine|contains:
      - '/proc/'
      - 'printenv'
      - 'GITHUB_TOKEN'
      - 'AWS_ACCESS_KEY_ID'
      - '.docker/config.json'
      - '.npmrc'
  condition: selection_cmd
falsepositives:
  - Debugging activity
  - Approved secret initialization
level: high
tags:
  - attack.t1528

Rule Name

CI/CD Runner Suspicious Execution (Correlation Required for Network Follow-On)

Purpose

Identify suspicious interpreter or utility execution on CI/CD runners that should be correlated with outbound network activity in the backend to detect potential exfiltration or callback behavior.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols
Telemetry Dependency

Process telemetry
Backend correlation capability with network telemetry

Tuning Explanation

Sigma cannot express full correlation. This rule must be translated into:

·        SIEM correlation

·        EDR correlation

Detection Logic

Identify suspicious interpreter or utility execution as precursor signal.
Operational Context

Serves as the execution anchor for correlation with outbound communication.

Logical Notes

This is a correlation precursor, not a complete detection.

Rule Regret Check

Deployment caution

Requires backend correlation
Confidence caution
Standalone use is low-confidence
Coverage value
High when correlated

Execution Validity Status

Translation-required analytic
System-Ready Code

title: CI/CD Runner Suspicious Execution Precursor
id: 4d1c2e7b-9a5f-4c3e-b2d7-1c4e2f7b9a5f
status: experimental
logsource:
  product: linux
  category: process_creation
detection:
  selection:
    Image|endswith:
      - '/bash'
      - '/sh'
      - '/python'
      - '/curl'
      - '/wget'
  condition: selection
falsepositives:
  - Automation scripts
level: medium
tags:
  - attack.t1071.001

Rule Name

Trivy Repository Suspicious Tag or Release Activity

Purpose

Detect repository activity consistent with tag manipulation, force-push, or release modification affecting Trivy-related repositories.

ATT&CK Technique

T1078 – Valid Accounts

T1195 – Supply Chain Compromise

Telemetry Dependency

GitHub audit logs
Normalized repository and action fields
Backend allowlisting for actors

Tuning Explanation

Focus on:

·        tag modification

·        force push

·        release activity

Requires backend normalization and actor allowlisting.

Detection Logic

Detect repository activity involving Trivy-related repositories and sensitive actions.

Operational Context

Supports upstream compromise detection where audit logs are available.

Logical Notes

Field names and values vary significantly by ingestion pipeline.

Rule Regret Check

Deployment caution

Requires local field mapping

Confidence caution

Legitimate release activity may trigger

Coverage value

High with proper normalization

Execution Validity Status

Conditional / local adaptation required

System-Ready Code

title: Trivy Repository Suspicious Tag or Release Activity
id: 6a9d1c3e-5f7b-4c2d-8e1a-3f7b6a9d1c3e
status: experimental
logsource:
  product: github
  category: audit
detection:
  selection_repo:
    Repository|contains:
      - 'trivy'
  selection_action:
    Action|contains:
      - 'tag'
      - 'force_push'
      - 'release'
  condition: selection_repo and selection_action
falsepositives:
  - Release engineering
level: high
tags:
  - attack.t1195
  - attack.t1078

AWS

Rule Name

CI/CD Role Secret Retrieval from Unapproved Secret Path or Context

Purpose

Detect AWS Secrets Manager or Systems Manager Parameter Store retrieval activity by CI/CD-associated roles where the secret path, calling context, or source characteristics are not consistent with approved pipeline behavior. In this campaign, compromised CI/CD execution may attempt to retrieve additional secrets for theft or follow-on access.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

AWS CloudTrail management events
AWS EventBridge
Optional CloudWatch Logs Insights for historical baselining
IAM role inventory for CI/CD role identification
Approved secret-path inventory

Tuning Explanation

This is a CloudWatch / EventBridge style rule. The EventBridge pattern is used to collect candidate secret-access events, while high-confidence alerting depends on allowlists or baseline comparison outside the pattern itself. Recommended tuning dimensions are:

·        approved CI/CD role ARNs

·        approved secret name prefixes

·        approved source IP ranges or VPC egress points

·        expected execution windows for deployment pipelines

This rule should not alert on every GetSecretValue or GetParameter event. It should alert only when the role or target secret falls outside approved CI/CD patterns.

Detection Logic

Detect secret retrieval by CI/CD-associated identities where the target secret path or access context is not approved.

Operational Context

This is one of the highest-value AWS detections for this campaign because it directly targets the attacker objective of secret harvesting after pipeline compromise.

Logical Notes

EventBridge provides the candidate event capture. Baseline comparison is typically implemented via Lambda enrichment, SIEM correlation, or CloudWatch Logs Insights scheduled analysis.

Rule Regret Check

Deployment caution

Requires maintained CI/CD role inventory and approved secret-path mapping.

Confidence caution

Legitimate deployments may retrieve secrets dynamically if governance is weak.

Coverage value

Very High for detecting secret retrieval abuse in AWS-native CI/CD environments.

Execution Validity Status

Production-ready with enrichment and baseline control

System-Ready Code

{
  "source": ["aws.secretsmanager", "aws.ssm"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["secretsmanager.amazonaws.com", "ssm.amazonaws.com"],
    "eventName": ["GetSecretValue", "GetParameter", "GetParameters"],
    "userIdentity": {
      "type": ["AssumedRole", "IAMUser"]
    }
  }
}

CloudWatch Logs Insights Companion Query

fields @timestamp, userIdentity.arn, eventSource, eventName, sourceIPAddress, awsRegion, requestParameters.secretId, requestParameters.name
| filter eventSource in ["secretsmanager.amazonaws.com","ssm.amazonaws.com"]
| filter eventName in ["GetSecretValue","GetParameter","GetParameters"]
| filter userIdentity.arn like /ci|pipeline|runner|build|deploy/i
| stats count as access_count, values(sourceIPAddress) as src_ips, values(awsRegion) as regions by userIdentity.arn, requestParameters.secretId, requestParameters.name
| sort access_count desc

Rule Name

CI/CD Role Anomalous AssumeRole or Identity Usage

Purpose

Detect anomalous IAM role usage associated with CI/CD systems, including suspicious AssumeRole activity, unusual caller identity patterns, or role use from unexpected network or service contexts.

ATT&CK Technique

T1078 – Valid Accounts

Telemetry Dependency

AWS CloudTrail
AWS EventBridge
Optional CloudWatch Logs Insights for historical comparison
IAM role inventory and trust-policy understanding

Tuning Explanation

This is a CloudWatch / EventBridge style rule. The native pattern captures high-risk identity-use events, but meaningful detection requires comparing the observed role usage against known-good CI/CD patterns such as:

·        expected source IPs

·        expected user agents

·        expected role chains

·        expected AWS accounts and regions

·        expected invocation timing

This rule should be tuned around CI/CD roles specifically, not all IAM role activity.

Detection Logic

Detect IAM role usage by CI/CD-associated principals where the role chain, source, or service context deviates from baseline.

Operational Context

This rule is high value for detecting identity abuse after CI/CD compromise, especially where attackers use valid roles to expand access.

Logical Notes

The event pattern is candidate-event capture. The anomaly decision usually requires enrichment or SIEM-style comparison logic.

Rule Regret Check

Deployment caution

Requires role classification and baseline identity-use modeling.

Confidence caution

Shared automation roles reduce precision unless role purpose is well separated.

Coverage value

High for detecting identity abuse through AWS-native role usage.

Execution Validity Status

Production-ready with enrichment and baseline control

System-Ready Code

{
  "source": ["aws.sts"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["sts.amazonaws.com"],
    "eventName": ["AssumeRole", "GetCallerIdentity"]
  }
}

CloudWatch Logs Insights Companion Query

fields @timestamp, userIdentity.arn, sourceIPAddress, userAgent, awsRegion, requestParameters.roleArn, eventName
| filter eventSource="sts.amazonaws.com"
| filter eventName in ["AssumeRole","GetCallerIdentity"]
| filter userIdentity.arn like /ci|pipeline|runner|build|deploy/i
| stats count as role_events, values(sourceIPAddress) as src_ips, values(userAgent) as user_agents, values(awsRegion) as regions by userIdentity.arn, requestParameters.roleArn, eventName
| sort role_events desc

Rule Name

CI/CD Compute Suspicious External Network Communication

Purpose

Detect suspicious outbound communication from AWS compute resources associated with CI/CD activity, especially traffic to external destinations not required for approved build, source-control, artifact, or registry workflows.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

VPC Flow Logs
Optional GuardDuty findings
Optional Route 53 Resolver logs
Resource tagging or subnet classification for CI/CD compute

Tuning Explanation

This is a CloudWatch / GuardDuty style rule. There are two valid operating modes:

CloudWatch / VPC Flow mode

Use flow logs plus allowlisting of approved destinations such as GitHub, package registries, artifact repositories, and sanctioned APIs.

GuardDuty mode

Use GuardDuty findings as a higher-confidence overlay for suspicious outbound activity, command-and-control behavior, or credential exfiltration-related anomalies.

GuardDuty does not support user-authored detection rules in the same way a SIEM does, so GuardDuty coverage here should be treated as finding-driven enrichment, not custom rule logic.

Detection Logic

Detect outbound communication from CI/CD-associated compute resources to non-approved external destinations or consume related GuardDuty findings affecting CI/CD-tagged resources.

Operational Context

This rule captures likely callback or exfiltration behavior after poisoned dependency execution.

Logical Notes

Destination allowlisting is critical. Without it, this rule becomes noisy in internet-dependent build environments.

Rule Regret Check

Deployment caution

Requires CI/CD compute scoping and approved destination allowlisting.

Confidence caution

Noise increases sharply in dynamic environments with broad external integrations.

Coverage value

High for detecting callback or exfiltration behavior from compromised AWS build infrastructure.

Execution Validity Status

Production-ready with destination tuning; GuardDuty component is finding-driven

System-Ready Code — EventBridge for GuardDuty Findings

{
  "source": ["aws.guardduty"],
  "detail-type": ["GuardDuty Finding"],
  "detail": {
    "severity": [4, 5, 6, 7, 8, 9],
    "type": [
      { "prefix": "Backdoor:" },
      { "prefix": "Trojan:" },
      { "prefix": "UnauthorizedAccess:" },
      { "prefix": "CredentialAccess:" },
      { "prefix": "Exfiltration:" }
    ]
  }
}

CloudWatch Logs Insights Companion Query for VPC Flow Logs

fields @timestamp, srcAddr, dstAddr, dstPort, action, bytes
| filter action="ACCEPT"
| filter isIpv4InSubnet(srcAddr, "10.0.0.0/8") or isIpv4InSubnet(srcAddr, "172.16.0.0/12") or isIpv4InSubnet(srcAddr, "192.168.0.0/16")
| stats sum(bytes) as total_bytes, count(*) as connections by srcAddr, dstAddr, dstPort
| sort total_bytes desc

Rule Name

CI/CD Compute Process Execution Deviation

Purpose

Detect execution of suspicious or non-baseline commands on AWS compute resources used for CI/CD, especially interpreters or utilities commonly used for staging, secret access, or outbound transfer after malicious dependency execution.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

CloudWatch Logs from runner hosts or build containers
SSM Run Command logs where applicable
EDR telemetry if deployed on EC2 or worker nodes
Resource tagging or host grouping for CI/CD compute

Tuning Explanation

This is a CloudWatch style rule and should be used only where process or command telemetry is actually collected. It is not appropriate for accounts with CloudTrail-only visibility.

Focus on deviations from baseline execution, such as:

·        unexpected bash, sh, python, curl, wget

·        unusual command-line arguments

·        commands executed outside normal build stage patterns

This rule should be explicitly treated as telemetry-dependent.

Detection Logic

Detect suspicious command or process execution on CI/CD compute resources where the command line or executable deviates from the approved workflow baseline.

Operational Context

This mirrors endpoint execution detection logic for AWS-hosted build systems.

Logical Notes

Without process-level logging or EDR on the compute resource, this rule cannot operate reliably.

Rule Regret Check

Deployment caution

Do not deploy this rule where process telemetry is absent or incomplete.

Confidence caution

Baseline drift in build jobs can reduce fidelity if workflow changes are frequent.

Coverage value

Medium to High depending on process telemetry quality.

Execution Validity Status

Conditional production-ready / CloudWatch or EDR process telemetry required

System-Ready Code — CloudWatch Logs Metric Filter Pattern

"?bash ?sh ?python ?python3 ?curl ?wget"

CloudWatch Logs Insights Companion Query

fields @timestamp, @message
| filter @message like /bash|sh|python|python3|curl|wget/
| stats count(*) as executions by @logStream
| sort executions desc

Rule Name

CI/CD Artifact Bucket Modification Anomaly

Purpose

Detect anomalous object modification activity in S3 buckets used for CI/CD artifacts, dependencies, or build outputs, indicating possible artifact tampering or supply chain manipulation.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

CloudTrail S3 data events
S3 bucket classification for CI/CD relevance
Optional EventBridge event routing
Approved principal inventory for artifact-writing workflows

Tuning Explanation

This is a CloudWatch / EventBridge style rule. The event pattern captures artifact modification events, but high-confidence detection requires anomaly conditions such as:

·        writes outside normal pipeline execution windows

·        unexpected principals modifying artifact objects

·        unusual object paths or prefixes

·        cross-account modification attempts

Do not alert on every PutObject or DeleteObject event in CI/CD buckets.

Detection Logic

Detect object modification events in CI/CD artifact buckets where the modifying principal, time, or object path deviates from expected artifact management behavior.

Operational Context

This rule targets supply chain manipulation inside AWS storage paths used by CI/CD systems.

Logical Notes

Bucket classification and approved-writer baselining are essential for fidelity.

Rule Regret Check

Deployment caution

Requires S3 data event logging, artifact-bucket classification, and approved-writer baselining.

Confidence caution

Noise can be high in heavily used artifact buckets without path and principal baselines.

Coverage value

High for detecting artifact tampering in AWS-based CI/CD storage paths.

Execution Validity Status

Production-ready with S3 data events and baseline control

System-Ready Code

{
  "source": ["aws.s3"],
  "detail-type": ["AWS API Call via CloudTrail"],
  "detail": {
    "eventSource": ["s3.amazonaws.com"],
    "eventName": ["PutObject", "DeleteObject", "CopyObject"]
  }
}

CloudWatch Logs Insights Companion Query

fields @timestamp, userIdentity.arn, requestParameters.bucketName, requestParameters.key, sourceIPAddress, awsRegion, eventName
| filter eventSource="s3.amazonaws.com"
| filter eventName in ["PutObject","DeleteObject","CopyObject"]
| filter requestParameters.bucketName like /artifact|build|ci|pipeline/i
| stats count(*) as object_events, values(userIdentity.arn) as actors, values(sourceIPAddress) as src_ips by requestParameters.bucketName, requestParameters.key, eventName
| sort object_events desc

Azure

Rule Name

CI/CD Identity Key Vault Secret Access Deviation

Purpose

Detect Azure Key Vault secret access by CI/CD-associated service principals or managed identities when the accessed secret, source IP, or access timing deviates from established pipeline behavior.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

Azure Key Vault diagnostic logs
Microsoft Sentinel
Approved CI/CD identity inventory
Approved secret-path inventory
Approved source IP or egress inventory

Tuning Explanation

This is a Microsoft Sentinel KQL rule using Key Vault diagnostics.

For production use, tune it by:

·        limiting identities to a maintained watchlist of CI/CD service principals and managed identities

·        excluding approved secret prefixes used by normal build and deploy workflows

·        excluding expected egress IPs or private pipeline subnets

·        suppressing known deployment windows if your environment uses predictable schedules

Do not run this broadly against all Key Vault reads. Scope it to:

·        CI/CD identities

·        sensitive secret paths

·        new identity-to-secret relationships

·        new IP-to-identity combinations

Detection Logic

Detect Key Vault secret access by CI/CD identities where the identity-secret-IP combination is newly observed relative to baseline.

Operational Context

This is a primary Azure-native credential-harvesting detection for compromised pipeline identities.

Logical Notes

This rule works best when the CI/CD identity set is small, stable, and governed.

Rule Regret Check

Deployment caution

Requires Key Vault diagnostics and curated CI/CD identity watchlists.

Confidence caution

New deployments, migrations, or pipeline onboarding can trigger alerts until the baseline stabilizes.

Coverage value

Very High for detecting off-pattern secret retrieval.

Execution Validity Status

Production-ready with baseline enrichment

System-Ready Code (Microsoft Sentinel KQL)

let baselineWindow = 14d;
let recentWindow = 1d;
let ci_cd_identities = GetWatchlist('cicd_identities') | project SearchKey;
let approved_ips = GetWatchlist('cicd_approved_ips') | project SearchKey;
let baseline =
AzureDiagnostics
| where TimeGenerated between (ago(baselineWindow) .. ago(recentWindow))
| where ResourceType == "VAULTS"
| where OperationName in ("SecretGet","SecretList")
| where identity_s in (ci_cd_identities)
| extend SecretName = tostring(coalesce(parse_json(Properties_s).id, ResourceId))
| summarize by identity_s, CallerIPAddress, SecretName;
AzureDiagnostics
| where TimeGenerated >= ago(recentWindow)
| where ResourceType == "VAULTS"
| where OperationName in ("SecretGet","SecretList")
| where identity_s in (ci_cd_identities)
| where CallerIPAddress !in (approved_ips)
| extend SecretName = tostring(coalesce(parse_json(Properties_s).id, ResourceId))
| join kind=leftanti baseline on identity_s, CallerIPAddress, SecretName
| project TimeGenerated, identity_s, CallerIPAddress, SecretName, ResourceId, OperationName

Rule Name

CI/CD Service Principal or Managed Identity Authentication Deviation

Purpose

Detect abnormal authentication or token-usage patterns by CI/CD-associated service principals or managed identities, including new IP addresses, new locations, or new user-agent characteristics inconsistent with normal pipeline execution.

ATT&CK Technique

T1078 – Valid Accounts

Telemetry Dependency

Microsoft Entra ID service principal sign-in logs
Microsoft Sentinel
CI/CD identity watchlist
Optional approved IP / country watchlists

Tuning Explanation

This is a Microsoft Sentinel KQL rule using Entra ID logs.

For production use, tune it by:

·        restricting detection to a known watchlist of CI/CD applications and service principals

·        suppressing expected build-region countries

·        suppressing expected Microsoft-owned user-agent patterns used by automation

·        alerting only on new IP + new location combinations, not raw volume

Do not use simple count thresholds. Favor:

·        first-time IP

·        first-time country

·        first-time user-agent family

Detection Logic

Detect CI/CD identity authentication events from new IP, new location, or new user-agent combinations relative to historical baseline.

Operational Context

This is one of the strongest Azure detections for identity misuse after CI/CD compromise.

Logical Notes

Shared service principals reduce fidelity and should be split where possible.

Rule Regret Check

Deployment caution

Requires Entra service principal logs and maintained CI/CD identity classification.

Confidence caution

Over-broad service principal reuse across workloads will increase noise.

Coverage value

High for detecting off-pattern CI/CD identity usage.

Execution Validity Status

Production-ready with baseline enrichment

System-Ready Code (KQL)

let baselineWindow = 14d;
let recentWindow = 1d;
let ci_cd_apps = GetWatchlist('cicd_service_principals') | project SearchKey;
let baseline =
AADServicePrincipalSignInLogs
| where TimeGenerated between (ago(baselineWindow) .. ago(recentWindow))
| where AppDisplayName in (ci_cd_apps)
| summarize by AppId, AppDisplayName, IPAddress, Location, UserAgent;
AADServicePrincipalSignInLogs
| where TimeGenerated >= ago(recentWindow)
| where AppDisplayName in (ci_cd_apps)
| join kind=leftanti baseline on AppId, AppDisplayName, IPAddress, Location, UserAgent
| project TimeGenerated, AppDisplayName, AppId, IPAddress, Location, UserAgent, ResourceDisplayName

Rule Name

CI/CD Compute External Destination Deviation

Purpose

Detect outbound communication from Azure compute resources associated with CI/CD workflows to external destinations not present in the approved destination baseline.

ATT&CK Technique

T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

Azure NSG Flow Logs or Azure Firewall logs
Microsoft Sentinel
Optional Defender for Cloud findings
CI/CD subnet, host, or runner inventory
Approved destination baseline

Tuning Explanation

This is a Sentinel plus Defender for Cloud hybrid rule.

For production use:

·        scope only to CI/CD runner subnets, VMSS instances, build VMs, or AKS worker pools used for builds

·        exclude GitHub, Azure DevOps, package registries, artifact systems, and approved external APIs

·        alert on new destination + new port or new destination + elevated bytes

·        use Defender findings as confidence enrichment, not as the primary detector

Do not alert on high volume alone.

Detection Logic

Detect outbound communication from CI/CD compute resources to previously unseen external destination and port combinations, excluding approved destinations.

Operational Context

This captures likely callback or exfiltration behavior from compromised build resources.

Logical Notes

Destination normalization is the most important tuning factor for this rule.

Rule Regret Check

Deployment caution

Requires CI/CD subnet/host classification and approved-destination baseline maintenance.

Confidence caution

Dynamic internet-dependent build jobs will create noise if destination governance is weak.

Coverage value

High for detecting suspicious outbound communication from CI/CD compute.

Execution Validity Status

Production-ready with destination baseline tuning

System-Ready Code (KQL)

let baselineWindow = 14d;
let recentWindow = 1d;
let approved_destinations = GetWatchlist('azureci_cd_approved_destinations') | project SearchKey;
let baseline =
AzureNetworkAnalytics_CL
| where FlowDirection_s == "O"
| where SubType_s in ("FlowLog", "NSGFlowLog")
| where TimeGenerated between (ago(baselineWindow) .. ago(recentWindow))
| summarize by SrcIp_s, DestIp_s, DestPort_d;
AzureNetworkAnalytics_CL
| where FlowDirection_s == "O"
| where SubType_s in ("FlowLog", "NSGFlowLog")
| where TimeGenerated >= ago(recentWindow)
| where DestIp_s !in (approved_destinations)
| join kind=leftanti baseline on SrcIp_s, DestIp_s, DestPort_d
| summarize total_bytes=sum(toint(Bytes_s)), connections=count() by SrcIp_s, DestIp_s, DestPort_d
| where total_bytes > 100000
Defender for Cloud Finding Enrichment

SecurityAlert
| where ProductName has "Microsoft Defender"
| where AlertName has_any ("Suspicious connection", "C2", "Exfiltration", "Credential")
| project TimeGenerated, AlertName, CompromisedEntity, Severity, ExtendedProperties

Rule Name

CI/CD Compute Suspicious Process Lineage Deviation

Purpose

Detect suspicious process execution on Azure compute resources used for CI/CD workflows where interpreter or utility execution deviates from approved parent-child lineage or expected command behavior.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

Microsoft Defender for Endpoint DeviceProcessEvents
Microsoft Sentinel
CI/CD compute asset watchlist
Approved parent-process inventory

Tuning Explanation

This is a Defender for Endpoint plus Sentinel KQL rule.

For production use:

·        scope only to CI/CD-tagged or watchlisted runner devices

·        use a watchlist of approved parent processes for build tools and runner services

·        filter on suspicious interpreters and transfer utilities

·        suppress known bootstrap scripts and approved workflow strings

Do not run this as a generic “bash exists” rule.

Detection Logic

Detect suspicious interpreter or utility execution on CI/CD compute where parent process lineage or command-line pattern deviates from approved workflow behavior.

Operational Context

This captures malicious execution introduced by poisoned dependencies in Azure-hosted build environments.

Logical Notes

This rule is only viable where Defender process telemetry exists on the CI/CD compute assets.

Rule Regret Check

Deployment caution

Requires Defender for Endpoint plus maintained CI/CD host and approved-parent watchlists.

Confidence caution

Rapidly changing build jobs can create drift if parent-process baselines are not updated.

Coverage value

High where Defender telemetry is present.

Execution Validity Status

Production-ready with baseline and Defender telemetry

System-Ready Code (KQL)

let ci_cd_hosts = GetWatchlist('azureci_cd_hosts') | project SearchKey;
let approved_parents = GetWatchlist('azureci_cd_approved_parents') | project SearchKey;
DeviceProcessEvents
| where DeviceName in (ci_cd_hosts)
| where FileName in~ ("bash","sh","python","python3","curl","wget")
| where InitiatingProcessFileName !in (approved_parents)
      or ProcessCommandLine !has_any ("approved-script","known-good-workflow","approved-bootstrap")
| project Timestamp, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine

Rule Name

CI/CD Artifact Container Modification Deviation

Purpose

Detect anomalous modification of Azure Blob Storage containers used for CI/CD artifacts, dependencies, or build outputs, indicating possible artifact tampering or supply chain manipulation.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

StorageBlobLogs or AzureDiagnostics for Storage
Microsoft Sentinel
Artifact container inventory
Approved writer identity inventory
Approved path/prefix inventory

Tuning Explanation

This is a Sentinel KQL rule using Azure Storage logs.

For production use:

·        scope only to containers classified as CI/CD artifact containers

·        exclude known pipeline writer identities

·        alert on:

o   new writer + container combination

o   new blob path or prefix

o   writes outside approved build windows

o   unusual source IP for artifact writes

Do not alert on all blob writes or deletes.

Detection Logic

Detect blob modification events in CI/CD artifact containers where the actor, path, or source context is newly observed relative to baseline.

Operational Context

This targets supply chain manipulation inside Azure storage paths used by CI/CD systems.

Logical Notes

Container classification and approved-writer baselining are essential for fidelity.

Rule Regret Check

Deployment caution
Requires storage diagnostics, artifact-container watchlists, and approved-writer baselines.

Confidence caution
Noise rises quickly in shared artifact containers with poor path hygiene.

Coverage value
High for detecting artifact tampering in Azure-based CI/CD storage.

Execution Validity Status

Production-ready with baseline control

System-Ready Code (KQL)

let baselineWindow = 14d;
let recentWindow = 1d;
let artifact_containers = GetWatchlist('azureci_cd_artifact_containers') | project SearchKey;
let baseline =
StorageBlobLogs
| where TimeGenerated between (ago(baselineWindow) .. ago(recentWindow))
| where OperationName in ("PutBlob","DeleteBlob","CopyBlob")
| where ContainerName in (artifact_containers)
| summarize by AccountName, ContainerName, Uri, CallerIpAddress, AuthenticationType;
StorageBlobLogs
| where TimeGenerated >= ago(recentWindow)
| where OperationName in ("PutBlob","DeleteBlob","CopyBlob")
| where ContainerName in (artifact_containers)
| join kind=leftanti baseline on AccountName, ContainerName, Uri, CallerIpAddress, AuthenticationType
| project TimeGenerated, AccountName, ContainerName, Uri, CallerIpAddress, AuthenticationType, OperationName

GCP

Rule Name

CI/CD Service Account Secret Access Deviation

Purpose

Detect Secret Manager access by CI/CD service accounts where the accessed secret or access context deviates from established pipeline behavior.

ATT&CK Technique

T1528 – Steal Application Access Token

Telemetry Dependency

Cloud Audit Logs (Data Access)
Cloud Logging / Log Analytics
CI/CD service account inventory
Approved secret mapping

Tuning Explanation

This is a Cloud Logging + Log Analytics rule.

Production tuning requires:

·        explicit CI/CD service account allowlist (not regex)

·        baseline of serviceAccount → secret relationships

·        optional approved project or workload context

Alert only on:

·        new serviceAccount → secret combinations

·        new access context

Detection Logic

Detect Secret Manager access where the service account and secret relationship is newly observed.

Execution Validity Status

Production-ready with baseline

System-Ready Code (Log Analytics SQL-style)

WITH baseline AS (
  SELECT
    protopayload_auditlog.authenticationInfo.principalEmail AS principal,
    protopayload_auditlog.resourceName AS secret_name
  FROM `PROJECT_ID.global._Default._AllLogs`
  WHERE logName LIKE '%cloudaudit.googleapis.com%'
    AND protopayload_auditlog.serviceName = 'secretmanager.googleapis.com'
    AND timestamp BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 14 DAY)
                        AND TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  GROUP BY principal, secret_name
)

SELECT
  timestamp,
  protopayload_auditlog.authenticationInfo.principalEmail AS principal,
  protopayload_auditlog.resourceName AS secret_name,
  protopayload_auditlog.methodName AS method
FROM `PROJECT_ID.global._Default._AllLogs` current
LEFT JOIN baseline
ON current.protopayload_auditlog.authenticationInfo.principalEmail = baseline.principal
AND current.protopayload_auditlog.resourceName = baseline.secret_name
WHERE logName LIKE '%cloudaudit.googleapis.com%'
  AND protopayload_auditlog.serviceName = 'secretmanager.googleapis.com'
  AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  AND baseline.principal IS NULL

Rule Name

CI/CD Service Account Identity Usage Deviation

Purpose

Detect anomalous usage of CI/CD service accounts including new delegation patterns, new services accessed, or new execution contexts.

ATT&CK Technique

T1078 – Valid Accounts

Telemetry Dependency

Cloud Audit Logs
Cloud Logging / Log Analytics
Service account inventory
Optional delegation baseline

Tuning Explanation

This is a Cloud Logging / Log Analytics rule.

Production tuning:

·        use explicit service account allowlist

·        baseline:

o   service usage

o   delegation chains

·        detect:

o   new service usage

o   new delegation patterns

Detection Logic

Detect service account usage where serviceName or delegation pattern is newly observed.

Execution Validity Status

Production-ready with baseline

System-Ready Code

WITH baseline AS (
  SELECT
    protopayload_auditlog.authenticationInfo.principalEmail AS principal,
    protopayload_auditlog.serviceName AS service
  FROM `PROJECT_ID.global._Default._AllLogs`
  WHERE logName LIKE '%cloudaudit.googleapis.com%'
    AND timestamp BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 14 DAY)
                        AND TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  GROUP BY principal, service
)

SELECT
  timestamp,
  protopayload_auditlog.authenticationInfo.principalEmail AS principal,
  protopayload_auditlog.serviceName AS service,
  protopayload_auditlog.methodName
FROM `PROJECT_ID.global._Default._AllLogs` current
LEFT JOIN baseline
ON current.protopayload_auditlog.authenticationInfo.principalEmail = baseline.principal
AND current.protopayload_auditlog.serviceName = baseline.service
WHERE logName LIKE '%cloudaudit.googleapis.com%'
  AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  AND baseline.principal IS NULL

Rule Name

CI/CD Compute External Destination Deviation

Purpose

Detect outbound communication from CI/CD compute resources to previously unseen external destinations.

ATT&CK Technique
T1071.001 – Application Layer Protocol: Web Protocols

Telemetry Dependency

VPC Flow Logs
Cloud Logging / Log Analytics
CI/CD subnet or instance inventory
Approved destination list

Tuning Explanation

This is a Cloud Logging + SCC hybrid rule.

Production tuning:

·        restrict to CI/CD subnets or instance labels

·        exclude approved destinations

·        baseline destination + port combinations

Detection Logic

Detect new destination IP + port combinations not previously observed.

Execution Validity Status

Production-ready with tuning

System-Ready Code

WITH baseline AS (
  SELECT
    jsonPayload.connection.src_ip AS src_ip,
    jsonPayload.connection.dest_ip AS dest_ip,
    jsonPayload.connection.dest_port AS dest_port
  FROM `PROJECT_ID.global._Default._AllLogs`
  WHERE logName LIKE '%vpc_flows%'
    AND timestamp BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 14 DAY)
                        AND TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  GROUP BY src_ip, dest_ip, dest_port
)

SELECT
  jsonPayload.connection.src_ip AS src_ip,
  jsonPayload.connection.dest_ip AS dest_ip,
  jsonPayload.connection.dest_port AS dest_port,
  SUM(CAST(jsonPayload.bytes_sent AS INT64)) AS total_bytes
FROM `PROJECT_ID.global._Default._AllLogs` current
LEFT JOIN baseline
ON current.jsonPayload.connection.src_ip = baseline.src_ip
AND current.jsonPayload.connection.dest_ip = baseline.dest_ip
AND current.jsonPayload.connection.dest_port = baseline.dest_port
WHERE logName LIKE '%vpc_flows%'
  AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  AND baseline.src_ip IS NULL
GROUP BY src_ip, dest_ip, dest_port
HAVING total_bytes > 100000

SCC Finding Enrichment

resource.type="security_center_finding"

Rule Name

CI/CD Compute Process Execution Deviation

Purpose

Detect suspicious command execution on CI/CD compute where execution deviates from baseline behavior.

ATT&CK Technique

T1059 – Command and Scripting Interpreter

Telemetry Dependency

Cloud Logging (Ops Agent / custom logs)
Optional EDR
CI/CD compute inventory

Tuning Explanation

This is conditional — only valid with process telemetry.

Production tuning:

·        restrict to CI/CD hosts

·        baseline command patterns

·        detect new command-line patterns

Detection Logic

Detect previously unseen command-line execution patterns.

Execution Validity Status

Conditional production-ready

System-Ready Code

WITH baseline AS (
  SELECT
    text_payload AS cmd
  FROM `PROJECT_ID.global._Default._AllLogs`
  WHERE timestamp BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 14 DAY)
                        AND TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  GROUP BY cmd
)

SELECT
  timestamp,
  text_payload
FROM `PROJECT_ID.global._Default._AllLogs` current
LEFT JOIN baseline
ON current.text_payload = baseline.cmd
WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  AND REGEXP_CONTAINS(text_payload, r'bash|sh|python|curl|wget')
  AND baseline.cmd IS NULL

Rule Name

CI/CD Artifact Bucket Modification Deviation

Purpose

Detect anomalous modification of GCS buckets used for CI/CD artifacts.

ATT&CK Technique

T1195 – Supply Chain Compromise

Telemetry Dependency

Cloud Audit Logs
Cloud Logging / Log Analytics
Artifact bucket inventory
Approved writers

Tuning Explanation

This is a Cloud Logging / Log Analytics rule.

Production tuning:

·        restrict to artifact buckets

·        baseline writer + object path

·        detect new writer or path

Detection Logic

Detect new principal → object path combinations.

Execution Validity Status

Production-ready with baseline

System-Ready Code

WITH baseline AS (
  SELECT
    protopayload_auditlog.authenticationInfo.principalEmail AS principal,
    protopayload_auditlog.resourceName AS object_name
  FROM `PROJECT_ID.global._Default._AllLogs`
  WHERE logName LIKE '%cloudaudit.googleapis.com%'
    AND protopayload_auditlog.methodName IN ('storage.objects.create','storage.objects.delete','storage.objects.update')
    AND timestamp BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 14 DAY)
                        AND TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  GROUP BY principal, object_name
)

SELECT
  timestamp,
  protopayload_auditlog.authenticationInfo.principalEmail AS principal,
  protopayload_auditlog.resourceName AS object_name,
  protopayload_auditlog.methodName
FROM `PROJECT_ID.global._Default._AllLogs` current
LEFT JOIN baseline
ON current.protopayload_auditlog.authenticationInfo.principalEmail = baseline.principal
AND current.protopayload_auditlog.resourceName = baseline.object_name
WHERE logName LIKE '%cloudaudit.googleapis.com%'
  AND protopayload_auditlog.methodName IN ('storage.objects.create','storage.objects.delete','storage.objects.update')
  AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
  AND baseline.principal IS NULL

S26 Threat-to-Rule Traceability Matrix

S26 Threat-to-Rule Traceability Matrix

Behavior 1 — Poisoned Dependency Consumption (Trivy / CI/CD Ingestion)

MITRE Technique
T1195 – Supply Chain Compromise

Behavior Description
CI/CD pipelines ingest compromised Trivy components or dependencies, enabling downstream malicious execution.

Detection Coverage

·        Splunk Rule 1

·        Elastic Rule 1

·        QRadar Rule 1

·        Sigma Rule 1

Telemetry Dependency

·        CI/CD workflow logs

·        GitHub Actions logs

·        Build pipeline logs

·        Dependency reference parsing and baseline enforcement

Coverage Disposition
Partially Detected

Rationale
Detection depends on:

·        approved reference baselines

·        dependency governance

·        parsing quality

Cannot guarantee detection without strict dependency control.

Behavior 2 — Malicious Execution on CI/CD Compute (Multi-Cloud)

MITRE Technique
T1059 – Command and Scripting Interpreter

Behavior Description
Execution of malicious scripts or commands triggered by poisoned dependencies within CI/CD runners or build environments across AWS, Azure, and GCP.

Detection Coverage

·        SentinelOne Rules

·        Splunk Rule 2

·        Elastic Rule 2

·        QRadar Rule 2

·        Sigma Rule 2

·        AWS Rule 4

·        Azure Rule 4

·        GCP Rule 4

Telemetry Dependency

·        Endpoint / EDR process telemetry

·        Cloud compute process telemetry (Defender, Ops Agent, EDR)

·        Parent-child process relationships

·        CI/CD compute classification

Coverage Disposition
Detected

Rationale
Strong behavioral detection across:

·        endpoint telemetry

·        cloud-hosted compute

Conditional only where process telemetry is absent.

Behavior 3 — Credential / Token Harvesting (Secrets Access Across Cloud)

MITRE Technique
T1528 – Steal Application Access Token

Behavior Description
Access to secrets and credentials from:

·        AWS Secrets Manager / SSM

·        Azure Key Vault

·        GCP Secret Manager

using compromised CI/CD identities.

Detection Coverage

·        SentinelOne Rules

·        Splunk Rule 3

·        Elastic Rule 3

·        QRadar Rule 3

·        Sigma Rule 3

·        AWS Rule 1

·        Azure Rule 1

·        GCP Rule 1

Telemetry Dependency

·        Cloud audit logs (CloudTrail, AzureDiagnostics, GCP Audit Logs)

·        Process command-line telemetry

·        CI/CD identity mapping

·        Secret access baselines

Coverage Disposition
Detected

Rationale
Baseline deviation detection is implemented across all cloud providers and endpoint telemetry.

Behavior 4 — Identity Abuse / Role or Service Account Misuse

MITRE Technique
T1078 – Valid Accounts

Behavior Description
Abuse of valid identities including:

·        AWS IAM roles

·        Azure service principals / managed identities

·        GCP service accounts

to expand access or perform unauthorized actions.

Detection Coverage

·        Splunk Rule 2

·        Elastic Rule 2

·        QRadar Rule 2

·        Sigma Rule 2

·        AWS Rule 2

·        Azure Rule 2

·        GCP Rule 2

Telemetry Dependency

·        Identity logs (CloudTrail, Entra ID, GCP Audit Logs)

·        Role / service account baseline modeling

·        IP, geo, and user-agent context

Coverage Disposition
Detected

Rationale
Baseline deviation logic implemented across all identity systems.

Behavior 5 — Command and Control / Data Exfiltration

MITRE Technique
T1071.001 – Application Layer Protocol: Web Protocols

Behavior Description
Outbound communication from compromised CI/CD compute to attacker-controlled infrastructure.

Detection Coverage

·        Splunk Rule 4

·        Elastic Rule 4

·        QRadar Rule 4

·        Sigma Rule 4 (precursor)

·        AWS Rule 3

·        Azure Rule 3

·        GCP Rule 3

Telemetry Dependency

·        Network telemetry (VPC Flow Logs, NSG Flow Logs)

·        SIEM correlation capability

·        Destination allowlisting

·        Defender / GuardDuty / SCC findings

Coverage Disposition
Detected (Correlation Required)

Rationale
Strong detection where:

·        network + compute correlation exists

·        destination baselines are maintained

Sigma contributes precursor-only coverage.

Behavior 6 — Artifact / Supply Chain Storage Tampering

MITRE Technique
T1195 – Supply Chain Compromise

Behavior Description
Modification of build artifacts or dependencies in:

·        AWS S3

·        Azure Blob Storage

·        GCP Cloud Storage

to introduce malicious payloads.

Detection Coverage

·        Splunk Rule 5

·        Elastic Rule 5

·        QRadar Rule 5

·        Sigma Rule 5

·        AWS Rule 5

·        Azure Rule 5

·        GCP Rule 5

Telemetry Dependency

·        Cloud storage audit logs

·        Object-level logging

·        Artifact container/bucket classification

·        Approved writer baselines

Coverage Disposition
Detected

Rationale
Baseline deviation detection implemented across all storage platforms.

Behavior 7 — Silent Execution Within Normal Workflow Context

MITRE Technique
T1059 – Command and Scripting Interpreter

Behavior Description
Malicious execution embedded within normal CI/CD workflow steps without generating distinct anomalies in logs, network traffic, or identity behavior.

Detection Coverage
None

Telemetry Dependency
N/A

Coverage Disposition
Not Covered

Rationale
If execution:

·        perfectly mimics normal workflow behavior

·        does not access new secrets

·        does not generate new network patterns

·        does not alter identity behavior

then detection is not guaranteed.

Coverage Summary

Detected Behaviors

·        Malicious execution across endpoint and cloud compute

·        Credential harvesting across all cloud secret stores

·        Identity abuse across IAM, Entra, and GCP service accounts

·        Outbound communication and exfiltration (with correlation)

·        Artifact tampering across all storage platforms

Partially Detected

·        Dependency poisoning at ingestion stage

Not Covered

·        Fully stealth execution within normal workflow behavior

S27 Behavior and Log Artifacts

Behavioral Indicators

·        Modification of release tags or upstream distribution assets

·        Retrieval of previously unseen dependency versions within CI/CD pipelines

·        Execution of non-baseline binaries or scripts within pipeline runners

·        Access to credentials outside defined pipeline stages

Log Artifacts

·        GitHub audit logs showing:

o   tag modification events

o   release changes

·        GitHub Actions logs showing:

o   workflow execution changes

o   unexpected job steps

·        CI/CD pipeline logs showing:

o   invocation of unrecognized commands

o   deviations in job execution sequences

·        EDR logs showing:

o   anomalous process execution within build agents

o   unexpected command-line activity

·        Network logs showing:

o   outbound connections to unknown domains

o   DNS queries inconsistent with normal pipeline activity


S28 Detection Strategy and SOC Implementation Guidance

Detection should be implemented through correlation across:

·        Source control monitoring for upstream integrity violations

·        CI/CD pipeline monitoring for execution deviations

·        Endpoint telemetry for process-level visibility within runners

·        Network monitoring for exfiltration patterns

SOC workflows should prioritize:

·        Identification of compromised dependencies and release artifacts

·        Investigation of anomalous pipeline executions

·        Correlation of credential access events with execution anomalies

·        Historical analysis of pipeline activity during exposure windows

S29 Detection Coverage Summary

Detected Behaviors

·        Unauthorized modification of release artifacts and tags

·        Pipeline execution deviations from established baselines

·        Abnormal credential access during CI/CD execution

·        Suspicious outbound network communication

Conditional Post-Exploitation Behaviors
Not observed in currently available reporting; may occur during post-exploitation depending on attacker objectives and target environment

S30 Intelligence Maturity Assessment

Current Detection Maturity
Moderate in organizations with:

·        CI/CD logging and monitoring

·        Endpoint visibility on build agents

Low in organizations lacking:

·        pipeline execution monitoring

·        artifact validation controls

Maturity Gaps

·        Lack of correlation across telemetry sources

·        Limited visibility into third-party dependency execution

·        Absence of upstream artifact integrity validation

Improvement Priorities

·        Implement artifact verification and dependency integrity controls

·        Expand CI/CD telemetry collection and behavioral analysis

·        Integrate endpoint and network telemetry into detection workflows

·        Establish cross-layer correlation for early detection of supply chain anomalies

S31 Mitigation and Remediation

Mitigation must immediately eliminate exposure to compromised Trivy artifacts, revoke any potentially exposed credentials, and re-establish trust in CI/CD execution pipelines. Because the attack leveraged authenticated modification of upstream distribution channels, remediation must address both ingestion of malicious dependencies and execution of those dependencies within pipeline environments.

Immediate actions:

·        Rotate all credentials accessible to CI/CD pipelines, including repository tokens, cloud credentials, and registry access keys

·        Remove all references to compromised Trivy releases, GitHub Actions (trivy-action, setup-trivy), and affected container images

·        Replace dependencies with verified versions or cryptographically validated digests

·        Review CI/CD execution logs during the exposure window to identify unauthorized execution or credential access

·        Purge cached artifacts, build layers, and mirrored repositories that may retain compromised components


These actions are required to terminate active exposure and prevent continued execution of poisoned dependencies.

S32 Security Control Recommendations

Artifact Integrity Controls

·       Validate signatures of Trivy binaries, container images, and GitHub Action sources prior to execution

·       Require digest-based image pulls instead of tag-based retrieval

·       Block pipeline execution of artifacts lacking verifiable provenance

Dependency Governance Controls

·       Pin trivy-action and setup-trivy to immutable versions or commit hashes

·       Restrict pipeline use of external GitHub Actions to approved repositories

·       Prevent automatic ingestion of newly published upstream dependencies without validation

CI/CD Execution Controls

·       Restrict pipeline runners from executing non-baseline binaries or scripts

·       Enforce execution allowlists aligned to known pipeline workflows

·       Block pipeline jobs that introduce unapproved execution steps or command sequences

Credential Security Controls

·       Limit exposure of environment variables to the minimum required execution scope

·       Replace long-lived credentials with short-lived, scoped tokens

·       Restrict credential access to explicitly defined pipeline stages and processes

Access and Release Infrastructure Controls

·       Require multi-factor authentication for all release publishing and repository modification actions

·       Monitor and alert on credential use associated with tag modification and release publication

·       Separate responsibilities for release creation, approval, and publication to reduce misuse of credentials

S33 Strategic Defensive Improvements

Control Impact Mapping

·       Artifact provenance validation disrupts T1195 – Supply Chain Compromise by preventing ingestion of poisoned dependencies

·       Credential scoping and rotation reduce impact of T1528 – Steal Application Access Token by limiting usable secrets

·       Access control enforcement constrains T1078 – Valid Accounts by reducing the effectiveness of compromised credentials

Strategic Improvements

·       Implement end-to-end dependency provenance validation across all CI/CD workflows

·       Establish centralized approval and governance for third-party dependency usage

·       Continuously validate integrity of GitHub Action references and release artifacts

·       Deploy monitoring for unauthorized modification of upstream dependencies and distribution channels

S34 Defensive Architecture Overview


The defensive architecture must enforce trust validation at ingestion, control execution within pipelines, and correlate activity for rapid detection and response.

Upstream Integrity Layer

·       Validate artifact signatures and enforce dependency provenance before ingestion

Pipeline Execution Layer

·       Restrict CI/CD runner behavior to approved execution patterns

·       Enforce allowlists for binaries, scripts, and external dependencies

·       Isolate credential access within defined pipeline stages

Monitoring and Response Layer

·       Correlate pipeline execution anomalies with credential access and network activity

·       Detect unauthorized changes to upstream dependencies

·       Enable rapid containment of compromised pipeline executions


This layered architecture ensures that compromise of a single trust boundary does not propagate uncontrolled through pipeline environments.

S35 Security Hardening Guidance

Harden CI/CD pipelines by enforcing strict validation of all externally sourced components and preventing execution of dependencies that cannot be verified. Configure pipelines to reject untrusted artifacts and block execution paths that deviate from established workflows.

Strengthen release infrastructure by restricting credential usage, monitoring for anomalous modification activity, and enforcing authentication controls on all publishing operations. Ensure that release processes cannot be modified without detection and approval.

Reduce attack surface by minimizing credential exposure, enforcing least privilege access, and segmenting pipeline environments to prevent credential reuse and lateral movement following compromise.

S36 Security Program Maturity Assessment

Current Maturity State

·       Low maturity environments ingest dependencies without validation and expose credentials broadly within CI/CD workflows.

·       Moderate maturity environments monitor pipeline execution but lack enforcement of artifact integrity and dependency governance.

·       High maturity environments validate artifact provenance, enforce dependency policies, and correlate telemetry across CI/CD, endpoint, and network layers.

Risk Alignment

Risk is driven by two primary factors: execution of unverified upstream artifacts and exposure of credentials during pipeline execution. Financial impact aligns directly with S6 scenarios, where credential compromise leads to downstream system access, incident response, and pipeline rebuild costs.

Maturity Improvement Priorities

·       Enforce artifact integrity validation at all dependency ingestion points

·       Expand telemetry coverage across CI/CD runners, endpoint processes, and network activity

·       Implement automated enforcement of dependency governance policies

·       Continuously test and validate supply chain controls against real-world attack scenarios


S37 Residual Risk and Forward Outlook

Residual risk persists where organizations continue to execute externally sourced dependencies without validation or maintain credentials with excessive scope or lifetime. Even after remediation, exposure may remain due to cached artifacts, incomplete credential rotation, or undetected historical execution of compromised components.

Future risk will increase as reliance on CI/CD automation and third-party dependencies expands. Adversaries are likely to continue targeting release infrastructure and distribution channels due to the scalability and low operational cost of supply chain attacks.

Organizations must adopt continuous validation of dependency trust, enforce strict control over pipeline execution, and monitor for deviations from expected behavior. Without these controls, similar attacks will continue to bypass traditional defenses by exploiting trusted systems rather than vulnerable endpoints.

S38 Intelligence Confidence Assessment

Overall Confidence Level

High

Source Reliability

High

Primary intelligence is derived from authoritative sources, including the Aqua Security advisory confirming compromise of Trivy release artifacts, GitHub Actions, and Docker images, the CVE record for CVE-2026-33634, and CISA KEV inclusion confirming active exploitation.

Analytical Confidence Drivers
Direct vendor confirmation of compromised release infrastructure and artifact distribution across multiple channels
Consistency between observed attack behavior and established supply chain compromise patterns (T1195 – Supply Chain Compromise)
Alignment between attack execution, detection signals, and defensive control requirements
Confirmed KEV status indicating real-world exploitation

Confidence Limitations
Limited publicly available detail regarding the initial credential compromise vector
Incomplete visibility into attacker infrastructure and operational tooling
Potential undisclosed secondary payload behavior beyond credential theft

Intelligence Gaps

Full scope of affected downstream environments and organizations
Precise duration of the compromise window
Extent of credential reuse or secondary access obtained by the adversary

S39 Analytical Notes and Limitations

This analysis is based on publicly available vendor disclosures, vulnerability records, and confirmed exploitation data at the time of reporting. While the attack mechanics and distribution-channel compromise are well established, certain elements of adversary activity remain partially observable.

The method used to obtain credentials capable of modifying release infrastructure has not been publicly confirmed, limiting precision in initial access attribution beyond T1078 – Valid Accounts. Downstream impact varies significantly depending on CI/CD configuration, credential exposure, and dependency management practices.

This report assumes standard CI/CD pipeline behavior and typical usage patterns of Trivy and associated GitHub Actions. Environments with additional controls, restricted execution policies, or enforced dependency validation may experience reduced exposure or different risk outcomes.

Not observed in currently available reporting; may occur during post-exploitation depending on attacker objectives and target environment, including lateral movement, persistence mechanisms, or secondary supply chain compromise.

S40 References

Vendor Advisory

·        Aqua Security — Security advisory detailing compromised Trivy releases, GitHub Actions tags, and Docker images

·        hxxps://github[.]com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23

Vulnerability Records

·        CVE-2026-33634 — Vulnerability record associated with the Trivy ecosystem

·        hxxps://www.cve[.]org/CVERecord?id=CVE-2026-33634

Known Exploited Vulnerabilities (KEV)

·        CISA Known Exploited Vulnerabilities Catalog — Entry confirming active exploitation of CVE-2026-33634

·        hxxps://www.cisa[.]gov/known-exploited-vulnerabilities-catalog

Analytical Framework

·        MITRE ATT&CK Framework — Adversary behavior classification and technique mapping

·        hxxps://attack[.]mitre[.]org

Previous
Previous

[CVE] VMware Spring AI Remote Code Execution via Prompt Injection (CVE-2026-22738)

Next
Next

[CVE] CVE-2026-3055 Citrix NetScaler ADC Memory Disclosure Unauthenticated Edge Exploitation