Paket 2 · Praktik LanjutanModul H — DevSecOps

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

TahapKontrol keamanan
PlanThreat modeling, kebutuhan keamanan
CodeLint keamanan, review, pre-commit
BuildSCA, secret scan, SBOM
TestSAST, DAST, integration security test
ReleaseSigning, provenance, approval
DeployPolicy, image verification, least privilege
OperateRuntime monitoring, patch

Jenis scan

JenisMencariContoh tool
SASTBug keamanan di kodeSemgrep, CodeQL, SonarQube
SCAKerentanan dependencynpm audit, Trivy, Snyk, Dependabot
Secret scanningKredensial bocorGitleaks, TruffleHog
DASTKerentanan runtimeOWASP ZAP
Container scanCVE di imageTrivy, Grype
IaC scanSalah konfigurasiCheckov, tfsec
SBOMInventaris komponenSyft, 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,CRITICAL

Gate dan prioritas

Tidak semua temuan harus memblokir merge. Tentukan kebijakan:

SeverityAksi
CriticalBlokir, perbaiki segera
HighBlokir atau perbaiki dalam SLA
MediumTiket, perbaiki terjadwal
LowBacklog

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.json

SBOM 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.0

Di 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

  1. Scan otomatis.
  2. Kategorikan severity.
  3. Prioritaskan yang dieksploitasi.
  4. Perbaiki dependency/base image.
  5. Verifikasi ulang.
  6. 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.

On this page