Keamanan Kontrak Cerdas: Pendekatan SDLC Agile Intelijen Data PlatoBlockchain. Pencarian Vertikal. ai.

Keamanan Kontrak Cerdas: Pendekatan SDLC Agile 

Waktu Baca: 10 menit

Blockchain dikutip sebagai buku besar yang terdesentralisasi dan anti-rusak. Tapi buku besar anti-rusak ini rentan terhadap peretasan dan eksploitasi. Desentralisasi, yang merupakan salah satu keuntungan terkuat dari Blockchain, adalah salah satu kelemahannya. 

Yah, tidak apa-apa, tapi bagaimana dengan SDLC? 

Pendekatan siklus hidup perangkat lunak yang akan kita bahas didasarkan pada klasifikasi kerentanan keamanan dalam kontrak pintar ke dalam beberapa fase. 

Di bagian pertama, kami telah memaparkan masalah keamanan dalam kontrak pintar. Dan di bagian selanjutnya, kami membahas solusi yang dibagi menjadi empat fase; Desain Keamanan, Implementasi Keamanan, Pengujian sebelum Penerapan, dan yang terakhir, Pemantauan dan Analisis. 

ANALISIS MASALAH KEAMANAN DALAM KONTRAK PINTAR 

Kontrak pintar rentan terhadap berbagai peretasan dan eksploitasi. Kontrak yang identik dengan perjanjian hukum dunia nyata ini berjalan secara independen berdasarkan ketentuan blockchain asli. 

Tetapi pernahkah Anda berpikir bahwa bahkan blockchain asli itu juga dapat bertanggung jawab atas potensi ancaman keamanan dalam kontrak pintar? Di bawah ini, kami menyajikan beberapa karakteristik Blockchain untuk hal yang sama:

Desentralisasi: Ini dianggap sebagai salah satu keuntungan dari protokol berbasis blockchain. Tetapi para penyerang telah menemukan cara untuk mengubah fitur positif ini menjadi fitur negatif. 

Pelaku jahat dapat membuat identitas palsu untuk mengembangkan dan menerapkan kontrak cerdas. Terkadang, menjadi sulit untuk mengidentifikasi kontrak yang rentan karena hanya alamat publik (atau) kunci publik yang tersedia di blockchain publik. 

Kode Sumber Terbuka: Ini mungkin mengejutkan Anda, tapi ya, secara umum, sebagian besar kode kontrak pintar agak open-source. 

Katakanlah, dalam kasus Ethereum Virtual Machine (EVM), bytecode-nya selalu bersifat publik. Dan beberapa dekompiler Soliditas dapat membantu Anda mendapatkan alamat kontrak cerdas dan kode Soliditas. Pemaparan kode sumber membuat fitur ini menguntungkan bagi penyerang. 

Platform blockchain yang belum berevolusi: Bagi seorang pengembang, merupakan persyaratan utama untuk mengenal platform pengembangan. Ada banyak platform blockchain yang belum berkembang atau baru, sehingga pengembang tidak dapat mengembangkan pengetahuan yang mendalam tentang operasi di blockchain. 

Inkonsistensi ini memengaruhi kontrak pintar karena kurangnya sinkronisasi. Kekurangan dalam platform blockchain tetap tidak diperhatikan karena evolusinya yang berkelanjutan. 

Transaksi Tidak Diketahui: Pada poin pertama, kita telah membahas identitas anonim; sama halnya, transaksi di blockchain tidak diungkapkan. Tidak mungkin untuk melacak transaksi, yang mengarah ke banyak kegiatan ilegal. Karena transaksi keuangan terlibat, masalah keamanan apa pun dapat mengakibatkan kerugian finansial yang besar. 

SOLUSI KEAMANAN KONTRAK CERDAS

Sekarang, melanjutkan keamanan kontrak pintar, kita dapat membandingkan semua langkah yang diperlukan untuk mengamankan kontrak pintar dengan evolusinya. Seperti dalam pengembangan perangkat lunak tradisional, kami cenderung mengikuti siklus hidup pengembangan; sama, kita dapat mengklasifikasikan siklus hidup pengembangan kontrak. 

Siklus hidup pengembangan kontrak pintar dapat dibagi menjadi empat fase: desain keamanan, implementasi keamanan, pengujian sebelum penerapan, serta pemantauan dan analisis.

ikhtisar tema keamanan dari perspektif siklus hidup kontrak pintar
ikhtisar tema keamanan dari perspektif siklus hidup kontrak pintar

1. DESAIN KEAMANAN 

Fase pertama ini merangkum tiga tema; prinsip desain, pola desain, dan pemodelan keamanan (seperti yang ditunjukkan pada gambar di atas). Fokus utama dari tema-tema ini adalah pada desain kontrak dan bagaimana ancaman keamanan dapat dihindari. 

