Acil durum duraklatma mekanizmalarının tasarımı

MEV Kaynaklı Öncelik Manipülasyonu



Tekrar girişli saldırılar, Solidity kodu geliştiricilerinin sıklıkla gözden kaçırdığı kritik açıklardan biridir. External call yapılmadan önce durum güncellemesinin yapılmaması durumunda, saldırgan sözleşme aracılığıyla fonksiyona tekrar dönebilir. Kod incelemesi bu deseni kendiliğinden işaretleyebilir. Önce kontrol sonra etkileşim örüntüsü, bu riski önemli ölçüde azaltır. Tekrar girişe karşı mutex mekanizmaları da etkili bir savunma sağlar. Denetçiler, çağrı sırasında kontrolü kimin elinde tuttuğunu özenle incelemelidir. Yerel ağda kötü niyetli bir sözleşme yazarak saldırıyı doğrulamak da faydalı olur. Dinamik analiz ile birlikte kullanıldığında başarı belirgin şekilde güçlenir. Hele fon çekimi içeren fonksiyonlar öncelikli değerlendirilmelidir. Ekip ayrıca her değişiklikten sonra regresyon testlerini çalıştırmalıdır. Kısacası, tekrar giriş güvenlik yaklaşımının ayrılmaz bir bileşenidir.


Tamsayı taşması, hesaplamaların değer sınırını aşması sonucu istenmeyen değerler doğması anlamına gelir. Yeni Solidity ve üzeri öntanımlı olarak taşma kontrolü yapar, fakat eski derlemelerde bu kontrol mevcut değildir. Alt taşma özellikle bakiye çıkarma işlemlerinde çoğu zaman ortaya çıkar. Kod tarama araçları bu nitelikteki hesaplamaları saptayabilir. Auditör, hesaplama işlemlerin sınır değerlerle nasıl bir biçimde davrandığını değerlendirmelidir. Kontrolsüz blokların kullanımı bilhassa titizlikle incelenmelidir. Koruyucu aritmetik kütüphaneleri önceki projelerde yine tercih edilen bir çözümdür. Rastgele girdi testi araçları sınır değerleri otomatik bulmaya yardımcı olur. Veri tipi çevrimleri de öngörülmemiş taşmalara yol açabilir. Basit bir yanlış, ciddi finansal kayıplara sebep olabilir. Bu yüzden, bütün hesaplama açıkça değerlendirilmelidir. Sonuç olarak, sayısal sınır kontrolü her sözleşmenin temel hedeflerinden biri olmalıdır.


Erişim kontrolü açıkları, kimin hangi işlemi yapabileceğini düzenleyen kuralların yanlış kurgulanmasından doğar. Otomatik analiz, modifier tanımını kontrol ederek kayıp kontrolleri işaretleyebilir. Public metotlar bilhassa dikkatle denetlenmelidir. Yönetici hesabının yetkileri net biçimde tanımlanmalıdır. Sadece bir anahtarın kontrolündeki ayrıcalıklar, tek noktalı tehditler doğurabilir. Rol bazlı erişim sistemleri çok daha emniyetli bir çözüm sunar. İnitialization fonksiyonlarının yalnızca bir defa çalıştırılabilmesi önemlidir. Proxy sözleşmelerde depolama uyuşmazlıkları ek olarak kontrol yapılmalıdır. Test durumlarında yetkisi olmayan kullanıcı senaryoları test edilmelidir. Böylece, yetki zafiyetleri erken safhada giderilebilir.


