DevSecOps Fundamentals & Security Pipeline
Menerapkan keamanan di setiap tahap pipeline: SAST, SCA, secret scanning, container scan, SBOM, signing, dan policy gate.
DevSecOps mengintegrasikan keamanan ke dalam alur DevOps. Keamanan bukan gerbang manual di akhir rilis, melainkan pemeriksaan otomatis yang terus berjalan.
Prinsip
- Shift left — temukan masalah lebih awal dan lebih murah.
- Automation — scan dijalankan otomatis pada PR.
- Defense in depth — beberapa lapisan kontrol.
- Least privilege — akses minimum.
- Immutable artifacts — image bertag dan terverifikasi.
- Continuous monitoring — kerentanan baru tetap terdeteksi.
Secure SDLC
| Tahap | Kontrol keamanan |
|---|---|
| Plan | Threat modeling, kebutuhan keamanan |
| Code | Lint keamanan, review, pre-commit |
| Build | SCA, secret scan, SBOM |
| Test | SAST, DAST, integration security test |
| Release | Signing, provenance, approval |
| Deploy | Policy, image verification, least privilege |
| Operate | Runtime monitoring, patch |
Jenis scan
| Jenis | Mencari | Contoh tool |
|---|---|---|
| SAST | Bug keamanan di kode | Semgrep, CodeQL, SonarQube |
| SCA | Kerentanan dependency | npm audit, Trivy, Snyk, Dependabot |
| Secret scanning | Kredensial bocor | Gitleaks, TruffleHog |
| DAST | Kerentanan runtime | OWASP ZAP |
| Container scan | CVE di image | Trivy, Grype |
| IaC scan | Salah konfigurasi | Checkov, tfsec |
| SBOM | Inventaris komponen | Syft, CycloneDX |
Contoh pipeline keamanan
name: Security
on:
pull_request:
push:
branches: [main]
permissions:
contents: read
security-events: write
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Secret scan
uses: gitleaks/gitleaks-action@v2
- name: Dependency audit
run: npm audit --audit-level=high
- name: SAST
uses: returntocorp/semgrep-action@v1
with:
config: p/security-audit
- name: Build image
run: docker build -t app:${{ github.sha }} .
- name: Container scan
uses: aquasecurity/trivy-action@0.28.0
with:
image-ref: app:${{ github.sha }}
format: table
exit-code: "1"
severity: HIGH,CRITICALGate dan prioritas
Tidak semua temuan harus memblokir merge. Tentukan kebijakan:
| Severity | Aksi |
|---|---|
| Critical | Blokir, perbaiki segera |
| High | Blokir atau perbaiki dalam SLA |
| Medium | Tiket, perbaiki terjadwal |
| Low | Backlog |
Kebijakan harus realistis agar tim tidak mem-bypass pipeline.
SBOM
Software Bill of Materials mendokumentasikan komponen dalam artefak.
syft ghcr.io/org/app:1.4.0 -o cyclonedx-json > sbom.jsonSBOM berguna saat ada CVE baru: Anda bisa mencari apakah aplikasi memakai komponen terdampak.
Signing dan provenance
Tanda tangani image agar hanya artefak tepercaya yang boleh deploy.
cosign sign --key cosign.key ghcr.io/org/app:1.4.0
cosign verify --key cosign.pub ghcr.io/org/app:1.4.0Di Kubernetes, admission controller dapat menolak image tanpa tanda tangan.
Policy as code
Contoh kebijakan:
- Image tidak boleh memakai tag
latest. - Container tidak boleh root.
- Image harus berasal dari registry internal.
- Tidak boleh ada secret di environment image.
Tools: OPA/Gatekeeper, Kyverno.
Vulnerability management
- Scan otomatis.
- Kategorikan severity.
- Prioritaskan yang dieksploitasi.
- Perbaiki dependency/base image.
- Verifikasi ulang.
- Pantau CVE baru.
Gunakan sumber seperti CVE, GitHub Advisory, dan OSV.
Scan sekali tidak cukup
Kerentanan baru muncul setelah build. Jalankan scan berkala pada image yang sudah dipakai, bukan hanya saat build.
Keamanan runtime
- Jalankan container sebagai non-root.
- Read-only filesystem bila memungkinkan.
- Batasi capability.
- Jangan mount Docker socket.
- Gunakan network policy.
- Pantau proses dan akses file.
Ringkasan
- DevSecOps menggeser keamanan ke awal pipeline.
- SAST, SCA, secret scan, container scan, dan DAST saling melengkapi.
- SBOM dan signing mengamankan supply chain.
- Temuan harus punya kebijakan prioritas yang jelas.
Selanjutnya
Kelola kredensial di Secrets, SSH & Access Management.