Satuan 3 / 11

Dukungan Audit Kontrak Cerdas: Tinjauan Keamanan dan Draf Temuan

Keuntungan:

  • Kemampuan untuk memahami bahwa kecerdasan buatan memperluas ruang lingkup auditor, namun tidak menggantikannya, dan berguna dalam pemindaian kategori dan menemukan penyusunan.
  • Mampu menyadari bahwa kecerdasan buatan telah mengabaikan kerentanan awal dan kesalahan logika bisnis, dan bahwa pernyataan 'aman' yang lancar bukanlah jaminan
  • Kemampuan untuk mengklasifikasikan temuan menurut tingkat keseriusannya dan memahami bahwa persetujuan akhir dan tanggung jawab profesional berada pada auditor yang kompeten.

Audit keamanan (pemeriksaan sistematis terhadap kontrak pintar untuk mengetahui kerentanannya) adalah pekerjaan Web3 yang paling bertanggung jawab. Satu baris saja yang terlewatkan oleh auditor dapat mengakibatkan kerugian jutaan dolar. Di unit ini Anda akan mempelajari cara menggunakan AI sebagai asisten audit; Kita akan belajar mulai dari menghasilkan petunjuk hingga menulis kerangka temuan. Namun kalimat yang paling kritis adalah: AI tidak mengontrol; Ia merupakan asisten yang mempertajam mata auditor. Persetujuan akhir ada pada auditor kompeten yang memikul tanggung jawab profesional.

Mengapa audit sangat penting bagi keamanan

Sebuah laporan audit meyakinkan proyek dan investor bahwa “kode ini telah ditinjau.” Jika jaminan ini salah, konsekuensinya sangat buruk: protokol dieksploitasi, hilangnya dana, proyek gagal. Oleh karena itu, penggunaan AI dalam inspeksi adalah bagian yang paling hati-hati dalam modul ini. AI memperluas cakupan auditor (mengingat lebih banyak pola, membaca lebih cepat) namun tidak menggantikan auditor.

Kenapa tidak lolos? Karena:

  • AI tidak dapat melihat kerentanan unik/baru yang tidak ada dalam data pelatihan.
  • AI sering kali mengabaikan kelemahan dalam logika bisnis protokol—bahwa kode tersebut benar secara teknis namun dapat dieksploitasi secara ekonomi.
  • AI dapat memberikan jaminan palsu dengan mengatakan “aman” dalam bahasa yang fasih; Ini adalah akibat yang paling berbahaya.

Lapisan penggunaan AI dalam kendali

1. Pemindaian awal dan pengingat pola. AI melewati pola kerentanan yang diketahui seperti daftar periksa: masuk kembali, kontrol akses, manipulasi oracle, berjalan di depan. Hal ini memastikan bahwa auditor tidak melewatkan kategori apa pun.

2. Penjelasan kode. Menjelaskan fungsi kompleks AI dalam bahasa sederhana memungkinkan auditor dengan cepat memahami logikanya; tapi deskripsinya selalu dibandingkan dengan kodenya.

3. Menulis draf temuan. Ketika auditor menemukan kerentanan, AI menghemat waktu dalam menulis draf laporan (deskripsi, dampak, usulan solusi).

4. Membangkitkan hipotesis tandingan. Tanyakan kepada AI “bagaimana fungsi ini bisa disalahgunakan?” Bertanya " mengingatkan kita pada perspektif agresif.

Perhatian: Hanya karena AI mengatakan "Saya tidak menemukan kerentanan apa pun dalam kode ini" TIDAK berarti "kode ini aman". Bukti ketidakhadiran bukanlah tidak adanya bukti. Fakta bahwa AI tidak dapat menemukan sesuatu tidak membuat auditor tidak perlu memeriksa area tersebut.

Menemukan tingkat keparahan

Temuan audit diklasifikasikan berdasarkan tingkat keparahannya. AI harus menggunakan kerangka kerja ini saat membuat draf:

Tingkat

Artinya

contoh

kritis

Kehilangan dana/penguncian mungkin terjadi secara langsung