PRINSIP DESAIN

Prinsip desain adalah ide mendasar untuk merancang kontrak pintar yang aman di blockchain. Ada lima prinsip desain penting untuk kontrak: Bersiaplah untuk kegagalan, Luncurkan dengan hati-hati, Buat kontrak tetap sederhana, Tetap perbarui, dan Harus tahu tentang properti blockchain. 

Sekarang, Anda mungkin berpikir, bagaimana mereka akan membantu menciptakan kontrak pintar yang aman? 

Mari kita ambil salah satu prinsip dari atas, katakanlah, "Bersiaplah untuk kegagalan" ini menandakan bahwa dengan tidak adanya skema patch, kontrak harus dapat merespons bug. Dan jika ada serangan yang terjadi, kontrak harus dapat dijeda untuk mencegah kerugian lebih lanjut. 

POLA DESAIN

Dalam desain perangkat lunak, pola desain adalah solusi yang dapat digunakan kembali untuk menyelesaikan suatu masalah. 

Jika kita mengambil contoh Ethereum, ada enam pola keamanan; Periksa-efek-interaksi, Berhenti darurat, Mutex, Speed ​​bump, Rate limit, dan Balance limit.  

Kami dapat menggunakan pola keamanan ini untuk mengatasi masalah keamanan di blockchain seperti kerentanan reentrancy yang dapat ditangani oleh pola Mutex. 

Pada saat yang sama, pola Berhenti darurat dapat membantu kami menghentikan eksekusi kontrak jika kontrak tersebut terpengaruh oleh kerentanan. 

PEMODELAN KEAMANAN

Mungkin ada perbedaan antara kode yang dikembangkan dan kode yang diperlukan untuk kontrak karena Soliditas digunakan untuk membuat kontrak; bahasa ini memenuhi kelengkapan Turing, tetapi rentan terhadap kesalahan. 

Gambar di atas menunjukkan bahwa sub-fase ini mencakup dua fase; desain dan implementasi keamanan. 

Pemodelan keamanan berhubungan langsung dengan logika bisnis; karena spesifikasi diturunkan dari bisnis, logika dapat diklasifikasikan menurut semantik bebas kesalahan. Ini membantu nanti selama proses verifikasi formal yang dilakukan untuk mengurangi kerentanan. 

2. IMPLEMENTASI KEAMANAN

Di bagian ini, kita akan membahas dua dari tiga tema; keamanan

Pengembangan, dan template Keamanan, seperti yang telah kita bahas pemodelan Keamanan di fase terakhir.

PENGEMBANGAN KEAMANAN

Bagian ini akan melihat bagaimana kerentanan dapat dihindari selama proses implementasi kontrak. 

Pada platform Ethereum, kami memiliki EIP keamanan (proposal peningkatan Ethereum) – rekomendasi untuk memerangi masalah keamanan pada Ethereum platform. Dengan demikian, EIP ini patut diperhatikan karena menerapkan kontrak pintar dengan aman. 

TEMPLATE KEAMANAN

Template berfungsi sebagai asal untuk dokumen baru. Templat kontrak cerdas dengan parameter operasional menghubungkan perjanjian hukum ke kode yang dapat dieksekusi. 

Dalam konteks dengan keamanan kontrak pintar, dimungkinkan untuk mengekstrak templat kontrak standar dengan parameter keamanan yang ditingkatkan, seperti pola keamanan dan pustaka keamanan. Ini akan mengurangi kemungkinan kesalahan dalam pengkodean manual. 

3. PENGUJIAN SEBELUM DEPLOYMENT

Sekali lagi, persyaratan fase ini muncul dari salah satu keuntungan kontrak pintar – “Kekekalan”. 

Setelah kontrak pintar dibuat, tidak ada cara untuk mengubahnya. Oleh karena itu, wajib untuk melakukan pengujian yang memadai untuk memastikan keamanan kontrak pintar sebelum penerapan.

Fase ini mencakup tiga parameter keamanan yang harus diikuti sebelum menerapkan kontrak cerdas; Verifikasi formal yang ketat, alat analisis Kode, dan audit Keamanan. 

VERIFIKASI FORMAL YANG KETAT

Verifikasi formal adalah proses yang terdefinisi dengan baik yang memanfaatkan penalaran matematis dan bukti matematis untuk memverifikasi sifat sistem yang diinginkan. 

Kami dapat melakukan verifikasi formal pada kontrak pintar karena program kontraknya singkat dan terikat waktu. Ada banyak cara untuk memformalkan dan memverifikasi kontrak pintar secara kaku; beberapa didasarkan pada kode kontrak, dan lainnya pada semantik mesin virtual Ethereum (EVM). 

ALAT ANALISIS KODE

