Akıllı Sözleşme Güvenliği: Çevik bir SDLC Yaklaşımı PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Akıllı Sözleşme Güvenliği: Çevik Bir SDLC Yaklaşımı 

Okuma zamanı: 10 dakika

Blockchain, merkezi olmayan ve kurcalamaya dayanıklı bir defter olarak alıntılanır. Ancak bu kurcalamaya dayanıklı defter, saldırılara ve istismarlara karşı savunmasızdır. Blockchain'in en güçlü avantajlarından biri olan ademi merkeziyetçilik, dezavantajlarından biridir. 

Peki, sorun değil, peki ya SDLC? 

Tartışacağımız yazılım yaşam döngüsü yaklaşımı, akıllı sözleşmelerdeki güvenlik açıklarını birden çok aşamaya göre sınıflandırmaya dayanmaktadır. 

İlk bölümde akıllı sözleşmelerdeki güvenlik konularını ortaya koyduk. Ve bir sonraki bölümde, dört aşamaya ayrılan çözümlerini tartışıyoruz; Güvenlik Tasarımı, Güvenlik Uygulaması, Dağıtımdan Önce Test Etme ve sonuncusu, İzleme ve Analiz. 

AKILLI SÖZLEŞMELERDE GÜVENLİK SORUNLARININ ANALİZİ 

Akıllı sözleşmeler, çeşitli saldırılara ve istismarlara karşı savunmasızdır. Gerçek dünyadaki yasal anlaşmalarla eşanlamlı olan bu sözleşmeler, yerel blok zincirlerinin şartlarına göre bağımsız olarak çalışır. 

Ancak, akıllı sözleşmelerdeki potansiyel güvenlik tehditlerinden bu yerel blok zincirlerinin bile sorumlu olabileceğini düşündünüz mü? Aşağıda, aynısı için Blockchains'in bazı özelliklerini sunuyoruz:

Yerelleşme: Blok zinciri tabanlı protokollerin avantajlarından biri olarak kabul edilir. Ancak saldırganlar bu olumlu özelliği olumsuza çevirmenin bir yolunu bulmuşlar. 

Kötü niyetli aktörler, akıllı bir sözleşme geliştirmek ve uygulamak için sahte bir kimlik oluşturabilir. Bazen, genel blok zincirlerinde yalnızca genel adres (veya) genel anahtarlar mevcut olduğundan, savunmasız bir sözleşmeyi belirlemek zorlaşır. 

Açık Kaynak Kodu: Bu sizi şaşırtabilir, ancak evet, genel olarak, çoğu akıllı sözleşme kodu biraz açık kaynaklıdır. 

Diyelim ki, Ethereum Sanal Makinesi (EVM) durumunda, bayt kodu her zaman herkese açıktır. Ve bazı Solidity kod çözücüleri, akıllı bir sözleşme adresi ve Solidity kodu almanıza yardımcı olabilir. Kaynak kodunun açığa çıkması, bu özelliği saldırganlar için avantaj haline getirir. 

Gelişmemiş blok zinciri platformları: Bir geliştirici için geliştirme platformuna aşina olmak birincil gereksinimdir. Pek çok az gelişmiş veya yeni blok zinciri platformu vardır, bu nedenle geliştiriciler blok zincirindeki işlemler hakkında derinlemesine bilgi geliştiremezler. 

Bu tutarsızlık, senkronizasyon eksikliği nedeniyle akıllı sözleşmeleri etkiler. Blok zinciri platformundaki kusurlar, sürekli evrimi nedeniyle fark edilmeden kalır. 

Bilinmeyen İşlemler: Birinci noktada anonim kimliği tartıştık; benzer şekilde, blok zincirlerdeki işlemler açıklanmaz. Birçok yasa dışı faaliyete yol açan işlemlerin izini sürmek imkansızdır. Finansal işlemler söz konusu olduğundan, herhangi bir güvenlik sorunu büyük mali kayıplara neden olabilir. 

AKILLI SÖZLEŞME GÜVENLİK ÇÖZÜMLERİ

