Back

CICD-SEC-10: Insufficient Logging and Visibility - Overview

What is Insufficient Logging and Visibility?

Insufficient Logging and Visibility is the tenth risk in the OWASP Top 10 CI/CD Security Risks. It describes a CI/CD environment that lacks the logging, monitoring, and detection needed to notice an attack in the pipeline. The vulnerability is not a single misconfigured switch—it is the absence of the telemetry and alerting that would let a defender see tampering, credential abuse, or misuse of the build and delivery system while it is happening, or reconstruct it afterwards.

A CI/CD system is a chain of independently operated tools: the source-code management (SCM) platform, the CI/CD orchestrator, package and container registries, artifact stores, secrets managers, and the cloud accounts that pipelines deploy into. Each of these produces its own audit trail—when it is turned on. When those trails are disabled, too coarse, siloed in separate consoles, never centralised, never correlated, never alerted on, and never retained, an attacker can move through the pipeline without ever tripping a signal. The build and deploy machinery, which holds the keys to production, becomes a blind spot.

The core idea: the danger of CICD-SEC-10 is not that an attack succeeds—every other CI/CD risk covers a way in—but that the attack proceeds undetected. Pipeline tampering, secret access, new tokens, and unusual deploys all leave traces; insufficient logging and visibility means nobody is collecting, correlating, or watching those traces.

Core Concept

Sufficient Visibility (defender can see the pipeline):
  Audit logs   -> enabled across SCM, CI, registry, artifact store, cloud
  Centralised  -> all toolchain logs shipped to one SIEM / log platform
  Correlated   -> a commit, a build, a token use, and a deploy can be joined
  Alerting     -> high-risk pipeline events page a human in near real time
  Retention    -> tamper-resistant, long enough for investigation
  Runners      -> process, network, and file activity on build agents captured
  Baseline     -> "normal" pipeline behaviour is known; anomalies stand out

Insufficient Visibility (attacker moves in the dark):
  Audit logs   -> disabled or too coarse in SCM / CI / registry
  Centralised  -> each tool logs to its own console, nobody aggregates
  Correlated   -> no way to tie a config change to the identity that made it
  Alerting     -> no alerts on secret access, new tokens, off-hours deploys
  Retention    -> days or none; logs rotated away before an incident is noticed
  Runners      -> no visibility into what a build job actually did
  Baseline     -> no notion of normal, so nothing ever looks abnormal

Why It's Critical for CI/CD

CI/CD pipelines concentrate several conditions that make missing visibility especially damaging:

Why Does This Matter?

Business Impact

Technical Impact

Technical Context

What Should Be Logged Across the Toolchain

Visibility is only as good as its weakest link. An attack that pivots from SCM to CI to registry to cloud is only reconstructable if every stage produces and forwards security-relevant events.

SystemSecurity-relevant events to captureWhat its absence hides
SCM (GitHub/GitLab/Bitbucket)Pushes, branch/tag changes, protection-rule edits, permission and membership changes, new deploy keys/PATs, webhook edits, workflow file changesWho changed the code, the branch rules, or the automation—and who was granted access
CI/CD orchestratorPipeline definition changes, job triggers (esp. from forks), runner registration, secret/variable access, plugin/integration changes, manual overridesWhat ran, why, on whose behalf, and with what secrets
Artifact / package registryPushes and pulls, tag mutation/overwrite, retention/immutability changes, new publish tokens, signing eventsWhether a published artifact was replaced or a malicious version slipped in
Secrets manager / vaultSecret reads, policy changes, new leases, failed access attemptsWhich credentials were accessed, by which identity, and when
Cloud / deploy targetsDeployments, IAM and role changes, new keys, off-hours or out-of-pipeline actionsWhat was actually pushed to production and by which path
Build runners / agentsProcess execution, outbound network connections, filesystem writes, unexpected tool installsWhat a build job did beyond its declared steps—including exfiltration

The Failure Modes of CICD-SEC-10

1. Audit Logging Disabled or Too Coarse

SCM and CI platforms often ship with security audit logging off, restricted to higher tiers, or limited to a few event types. The pipeline runs, but the record of who did what is never generated.

2. Logs Not Centralised Across the Toolchain

SCM audit log      -> only visible in the SCM admin console
CI job logs        -> only visible in the CI UI, per-project
Registry events    -> only in the registry's own audit view
Cloud trail        -> only in the cloud provider console
# Nobody is looking at all four together, so a cross-tool attack is invisible.

Each tool has a log; none of them is aggregated. An attacker who touches several tools leaves a trail that no single console reveals.

3. No Correlation

Even when logs are collected, they use different identity models, timestamps, and identifiers. Without correlation you cannot answer "which commit triggered which build, which used which token, which deployed what?"—the events exist but cannot be joined into a story.

4. No Alerting on Security-Relevant Pipeline Events

Logs are written but never watched. A pipeline-config change at 3 a.m., a first-ever secret access by a service account, or a new admin token generates no alert, so discovery depends on someone happening to look.

5. Short or No Retention

Runner logs vanish when the ephemeral agent is torn down; CI logs rotate after days; free tiers retain audit events briefly. By the time an incident is suspected, the evidence has aged out.

6. Mutable Logs

If the same identities that operate the pipeline can also edit or delete its logs, an attacker who gains that access simply erases their own trail. Logs that are not write-once and off-host are not trustworthy evidence.

7. No Runner Visibility

Build jobs frequently run arbitrary code (tests, build scripts, dependencies). Without process- and network-level monitoring on runners, a job that quietly curls a secret to an external host looks identical to a normal build.

