A NextSecurity Project
Runtime enforcement of CI/CD approval policies for secure, compliant DevOps.
SecureCICD is a stateless validation microservice that enforces pipeline integrity at runtime.
It validates:
- Who approved the deployment?
- Who authored the code?
- Was the approval reassigned?
- Is the approver part of a trusted group?
| Component | Purpose |
|---|---|
| FastAPI Validator | REST API for approval checks |
| Environment Policy | List of allowed approvers (can be extended to external API) |
| CI/CD Client | curl / Invoke-RestMethod from GitHub/Azure Pipelines |
| Logger | Outputs all decisions in JSON format |
| (Optional) Config Service | Dynamic policy backend (planned roadmap) |
+----------------+ POST /validate-approval +--------------------+
| GitHub Action | ---------------------------------> | SecureCICD Server |
| or Azure Agent | | (FastAPI Runtime) |
+----------------+ +--------------------+
| |
|--- approver, author, pipeline_id, commit_id ------>|
| |
|<---------------- Result (200 / 403) ---------------|
{
"approver": "svc-release",
"author": "dev-a",
"reassigned": false,
"pipeline_id": "release-prod",
"commit_id": "abc123"
}{ "status": "success" }or
{ "status": "error", "detail": "Self-approval not allowed" }| Threat | Mitigation |
|---|---|
| Developer self-approves their own commit | Blocked with approver == author rule |
| Approver reassigns task to lower-permission account | Blocked with reassigned == true check |
| Non-whitelisted users approve critical pipelines | Allowlist enforced from ENV or config backend |
| CI system misconfig allows unrestricted approvals | Runtime validation enforces SoD regardless of UI |
| No traceability of who approved what | JSON logging with full context |
- CI pipeline executes
curlcall to/validate-approval - SecureCICD parses input, applies rules
- Logs every request + decision
- Responds with allow/block
- Pipeline proceeds only on HTTP 200
- No trust in pipeline UI / approvals
- Every deployment is verified at the moment it happens
- No shared secrets stored β policy comes from config/env
- Stateless, scalable, cloud-native
| Feature | Status |
|---|---|
| Dynamic policy from LDAP/AD API | π‘ Planned |
| SIEM push integration (Splunk, Datadog) | π‘ Planned |
| GitHub App + Azure DevOps Extension Store | π’ MVP Complete |
| Centralized dashboard for audit reviews | π‘ Planned |
- OWASP Top 10 CI/CD Risks: https://owasp.org/www-project-cicd-security-top-10/
- DORA compliance (EU): https://digital-strategy.ec.europa.eu/en/policies/dora
Built for pipelines that demand security, auditability, and trust.