Şimdi, akıllı sözleşme güvenliğinde ilerlerken, akıllı bir sözleşmeyi güvence altına almak için gerekli tüm adımları evrimiyle karşılaştırabiliriz. Geleneksel yazılım geliştirmede olduğu gibi, bir geliştirme yaşam döngüsünü takip etme eğilimindeyiz; benzer şekilde sözleşme geliştirme yaşam döngüsünü de sınıflandırabiliriz. 

Akıllı sözleşme geliştirme yaşam döngüsü dört aşamaya ayrılabilir: güvenlik tasarımı, güvenlik uygulaması, dağıtımdan önce test etme ve izleme ve analiz.

akıllı sözleşme yaşam döngüsü perspektifinden güvenlik temalarına genel bakış
akıllı sözleşme yaşam döngüsü perspektifinden güvenlik temalarına genel bakış

1. GÜVENLİK TASARIMI 

Bu ilk aşama üç temayı kapsar; tasarım ilkesi, tasarım deseni ve güvenlik modellemesi (yukarıdaki şekilde gösterildiği gibi). Bu temaların ana odak noktası, sözleşme tasarımı ve güvenlik tehditlerinin nasıl önlenebileceğidir. 

TASARIM İLKESİ

Tasarım ilkeleri, blok zincirinde güvenli akıllı sözleşmeler tasarlamak için temel fikirlerdir. Sözleşmeler için beş temel tasarım ilkesi vardır: Başarısızlığa hazırlanın, Dikkatli bir şekilde kullanıma alın, Sözleşmeleri basit tutun, Güncel kalın ve Blockchain özellikleri hakkında bilinmesi gerekenler. 

Şimdi, güvenli bir akıllı sözleşme oluşturmaya nasıl yardımcı olacaklarını düşünebilirsiniz. 

Yukarıdaki ilkelerden herhangi birini alalım, diyelim ki, “Başarısızlık için hazırlanın” bu, yama şemalarının yokluğunda, sözleşmenin hatalara yanıt verebilmesi gerektiği anlamına gelir. Ve herhangi bir saldırı gerçekleşirse, daha fazla kaybı önlemek için sözleşme duraklatabilmelidir. 

TASARIM DESENİ

Yazılım tasarımında tasarım kalıpları, bir sorunu çözmek için yeniden kullanılabilecek çözümlerdir. 

Ethereum örneğini ele alırsak, altı güvenlik modeli vardır; Etkileri kontrol et-etkileşimi, Acil durdurma, Mutex, Hız tümseği, Hız sınırı ve Denge sınırı.  

Bu güvenlik modellerini, yeniden giriş güvenlik açığının Mutex modeli tarafından ele alınabilmesi gibi blok zincirindeki güvenlik sorunlarını ele almak için kullanabiliriz. 

Aynı zamanda, Acil durdurma modeli, bir güvenlik açığından etkilenirse bir sözleşmenin yürütülmesini sonlandırmamıza yardımcı olabilir. 

GÜVENLİK MODELLEME

Solidity, sözleşmeleri oluşturmak için kullanıldığından, geliştirilen kod ile sözleşmeler için gerekli olan kod arasında bir fark olabilir; bu dil, Turing eksiksizliğini karşılar, ancak hatalara açıktır. 

Yukarıdaki şekil, bu alt aşamanın iki aşamayı kapsadığını göstermektedir; güvenlik tasarımı ve uygulaması. 

Güvenlik modellemesi doğrudan iş mantığıyla ilgilidir; Spesifikasyonlar işletmeden türetildiği için mantık hatasız semantik ile sınıflandırılabilir. Bu, daha sonra güvenlik açıklarını azaltmak için gerçekleştirilen resmi doğrulama sürecinde yardımcı olur. 

2. GÜVENLİK UYGULAMASI

Bu bölümde, üç temadan ikisini ele alacağız; güvenlik

Geliştirme ve Güvenlik şablonu, son aşamada Güvenlik modellemesini zaten ele aldık.

GÜVENLİK GELİŞTİRME

Bu bölüm, sözleşme uygulama sürecinde güvenlik açıklarından nasıl kaçınılabileceğini görecektir. 

Ethereum platformunda, güvenlik EIP'lerine (Ethereum iyileştirme önerileri) sahibiz - güvenlik sorunlarıyla mücadele için öneriler. Ethereum platform. Bu nedenle, bu EIP'ler akıllı sözleşmelerin güvenli bir şekilde uygulanması için dikkate değerdir. 

