Keuntungan:
- Keupayaan untuk memahami bahawa kecerdasan buatan meluaskan skop juruaudit, tetapi tidak menggantikannya, dan berguna dalam pengimbasan kategori dan mencari penggubalan.
- Dapat mengenali bahawa kecerdasan buatan telah terlepas kelemahan asal dan ralat logik perniagaan, dan bahawa pernyataan 'selamat' yang lancar bukanlah jaminan
- Keupayaan untuk mengklasifikasikan penemuan mengikut tahap kesungguhan mereka dan memahami bahawa kelulusan akhir dan tanggungjawab profesional terletak pada juruaudit yang kompeten.
Audit keselamatan (pemeriksaan sistematik kontrak pintar untuk kelemahan) ialah tugas Web3 yang paling bertanggungjawab. Satu baris yang terlepas oleh juruaudit boleh mengakibatkan kerugian berjuta-juta dolar. Dalam unit ini anda akan belajar cara menggunakan AI sebagai pembantu audit; Kami akan belajar daripada menjana petunjuk untuk menulis garis besar penemuan. Tetapi ayat yang paling kritikal ialah ini: AI tidak mengawal; Ia adalah pembantu yang menajamkan mata juruaudit. Kelulusan terakhir terletak pada juruaudit berwibawa yang memikul tanggungjawab profesional.
Mengapa pengauditan adalah kritikal keselamatan
Laporan audit meyakinkan projek dan pelabur bahawa "kod ini telah disemak." Jika jaminan ini palsu, akibatnya adalah bencana: protokol yang dieksploitasi, kehilangan pembiayaan, projek runtuh. Oleh itu, penggunaan AI dalam pemeriksaan adalah bahagian yang paling berhati-hati dalam modul ini. AI meluaskan skop juruaudit (mengingat lebih banyak corak, membaca lebih cepat) tetapi tidak menggantikan juruaudit.
Mengapa ia tidak lulus? Kerana:
- AI tidak dapat melihat kerentanan unik/baharu yang tiada dalam data latihan.
- AI sering terlepas kecacatan dalam logik perniagaan protokol—bahawa kod itu betul secara teknikal tetapi boleh dieksploitasi dari segi ekonomi.
- AI boleh memberi jaminan palsu dengan mengatakan "selamat" dalam bahasa yang fasih; Ini adalah hasil yang paling berbahaya.
Lapisan penggunaan AI dalam kawalan
1. Imbasan awal dan peringatan corak. AI melalui corak kerentanan yang diketahui seperti senarai semak: kemasukan semula, kawalan akses, manipulasi oracle, lari ke hadapan. Ini memastikan juruaudit tidak terlepas sebarang kategori.
2. Penerangan kod. Menjelaskan fungsi kompleks kepada AI dalam bahasa biasa membolehkan juruaudit memahami logik dengan cepat; tetapi penerangan sentiasa dibandingkan dengan kod.
3. Menulis draf penemuan. Apabila juruaudit mendapati kelemahan, AI menjimatkan masa dalam menulis draf laporan (huraian, impak, penyelesaian yang dicadangkan).
4. Menjana hipotesis balas. Tanya AI "bagaimana fungsi ini boleh disalahgunakan?" Bertanya " mengingatkan kita tentang perspektif yang agresif.
Perhatian: Hanya kerana AI mengatakan "Saya tidak menemui sebarang kelemahan dalam kod ini" TIDAK bermakna "kod ini selamat". Bukti ketidakhadiran bukan ketiadaan bukti. Hakikat bahawa AI tidak dapat mencari sesuatu tidak menjadikannya tidak perlu bagi juruaudit untuk memeriksa kawasan itu.
Mencari tahap keterukan
Penemuan audit dikelaskan mengikut tahap keterukan mereka. AI harus menggunakan rangka kerja ini apabila menjana draf:
Tahap
Maknanya
contoh
kritikal
Kehilangan/sekat dana secara langsung mungkin
Mengeluarkan dana dengan kemasukan semula
tinggi
Kesan serius dalam keadaan tertentu
Pencetakan tanpa kebenaran (pudina)
sederhana
Kesan terhad atau keadaan sukar
Kerugian kecil dengan sisihan Oracle
rendah
Risiko kecil, pelanggaran amalan baik
Siaran acara tiada
Maklumat
Bukan keselamatan, kebolehbacaan
Kekurangan NatSpec
Gesaan lemah / Gesaan kuat
Gesaan yang lemah:
Adakah kontrak ini selamat?
Soalan ini memaksa AI untuk membuat pertimbangan mutlak dan tidak wajar seperti “ya/tidak” — apa yang kita tidak mahu.
Gesaan kuat:
Peranan anda: pembantu juruaudit kontrak pintar kanan. Imbas kontrak berikut untuk keselamatan. Semak kategori berikut satu demi satu: kemasukan semula, kawalan akses, operasi integer, pengesahan input, data oracle/luaran, lari depan, had gas. Untuk setiap PENEMUAN: (1) baris kod yang berkaitan, (2) punca risiko, (3) anggaran keterukan (Kritis/Tinggi/Sederhana/Rendah), (4) cadangan penyelesaian. Ini adalah HIPOTESIS YANG PERLU DISAHKAN; Jangan berikan keputusan "selamat". Tandai kawasan yang anda tidak pasti dengan jelas mengatakan "biar juruaudit mengesahkan".
Empat templat yang boleh disalin
1) Penyemakan imbas berdasarkan kategori:
Imbas kontrak ini untuk kategori berikut: kemasukan semula, kawalan akses, limpahan integer, pengesahan input, kebergantungan oracle, lari depan, DoS/gas. Untuk setiap kategori, sebut "tiada/tiada risiko/saya tidak pasti" dan sambungkan justifikasi anda kepada baris dalam kod. Jangan buat penghakiman muktamad.
2) Hipotesis balas dari perspektif penyerang:
Berfikir seperti penyerang: apakah cara untuk menyalahgunakan fungsi ini? Tulis setiap senario langkah demi langkah dan nyatakan syarat yang diperlukan. Senario ini adalah hipotesis yang akan diuji; JANGAN menjana kod eksploitasi sebenar, hanya terangkan risikonya.
3) Draf laporan penemuan:
Laporkan penemuan disahkan berikut dalam bahasa audit rasmi: tajuk, keterukan, perihalan, kesan, kod yang terjejas, langkah untuk menghasilkan semula, cadangan penyelesaian. Gunakan bahasa yang diukur dan teknikal; keterlaluan. Andaikan penemuan itu disahkan oleh juruaudit, jangan membuat penemuan baru.
4) Betulkan pengesahan:
Di bawah ialah kelemahan dan pembetulan yang digunakan oleh pembangun. Periksa sama ada pembetulan benar-benar menutup kelemahan; tandakan sama ada ia mewujudkan kesan sampingan atau kelemahan baharu. Jangan katakan "tertutup" dengan pasti; Tamat dengan "mesti disahkan dengan ujian".
Tiga kes mini (dalam bilangan)
Kes 1 — AI menghalang lompat kategori. Seorang juruaudit akan memberi tumpuan kepada kontrak 400 talian dan melangkau kategori oracle. Imbasan kategori AI memberi amaran bahawa "data harga adalah daripada satu sumber, terbuka kepada manipulasi". Juruaudit menelitinya dan mendapati ia sememangnya berisiko sederhana. Pelajaran: AI mengekalkan disiplin liputan.
Kes 2 — Jaminan "selamat" palsu. Pasukan lain bertanya kepada AI "adakah ini selamat?" dia bertanya; "Nampaknya tidak ada masalah yang ketara," kata AI. Pemeriksaan kru adalah ringan. Kemudian juruaudit bebas mendapati kelemahan logik perniagaan: pengiraan yang betul secara teknikal tetapi insentifnya boleh dieksploitasi. Pelajaran: AI terlepas ralat logik perniagaan; Dia tidak boleh dipercayai untuk mengatakan "selamat".
Kes 3 — Merangka laporan disimpan 3 jam. Juruaudit telah menghabiskan separuh hari secara manual melaporkan 8 penemuan. Sebaik sahaja saya memberikan penemuan yang disahkan kepada AI dan mencetak draf rasmi, masa menurun sebanyak ~3 jam; Juruaudit menumpukan masa untuk mendalami. Pengajaran: AI selamat dan cekap dalam pelaporan kerana penemuan telah pun disahkan manusia.
Kerentanan logik perniagaan: titik buta AI
Kerentanan yang paling mahal selalunya bukan daripada ralat teknikal dalam kod, tetapi daripada kebolehgunaan logik perniagaan: eksploitasi pembulatan akaun ganjaran, rampasan undian pinjaman kilat, manipulasi harga serta-merta. Ini adalah kes di mana kod berfungsi "dengan betul" tetapi protokol boleh ditipu dari segi ekonomi. AI berkemungkinan terlepas ralat sedemikian—terutamanya ralat khusus protokol. Oleh itu, semakan logik perniagaan adalah bidang juruaudit yang paling intensif manusia dan paling tidak bergantung pada AI.
Petunjuk: Tanya AI "bagaimana insentif ekonomi protokol ini boleh dieksploitasi?" dan gunakan senario yang muncul sebagai titik permulaan — tetapi ingat bahawa anda dan pasukan anda harus melakukan analisis sebenar.
Kesilapan biasa
- Tanya AI "adakah ia selamat?" Bertanya dan mempercayai ya anda. Penghakiman mutlak tidak diperlukan.
- Menghentikan semakan apabila AI mengatakan "Saya tidak dapat mencarinya". Ketiadaan bukan bukti.
- Mewakilkan semakan logik perniagaan kepada AI. Ia adalah titik buta terbesarnya.
- Tidak menggunakan alatan bebas (Slither dll.). AI sahaja tidak mencukupi.
- Meletakkan penemuan yang dibuat oleh AI ke dalam laporan tanpa mengesahkannya. Risiko halusinasi.
- Cuba meletakkan tanggungjawab kawalan pada AI. Tanggungjawab terletak pada pakar.
Secara ringkasnya
- Audit adalah kritikal keselamatan; AI meluaskan skop juruaudit tetapi tidak menggantikannya.
- AI merindui kelemahan asal dan pepijat logik perniagaan; Mengatakan "selamat" bukanlah jaminan.
- Penemuan dikelaskan mengikut tahap keterukan; AI berguna dalam menghasilkan draf.
- Hipotesis balas dan saringan kategori mengekalkan disiplin kemasukan.
- Kelulusan akhir dan tanggungjawab profesional sentiasa terletak pada juruaudit yang kompeten.
Tugasan permohonan
Cari contoh kontrak yang mengandungi kelemahan yang diketahui (untuk tujuan pendidikan, contoh "kontrak terdedah" tersedia dalam sumber terbuka). Gunakan gesaan "pengimbasan berdasarkan kategori" pada AI. Perhatikan sama ada AI: (1) menemui kelemahan sebenar, (2) menghasilkan penemuan palsu/palsu, (3) membuat pertimbangan mutlak seperti "selamat." Kemudian bandingkan dengan alat analisis statik.
senarai semak
- [ ] Tanya AI "adakah ia selamat?" Sebaliknya, saya mempunyai imbasan berdasarkan kategori.
- [ ] Saya menganggap setiap penemuan sebagai hipotesis.
- [ ] Saya sendiri/pasukan melakukan semakan logik perniagaan.
- [ ] Saya mengesahkannya silang dengan alat analisis statik bebas.
- [ ] Saya telah mengesahkan bahawa AI tidak mereka-reka penemuan.
- [ ] Saya mengklasifikasikan dapatan mengikut tahap keterukan.
- [ ] Saya menerima bahawa kelulusan akhir terletak pada juruaudit yang berwibawa.