π‘οΈ Consolidating DevSecOps: How AegisCI Unifies SAST, DAST, SCA, Secrets, and AI Remediation into a Single Binary
Stop wrestling with 8 different security tools in your CI/CD pipeline. Here is how a unified, Go-powered orchestrator with Policy-as-Code and AI-driven automated patching changes modern DevSecOps.
Author: Yehezkiel Wiradhika
Estimated Read Time: 9 min
Tags: DevSecOps | AppSec | GitHub Actions | Golang | Cybersecurity | Software Supply Chain
The Chaos of Modern DevSecOps Pipelines
If you inspect a typical enterprise .github/workflows/ directory today, you will likely find a tangled web of security scanners:
- One job downloads a 2GB Python environment for Static Application Security Testing (SAST).
- Another runs a dedicated Secrets scanner.
- A third invokes a container and dependency scanner for Software Composition Analysis (SCA).
- A fourth audits Infrastructure as Code (IaC) templates.
- A fifth checks GitHub Actions workflow permissions.
- A sixth attempts to run Dynamic Application Security Testing (DAST).
β The Traditional Fragmented CI Security Pipeline:
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β SAST Action β ββ> β Secret Scan β ββ> β SCA Action β ββ> β IaC Action β
β (200MB+ logs)β β (Custom JSON)β β (Custom XML) β β (Terminal UI)β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β β β β
βΌ βΌ βΌ βΌ
π¨ Alert Fatigue & Pipeline Bloat π¨
(15+ minute build times, disconnected reports, no PR diffs)
The Inherent Problems:
- Pipeline Bloat & Latency: Chaining multiple independent GitHub Actions inflates CI pipeline runtime from 2 minutes to 15+ minutes.
- Alert Fatigue & Format Fragmentation: Every tool produces distinct JSON schemas, XML files, or raw console logs. Reconciling false positives across five different dashboards is an AppSec nightmare.
- Policy Drift: Suppressing a false positive requires scattered inline comments (
// nosec,# noqa,.gitleaksignore), creating unmaintained bypasses. - The "Throw-It-Over-The-Fence" Syndrome: Scanners tell developers what is broken, but provide zero assistance on how to fix it.
To solve this fragmentation, we built AegisCI β an open-source, all-in-one DevSecOps scanner, Policy-as-Code engine, and enterprise security orchestrator compiled into a single high-performance Go binary.
What is AegisCI?
AegisCI consolidates the industryβs top security engines into a single concurrent runtime with native GitHub Security tab integration, PR diff annotations, time-bound policy management, and automated LLM-driven patch generation.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AegisCI Enterprise Orchestrator β
β β
β 1. Stack Auto-Detection & Smart Mode Router (pr-check / deep-scan) β
β 2. Concurrent Engine Execution (Parallel Goroutines) β
β βββ Semgrep (SAST) βββ Trivy (SCA & SBOM) β
β βββ Gitleaks (Secrets) βββ Checkov (IaC & Containers) β
β βββ Zizmor (CI Workflows) βββ OWASP ZAP (DAST Runtime) β
β βββ Custom Plugins Engine (WASM / Executable Plugin SDK) β
β β
β 3. SARIF Aggregator, Deduplicator & Policy-as-Code Engine β
β 4. AI Remediation Engine (Automated Patch Diffs: patches/*.patch) β
β 5. Unified Dispatcher: β
β βββ GitHub Inline PR Annotations (::error file=...,line=...) β
β βββ Unified results.sarif -> GitHub Security / Code Scanning Tab β
β βββ Enterprise Dashboard Webhook Telemetry Streamer β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Instead of managing half a dozen disparate actions, you drop a single binary or GitHub Action into your repository. AegisCI discovers the tech stack, runs all relevant scanners concurrently using Go goroutines, normalizes findings into standard SARIF v2.1.0, applies corporate policy rules, and optionally generates Git patch files to fix vulnerabilities automatically.
The 6+ Security Pillars Under One Roof
AegisCI packages best-of-breed open-source security engines into unified execution targets:
| Pillar | Engine | Target Scope & Capabilities |
|---|---|---|
| Secrets Detection | Gitleaks | Detects API keys, AWS credentials, RSA private keys, and tokens in code & Git history. |
| SAST | Semgrep | Source code vulnerability detection (SQL injections, XSS, insecure deserialization, cryptographic flaws). |
| SCA & SBOM | Trivy | Scans lockfiles (go.mod, package-lock.json, requirements.txt, Cargo.lock) and exports CycloneDX / SPDX SBOMs. |
| IaC & Containers | Checkov | Audits Terraform (.tf), Kubernetes manifests, Helm charts, and Dockerfiles for misconfigurations. |
| DAST | OWASP ZAP | Runtime API and web application vulnerability scanning with automated endpoint health probes. |
| CI Meta-Security | Zizmor | Audits .github/workflows/*.yml for unpinned actions, privilege escalation, and script injections. |
| Threat Intelligence | Vortex Intel | Real-time queries for compromised packages, typosquatting attacks, and malicious dependencies. |
| AI Remediation | LLM Engine | Analyzes AST context and outputs unified .patch files to fix identified flaws. |
Core Innovations: What Makes AegisCI Different?
1. Smart Pipeline Routing (auto, pr-check, deep-scan)
Different CI triggers require different trade-offs between speed and thoroughness. AegisCI includes an intelligent event router:
pr-checkMode (< 3 minutes): Runs fast parallel scans (Secrets + SAST + SCA lockfiles + Workflow linters). Designed specifically for Pull Requests to provide instant feedback to engineers without blocking development velocity.deep-scanMode (Comprehensive): Executes the full security suite, including deep container filesystem scans, DAST runtime audits, SBOM generation, and license compliance audits.autoMode (Default): Inspects CI environment variables (GITHUB_EVENT_NAME,GITHUB_REF). It dynamically routes PR events topr-checkand merges onmain/releasebranches todeep-scan.
// Inside pkg/router/router.go
func ResolvePlan(cfg *config.Config) *Plan {
if cfg.Mode == config.ModeAuto {
if isPullRequestEvent() {
// Speed-optimized security gate
return &Plan{EffectiveMode: config.ModePRCheck, EnableDAST: false}
}
// Full spectrum audit on push/merge
return &Plan{EffectiveMode: config.ModeDeepScan, EnableDAST: true, GenerateSBOM: true}
}
// ...
}
2. High-Throughput Concurrent Execution
Instead of running scanners sequentially, AegisCI utilizes Go's lightweight concurrency model (sync.WaitGroup and buffered channels). All scanners execute in parallel goroutines, and their outputs are collected concurrently:
// Inside pkg/engine/engine.go
func (o *Orchestrator) Run(ctx context.Context, targetDir string) []ScanResult {
var wg sync.WaitGroup
results := make([]ScanResult, len(o.scanners))
for i, scanner := range o.scanners {
wg.Add(1)
go func(idx int, sc Scanner) {
defer wg.Done()
start := time.Now()
report, err := sc.Scan(ctx, targetDir)
results[idx] = ScanResult{
ScannerName: sc.Name(),
Report: report,
Duration: time.Since(start),
Error: err,
}
}(i, scanner)
}
wg.Wait()
return results
}
This reduces scan latency by up to 70% compared to traditional sequential workflows.
3. Policy-as-Code with Time-Bound Suppressions (.aegisci.yml)
Security teams frequently struggle with permanent ignore lists that accumulate technical debt. AegisCI introduces time-bound policy suppressions, tolerance limits, and automated license governance:
version: "4.0"
settings:
fail_on_unpatched_cves: false
max_critical: 0
max_high: 2
max_medium: 10
# Time-bound exemptions
ignore:
- id: "G401"
path: "pkg/legacy/hash.go"
reason: "MD5 used solely for non-cryptographic checksum caching"
expires: "2026-12-31" # Scanner will automatically un-suppress after this date
- id: "generic-api-key"
path: "test/fixtures/**"
reason: "Synthetic dummy tokens in unit test fixtures"
expires: "2027-01-01"
# Software Supply Chain License Governance
license_policy:
banned:
- "GPL-3.0"
- "AGPL-3.0"
- "SSPL"
allowed:
- "MIT"
- "Apache-2.0"
- "BSD-3-Clause"
If a developer ignores a vulnerability with an expiry date, AegisCI enforces it until that timestamp. The moment the deadline passes, AegisCI automatically fails the build, preventing forgotten security exemptions from lingering indefinitely.
4. Automated AI Remediation & Patch Generation
Instead of dumping cryptic error traces on developers, AegisCI includes an AI Remediation Engine that inspects the vulnerable code snippet, queries LLMs (Google Gemini, OpenAI, or local Ollama endpoints), and outputs production-ready .patch files:
aegisci scan --target . --ai-remediation --ai-provider gemini --ai-api-key $GEMINI_API_KEY
When AegisCI finds an issue (such as an unsanitized SQL query or an unpinned GitHub Action), it produces:
--- a/pkg/database/query.go
+++ b/pkg/database/query.go
@@ -42,3 +42,3 @@
- query := fmt.Sprintf("SELECT * FROM users WHERE id = '%s'", userID)
- row := db.QueryRow(query)
+ query := "SELECT * FROM users WHERE id = $1"
+ row := db.QueryRow(query, userID)
Developers can apply the suggested fix instantly using standard Git tooling:
git apply patches/patch-01-sql-injection.patch
5. Native GitHub Integration: Inline PR Diff Annotations & SARIF
AegisCI speaks native GitHub Actions workflow formatting. When run inside a pull request, it emits direct workflow commands:
::error file=src/auth.go,line=42,title=SQL Injection Detected::Unsanitized input passed directly to database query execution.
This renders the vulnerability right in the pull request review interface, directly over the line of code that introduced it:
Zoom
Furthermore, all findings are merged into a single deduplicated results.sarif file uploaded to GitHub's Security β Code scanning alerts dashboard.
Step-by-Step Implementation Guide
1. Local Installation
AegisCI is cross-compiled for Linux (amd64/arm64), macOS (Apple Silicon/Intel), and Windows.
# macOS & Linux via Homebrew
brew tap yehezkiel1086/tap
brew install aegisci
# Debian / Ubuntu
curl -sLO https://github.com/yehezkiel1086/AegisCI/releases/latest/download/aegisci_linux_amd64.deb
sudo dpkg -i aegisci_linux_amd64.deb
# Go Developers
go install github.com/yehezkiel1086/AegisCI/cmd/aegisci@latest
2. Running a Local Scan
Scan your local repository before committing code:
# Quick local scan
aegisci scan --target .
# Deep scan with SBOM export
aegisci scan --target . --mode deep-scan --sbom --sbom-format cyclonedx-json
# Scan a live staging URL for runtime vulnerabilities (DAST)
aegisci scan --target . --dast --dast-target-url https://staging.myapp.internal --fail-on CRITICAL
3. Adding to GitHub Actions (.github/workflows/security.yml)
Here is a complete, enterprise-ready workflow recipe:
name: AegisCI DevSecOps Audit
on:
push:
branches: [ "main", "develop" ]
pull_request:
branches: [ "main" ]
jobs:
security-audit:
name: AegisCI Unified Security Gate
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write # Required for GitHub Code Scanning SARIF upload
pull-requests: write # Required for inline PR annotations
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run AegisCI Security Suite
uses: yehezkiel1086/AegisCI@v1
with:
mode: 'auto'
fail-on-severity: 'HIGH'
sbom: 'true'
ai-remediation: 'true'
ai-provider: 'gemini'
ai-api-key: ${{ secrets.GEMINI_API_KEY }}
- name: Upload SBOM Report
if: always()
uses: actions/upload-artifact@v4
with:
name: software-bill-of-materials
path: sbom.cdx.json
Enterprise Extensibility: The Plugin SDK
Need to enforce proprietary internal rules, custom compliance standards, or bespoke static analysis scripts?
AegisCI supports custom executable plugins (WASM binaries, Python scripts, Go binaries, or Bash scripts). Simply place your executable in .aegisci/plugins/:
.aegisci/
βββ plugins/
βββ custom-pci-dss-check.py
βββ internal-crypto-linter.sh
Any binary that responds to --target <dir> --output <path> --format sarif is automatically discovered and executed concurrently alongside standard scanners, seamlessly merging into the master SARIF report.
Summary & Next Steps
Shifting left shouldn't mean overwhelming your engineering team with dozens of uncoordinated security tools and 20-minute CI delays. By centralizing DevSecOps into a unified orchestrator, AegisCI delivers:
- Simplicity: One binary, one config file (
.aegisci.yml), one GitHub Action. - Speed: Parallel multi-engine execution with smart mode routing (
< 3 minPR checks). - Actionable Feedback: Real inline PR diff comments and automated
.patchfixes. - Governance: Time-bound policy suppressions and license compliance enforcement.
Get Involved:
- β GitHub Repository: github.com/yehezkiel1086/AegisCI
- π Documentation & Recipes: Complete Usage Guide
- π¦ GitHub Marketplace: AegisCI Action
Have thoughts on the future of DevSecOps consolidation and AI remediation? Leave a comment below or join the discussion on GitHub!