Belajar Staff Engineer - Security Leadership
Episode 18 of 28

Belajar Staff Engineer - Security Leadership

Cara memimpin inisiatif keamanan lintas tim tanpa jadi polisi: secure-by-default lewat platform, threat modeling yang dipraktikkan, security champions network, program patching dan secrets management, serta rencana program 90 hari

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

Setelah di episode 17 kita membangun enablement — dokumentasi, template, tooling, onboarding — pada episode ini kita terapkan mesin yang sama pada domain yang paling tak mengampuni kesalahan: keamanan. Di level staff, kalian tidak menulis semua patch sendiri; kalian memimpin: memastikan organisasi membangun sistem yang aman secara default, mendeteksi kelemahan lebih awal, dan merespons insiden tanpa drama.

Mengapa staff engineer, bukan hanya tim security khusus? Karena sebagian besar kerentanan lahir dari keputusan desain harian engineer produk — wilayah tempat pengaruh teknis kalian bekerja. Tim security bisa audit; hanya kepemimpinan lintas tim yang bisa mencegah.

Dari Patching ke Secure-by-Default

Model keamanan reaktif (audit tahunan, patch saat ada temuan) selalu kalah cepat dari laju development. Model yang berskala adalah secure-by-default: keputusan aman adalah jalur termudah.

Tiga lapis penerapannya:

  1. Platform default — service scaffold sudah menyertakan auth middleware, TLS, header keamanan, rate limiting, dan logging audit. Engineer tidak perlu tahu detail OWASP untuk mendapat proteksi dasar.
  2. Paved road dependencies — registry internal dengan versi library yang diaudit otomatis; dependensi bermasalah ditolak di CI, bukan ditemukan di penetration test.
  3. Guardrails, bukan gerbang manual — policy-as-code (misal OPA) memblokir deploy dengan bucket publik atau container root; pelanggaran tertangkap dalam hitungan menit, bukan kuartal.

Contoh guardrail sederhana yang mengubah perilaku organisasi:

policy/deploy-guardrails.yml
# Contoh kebijakan deploy - dievaluasi CI & admission controller
rules:
  - id: no-public-buckets
    severity: block
    match: storage.bucket.public == true
    message: "Bucket publik butuh exception tercatat (SEC-EXC)."
  - id: no-root-container
    severity: block
    match: container.user == "root"
    message: "Jalankan sebagai non-root user."
  - id: secrets-not-in-env-files
    severity: block
    match: file.matches(".env*") and contains_secret_pattern()
    message: "Gunakan secret manager, bukan file env."

Perhatikan pesan errornya: setiap blokir menjelaskan jalur keluar resmi (exception tercatat). Guardrail tanpa pintu darurat resmi akan menciptakan pintu darurat liar.

Threat Modeling yang Dipraktikkan

Threat modeling sering mati sebagai dokumen compliance. Versi yang hidup ringkas dan dilakukan saat desain:

  1. Gambar alur data — siapa mengirim apa ke mana, dengan trust boundary eksplisit.
  2. Enumerasi ancaman per boundary — cukup dengan kerangka STRIDE ringkas (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege).
  3. Keputusan + mitigasi — ancaman mana dimitigasi, mana diterima dengan catatan risiko.
100%

Latihan 30 menit seperti ini saat design review (episode 9) menangkap mayoritas masalah desain — jauh lebih murah daripada penetration test yang menemukannya enam bulan kemudian.

Security Champions Network

Struktur organisasi dari episode 16 bekerja sangat baik untuk security:

  • Satu champion per tim, terlatih dasar threat modeling dan review keamanan.
  • Champions melakukan review pertama; tim security khusus menangani kasus kompleks dan menjaga platform.
  • Insentifnya akses awal tooling, pelatihan, dan pengakuan — bukan beban tambahan diam-diam.

Manfaat tersembunyi: champions adalah sensor dini. "Klien mobile minta endpoint tanpa auth karena gampang" akan sampai ke telinga kalian minggu itu, bukan saat audit tahun depan.

Program Hygiene yang Sering Terlupakan

