Security Automation & Tools — Security

Otomatisasi Keamanan Keamanan manual tidak bisa scale. Dengan otomatisasi, kita bisa mendeteksi vulnerability lebih awal, lebih cepat, dan lebih konsisten. Pend

Otomatisasi Keamanan

Keamanan manual tidak bisa scale. Dengan otomatisasi, kita bisa mendeteksi vulnerability lebih awal, lebih cepat, dan lebih konsisten. Pendekatan ini dikenal sebagai DevSecOps — mengintegrasikan security ke dalam setiap tahap DevOps pipeline, bukan menambahkannya di akhir.

Security dalam SDLC (Software Development Life Cycle)

Tools per Kategori

1. SAST (Static Application Security Testing)

# Semgrep — multi-language, free
semgrep --config auto .
# Atau dengan rules spesifik
semgrep --config p/owasp-top-ten .

# PHPStan dengan rules security
vendor/bin/phpstan analyse --level=max

# ESLint security plugin
npx eslint --plugin security src/

2. DAST (Dynamic Application Security Testing)

# OWASP ZAP — scan running application
docker run -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py \
    -t https://target.com

# Nikto — web server scanner
nikto -host https://target.com

# Nuclei — template-based scanner
nuclei -u https://target.com -t cves/

3. Dependency Scanning

# npm audit di CI/CD
npm audit --audit-level=high --production

# Snyk
snyk test --severity-threshold=high

# Trivy (untuk dependencies dan containers)
trivy fs --security-checks vuln .

4. Secret Detection

# TruffleHog — scan git history untuk secrets
trufflehog git https://github.com/org/repo --only-verified

# GitLeaks — pre-commit hook
gitleaks detect --source .

# Pre-commit hook configuration
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.18.0
    hooks:
      - id: gitleaks

CI/CD Security Pipeline

# .github/workflows/security.yml
name: Security Pipeline
on: [push, pull_request]

jobs:
  sast:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Semgrep
        uses: returntocorp/semgrep-action@v1
        with:
          config: p/owasp-top-ten

  dependency-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm audit --audit-level=high

  secret-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: gitleaks/gitleaks-action@v2

  container-scan:
    runs-on: ubuntu-latest
    needs: [sast, dependency-check]
    steps:
      - uses: actions/checkout@v4
      - run: docker build -t myapp .
      - name: Run Trivy
        uses: aquasecurity/trivy-action@master
        with:
          image-ref: myapp
          severity: HIGH,CRITICAL

Ringkasan Tools

Best Practices

Yang akan kamu pelajari