
Scout adalah alat sumber terbuka yang dapat diperluas yang dimaksudkan untuk membantu pengembang dan auditor Smart Contract Soroban Stellar mendeteksi masalah keamanan umum dan penyimpangan dari praktik terbaik.
Alat ini membantu pengembang menulis kontrak pintar yang aman dan lebih kuat.
Ketertarikan kami pada proyek ini berasal dari pengalaman kami dalam audit manual dan deteksi kerentanan di blockchains lain (lihat Scout for Ink!).
Instal Scout Audit:
Pastikan kargo diinstal di komputer Anda. Kemudian, instal Scout dengan perintah berikut:
cargo install cargo-scout-auditJalankan Audit Scout:
Untuk menjalankan Pramuka di proyek Anda, jalankan perintah berikut:
cargo scout-auditScout mendukung ruang kerja kargo. Saat dijalankan di ruang kerja, Scout akan dieksekusi pada semua paket yang ditentukan sebagai anggota ruang kerja.
Untuk informasi lebih lanjut tentang instalasi dan penggunaan, silakan merujuk ke bagian Memulai di bagian dokumentasi kami di bawah ini.
Saat ini Scout termasuk detektor berikut.
| ID Detektor | Apa yang dideteksi | Kasus uji | Kerasnya |
|---|---|---|---|
| Divide-before-multiply | Melakukan operasi divisi sebelum perkalian, yang menyebabkan hilangnya presisi. | 1, 2, 3 | Sedang |
| tidak aman-tidak | Penggunaan metode Unwrap yang tidak pantas, menyebabkan kerusakan program yang tidak terduga. | 1 | Sedang |
| tidak aman-tidak aman | Penggunaan metode yang tidak tepat, yang mengarah pada crash program yang tidak terduga. | 1 | Sedang |
| periksa overflow | Operasi aritmatika meluap atau underflow memori yang tersedia dialokasikan ke variabel. | 1 | Kritis |
| nilai-nilai-random tidak cukup | Hindari menggunakan atribut blok untuk pembuatan angka acak untuk mencegah manipulasi. | 1 | Kritis |
| BPROSEKSI-BPROOTED-CIRRENT-CONTRACT-WASM | Jika pengguna diizinkan untuk memanggil update_current_contract_wasm() , mereka dapat dengan sengaja memodifikasi perilaku kontrak. | 1 | Kritis |
| Hindari-Core-MEM-Forget | Penggunaan core::mem::forget() dapat menyebabkan kebocoran memori dan kesalahan logika. | 1 | Peningkatan |
| Set-Kontrak-penyimpanan | Kontrol akses yang tidak memadai pada metode env.storage() . | 1, 2, 3 | Kritis |
| Hindari Panik-Error | Kode panik pada kesalahan alih -alih menggunakan enum deskriptif. | 1 | Peningkatan |
| Hindari-blok yang tidak aman | Menggunakan blok yang tidak aman dalam risiko keamanan dan keandalan kode risiko. | 1 | Kritis |
| OPERASI DOS-UNBOUNDED | DOS karena operasi yang tidak terbatas. | 1, 2, 3 | Sedang |
| Soroban-versi | Menggunakan versi lama Soroban bisa berbahaya, karena mungkin ada bug atau masalah keamanan. Gunakan versi terbaru yang tersedia. | 1 | Peningkatan |
| Enum yang tidak digunakan kembali | Return enum dari suatu fungsi tidak sepenuhnya digunakan. | 1, 2 | Kecil |
| Iterators-over-indexing | Iterasi dengan indeks hardcoded lebih lambat daripada menggunakan iterator. Juga, jika indeks di luar batas, itu akan panik. | 1 | Peningkatan |
| menegaskan-violasi | Hindari penggunaan Makro Assert!, Itu bisa panik. | 1 | Peningkatan |
| Operasi-Mapping Tidak Terlindungi | Memodifikasi pemetaan dengan kunci sewenang -wenang yang diberikan oleh pengguna dapat menjadi kerentanan yang signifikan. | 1, 2 | Kritis |
| dos-tidak diharapkan-revert-dengan-vektor | DOS karena penyimpanan yang tidak tepat. | 1, 2 | Sedang |
| Transfer-from yang tidak dibatasi | Hindari melewati parameter yang ditentukan pengguna sebagai from dari transfer-From. | 1 | Kritis |
| tidak aman-peta-get | Penggunaan metode get yang tidak pantas untuk Map di Soroban | 1 | Sedang |
| Nolo-or-test-alamat | Hindari penugasan nol atau alamat tes untuk mencegah kerugian kontrol kontrak. | 1 | Sedang |
| Eksponen yang salah | Memperingatkan terhadap penggunaan yang salah dari ´^´. | 1 | Kritis |
Anda dapat memilih format output yang paling sesuai dengan kebutuhan Anda. Scout menawarkan laporan HTML, Markdown, JSON, PDF dan Sarif. Untuk menentukan output yang diinginkan, jalankan perintah berikut:
cargo scout-audit --output-format [html|md|pdf|json|sarif]
Laporan HTML