8. No Baseline of Normal Behaviour

Without a model of normal pipeline behaviour—who deploys, when, how often, to where—nothing ever looks abnormal. Anomaly detection is impossible if "normal" was never characterised.

Real-World Impact

The incidents below are described as classes of real events rather than specific attributed breaches. They illustrate how missing pipeline visibility turns a contained problem into a prolonged one.

Case Study Class 1: Supply-Chain Build Compromise Discovered Downstream

Pattern:

Why visibility mattered: In this class of incident the tampering is frequently discovered not by the origin organisation's own monitoring but by an external party noticing anomalous behaviour in the shipped product. Insufficient logging of the build environment and its runners meant the producing organisation could not detect the modification at the source, and later struggled to reconstruct exactly which builds were affected.

Case Study Class 2: Stolen CI/CD Token Used Undetected

Pattern:

Why visibility mattered: Because token usage was not monitored and no baseline of normal access existed, the anomalous cloning and access continued without alerting anyone. Organisations in this class typically learn of the abuse only when the attacker acts overtly or a third party reports it—long after the credential was first misused.

Case Study Class 3: Poisoned Fork-PR Workflow

Pattern:

Why visibility mattered: With no alerting on fork-triggered workflow runs and no runner egress monitoring, the malicious job's outbound connection and secret access blended into ordinary CI traffic. The absence of correlated logs meant that, even after suspicion arose, defenders could not easily prove what the job exfiltrated.

Common Root Cause

Across these classes the root cause is the same: the CI/CD environment produced too little trustworthy, centralised, correlated telemetry for anyone to notice the attack in progress or reconstruct it afterwards. Every one of these attacks generated events—a config change, a token use, an outbound connection, an artifact overwrite—that a well-instrumented pipeline would have surfaced.

Prevalence and Detectability

Insufficient Logging and Visibility is best understood as a force multiplier for every other CI/CD risk rather than a standalone exploit. It is what determines whether an attack is caught in minutes or discovered months later by an outsider.

Rather than cite precise figures (which vary by source and year), the defensible picture is:

Note: exact percentages and dwell-time figures differ between reports. Treat any single figure as illustrative; the durable takeaway is that pipeline visibility is commonly insufficient, and that insufficiency is what lets CI/CD attacks succeed quietly.

Common Misunderstandings

Myth 1: "Our CI tool already keeps job logs, so we have logging"

Reality: Job console output is for debugging builds, not detecting attacks. It is per-project, not centralised, rarely retained, usually mutable, and contains none of the SCM/registry/cloud events an attacker touches. Build logs are not an audit trail.

Myth 2: "The pipeline is internal, so we don't need to monitor it"

Reality: The pipeline is the most privileged internal system you own—it can ship code to production. Internal systems are reached through stolen tokens, poisoned dependencies, and fork PRs. An unmonitored pipeline is a blind spot at the exact point of greatest leverage.

Myth 3: "We'll turn on detailed logging if we ever have an incident"

Reality: Logging is retrospective. If it was not enabled and retained before the incident, the evidence does not exist. You cannot investigate events that were never recorded, and ephemeral runners guarantee the data is already gone.

Myth 4: "We collect everything, so we're covered"

Reality: Collection without correlation and alerting is a data lake nobody swims in. If no rule fires on a pipeline-config change or a new admin token, the events sit unread. Visibility means noticing, not merely storing.

Myth 5: "Logs in the same system that runs the pipeline are fine"

Reality: If the identities that operate the pipeline can also alter or delete its logs, an attacker who compromises the pipeline erases the trail. Security logs must be shipped off-host to storage the pipeline cannot modify.

Myth 6: "Cloud audit logging covers the whole pipeline"

Reality: Cloud trails capture what reached the cloud, not what happened in SCM, CI, or the registry beforehand. An attack that tampers with a build never appears in the cloud log as anything but a normal deploy. Every stage needs its own instrumentation.

How CICD-SEC-10 Relates to the Other CI/CD Risks

AspectInsufficient Logging & Visibility (CICD-SEC-10)Poisoned Pipeline Execution (CICD-SEC-04)Insufficient Credential Hygiene (CICD-SEC-06)
NatureInability to detect or reconstruct an attackA way for attackers to run code in the pipelineA way for attackers to obtain credentials
Root causeMissing/siloed/unmonitored telemetryUntrusted input reaching build executionPoorly managed, over-scoped, long-lived secrets
Effect if unaddressedOther attacks proceed unnoticedArbitrary code runs with pipeline privilegesSecrets are abused, often silently
Typical fixEnable, centralise, correlate, alert, retainIsolate and restrict untrusted executionRotate, scope, shorten, and vault secrets

CICD-SEC-10 is the risk that decides whether the other nine are caught or missed. Strong controls elsewhere still fail quietly without visibility to confirm they held.

Key Takeaways

  1. Visibility spans the whole toolchain—SCM, CI, registries, artifact stores, secrets managers, cloud, and runners—not just one console.
  2. The harm is undetected dwell time—the vulnerability is measured in how long an attack goes unnoticed and how little can be reconstructed.
  3. Collection is not detection—logs must be centralised, correlated, and alerted on to matter.
  4. Logs must outlive the runner and resist tampering—ephemeral agents and short retention destroy evidence; mutable logs let attackers erase it.
  5. You must know normal to spot abnormal—a baseline of pipeline behaviour is the foundation of anomaly detection.

How to Identify if You're Vulnerable

Ask these questions about your CI/CD environment:

If you answered "no" or "not sure" to several of these, an attacker could operate in your pipeline today without being noticed.

Next Steps