GÜVENLİK ŞABLONU

Şablonlar, yeni belgeler için kaynak görevi görür. Operasyonel parametrelere sahip akıllı sözleşme şablonları, yasal bir sözleşmeyi yürütülebilir bir koda bağlar. 

Akıllı sözleşme güvenliği bağlamında, güvenlik kalıpları ve güvenlik kitaplıkları gibi yükseltilmiş güvenlik parametreleriyle standart sözleşme şablonlarını çıkarmak mümkündür. Bu, manuel kodlamada hata olasılığını azaltacaktır. 

3. DAĞITIM ÖNCESİ TEST

Yine bu aşamanın gerekliliği, akıllı sözleşmelerin avantajlarından biri olan “Değişmezlik”ten kaynaklanmaktadır. 

Akıllı sözleşmeler oluşturulduktan sonra, onları değiştirmenin bir yolu yoktur. Bu nedenle, dağıtım öncesinde akıllı sözleşmelerin güvenliğini sağlamak için yeterli testlerin yapılması zorunludur.

Bu aşama, bir akıllı sözleşmeyi devreye almadan önce izlenmesi gereken üç güvenlik parametresini kapsar; Titiz resmi doğrulama, Kod analiz araçları ve Güvenlik denetimi. 

ZORUNLU RESMİ DOĞRULAMA

Resmi doğrulama, sistemin istenen özelliklerini doğrulamak için matematiksel akıl yürütme ve matematiksel kanıtlardan yararlanan iyi tanımlanmış bir süreçtir. 

Sözleşme programı kısa ve zaman sınırlı olduğu için akıllı sözleşmelerde resmi doğrulama yapabiliriz. Akıllı sözleşmeleri katı bir şekilde resmileştirmenin ve doğrulamanın birçok yolu vardır; bazıları sözleşme koduna, bazıları ise Ethereum sanal makinesinin (EVM) semantiğine dayanır. 

KOD ANALİZ ARAÇLARI

Kodun analizi, programlar çalıştırılmadan yapılır. Bu amaçla Statik Uygulama Güvenlik Testi (SAST) Araçları adı verilen bazı araçlar kullanıyoruz. Bu araçlar, kaynak koddaki güvenlik açıklarının keşfedilmesine yardımcı olur. 

Bu araçlar tarafından gerçekleştirilen analiz, aşağıdaki adımlardan birini veya tümünü içerebilir:

(i) Ayrıntılı analiz için soyut sözdizimi ağacı (AST) gibi bir ara temsil (IR) oluşturun. 

(Ii) BT'yi statik kontrol veya tarih akışı analizi ve resmi doğrulama tekniklerinden elde edilen yeterli bilgi ile tamamlayın; bu teknikler şunları içerir: sembolik uygulama, soyut yorumlama ve sembolik model kontrolü. 

Ancak Akıllı Sözleşme üzerinde kod analizi yapmak için kullanılabilecek araçlar nelerdir? 

Güvenlik analizini gerçekleştirmek için kullanılabilecek birçok araç olmasına rağmen, Oyente en popüler olanıdır. 

dinleyici EVM akıllı sözleşmeleri için güvenlik analizi yapmak için kullanılabilir. Dört yaygın hatayı keşfetmek için “sembolik yürütmeyi” kullanır; işlem sipariş bağımlılığı, zaman damgası bağımlılığı, yanlış kullanılan istisnalar ve yeniden giriş. 

Oyente'nin Mimarisi
Oyente'nin Mimarisi

Oyente mimarisi, bayt kodunu aldığını ve Ethereum global durumunu girdi olarak sunduğunu gösterir. 

Oyente'nin ters yönlerinden biri, yalnızca güvenlik açıklarını algılamasıdır. Oyente tarafından kullanılan sembolik yürütme tekniği, olası tüm yolları keşfetmez. Böylece Güvenlik ve manuel denetimler gibi diğer araçlara ihtiyaç duyulmaktadır. 

GÜVENLİK DENETİMİ

Bu bölüme sonuncusunu bıraktığımız yerden başlayacağız; manuel denetimler. 