Kaynak veri sağlayıcısı kurcalaması, kontratların dış dünyadan çektiği değer verilerinin kötü niyetle değiştirilmesidir. Yetersiz likiditeye sahip olan çiftlerde küçük bir hamle değeri büyük ölçüde kaydırabilir. Güncel fiyat çekimleri bu cins saldırılara elverişlidir. Zamana dayalı ortalama değerler bu açığı belirgin yüzdede azaltır. Birkaç oracle'ın birlikte kullanılması tekil arızasını önler. Veri tazeliği doğrulama yapılmalı, bayat verilerle hesaplama yapılmamalıdır. Anlık kredi saldırıları bir tek blokta büyük kaynak ile fiyatı anlık olarak bozar. Riskler senaryo bazlı değerlendirmelerle saptanmalıdır. Özetle, oracle mimarisi güvenlik analizinin temelinde yer almalıdır.


Kontratlar arası çağrı zincirleri, bir uygulamanın başka bir kontratı tetiklemesi ardından meydana gelen karmaşık ilişkilerdir. Bu ağlarda tek bir zafiyet, bütün yapıyı etkileyebilir. Etkileşim şeması çıkarılarak hangi işlevlerin kimleri tetiklediği açık olarak izlenebilir. Temsilci çağrısı yazımı özellikle tehlikeli bir durumdur. Dış kontratın güvenilirliği doğrulanmadan çağrı yapılmamalıdır. Kontrat bağlılıkları çıkarıldığında dizinin savunmasız noktaları kolayca görülür. Kontrol devirleri zincir boyunca titizlikle denetlenmelidir. Güvenlik uzmanları, çağrı sırasında değişebilen bakiyeyi derinlemesine takip etmelidir. Bu adımlar bir arada ele alındığında, güvenli bir yapı ortaya çıkar.


Merkezi olmayan uygulamaların korunmasında gaz tüketimi kaynaklı hizmet reddi açıkları çoğu zaman gözden kaçar. Yinelemeli yapılar içinde sınırsız depolama okumaları yapıldığında işlem maliyeti beklenmedik biçimde artar. Dışarıdan müdahale eden taraf bu durumu bilinçli biçimde tetikleyebilir. Güvenlik uzmanının ilk adımı, her döngünün üst sınırını açıkça belirlemektir. Eşleme büyüklüğüne bağlı işlemler özellikle incelenmelidir. Bir kullanıcının kayıt sayısını artırarak diğer kullanıcıların işlemlerini kilitlemesi mümkün olabilir. Otomatik tarayıcılar bu kalıpları düzenli olarak işaretler. Yine de araç çıktısı tek başına güvenilir sayılmamalıdır. Simülasyon ortamında yük senaryoları çalıştırmak, gerçek maliyeti somut hale getirir. Gaz limitine sınırda işlemler, sözleşmenin erişilebilirliğini doğrudan etkiler. Yazılım mühendisleri bu riski tasarım sürecinde değerlendirmelidir. Sonuç olarak, gaz tüketimi merkezli bir inceleme, hizmet reddi açıklarını büyük oranda azaltır.


Tx.origin kullanımına dayalı yetkilendirme, merkezi olmayan sistem geliştirmede en çok tartışılan güvenlik sorunlarından biridir. Bu değer, işlemi ilk gönderen dış hesabı gösterir ve ara sözleşmeler yoluyla geçse bile aynı kalır. Zararlı bir sözleşme, kullanıcıyı tuzağa düşürerek bir işlem imzalatabilir. Söz konusu çağrı içinde hedef sözleşmeye yönelik ayrıcalıklı bir çağrı saklanabilir. Güvenlik incelemesi sırasında bu kalıbın kontrol edilmesi gerekir. Yetki doğrulaması için çağıran adres kullanmak çoğu zaman daha güvenlidir. Geliştirici ekipleri bu farkı açık biçimde kavramalıdır. Miras projelerde yapılan ihmaller sık görülür. İnceleme sırasında yetkilendirme mantığı tek tek incelenmeli. Senaryo testleri ara sözleşme zincirlerini da kapsamalıdır. Böylece tx.origin tabanlı açıklar erken tespit.