Penarikan dana dengan masuk kembali

tinggi

Dampak serius pada kondisi tertentu

Pencetakan tidak sah (mint)

sedang

Dampak terbatas atau kondisi sulit

Kerugian kecil dengan penyimpangan Oracle

rendah

Risiko kecil, pelanggaran praktik yang baik

Siaran acara tidak ada

Informasi

Non-keamanan, keterbacaan

Kurangnya NatSpec

Perintah lemah / Perintah kuat

Perintah yang lemah:

Apakah kontrak ini aman?

Pertanyaan ini memaksa AI untuk membuat penilaian yang mutlak dan tidak beralasan seperti “ya/tidak” — hal yang sebenarnya tidak kita inginkan.

Perintah yang kuat:

Peran Anda: asisten auditor kontrak pintar senior. Pindai kontrak berikut untuk keamanan. Telusuri kategori berikut satu per satu: masuk kembali, kontrol akses, operasi integer, validasi input, data oracle/eksternal, front-running, batas bahan bakar. Untuk setiap TEMUAN: (1) baris kode yang relevan, (2) penyebab risiko, (3) perkiraan tingkat keparahan (Kritis/Tinggi/Sedang/Rendah), (4) usulan solusi. Ini adalah HIPOTESIS YANG HARUS DIKONFIRMASI; Jangan memberikan putusan yang “aman”. Tandai area yang Anda tidak yakin dengan jelas mengatakan "biarkan auditor mengonfirmasi".

Empat templat yang dapat disalin

1) Penjelajahan berdasarkan kategori:

Pindai kontrak ini untuk kategori berikut: masuk kembali, kontrol akses, integer overflow, validasi input, ketergantungan oracle, front-running, DoS/gas. Untuk setiap kategori, ucapkan "ada/tidak ada risiko/saya tidak yakin" dan hubungkan pembenaran Anda dengan baris dalam kode. Jangan membuat keputusan akhir.

2) Kontra-hipotesis dari sudut pandang penyerang:

Berpikirlah seperti seorang penyerang: apa cara untuk menyalahgunakan fungsi ini? Tulis setiap skenario langkah demi langkah dan tunjukkan kondisi apa yang diperlukan. Skenario-skenario ini adalah hipotesis yang akan diuji; JANGAN buat kode eksploitasi yang sebenarnya, cukup jelaskan risikonya.

3) Draf laporan temuan:

Laporkan temuan terverifikasi berikut dalam bahasa audit formal: judul, tingkat keparahan, deskripsi, dampak, kode yang terpengaruh, langkah-langkah untuk mereproduksi, solusi yang diusulkan. Gunakan bahasa yang terukur dan teknis; berlebihan. Asumsikan temuan tersebut sudah dikonfirmasi oleh auditor, jangan membuat temuan baru.

4) Perbaiki verifikasi:

Di bawah ini adalah kerentanan dan perbaikan yang diterapkan oleh pengembang. Periksa apakah perbaikan benar-benar menutup kerentanan; tandai apakah hal ini menimbulkan efek samping atau kerentanan baru. Jangan katakan "tertutup" dengan pasti; Diakhiri dengan "harus dikonfirmasi dengan pengujian".

Tiga kotak mini (dalam jumlah)

Kasus 1 — AI mencegah lompatan kategori. Seorang auditor akan fokus pada kontrak 400 baris dan melewati kategori oracle. Pemindaian kategori AI memberikan peringatan bahwa "data harga berasal dari satu sumber, terbuka untuk manipulasi". Auditor memeriksanya dan menemukan bahwa risikonya memang sedang. Pelajaran: AI menjaga disiplin cakupan.

Kasus 2 — Jaminan “aman” yang salah. Tim lain bertanya kepada AI “apakah ini aman?” dia bertanya; “Sepertinya tidak ada masalah yang berarti,” kata AI. Inspeksi kru ringan. Kemudian auditor independen menemukan kelemahan logika bisnis: perhitungan yang benar secara teknis namun insentifnya dapat dieksploitasi. Pelajaran: AI melewatkan kesalahan logika bisnis; Dia tidak bisa dipercaya untuk mengatakan "aman".

