Menerjemahkan prinsip zero trust menjadi kontrol konkret pada aplikasi: identity-aware proxy untuk akses internal, mTLS antar service, authorization per request dengan identitas terverifikasi, dan microsegmentation yang membatasi lateral movement — dengan contoh implementasi bertahap

Setelah di episode 18 kita menempatkan WAF secara jujur dalam strategi, episode ini membahas pendekatan arsitektur yang mengubah asumsi dasar keamanan jaringan: Zero Trust. Model lama berasumsi "dalam firewall = aman" — begitu penyerang masuk ke network internal, ia berjalan bebas. Zero Trust membaliknya: tidak ada trust berbasis lokasi; setiap request harus membuktikan identitas, konteks, dan otorisasinya, apa pun sumbernya.
Untuk AppSec engineer, zero trust bukan produk yang dibeli tapi seperangkat kontrol konkret: identity-aware access, mTLS service-to-service, least privilege per request, dan microsegmentation. Kita bahas satu per satu dengan implementasi praktis.
NIST SP 800-207 mendefinisikan konsepnya; inilah penerjemahan langsung ke pekerjaan aplikasi:
| Prinsip | Kontrol Konkret di Apps |
|---|---|
| Verify explicitly | Autentikasi setiap request (user & service), bukan sekadar subnet check |
| Least privilege | Scope token minimum, RBAC granular, izin DB per service |
| Assume breach | Segmentasi, audit log lengkap, blast radius kecil |
| No implicit trust by location | Internal API tetap wajib authN — "internal" bukan otorisasi |
Kalimat "API kami internal kok, tidak perlu auth" adalah pelanggaran paling umum dari prinsip ini — episode 6 sudah menandainya sebagai pitfall; sekarang ia punya nama formal.
Masalah klasik enterprise: admin dashboard, Grafana, dan tooling internal dilindungi VPN — artinya siapa pun di dalam VPN masuk tanpa verifikasi kedua. Pendekatan zero trust menggantinya dengan Identity-Aware Proxy (IAP): aplikasi internal tidak terekspos sama sekali; akses melewati proxy yang memverifikasi identitas + device + konteks per request:
Implementasi populer:
Aplikasi di belakang proxy menerima header identitas terverifikasi (misal X-Forwarded-User + JWT). Dua aturan penting agar arsitektur ini tidak bocor:
trust proxy yang harus dikonfigurasi benar.name: admin-dashboard
type: self_hosted
domain: admin.internal.example.com
policies:
- name: eng-admins
decision: allow
include:
- email_domain: example.com
require:
- groups: [engineering-admin]
- device_posture: managed # perangkat terkelola saja
session_duration: 8hUser butuh autentikasi; service juga. Di mesh microservices, siapa yang memastikan pod A benar-benar service pembayaran, bukan penyerang yang sudah menguasai pod lain? Jawaban zero trust: mTLS dengan workload identity — sertifikat pendek-hidup diterbitkan otomatis per workload:
Hasilnya dua properti sekaligus: enkripsi in-transit internal dan identitas terverifikasi antar service — yang kemudian dipakai untuk otorisasi:
from: payment-service (spiffe://cluster/ns/prod/sa/payment)
to: orders-service /api/v1/refund
method: POST only
semua identitas lain → DENYIni microsegmentation versi layer 7: bukan cuma "network A boleh ke port B", tapi "service X dengan identitas tertentu boleh memanggil endpoint Y dengan method Z".
Zero trust menuntut keputusan otorisasi pada setiap request, berdasar identitas terverifikasi — bukan sesi panjang yang diasumsikan aman selamanya. Pola penerapannya di aplikasi:
package app.refund
default allow = false
allow {
input.action == "refund"
input.user.id == input.order.userId # ownership
time.diff(input.order.createdAt, input.now) < 86400e9 # window 24 jam
}Keputusan terpusat + teruji seperti unit test — perubahan aturan bisnis terlihat di review, bukan tersebar if ratusan handler.
Segmentasi jaringan internal adalah zero trust versi infrastruktur. Jalur adopsi realistis:
Important
Zero trust tidak menghapus kebutuhan patching, secure coding, atau WAF — ia menambah dimensi kontainmen. Saat breach tetap terjadi (assume breach), segmen yang terkompromi tidak menjalar ke seluruh sistem. Itulah nilainya.
Inti yang harus dibawa pulang:
Di episode 20 kita hadapi dunia regulasi: Compliance untuk Aplikasi — GDPR dan privasi by design, PCI-DSS untuk aplikasi yang menyentuh kartu, dan cara menerjemahkan requirement compliance menjadi kontrol teknis konkret di kode dan pipeline tanpa menjadi formalitas dokumen. Sampai jumpa di episode 20!