Analisis kode dilakukan tanpa menjalankan program. Untuk tujuan ini, kami menggunakan beberapa alat yang disebut Alat Pengujian Keamanan Aplikasi Statis (SAST). Alat-alat ini membantu dalam penemuan kelemahan keamanan dalam kode sumber. 

Analisis yang dilakukan oleh alat ini dapat mencakup satu atau semua langkah berikut:

(i) Buat representasi perantara (IR), seperti pohon sintaksis abstrak (AST), untuk analisis terperinci. 

(Ii) Melengkapi IR dengan informasi yang cukup yang diperoleh dari kontrol statis atau analisis aliran tanggal dan teknik verifikasi formal; teknik-teknik ini meliputi: eksekusi simbolik, interpretasi abstrak, dan pengecekan model simbolik. 

Tetapi alat apa yang dapat digunakan untuk melakukan analisis kode pada Kontrak Cerdas? 

Meskipun ada banyak alat yang dapat digunakan untuk melakukan analisis keamanan, Oyente adalah yang paling populer. 

Pendengar dapat digunakan untuk melakukan analisis keamanan untuk kontrak pintar EVM. Ini menggunakan "eksekusi simbolik" untuk menemukan empat bug umum; ketergantungan pemesanan transaksi, ketergantungan cap waktu, pengecualian yang salah penanganan, dan masuk kembali. 

Arsitektur Oyente
Arsitektur Oyente

Arsitektur Oyente menunjukkan bahwa dibutuhkan bytecode dan menyajikan status global Ethereum sebagai input. 

Salah satu sisi lain dari Oyente adalah ia hanya mendeteksi kerentanan keamanan. Teknik eksekusi simbolis yang digunakan oleh Oyente tidak mengeksplorasi semua kemungkinan jalur. Dengan demikian, kebutuhan akan alat lain seperti Keamanan dan audit manual muncul. 

AUDIT KEAMANAN

Kami akan memulai bagian ini di mana kami meninggalkan yang terakhir; audit manual. 

Tapi pertama-tama, mari kita pahami perlunya audit keamanan; baik itu peretasan Ronin Network atau peretasan Poly Network, kode yang tidak diaudit adalah yang paling rentan terhadap peretasan dan eksploitasi. 

Mereka menyebabkan kerugian finansial yang besar. Tidak hanya mengaudit proyek Web3 Anda, sebenarnya, tetapi mengauditnya oleh profesional ahli juga penting karena tergantung pada kemampuan profesional auditor untuk melakukan audit keamanan. 

Sekali lagi, di mana menemukan para ahli profesional itu? Anda tidak perlu pergi ke mana pun mencari auditor yang dapat dipercaya; klik https://t.me/quillhash untuk menghubungi salah satu dari mereka! 

Audit kontrak cerdas yang ideal adalah kombinasi dari analisis kode manual dan otomatis; seperti yang telah kita bahas di poin sebelumnya, meskipun melakukan analisis kode otomatis dari alat seperti Oyente, ada kemungkinan kerentanan yang tidak teridentifikasi dalam kontrak. 

Jadi, untuk mengatasinya, auditor keamanan dapat menganalisis setiap baris kode secara manual dan mengujinya terhadap potensi kerentanan. 

4. PEMANTAUAN DAN ANALISIS

Ingat prinsip Blockchain yang terus berkembang yang kita bahas di awal? 

Fase ini didasarkan pada tema yang sama; setelah kontrak diterapkan dan dijalankan, beberapa kerentanan yang tidak diperhatikan pada tahap sebelumnya dapat terjadi karena rilis baru dan seringnya pembaruan yang kemudian membuat kontrak menjadi kurang efisien. 

Kami dapat melaksanakan; bug bounty, pemantauan keamanan, dan analisis post hoc untuk mengatasi hambatan ini. 

KARUNIA BUG

Saat kami mempertimbangkan masalah keamanan pasca penempatan dengan kontrak, Bug Bounties dapat membantu. Teknik verifikasi formal yang dibahas sebelumnya adalah teknik analisis statis. Bug bounty, di sisi lain, adalah teknik analisis dinamis. 

Konsep di balik Bug bounty sederhana; peretas menemukan bug, dan sebagai imbalannya, mereka dibayar dengan beberapa imbalan finansial. Sepertinya situasi win-win, kan? Tapi tidak!

Tangkapan di sini adalah; bahwa nilai bug mungkin lebih tinggi daripada hadiah di pasar abu-abu, dan kemungkinan peretas dapat mengeksploitasi atau menjual bug untuk mendapatkan harga tinggi. 

Terkadang, pemilik proyek menolak membayar hadiah kecuali bug dikonfirmasi; peretas juga khawatir tentang ketidakpastian pembayaran pasca pengungkapan bug. 

Untuk mengatasinya, kerangka kerja bug bounty diusulkan, yang dikenal sebagai “Hydra”. 