Ama önce, bir güvenlik denetiminin gerekliliğini anlayalım; Ronin Network hack veya Poly Network hack olsun, denetlenmemiş kod, saldırı ve istismarlara karşı en savunmasız olanıdır. 

Büyük mali kayıplara yol açarlar. Aslında Web3 projenizi denetlemekle kalmaz, aynı zamanda uzman profesyoneller tarafından denetlenmesi de önemlidir, çünkü bu, denetçilerin güvenlik denetimlerini gerçekleştirme konusundaki profesyonel yeteneklerine bağlıdır. 

Yine, bu profesyonel uzmanları nerede bulabilirim? Güvenilir denetçiler aramak için hiçbir yere gitmenize gerek yok; Tıklayın https://t.me/quillhash onlardan biriyle temasa geçmek için! 

İdeal bir akıllı sözleşme denetimi, manuel ve otomatik kod analizinin bir birleşimidir; Bir önceki noktada da bahsettiğimiz gibi Oyente gibi araçlardan otomatik kod analizi yapılmasına rağmen sözleşmede tanımlanamayan zafiyetler olma ihtimali var. 

Böylece, bunun üstesinden gelmek için güvenlik denetçileri, her kod satırını manuel olarak analiz edebilir ve bunları olası güvenlik açıklarına karşı test edebilir. 

4. İZLEME VE ANALİZ

Başlangıçta tartıştığımız Blockchain'in sürekli gelişen ilkesini hatırlıyor musunuz? 

Bu aşama aynı temaya dayanmaktadır; sözleşme dağıtılıp çalıştırıldıktan sonra, yeni sürümler ve daha sonra sözleşmeleri daha az verimli hale getiren sık güncellemeler nedeniyle önceki aşamalarda fark edilmeyen bazı güvenlik açıkları oluşabilir. 

gerçekleştirebiliriz; Bu engellerin üstesinden gelmek için hata ödülü, güvenlik izleme ve post hoc analiz. 

HATA ÖDÜLÜ

Sözleşmelerle ilgili dağıtım sonrası güvenlik sorunlarını göz önünde bulundurduğumuz için Bug Bounties yardımcı olabilir. Daha önce tartışılan resmi doğrulama tekniği statik bir analiz tekniğidir. Bug bounty ise dinamik bir analiz tekniğidir. 

Bug bounty'nin arkasındaki konsept basittir; bilgisayar korsanları hataları keşfeder ve karşılığında onlara bazı finansal ödüller verilir. Kazan-kazan durumu gibi görünüyor, değil mi? Ama değil!

Buradaki yakalama; hataların değerinin gri pazarlardaki ödülden daha yüksek olabileceği ve bilgisayar korsanlarının yüksek bir fiyat elde etmek için böcekleri sömürmesi veya satması olasılığıdır. 

Bazen proje sahipleri, hatalar onaylanmadıkça ödül ödemeyi reddeder; Bilgisayar korsanları, hataların ortaya çıkmasından sonra ödemelerin belirsizliği konusunda da endişeleniyor. 

Bunun üstesinden gelmek için “Hydra” olarak bilinen bir bug bounty çerçevesi önerildi. 

Hydra, blok zincirinde bir hata ödül sistemi olarak N-of-N-version programlama (NNVP) adlı bir açıklardan yararlanma boşluğu teknolojisini kullanır. 

Kafaları olan Hydra çerçevesi
Kafaları olan Hydra çerçevesi

GÜVENLİK İZLEME

Güvenlik açıklarını keşfetmek için statik kod analizini kullanabiliriz, ancak bu yöntem akıllı sözleşmeleri dağıtmadan önce kullanılır. 

Ancak hataları ve potansiyel güvenlik açıklarını gerçek zamanlı olarak bulmak için blok zincirindeki işlem verilerini izlemeli ve analiz etmeliyiz. 

Akıllı sözleşmeler analiz edilerek keşfedilen bu güvenlik açıkları, izleme güvenlik açıkları olarak adlandırılabilir. Bu izleme güvenlik açıklarının odak noktasında üç tür sözleşme yer alır; 

