> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skanesgalab.my.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Fundamental DevSecOps

> Mengenal konsep DevSecOps (Development, Security, Operations): filosofi Shift-Left Security, pilar SAST/DAST/SCA/Secret Scanning, kepatuhan (Compliance), dan tools populer.

## Apa itu DevSecOps?

**DevSecOps** adalah perluasan alami dari filosofi DevOps yang mengintegrasikan praktik **Keamanan Siber (*Security*)** sebagai bagian yang tidak terpisahkan di setiap tahap siklus pengembangan perangkat lunak, sejak baris kode pertama ditulis hingga aplikasi berjalan di cloud.

```mermaid theme={null}
flowchart LR
    Dev["Development\n(Pengembangan Kode)"] <--> Sec["Security\n(Keamanan Terpadu)"]
    Sec <--> Ops["Operations\n(Infrastruktur & Cloud)"]
```

***

## Masalah Cara Kerja Keamanan Tradisional

Dalam model pengembangan perangkat lunak tradisional:

* Tim developer menulis kode selama berbulan-bulan dengan kecepatan tinggi.
* Tim operations menyiapkan server dan mendeploy aplikasi.
* **Tepat satu minggu sebelum aplikasi dirilis ke publik**, tim *Security/Auditor* baru dipanggil untuk melakukan tes penetrasi (*Penetration Testing*).
* **Akibatnya:** Ditemukan puluhan celah keamanan fatal. Rilis produk terpaksa dibatalkan mendadak, tim saling menyalahkan, dan biaya untuk merombak arsitektur menjadi sangat mahal!

> **Filosofi Inti DevSecOps: "Shift-Left Security"**\
> *"Shift-Left"* berarti memindahkan pengujian keamanan ke arah **paling kiri** dari timeline pengembangan. Keamanan bukan lagi gerbang penghalang (*gatekeeper*) di akhir rilis, melainkan tanggung jawab bersama yang diuji secara otomatis di setiap `git push` developer.

***

## 4 Pilar Pengujian Keamanan Otomatis dalam Pipeline CI/CD

Dalam DevSecOps, pemeriksaan keamanan diotomatisasi ke dalam 4 kategori alat (*Security Tools*):

```mermaid theme={null}
flowchart TD
    subgraph DevPipeline["Tahapan DevSecOps Pipeline"]
        Code["1. Kode Ditulis Developer"] --> Secret["Secret Scanning (Cegah Bocor Token)"]
        Secret --> SAST["SAST (Analisis Kode Statis)"]
        SAST --> SCA["SCA (Analisis Pustaka Open-Source)"]
        SCA --> ContainerScan["Container Image Scan (Trivy)"]
        ContainerScan --> DAST["DAST (Uji Penetrasi Aplikasi Aktif)"]
        DAST --> Deploy["Deploy Aman ke Produksi"]
    end
```

### 1. Secret Scanning (Pencegahan Kebocoran Kunci Rahasia)

* **Fungsi:** Memindai repositori Git untuk memastikan developer tidak secara sengaja menaruh password database, API Key AWS, atau private key di dalam file kode.
* **Tools Populer:** GitGuardian, Gitleaks, Trufflehog.

### 2. SAST (Static Application Security Testing)

* **Fungsi:** Menganalisis kode sumber mentah (*White-Box Testing*) tanpa menjalankan aplikasinya untuk menemukan celah seperti SQL Injection, Cross-Site Scripting (XSS), atau insecure cryptography.
* **Tools Populer:** SonarQube, Semgrep, Checkmarx.

### 3. SCA (Software Composition Analysis)

* **Fungsi:** Aplikasi modern terdiri dari 80% pustaka open-source (npm, pip, maven). SCA bertugas memeriksa apakah dependensi yang kamu instal memiliki kerentanan CVE yang sudah diketahui publik (*Known Vulnerabilities*).
* **Tools Populer:** Snyk, OWASP Dependency-Check, GitHub Dependabot.

### 4. Container & Infrastructure Security Scanning

* **Fungsi:** Memindai Docker Image dan berkas Terraform/Kubernetes manifes untuk menemukan kesalahan konfigurasi (misal menjalankan container sebagai root atau S3 bucket yang terbuka untuk publik).
* **Tools Populer:** Trivy, Clair, Checkov, tfsec.

### 5. DAST (Dynamic Application Security Testing)

* **Fungsi:** Menguji aplikasi dari sudut pandang peretas luar (*Black-Box Testing*) saat aplikasi sedang berjalan di server staging. DAST mencoba menyuntikkan serangan HTTP nyata.
* **Tools Populer:** OWASP ZAP (Zed Attack Proxy), Burp Suite.

***

## Contoh Sederhana DevSecOps di GitHub Actions

Berikut contoh konkret bagaimana keamanan diintegrasikan ke dalam pipeline CI/CD GitHub Actions menggunakan **Trivy** untuk memindai kerentanan kontainer Docker:

```yaml theme={null}
name: DevSecOps Security Pipeline

on:
  push:
    branches: [ "main" ]

jobs:
  security-audit:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Kode
        uses: actions/checkout@v4

      - name: Scan Kebocoran Secret dengan Gitleaks
        uses: gitleaks/gitleaks-action@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Build Docker Image
        run: docker build -t myapp:${{ github.sha }} .

      - name: Scan Kerentanan CVE Docker Image Menggunakan Trivy
        uses: aquasecurity/trivy-action@master
        with:
          image-ref: 'myapp:${{ github.sha }}'
          format: 'table'
          exit-code: '1' # Gagalkan pipeline jika ditemukan celah CRITICAL!
          ignore-unfixed: true
          severity: 'CRITICAL,HIGH'
```

*Jika developer secara tidak sengaja menggunakan base image lama yang memiliki celah CVE kritis, pipeline akan otomatis memblokir deployment dan memberikan laporan detail perbaikan!*

***

## Apa Saja yang Dipelajari di Jalur Karir DevSecOps?

Jika kamu tertarik memperdalam spesialisasi DevSecOps:

1. **Prinsip Least Privilege & IAM:** Membatasi hak akses akun dan service role se-minimal mungkin.
2. **Kepatuhan & Regulasi (Compliance as Code):** Standar industri seperti ISO 27001, SOC 2, HIPAA, dan PCI-DSS.
3. **Runtime Security di Kubernetes:** Menggunakan alat monitoring keamanan real-time berbasis Linux eBPF seperti **Falco** untuk mendeteksi intrusi hacker saat kontainer sedang berjalan.
4. **Zero-Trust Network:** Memastikan komunikasi antar microservice dienkripsi menggunakan mTLS (Mutual TLS) dengan Service Mesh (Istio / Linkerd).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.