Hydra menggunakan teknologi celah eksploit bernama N-of-N-version programming (NNVP) sebagai sistem bug bounty di blockchain. 

Kerangka Hydra dengan kepala
Kerangka Hydra dengan kepala

PEMANTAUAN KEAMANAN

Kita dapat menggunakan analisis kode statis untuk menemukan kerentanan keamanan, tetapi metode ini digunakan sebelum menerapkan kontrak pintar. 

Tetapi untuk menemukan bug dan potensi kerentanan secara real-time, kita harus memantau dan menganalisis data transaksi di blockchain. 

Kerentanan ini ditemukan dengan menganalisis kontrak pintar dapat disebut kerentanan jejak. Tiga jenis kontrak terletak pada fokus kerentanan jejak ini; 

(i) Kontrak serakah (kontrak yang tetap hidup dan mengunci Eter tanpa batas).

(Ii) Kontrak yang hilang (kontrak yang membocorkan dana secara sembarangan kepada pengguna yang sewenang-wenang) dan,

(aku aku aku) Kontrak bunuh diri (kontrak yang dapat dibunuh oleh pengguna sewenang-wenang). 

Bahkan gagasan tentang objek Efektif Callback Free (ECF) diusulkan untuk mengidentifikasi kerentanan dengan memantau objek ECF. 

Dalam konteks ini, algoritma online juga disajikan; itu membantu menemukan kerentanan yang tidak diketahui. Dalam proposal yang sama, disarankan untuk mengeksekusi kontrak pintar di Testnet sebelum diterapkan di Mainnet. 

Monitoring UI adalah platform pemantauan Blockchain yang memanfaatkan React.js. Platform ini dapat digunakan untuk melakukan transaksi, memeriksa aset, dan menanyakan keadaan Blockchain. 

Kami tidak dapat mengandalkan platform ini untuk pemantauan kontrak pintar yang aman, tetapi karena sebagian besar data transaksi yang terkait dengan kontrak pintar dapat ditemukan, kami dapat mendeteksi eksploitasi secara real-time dengan melacak transfer aset. 

ANALISIS POST HOC

Analisis Post Hoc menggunakan data transaksi blockchain untuk menganalisis, menemukan, atau melacak potensi ancaman pada blockchain dalam istilah awam. 

Jika kita membahas analisis Grafik, ini dirancang sebagai pendekatan untuk mengumpulkan semua data transaksi (termasuk transaksi internal dari kontrak pintar). 

Dengan bantuan data ini, mereka menyiapkan tiga grafik; 

(i) Grafik aliran uang (MFG)

(Ii) Grafik pembuatan kontrak (CCG) dan,

(aku aku aku) Grafik permintaan kontrak (CIG)

Berdasarkan analisis grafik yang disebutkan di atas, banyak temuan baru yang diusulkan, seperti solusi untuk masalah keamanan antara beberapa kontrak yang berinteraksi satu sama lain. 

Ikhtisar analisis grafik
Ikhtisar analisis grafik

Skema Ponzi adalah salah satu skema penipuan klasik di mana sejumlah besar dana dapat diperoleh dan mempengaruhi blockchain asli. Untuk memerangi penipuan ini, mekanisme pengklasifikasi diusulkan untuk mendeteksi skema Ponzi di Ethereum. 

Mekanisme ini menggunakan penambangan data dan pembelajaran mesin untuk mendeteksi kontrak Ponzi. Proses ini berfungsi bahkan jika kode sumber kontrak pintar tidak tersedia. 

Kerangka kerja deteksi skema Ponzi pintar
Kerangka kerja deteksi skema Ponzi pintar

Kunci takeaway

Itu saja, ya, itu saja untuk saat ini!

Jika Anda telah bersama kami sampai sekarang, kami akan sangat menghargainya. Tanpa peregangan lebih lanjut, pada catatan penutup, kami hanya akan mengatakan bahwa ekosistem kontrak pintar terdesentralisasi, dan sulit untuk memperbaiki bug. 

Kami telah mencoba memecah keamanan kontrak pintar dari perspektif siklus hidup perangkat lunak. 

Kami pertama kali membahas fitur utama blockchain yang bertanggung jawab untuk masalah keamanan dalam kontrak pintar. Kami mengklasifikasikan solusi keamanan untuk kontrak pintar ke dalam empat fase. Kami berharap dapat membawa lebih banyak postingan untuk membuat Anda tetap terdepan dalam menghadapi tantangan dalam ekosistem Web3 yang sedang berkembang. 

Apa pendapat Anda tentang pendekatan SDLC yang gesit ini untuk keamanan kontrak pintar? Bagikan pemikiran Anda di komentar di bawah!

46 views

Pos Keamanan Kontrak Cerdas: Pendekatan SDLC Agile  muncul pertama pada Blog.quillhash.

Stempel Waktu:

Lebih dari Quillhash