Blokzincir üzerinde rastgelelik üretimi, temelde zorlu bir problemdir. Zincir deterministik olduğundan, zincir verileri gibi değerler öngörülebilir olabilir. Ağ katılımcısı bu değerleri referans alarak sonucu baştan hesaplayabilir. Çekiliş sözleşmelerinde bu durum ciddi kayıplara yol açar. Denetçi öncelikle rastgelelik kaynağını sorgulamalıdır. Zaman damgası gibi girdiler tek başına kullanılıyorsa açık yüksektir. Doğrulanabilir rastgelelik servisi kullanımı çoğu zaman daha sağlamdır. İki aşamalı şemalar da seçenek olarak değerlendirilebilir. Simülasyon sırasında sonuçların istatistiksel yapısı incelenmelidir. Tahmin edilebilirlik tespiti tasarım aşamasında yapıldığında maliyet kısalır. Böylece tesadüfi sonuçların güvenilirliği korunur.


Proxy tabanlı mimari desenleri, sözleşme mantığını verileri kaybetmeden güncelleme imkânı sunar. Ancak depolama düzeni hatalı olduğunda ciddi çakışmalar yaşanabilir. Vekil sözleşmenin depolama alanı ile mantık sözleşmenin alan düzeni tamamen farklıysa veriler karışır. Yeni sürümde değişken sırasının değiştirilmesi sık bu soruna yol açar. Analistler depolama düzenini satır satır olarak incelemelidir. Sürüm değişimi öncesinde slot haritası kontrol edilmelidir. Boşluk tutucu kullanımı gelecekteki değişikliklere esneklik sağlar. İlk kurulum fonksiyonlarının tekrar çağrılmasını engelleyen mekanizmalar da önemlidir. Dikkatli hazırlık ile depolama çakışmaları büyük ölçüde önlenebilir.


Front-running ve MEV saldırıları, dağıtık ağ ekosisteminde sürekli bir tehdit oluşturur. Madenciler işlemleri sıralama gücüne sahip olduğundan, bekleyen işlemler kolayca manipüle edilebilir. Ağ katılımcısı büyük bir alım işlemini tespit edip önüne geçer. Oran etkisi sağlayarak kullanıcıdan değer koparır. Çift taraflı saldırılar bu dinamiğin en yaygın örneğidir. Analiz sürecinde, slipaj limiti gibi parametreler titizlikle değerlendirilmelidir. Gizli mempool gibi çözümler riski düşürebilir. Gecikme mekanizması tasarımları da faydalı olabilir. Protokol tasarımcıları MEV yüzeyini belgelemeli ve test yapmalıdır. Böylece kullanıcılar gizli kayıplardan korunabilir.


Akıllı kontrat açıklarının başlıca bilgileri


Akıllı kontratlar dağıtık defter üzerinde çalışan ve şartlar sağlandığında doğrudan yürüyen programlardır. Açık yönetimi açısından bakıldığında bu kodların silinemez olması hem güçlü yan hem de risk anlamına gelir. Bu nedenle güvenlik analizi sürecinin temel aşaması kodun mantığını tam olarak anlamaktır. Tekrar çağrı gibi bilinen zafiyetler, durum değişikliği sırasının yanlış olmasından doğar. Yetkilendirme doğrulamaları eksik olduğunda ise herkes kritik fonksiyonları çağırabilir. Tespit çalışmalarında kod taraması ile uzman gözü birlikte kullanıldığında en güvenilir sonuçlar elde edilir.


Akıllı sözleşme açıklarında tekrarlanan yapılan hatalar


Kod yazarları sıklıkla benzer hataları farkında olmadan tekrarlar. Sayısal sınır aşımı hataları, eski sürüm sürümlerinde görülen olsa da hâlâ atlanabilir. Zaman damgası gibi çevresel değerlerine gereğinden çok karar vermek de blok üreticilerinin manipülasyonuna açık kapı bırakır. Veri doğrulamasının atlanması ise öngörülmemiş durumların yaşanmasına neden olur. Deneme kapsamının dar tutulması, üretim ortamı öncesinde hataların yakalanmasını zorlaştırır. Bu çeşit hataların ana kısmı ciddi bir audit süreciyle önlenebilir.


