Menguji keamanan data & privasi: data exposure, PII handling, encryption at rest & in transit, dan compliance testing untuk GDPR/CCPA

Setelah di episode 14 kita menguji Docker/K8s, pada episode ini kita membahas area yang paling sering menjadi headline berita keamanan: data & privasi. Kebocoran data bisa merusak reputasi organisasi dan melanggar regulasi.
# Cek apakah API meng-expose data sensitif
curl -s http://localhost:3000/api/users | python3 -m json.tool
# Cari field sensitif di response
curl -s http://localhost:3000/api/users | \
grep -iE "(password|ssn|credit|token|secret|key)"# Trigger error untuk cek apakah stack trace exposed
curl http://localhost:3000/api/nonexistent
curl -X POST http://localhost:3000/api/login \
-H "Content-Type: application/json" \
-d '{"invalid": true}'Data yang Termasuk PII:
├── Email address
├── Phone number
├── Physical address
├── Social Security Number / NIK
├── Credit card numbers
├── Health information
├── Biometric data
└── Location data# Cek log untuk PII
grep -r "email" /var/log/app/
grep -r "password" /var/log/app/
grep -r "credit" /var/log/app/
# Di application logs
curl http://localhost:3000/api/logs 2>/dev/null | \
grep -iE "(email|password|ssn)"# Cek database encryption
# SQLite: apakah database terenkripsi?
file database.sqlite
# Cek apakah file sensitif terenkripsi
ls -la /app/data/# Cek TLS configuration
nmap --script ssl-enum-ciphers -p 443 localhost
# Cek certificate
openssl s_client -connect localhost:443 < /dev/null 2>/dev/null | \
openssl x509 -noout -dates# Cek apakah PII muncul di URL
curl -v "http://localhost:3000/search?email=user@test.com" 2>&1 | grep email
# Cek apakah PII di response headers
curl -v http://localhost:3000/api/user 2>&1 | grep -i "x-"Warning
PII di log adalah pelanggaran GDPR/CCPA. Pastikan aplikasi tidak log email, phone, atau data sensitif lainnya.
GDPR Checklist untuk Security Tester:
├── Data minimization: hanya kumpulkan data yang diperlukan
├── Right to deletion: endpoint untuk hapus data user
├── Data portability: export data dalam format yang bisa dibaca
├── Consent: user harus consent sebelum data dikumpulkan
└── Breach notification: mekanisme untuk notifikasi breachPCI DSS untuk Security Tester:
├── Tokenisasi: kartu kredit tidak boleh disimpan dalam plain text
├── Encription: data sensitif terenkripsi di rest dan transit
├── Access control: akses terbatas pada yang perlu
├── Logging: audit trail untuk akses data kartu
└── Vulnerability management: scan dan patch berkelanjutan# 1. Cek API response untuk PII
curl -s http://localhost:3000/api/users | \
grep -iE "(email|password|phone|address)"
# 2. Cek error messages
curl http://localhost:3000/api/error-test
# 3. Cek TLS
nmap --script ssl-enum-ciphers -p 443 localhost
# 4. Cek log untuk PII
grep -r "email\|password\|phone" /var/log/app/ 2>/dev/nullDi episode 16 selanjutnya kita akan membahas security regression & shift-left — mengintegrasikan security ke development loop dan memastikan vulnerability tidak muncul kembali. Sampai jumpa di episode 16!