Tambahkan Scout ke ruang kerja pengembangan Anda dengan ekstensi VS Code Scout untuk menjalankan Scout secara otomatis setelah menyimpan file Anda.

Kiat: Untuk melihat kesalahan yang disorot dalam kode Anda, kami sarankan menginstal ekstensi lensa kesalahan.
Unduh Scout vs Code dari Visual Studio Marketplace.
Integrasikan Scout ke dalam pipa CI/CD Anda! Secara otomatis menjalankan alat terhadap kontrak pintar yang ditargetkan. Lingkaran umpan balik langsung ini memungkinkan pengembang untuk dengan cepat mengatasi masalah apa pun sebelum menggabungkan kode ke dalam cabang utama, mengurangi risiko memperkenalkan bug atau kerentanan.
Output pramuka sebagai komentar dalam permintaan tarik

Temukan aksi GitHub Scout di GitHub Marketplace.
Bergabunglah dengan kami untuk serangkaian tutorial video yang menarik di mana Anda akan belajar cara menginstal dan menjalankan Scout. Temukan cara mengidentifikasi dan menyelesaikan masalah spesifik yang terdeteksi oleh alat, dan meningkatkan keterampilan Anda dengan panduan ahli kami.
? Lebih banyak video segera hadir!
Untuk memvalidasi alat kami, kami menyediakan serangkaian contoh kode yang terletak di folder kasus uji.
Untuk menjalankan tes integrasi, navigasikan ke apps/cargo-scout-audit dan jalankan:
cargo test --all --all-features Untuk menjalankan tes untuk kasus uji tertentu, jalankan perintah yang sama pada folder kasus test-cases/divide-before-multiply/divide-before-multiply-1 tertentu (mis.
Ikuti tautan dokumentasi kami di bawah ini dan pelajari lebih lanjut tentang kerentanan yang terdeteksi oleh Scout, bagaimana alat ini bekerja dan cara berkontribusi pada proyek!
Scout for Soroban adalah penganalisa kerentanan open source yang dikembangkan oleh tim penelitian dan pengembangan Coinfabrik.
Kami menerima dukungan melalui hibah dari Stellar Community Fund (SCF).
We - Coinfabrik - adalah perusahaan riset dan pengembangan yang berspesialisasi dalam Web3, dengan latar belakang yang kuat dalam cybersecurity. Didirikan pada tahun 2014, kami telah mengerjakan lebih dari 180 proyek terkait blockchain, yang berbasis EVM dan juga untuk Solana, Algorand, Stellar dan Polkadot. Di luar pengembangan, kami menawarkan audit keamanan melalui tim profesional cybersecurity senior yang berdedikasi, saat ini mengerjakan kode dalam substrat, soliditas, kejelasan, karat, teal dan bintang Soroban.
Tim kami memiliki latar belakang akademik dalam ilmu komputer dan matematika, dengan pengalaman kerja yang difokuskan pada keamanan siber dan pengembangan perangkat lunak, termasuk publikasi akademik, paten berubah menjadi produk, dan presentasi konferensi. Selain itu, kami memiliki kolaborasi berkelanjutan tentang transfer pengetahuan dan proyek open-source dengan University of Buenos Aires.
Scout dilisensikan dan didistribusikan di bawah lisensi MIT. Hubungi kami jika Anda mencari pengecualian untuk persyaratan.