Deneyimli ipuçları ile açıkları ayırt etme

Deneyimli analistler genellikle sözleşmeyi saldırgan gözüyle okumayı öğütler. Bütün dış çağrıdan sonra bakiyenin hangi biçimde değiştiğini sormak çok etkili yöntemdir. Kısıt fonksiyonu yapılarının eksiksiz kullanılıp kullanılmadığına dikkat etmek gerekir. Simülasyon üzerinde saldırı senaryolarını denemek hem riskten uzak hem de verimli bir yaklaşımdır. Saptanan her zafiyetin ağırlığı ve ihtimali ayrı ayrı değerlendirilmelidir. Raporlama aşamasında net düzeltmeler sunmak geliştiricinin işini ciddi oranda kolaylaştırır.


Akıllı sözleşme denetiminde harcama ve finansman planlaması


Profesyonel bir denetim hizmetinin maliyeti, programın satır sayısına ve uzmanın uzmanlık düzeyine göre geniş farklılıklar gösterebilir. Basit bir token sözleşmesi için uygun bir bütçe ayrılabilirken, Merkeziyetsiz finans protokoller için önemli ölçüde yüksek meblağlar söz konusu olabilir. İlk aşamasında yapılan test genellikle yayın sonrası yaşanacak zarar riskinden belirgin biçimde bir harcamadır. Tekrarlı denetimler, değişiklik yapıldığında ilave ödeme gerektirir. Bütçe planlanırken tek başına ilk denetim ücretini değil, sürdürülebilir izleme ve acil müdahale ödemelerini de hesaba katmak gerekir.


Denetim zamanlaması ve dönemsel etkiler


İnceleme sırası projenin yaşam döngüsünde belirleyici bir yer oynar. Kod dondurulmadan önce yapılan erken incelemeler, mimari sorunları kolayca ortaya çıkarır. Canlıya alma öncesinde yapılan nihai denetim ise düzeltmesi zor hataların engellenmesi için olmazsa olmazdır. Piyasa hareketliliğinin yüksek olduğu zamanlarda saldırı girişimlerinin arttığı bilinmektedir. Ağ bakımı dönemlerinde personelin ulaşılabilirliği azalabileceğinden, plan buna göre oluşturulmalıdır.


Akıllı sözleşme açıkları hakkında sık sorulan soru başlıkları

Dijital sözleşme açıklarını tamamen sıfırlamak pratikte olabilir mi sorusunun cevabı genellikle kesin olarak hayır olarak belirtilir. İnceleme ile olasılığın önemli oranda azaltılabileceği, bununla birlikte hatasızlık vaadinin yanıltıcı olduğu söylenebilir. Bug bounty programları de denetime ikinci katman olarak düşünülebilir. Ağ üyeleri için temel tavsiye, inceleme sonuçlarını okumak ve yalnızca tek bir raporla yetinmemek olarak bilinmektedir.

Yanıtla
Bu konuda daha once hic bu kadar bilgilendirici bir anlatim okumamistim.
Yanıtla
Acil durum duraklatma mekanizmalarının tasarımı ile ilgili guclu bir sentez olmus, eline saglik.
Yanıtla
Tesekkurler, ise yarar bir mukayese.
Yanıtla
Acil durum duraklatma mekanizmalarının tasarımı konusundaki bu kapsayici yaklasim cok hosuma gitti.
Yanıtla
Sade ama etkili. Bu tur icerikler forumu zenginlestirir.
Yanıtla
Tesekkurler, faydali bir uygulama.
Yanıtla
Bayagi guzel bir paylasim, arsivledim.
Yanıtla
Bu konuda daha once hic bu kadar anlasilir bir calisma okumamistim.
Yanıtla

Forumdan Konular