Kasus 3 — Penyusunan laporan menghemat 3 jam. Auditor menghabiskan setengah hari secara manual melaporkan 8 temuan. Setelah saya memberikan temuan terverifikasi kepada AI dan mencetak draf resminya, waktunya berkurang ~3 jam; Auditor mencurahkan waktunya untuk pendalaman. Pelajaran: AI aman dan efisien dalam pelaporan karena temuannya telah diverifikasi secara manusiawi.

Kerentanan logika bisnis: titik buta AI

Kerentanan yang paling mahal seringkali bukan berasal dari kesalahan teknis dalam kode, namun dari eksploitasi logika bisnis: eksploitasi pembulatan akun hadiah, pembajakan pinjaman kilat atas suara, manipulasi harga secara instan. Ini adalah kasus di mana kode berfungsi "dengan benar" namun protokolnya dapat diakali secara ekonomis. AI kemungkinan besar akan melewatkan kesalahan seperti itu—terutama kesalahan yang spesifik pada protokol. Oleh karena itu, tinjauan logika bisnis adalah area auditor yang paling intensif manusia dan paling tidak bergantung pada AI.

Petunjuk: Tanyakan kepada AI “bagaimana insentif ekonomi dari protokol ini dapat dieksploitasi?” dan gunakan skenario yang muncul sebagai titik awal — namun ingatlah bahwa Anda dan tim Anda harus melakukan analisis yang sebenarnya.

Kesalahan umum

  • Tanyakan pada AI "apakah aman?" Menanyakan dan memercayai ya Anda. Penilaian mutlak tidak diperlukan.
  • Menghentikan peninjauan ketika AI mengatakan "Saya tidak dapat menemukannya". Ketidakhadiran bukanlah bukti.
  • Mendelegasikan tinjauan logika bisnis ke AI. Ini adalah titik buta terbesarnya.
  • Tidak menggunakan alat mandiri (Slither dll). AI saja tidak cukup.
  • Memasukkan temuan yang dibuat oleh AI ke dalam laporan tanpa memverifikasinya. Risiko halusinasi.
  • Mencoba untuk menempatkan tanggung jawab kendali pada AI. Tanggung jawab ada pada ahlinya.

Singkatnya

  • Audit sangat penting bagi keselamatan; AI memperluas cakupan auditor tetapi tidak menggantikannya.
  • AI melewatkan kerentanan asli dan bug logika bisnis; Mengatakan "aman" bukanlah jaminan.
  • Temuan diklasifikasikan berdasarkan tingkat keparahan; AI berguna dalam menghasilkan draf.
  • Kontra-hipotesis dan penyaringan kategori menjaga disiplin inklusi.
  • Persetujuan akhir dan tanggung jawab profesional selalu berada pada auditor yang kompeten.

Tugas aplikasi

Temukan contoh kontrak yang mengandung kerentanan yang diketahui (untuk tujuan pendidikan, contoh "kontrak rentan" tersedia dalam sumber terbuka). Terapkan perintah "pemindaian berbasis kategori" ke AI. Catat apakah AI: (1) menemukan kerentanan nyata, (2) menghasilkan temuan palsu/palsu, (3) membuat penilaian absolut seperti “aman.” Kemudian bandingkan dengan alat analisis statis.

daftar periksa

  • [ ] Tanyakan pada AI “apakah aman?” Sebaliknya, saya melakukan pemindaian berdasarkan kategori.
  • [ ] Saya memperlakukan setiap temuan sebagai hipotesis.
  • [ ] Saya melakukan tinjauan logika bisnis sendiri/tim.
  • [] Saya memvalidasi silangnya dengan alat analisis statis independen.
  • [ ] Saya telah mengonfirmasi bahwa AI tidak mengarang temuan.
  • [ ] Saya mengklasifikasikan temuan berdasarkan tingkat keparahannya.
  • [ ] Saya menerima bahwa persetujuan akhir ada pada auditor yang kompeten.