Memahami proses audit profesional: alur kerja auditor, tools otomatis Slither dan Mythril, standar laporan, serta praktik melakukan mini-audit mandiri sebelum kontrak dikirim ke auditor eksternal

Setelah di episode 18 kalian belajar berpikir seperti penyerang, pada episode ini kita membawa keamanan ke level profesional: audit. Di 2026, audit bukan lagi opsional — proyek serius tidak bisa fundraising, listing, atau dipercaya pengguna tanpa laporan audit dari tim independen.
Episode ini membedah proses audit, tool otomatis yang wajib kalian kuasai (Slither, Mythril), cara membaca laporan audit, dan praktik mini-audit sebelum mengirim kontrak ke auditor.
Sebuah audit adalah review independen oleh tim yang tidak menulis kode kalian. Tujuannya bukan menemukan semua bug — melainkan menurunkan risiko ke level yang bisa diterima. Faktanya penting: audit tidak menjamin kode aman. Ada kerentanan yang lolos audit dan ditemukan setelah hack (ini terjadi pada proyek besar sekalipun). Yang bisa dijamin adalah proses yang menurunkan risiko secara signifikan.
Tim yang baik juga menguji asumsi ekonomi: apakah mekanisme kontrak bisa dimanipulasi secara finansial, bukan hanya secara teknis.
Proses audit standar di 2026:
Tahapan yang harus kalian pahami sebagai developer:
Slither adalah static analyzer Python dari Trail of Bits. Ia menganalisis bytecode/IR dan menemukan kerentanan umum dalam hitungan detik. Pasang dan jalankan:
pip install slither-analyzer
slither contracts/ --print human-summary
slither contracts/ --list-detectorsDetector yang paling berguna untuk kalian:
slither contracts/MyToken.sol \
--detect reentrancy-eth,reentrancy-no-eth,uninitialized-state,unchecked-transfer,arbitrary-send-ethSlither juga bisa mengintegrasikan triage dengan GitHub Actions — menjadikannya bagian dari CI/CD kalian, bukan sekadar tool manual. Output Slither perlu di-review manusia: banyak laporan adalah false positive.
Note
Slither menjawab "apa yang salah?" secara mekanis. Untuk pertanyaan "apakah ini bisa dieksploitasi secara ekonomi?", manusia tetap dibutuhkan. Kombinasi yang benar: tools untuk sweep, manusia untuk judgment.
Mythril adalah symbolic execution engine — ia mengeksplorasi banyak jalur eksekusi secara bersamaan untuk menemukan kondisi yang bisa dieksploitasi, termasuk masalah yang tidak terlihat oleh pattern matching Slither.
pip install mythril
myth analyze contracts/MyToken.sol --solc-version 0.8.24Mythril mencoba memodelkan state EVM dan menemukan input yang membuat fungsi berperilaku tidak aman (misal overflow di jalur tertentu). Ini melengkapi Slither: Slither cepat dan deterministik, Mythril mendalam pada kasus tertentu tapi lebih lambat dan rawan false positive.
Sebelum mengirim ke auditor eksternal (biaya bisa puluhan ribu dolar), jalankan mini-audit sendiri. Contoh checklist:
1. Jalankan slither & mythril → triage semua finding
2. Test CEI: setiap external call, cek order state update
3. Access control: siapa yang bisa memanggil tiap fungsi?
4. Oracle: stale price? unit desimal? chain yang benar?
5. Reentrancy: test negatif + ReentrancyGuard
6. Math: overflow, rounding, fee pada angka kecil
7. DoS: adakah jalan bagi penyerang mengunci fungsi?
8. Gas: adakah loop yang bisa membengkakkan biaya?
9. Event: semua perubahan penting di-emit?
10. Upgradeability: siapa pemegang kunci upgrade?Praktikkan pada kontrak:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
contract MiniAudit {
uint256 public reward;
address public owner;
mapping(address => uint256) public stakes;
// (1) Siapa yang bisa memanggil? (2) Cek order external call?
// (3) Bagaimana reward ditentukan? (4) Adakah cara memanipulasi?
function claimReward() external {
uint256 amount = stakes[msg.sender] * reward;
stakes[msg.sender] = 0;
(bool ok, ) = msg.sender.call{ value: amount }("");
require(ok, "failed");
}
}Hasil review kalian: siapa mengisi reward? Jika bisa diubah oleh siapa pun → manipulasi. Jika hanya owner → masih cek overflow (stakes * reward bisa overflow). Ini persis pola analisis yang dilakukan auditor profesional.
Saat menerima laporan audit, kalian wajib paham struktur severity:
| Severity | Arti | Contoh |
|---|---|---|
| Critical | Dana hilang / bisa dieksploitasi | Reentrancy tanpa guard |
| High | Fungsi rusak dalam kondisi tertentu | Overflow di jalur tertentu |
| Medium | Perilaku salah pada edge case | Fee tidak dibulatkan benar |
| Low | Dampak kecil / kosmetik | Event kurang index |
| Informational | Saran best practice | Naming, komentar |
Fix loop: fix semua Critical dan High sebelum deploy; Medium sebaiknya difix atau didokumentasikan secara eksplisit sebagai accepted risk. Simpan seluruh riwayat sebagai bukti due diligence untuk pengguna dan regulator.
Sertifikasi memberikan jalur karir terstruktur di bidang audit:
Saran praktis: ikuti kompetisi audit publik (bug bounties) — kalian belajar dari kode nyata dan membangun reputasi yang diakui industri.
Tip
Cara paling efektif belajar audit: baca laporan audit publik yang sudah rilis (dari Code4rena, Sherlock, audit firms), lalu bandingkan dengan kode sumber. Meniru pola analisis auditor senior mengajarkan kalian hal yang tidak ada di kursus mana pun.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita masuk teknologi paling menarik — Privacy & ZK Tech: zero-knowledge proofs, zk-rollups, dan privacy layers tren 2026. Mari lanjut ke episode 20!