Cara Melakukan Audit Keamanan dengan Claude Code
Workflow audit keamanan Claude Code: scope, threat model, secrets, CI gates, dan bukti verifikasi.
Jangan menyerahkan keamanan ke AI tanpa batas
Claude Code bisa mempercepat audit keamanan. Ia dapat membaca route, membandingkan pull request, merangkum risiko dependency, mencari log berbahaya, menemukan environment variable, dan mengubah kebiasaan review menjadi checklist. Ini berguna karena risiko nyata jarang berada di satu file. Biasanya ia tersebar di auth middleware, permission check, billing job, webhook, CI, dan log.
Kesalahan yang sering terjadi adalah hanya meminta “cek security” lalu menganggap jawabannya sebagai bukti. Audit keamanan bukan opini umum. Audit harus punya scope, asset, threat, control, evidence, dan remaining risk. Claude Code membantu investigasi dan pengorganisasian, tetapi keputusan bisnis, batas publikasi detail, dan approval release tetap tanggung jawab manusia.
Artikel ini memberi workflow praktis untuk memakai Claude Code dalam audit tanpa memublikasikan detail exploit. Kita akan membahas scope, asset inventory, threat model, dependency review, auth/session review, secrets review, input validation, logging/PII, CI gates, evidence receipt, dan empat use case. Untuk baseline resmi, gunakan OWASP Top 10, OWASP ASVS, NIST SSDF, dan dokumentasi GitHub tentang secret scanning.
Kunci scope terlebih dahulu
Output pertama bukan patch, melainkan audit brief. Scope memberi tahu Claude Code apa yang perlu diperiksa, apa yang tidak boleh diubah, command apa yang boleh dijalankan, dan kapan audit dianggap selesai. Tanpa scope, AI cenderung mengomentari file yang tampak jelas tetapi melewatkan route admin, billing flow, background job, deploy script, atau CI secrets.
Salin template ini sebelum meminta finding.
# Security Audit Brief
## Goal
- Find serious issues in authentication, authorization, secrets, input validation, logging, and dependencies before release
- Produce evidence and remaining-risk notes, not just suggested fixes
## Scope
- Repository:
- Branch or PR:
- Feature or workflow:
- Directories Claude Code may inspect:
- Directories Claude Code must not change:
- Commands Claude Code may run:
## Priority areas
- Authentication and session handling
- Authorization and roles
- Input validation and output encoding
- Secrets and environment variables
- Dependencies and licenses
- Logs, PII, and audit events
- CI gates that should block release
## Completion criteria
- Record findings in the risk register
- Include only minimal reproduction context
- Do not include live secrets, customer data, or dangerous exploit instructions
- Record commands, results, skipped areas, and human-review items in the evidence receipt
Setelah brief, minta Claude Code membuat peta dulu: “Daftarkan route, auth middleware, external API, environment variable, logging point, CI job, dan high-risk file. Jangan ubah kode dulu.” Tahap ini memberi kesempatan kepada reviewer manusia untuk menemukan area yang belum masuk scope.
Buat asset inventory dan threat model
Keamanan dimulai dari apa yang ingin dilindungi. Asset bisa berupa user data, billing status, API key, admin panel, audit log, uploaded file, support message, dan analytics data. Threat model adalah peta kecil: siapa bisa masuk dari titik mana, apa yang ingin dipengaruhi, dan control mana yang harus mencegahnya.
| Asset | Stored in | Entry point | Likely threat | Required control | Owner |
| --- | --- | --- | --- | --- | --- |
| User email address | users table | signup, admin | unauthorized access, log leakage | authorization, PII masking, audit log | backend |
| Billing status | billing table, Stripe | webhook, admin | tampering, duplicate processing | signature verification, idempotency, role checks | backend |
| API keys | env, secret manager | CI, runtime | repository leak, log exposure | secret scanning, rotation, least privilege | platform |
| Admin console | /admin | browser | privilege escalation | MFA, admin role, operation logs | product |
Berikan tabel ini ke Claude Code dan minta ia menambahkan trust boundary serta test. Trust boundary adalah batas antara bagian yang bisa dipercaya dan input yang harus dianggap tidak tepercaya. Browser input, webhook, CSV upload, Markdown, nama file, dan response API pihak ketiga harus divalidasi sebelum dipakai.
Beri jalur review yang spesifik
Dependency review harus mencakup package.json, lockfile, Docker image, GitHub Actions, runtime version, dan transitive dependency. npm audit hanya salah satu sinyal. Minta Claude Code memisahkan risiko production yang reachable dari noise development, menjelaskan breaking change, dan menyebut test yang membuktikan update aman.
Auth dan session review mencakup login, logout, password reset, MFA, OAuth, cookie flags, session expiration, CSRF, dan server-side authorization. “User sudah login” berbeda dari “user boleh melakukan aksi ini”. Admin API, billing action, file download, user id di route parameter, dan webhook yang bisa diulang sering menjadi sumber authorization gap.
Secrets review harus mencakup .env, CI secrets, sample config, README, log, screenshot, dan test fixture. Claude Code tidak boleh menampilkan live secret di chat. Jika menemukan indikasi secret, report cukup mencatat path, jenis secret, rekomendasi rotasi, dan owner, sementara nilainya disamarkan. Di GitHub, cek juga secret scanning dan push protection.
Input validation review mengikuti aliran data: dari mana data masuk, di mana disimpan, dirender, atau dikirim lagi. Jangan meminta payload berbahaya. Minta boundary validation, normalization, escaping, type check, dan test. Untuk pemula, mengikuti data flow lebih berguna daripada menghafal nama vulnerability.
Logging dan PII review mencari email, nama, alamat, token, cookie, auth header, payment ID, dan free-text support content di log. console.log saat development bisa menjadi masalah retention saat production. Log harus menyimpan field minimum untuk debugging dan audit, bukan request body mentah.
Empat use case yang sering muncul
Use case pertama adalah audit SaaS sebelum release. Sebelum meluncurkan billing, invitation, organization setting, atau admin feature, minta Claude Code membaca PR diff, migration, route, webhook handler, test, dan CI. Tujuannya adalah risk register untuk release meeting, bukan kalimat “semuanya aman”.
Use case kedua adalah audit handoff repository GitHub. Saat menerima repo, knowledge berisiko sering tersembunyi di deploy script, CI secrets, nama environment, manual runbook, dan directory tanpa owner. Minta Claude Code membuat checklist minggu pertama: key apa yang perlu dirotasi, flow apa yang perlu didokumentasikan, CI gate apa yang hilang, dan area mana yang perlu human owner review.
Use case ketiga adalah audit setelah incident. Setelah outage atau dugaan leak, jangan hanya memperbaiki satu baris penyebab. Minta Claude Code mencari pattern serupa, mengecek PII di log, mengusulkan regression test, memperbarui CI gate, dan memperbaiki runbook. Jika ada laporan publik, fokus pada impact dan remediation tanpa menyebarkan detail operasional yang bisa disalahgunakan.
Use case keempat adalah security review untuk PR yang dibuat AI. Kode AI bisa terlihat rapi tetapi melewatkan authorization, audit log, error handling, atau test. Minta Claude Code hanya melihat security impact dari diff: attack surface, permission, secrets, personal data, dependency change, dan CI coverage.
Simpan risk register dan evidence receipt
Finding butuh evidence. Severity saja tidak cukup. Register harus memuat impact, bukti, rekomendasi tindakan, prioritas, status, dan owner.
| ID | Risk | Impact | Evidence | Recommended action | Priority | Status | Owner |
| --- | --- | --- | --- | --- | --- | --- | --- |
| SEC-001 | Missing authorization on admin API | Another user's data may be changed | routes/admin.ts has no role check | Add middleware and regression tests | High | Open | backend |
| SEC-002 | Webhook logs include email | Unnecessary PII retention | logs/webhook-sample.txt | Mask email and reduce retention | Medium | Open | platform |
Evidence receipt mencegah audit menjadi chat yang sulit dilacak.
# Security Audit Evidence Receipt
- Target:
- Date:
- Reviewer:
- Scope provided to Claude Code:
- Commands executed:
- Files or directories inspected:
- High-risk findings:
- Fixed items:
- Skipped or out-of-scope areas:
- Decisions requiring human review:
- Release recommendation:
Checklist untuk PR review
Untuk pull request, simpan checklist pendek di prompt review. Ini sangat berguna untuk perubahan yang dibuat AI, karena diskusi kembali ke risk dan evidence, bukan hanya style.
## Security PR Review
- [ ] Scope is clear and no unrelated files are changed
- [ ] Authenticated users cannot access another user's data
- [ ] Admin or billing actions require explicit authorization
- [ ] Inputs are validated at the boundary
- [ ] Outputs are escaped or rendered safely
- [ ] No secrets, tokens, cookies, or PII are printed to logs
- [ ] Dependency changes have a reason and test evidence
- [ ] Errors do not reveal internals
- [ ] CI includes lint, tests, typecheck, and security-relevant checks
- [ ] Risk register and evidence receipt are updated
Checklist command
Command berbeda menurut stack, tetapi project Node atau TypeScript bisa mulai dari sini. Minta Claude Code menjelaskan tujuan setiap command sebelum menjalankannya dan berhenti jika hasilnya mengubah risk picture.
git status --short
npm ci
npm audit --audit-level=moderate
npm run lint
npm run typecheck
npm test
rg -n "TODO|FIXME|console\\.log|process\\.env|localStorage|innerHTML|dangerouslySetInnerHTML" src
git diff --check
Hasil rg adalah petunjuk, bukan vonis. process.env bisa benar, dan innerHTML bisa diterima jika disanitasi. Minta Claude Code memisahkan evidence, assumption, dan confirmation step.
Kegagalan dan jebakan umum
Kegagalan terbesar adalah prompt yang terlalu kabur. “Cek security” biasanya menghasilkan jawaban dangkal. Prompt yang baik menyebut scope, asset, deadline release, allowed command, high-risk flow, dan output format. Report yang jelas menulis “belum direview” lebih bernilai daripada kesimpulan percaya diri tanpa bukti.
Kegagalan kedua adalah tidak menyimpan evidence. Jika tidak ada yang tahu command apa yang dijalankan, file apa yang dibaca, dan area mana yang dikecualikan, audit tidak bisa mendukung keputusan release. Klaim Claude Code harus dikonfirmasi dengan CI output, test, diff, log, dan config.
Jebakan berbahaya adalah memublikasikan terlalu banyak detail. Jangan menaruh URL asli, token, data customer, atau instruksi exploit langkah demi langkah di issue atau artikel publik. Bahasa publik sebaiknya fokus pada impact dan remediation. Detail reproduksi sensitif ditempatkan di tracker terbatas.
Jangan mengabaikan secrets dan log. Aplikasi bisa memiliki kode yang terlihat wajar tetapi tetap leak melalui CI log, debug screenshot, sample .env, atau error yang terlalu verbose. Untuk perubahan auth, payment, personal data, dan admin tool, human review harus wajib.
Jadikan bagian dari CI dan kebiasaan tim
Audit sekali saja cepat usang. Tambahkan CI gates untuk lint, typecheck, test, dependency audit, secret scanning, dangerous API search, dan log policy. Tidak semua warning perlu memblokir build. Praktiknya: High memblokir, Medium menjadi ticket bertanggal, Low masuk maintenance rutin.
Permission Claude Code juga perlu direview. Baca Claude Code permissions guide, secrets management, security failure cases, dan code review workflow. Jika tim ingin mengubah ini menjadi audit brief, CI gates, dan review policy untuk repository nyata, mulai dari Claude Code training and consultation.
Ringkasan
Claude Code paling berguna dalam audit keamanan ketika manusia mendesain sistemnya: scope, asset inventory, threat model, review lanes, risk register, evidence receipt, CI gates, dan human approval untuk keputusan berisiko tinggi. Tanpa struktur itu, report bisa terdengar rapi tetapi tidak menjelaskan risiko sebenarnya.
Saat Masa menerapkan workflow ini pada review pre-release ClaudeCodeLab, manfaat terbesar datang dari risk register dan evidence receipt. Claude Code terlebih dahulu menginventarisasi route, log, environment variable, dan CI; setelah itu human review menjadi lebih tajam. Hasilnya bukan jaminan keamanan sempurna, melainkan keputusan release yang lebih jelas dengan pertanyaan terbuka yang terlihat.
PDF gratis: cheatsheet Claude Code
Masukkan email dan unduh satu halaman berisi command, kebiasaan review, dan workflow aman.
Kami menjaga datamu dan tidak mengirim spam.
Tentang penulis
Masa
Engineer yang berfokus pada workflow Claude Code praktis dan adopsi tim.
Artikel terkait
Permission receipt Claude Code: mencatat scope, bukti, dan rollback
Pola permission receipt untuk Claude Code: aksi yang diizinkan, batas approval, command verifikasi, rollback, dan cek CTA revenue.
Agent Harness Aman untuk Claude Code dan Codex: Permission, Verifikasi, dan Rollback
Rancang Agent Harness praktis untuk Claude Code dan Codex dengan policy, plan, verification, dan recovery layer.
Subagent Claude Code: panduan praktis untuk delegasi artikel dan kode
Panduan subagent Claude Code untuk membagi pekerjaan artikel dan kode: aturan delegasi, prompt, risiko, dan checklist.