(i) Açgözlü sözleşmeler (canlı kalan ve Ether'i süresiz olarak kilitleyen sözleşmeler).

(Ii) Müsrif sözleşmeler (paraları dikkatsizce keyfi kullanıcılara sızdıran sözleşmeler) ve,

(Iii) İntihar sözleşmeleri (herhangi bir keyfi kullanıcının öldürebileceği sözleşmeler). 

ECF nesnelerini izleyerek güvenlik açıklarını belirlemek için Etkili Geri Çağırma Ücretsiz (ECF) nesneleri kavramı bile önerildi. 

Bununla ilgili olarak çevrimiçi bir algoritma da sunuldu; bilinmeyen güvenlik açıklarının keşfedilmesine yardımcı oldu. Aynı teklifte, Mainnet'te konuşlandırmadan önce Testnet'te akıllı sözleşmelerin yürütülmesi önerildi. 

Monitoring UI, React.js kullanan bir Blockchain izleme platformudur. Bu platform, işlemleri gerçekleştirmek, varlıkları kontrol etmek ve Blockchain'in durumu hakkında bilgi almak için kullanılabilir. 

Akıllı sözleşmelerin güvenli bir şekilde izlenmesi için bu platforma güvenemeyiz, ancak akıllı sözleşmelerle ilgili işlem verilerinin çoğu bulunabildiğinden, varlıkların transferini izleyerek istismarları gerçek zamanlı olarak tespit edebiliriz. 

SONRAKİ ANALİZ

Post Hoc Analysis, blok zincirindeki potansiyel tehditleri sıradan olmayan terimlerle analiz etmek, keşfetmek veya izlemek için blok zinciri işlem verilerini kullanır. 

Grafik analizini tartışırsak, tüm işlem verilerini toplamaya yönelik bir yaklaşım olarak tasarlanmıştır (buna akıllı sözleşmelerden dahili işlemler dahildir). 

Bu veriler yardımıyla üç grafik hazırladılar; 

(i) Bir para akışı grafiği (MFG)

(Ii) Sözleşme oluşturma grafiği (CCG) ve,

(Iii) Sözleşme başlatma grafiği (CIG)

Yukarıda bahsedilen grafiklerin analizine dayalı olarak, birbiriyle etkileşim halinde olan birden çok sözleşme arasındaki güvenlik sorunlarına çözümler gibi birçok yeni bulgu önerilmiştir. 

Grafik analizine genel bakış
Grafik analizine genel bakış

Ponzi şeması, çok sayıda fonun elde edilebileceği ve yerel blok zincirini etkileyebileceği klasik dolandırıcılık planlarından biridir. Bu sahtekarlıkla mücadele etmek için, Ethereum üzerindeki Ponzi şemalarını tespit etmek için bir sınıflandırıcı mekanizması önerildi. 

Bu mekanizma, Ponzi sözleşmelerini tespit etmek için veri madenciliği ve makine öğrenimini kullanır. Bu süreç, akıllı sözleşmelerin kaynak kodu mevcut olmasa bile çalışır. 

Akıllı Ponzi şeması algılama çerçevesi
Akıllı Ponzi şeması algılama çerçevesi

Anahtar Paket Servisi

İşte bu, evet, şimdilik bu kadar!

Şimdiye kadar bizimle olduysanız, minnettar oluruz. Daha fazla uzatmadan, bir sonuç notu olarak, yalnızca akıllı sözleşmeler ekosisteminin merkezi olmadığını ve hatalar için yama yapmanın zor olduğunu söyleyebiliriz. 

Akıllı sözleşmelerin güvenliğini yazılım yaşam döngüsü perspektifinden ayırmaya çalıştık. 

İlk önce blok zincirinin sorumlu olan temel özelliklerini tartıştık. akıllı sözleşmelerde güvenlik sorunları. Akıllı sözleşmeler için güvenlik çözümlerini dört aşamaya ayırdık. Sizi büyüyen Web3 ekosistemindeki zorlukların önünde tutmak için daha fazla gönderi getirmeyi umuyoruz. 

Akıllı sözleşme güvenliği için bu çevik SDLC yaklaşımı hakkında ne düşünüyorsunuz? Düşüncelerinizi aşağıdaki yorumlarda paylaşın!

46 Görünümler

Sonrası Akıllı Sözleşme Güvenliği: Çevik Bir SDLC Yaklaşımı  İlk çıktı blog.quillhash.

Zaman Damgası:

Den fazla tüyo