Pipeline Security
Pipeline Security applies Runtime Sensor policies to CI/CD builds. It can detect or prevent unexpected file access, execution, network connections, privilege changes, and container activity while a build runs.
How Protection Works
- Team Server discovers pipelines and builds through a CI/CD integration.
- The Runtime Sensor runs on the build infrastructure.
- Build configuration calls
endura job startbefore build work andendura job stopduring cleanup. - The Sensor evaluates activity against the pipeline’s assigned policy.
- Team Server records protection state and violations.
Use derive mode to capture a baseline, observe mode to test refinements, and enforce mode to block unauthorized operations. See Security Policies for the complete lifecycle.
Common Threats
- credential and source-code theft;
- malicious or unexpected process execution;
- unauthorized network access;
- container-runtime abuse;
- privilege escalation; and
- cryptomining or other resource abuse.
Protection Status
Build and pipeline protection answer different questions:
- A build status says whether that run was observed and currently has a policy.
- A pipeline status says whether its recent jobs are currently covered.
Builds
A build is Protected when both conditions are true:
- The Runtime Sensor observed the run after
endura job start. - The pipeline currently has a security policy assigned.
All other builds are Unprotected. Sensor observation is permanent, but the policy check uses the pipeline’s current assignment. Assigning or removing a policy therefore updates the status of every observed build in that pipeline.
Pipelines
A pipeline is Full, Partial, or None. Team Server groups builds into provider-specific jobs and considers only each job’s latest run inside the Days Until Stale window.
| Provider | Job used for protection calculation |
|---|---|
| Bamboo | Plan key |
| GitHub | Workflow name |
| GitLab | CI job name |
| Jenkins | Jenkins job |
| TeamCity | Build configuration name |
The result is:
| Protection | Meaning |
|---|---|
| Full | A policy is assigned and every recent job’s latest run was observed |
| Partial | A policy is assigned and only some recent jobs’ latest runs were observed |
| None | No policy is assigned, no recent latest run was observed, or no job ran inside the stale window |
Team Server computes the value when a pipeline loads. The Pipelines list filter uses a cached value refreshed by the calculate_statistics scheduler job, so a recently changed pipeline can briefly remain under its previous filter.
Why Builds and Pipelines Can Differ
- Protected builds, None pipeline: The observed builds are older than the stale window.
- Mostly Protected builds, Partial or None pipeline: A job’s newest run was not observed.
- Observed build, Unprotected build status: The pipeline has no policy assigned.
When a latest run is unobserved, verify that the Sensor was online on the selected agent and that the build still called endura job start.
Set Up Pipeline Security
- Deploy Team Server.
- Install the Runtime Sensor on build infrastructure.
- Follow the CI/CD provider guide.
- Create and refine a policy.