Slither Audit

Slither adalah framework analisis statis open-source untuk smart contract Solidity yang dikembangkan dan dipelihara oleh Trail of Bits — salah satu perusahaan keamanan smart contract paling dihormati di industri ini — yang menganalisis kode kontrak dengan mengurai representasi intermediate kompiler Solidity tanpa benar-benar mengeksekusi kode, memungkinkannya mendeteksi pola kerentanan di seluruh codebase dalam hitungan detik menggunakan 80+ detektor bawaan yang mencakup reentrancy, masalah aritmatika integer, variabel tidak diinisialisasi, cacat kontrol akses, pola delegatecall berbahaya, kerentanan front-running, dan banyak lagi.


Menjalankan Slither

“`bash

# Instal

pip install slither-analyzer

# Analisis dasar

slither . # analisis direktori saat ini

slither contracts/Token.sol # file tunggal

slither . –detect reentrancy-eth # detektor spesifik saja

slither . –exclude-dependencies # lewati node_modules/lib

# Format output

slither . –json output.json # output yang dapat dibaca mesin

“`

Detektor Utama

Detektor Dampak Yang Ditemukan
reentrancy-eth Tinggi Reentrancy ETH (pelanggaran Checks-Effects-Interactions)
reentrancy-no-eth Sedang Reentrancy token
uninitialized-storage Tinggi Pointer storage yang tidak diinisialisasi
arbitrary-send-eth Tinggi Kontrol transfer ETH sembarang
controlled-delegatecall Tinggi Delegatecall dengan data yang dikontrol pengguna
access-control Tinggi onlyOwner tidak ada pada fungsi sensitif
integer-overflow Sedang Overflow aritmatika pra-0.8.0
tx-origin Sedang tx.origin digunakan untuk auth

Printers (Pemahaman Kode)

“`bash

slither . –print call-graph # grafik panggilan fungsi

slither . –print inheritance # pohon pewarisan kontrak

slither . –print contract-summary # gambaran umum cepat semua kontrak

slither . –print variable-order # layout storage

“`

Integrasi CI (GitHub Actions)

“`yaml

  • name: Run Slither

uses: crytic/slither-action@v0.3.0

with:

target: ‘.’

slither-args: ‘–exclude-dependencies’

fail-on: high

“`

Keterbatasan

  • Analisis statis tidak dapat mendeteksi semua bug logika — hanya mencocokkan pola yang diketahui
  • False positives: Dapat menandai kode aman sebagai mencurigakan; memerlukan triage manual
  • Tidak menggantikan audit manual — digunakan sebagai alat lulus pertama sebelum review mendalam
  • Logika runtime: Tidak dapat mendeteksi kondisi pacu, bug ekonomi, atau eksploitasi yang bergantung pada keadaan runtime

Istilah Terkait

Lihat Juga

Sumber

  • Slither GitHub — kode sumber open-source, README, dan daftar detektor.
  • Trail of Bits Blog: Slither — posting teknis tentang pengembangan dan kasus penggunaan Slither.
  • “Not All Audits Are Equal” — Trail of Bits (2022). Diskusi tentang peran analisis statis dalam audit smart contract.

Terakhir diperbarui: 2026-04