Empat area hygiene yang biasanya jadi titik lemah organisasi mid-size — pastikan program kalian menyentuhnya:

AreaStandar MinimalUkuran Sehat
Secrets managementTidak ada secret di repo/env-file; rotasi berkalaScan repo bulanan: nol temuan
Patch cadenceDependensi kritis dipatch dalam 14 hari dari rilis CVEUmur median patch tertunda
Access least privilegeAkses produksi via role sementara, bukan statisPersen akses standing vs just-in-time
Audit loggingAksi sensitif terlog dengan actor + tujuanCakupan log pada operasi tulis kritis

Warning

Jangan mulai program security dengan menyalahkan status quo ("semua orang ceroboh"). Mulai dari sistem: kalau secret masih tersebar di env-file, berarti jalur yang aman belum lebih mudah — pekerjaan kalian membangun jalurnya, lalu memindahkan default.

Praktik: Rencana Security Program 90 Hari

Susun ~/staff-lab/initiatives/security-program.md:

initiatives/security-program.md
# Security Program 90 Hari
 
Fase 1 (pekan 1-4): Fondasi ukur
- Inventaris: layanan user-facing, penyimpanan data sensitif,
  dependensi kritikal (SBOM otomatis dari CI).
- Baseline: scan secrets, usia CVE tertunda, cakupan audit log.
- Rekrut & latih 8 security champions (workshop 2 sesi).
 
Fase 2 (pekan 5-8): Default baru
- Scaffold v2: auth middleware, TLS, rate limit bawaan.
- Policy-as-code fase 1: bucket publik, root container,
  secrets di env-file -> block di CI.
- Ritual threat modeling 30 menit masuk template design review.
 
Fase 3 (pekan 9-12): Skala & ritual permanen
- Migrasi 5 layanan terpenting ke scaffold v2.
- Patch SLA ratifikasi: kritis <= 14 hari, tinggi <= 30 hari.
- Scorecard security bulanan antar tim (belajar, bukan ranking).
 
Ukuran sukses hari ke-90:
- Nol secret aktif di repositori (scan bersih 2 bulan berturut).
- CVE kritis rata-rata ditambal di bawah 14 hari.
- Seluruh desain baru melewati threat modeling ringkas.

Catat urutan strategisnya: ukur → bangun default baru → skala. Kebanyakan program gagal karena langsung melompat ke aturan tanpa membangun jalur mudahnya dulu.

Pitfall Umum Security Leadership

  • Security theater — checklist compliance yang tidak mengubah permukaan risiko nyata; tanya selalu: serangan mana yang sekarang menjadi mustahil atau jauh lebih sulit?
  • Blokir tanpa alternatif — menolak solusi tanpa menawarkan jalur aman yang sama mudahnya hanya mengajari orang menyembunyikan implementasi.
  • Ketergantungan pada hero — satu orang security yang jadi bottleneck semua review; champions network adalah jawaban strukturnya.
  • Mengabaikan supply chain — fokus ke kode sendiri sambil dependensi tak diaudit adalah kunci pintu depan dengan jendela belakang terbuka.
  • Insiden tanpa pembelajaran sistemik — postmortem ala episode 14 berlaku juga di security: cari kegagalan sistem, bukan orang ceroboh.

Penutup

Inti yang harus dibawa pulang:

  • Skala keamanan lewat secure-by-default: platform defaults, paved road dependencies, dan guardrails otomatis dengan pintu exception resmi.
  • Threat modeling ringkas saat desain menangkap masalah termurah; jadikan bagian template design review.
  • Champions network memberi skala review dan sensor dini; bayarkan loyalitasnya dengan pengakuan dan akses.
  • Urutan program: ukur baseline → bangun default baru → skala dengan ritual permanen.

Di episode 19 selanjutnya kita akan membahas compliance & governance tech — cara menavigasi SOC 2/ISO/GDPR secara teknis, policy-as-code untuk audit trail, dan menjaga governance tetap mempercepat — bukan menghambat — engineering. Sampai jumpa di episode 19!

Belajar Staff Engineer - Security Leadership | Belajar Staff Engineer