Back to Blog

BlockSec'in 2023 Yılında DeFi Protokol Güvenliğine İlişkin Geriye Dönük Değerlendirmesi

January 21, 2024
9 min read

2023'ün büyük bölümü DeFi protokolleri için bir ayı piyasası olmasına rağmen, ekosistem protokol açıkları nedeniyle ciddi saldırılardan etkilenmeye devam etmektedir. Özellikle, Euler Finance saldırısında yaklaşık 200 milyon dolarlık önemli bir kayıp yaşandı. Bu arada, derleyicilerden kaynaklanan açıklar ve yaygın olarak kullanılan standartlar arasındaki uyumsuzluklar gibi DeFi güvenlik olaylarında yeni eğilimler ortaya çıktı. Bu tehditlere karşı koymak için topluluk, izleme ve tehdit istihbaratı da dahil olmak üzere çeşitli çözümler önerdi. Bu önlemlerin bir kısmı etkili olduğunu kanıtlamış olsa da, bu çabaların geçici çözümler olduğuna inanıyoruz. Toplulukta hâlâ DeFi protokollerini korumaya yardımcı olacak sistematik bir yaklaşım ve rehberlik eksikliği bulunmaktadır.

Bu blog yazısında, önce DeFi protokol güvenliğindeki yeni eğilimleri temsili vakalarla sunacak, ardından mevcut çözümleri ve bunların sınırlılıklarını ele alacağız. Son olarak, BlockSec'in DeFi protokollerinin nasıl güvence altına alınacağına dair bakış açısını paylaşacağız.

0x0. DeFi Protokol Güvenliğinde Yeni Eğilimler

Eğilim-I: Köklü protokoller saldırıya uğradı

2023 yılında, Curve, Balancer ve KyberSwap dahil olmak üzere bazı köklü ve saygın protokoller ele geçirildi. Aşağıdaki tablo, bu saygın protokollerin lansman tarihlerini ve saldırıya uğradıkları zamanları göstermektedir. Kullanılan açıkların, protokollerin ilk lansmanından sonra gerçekleştirilen güncellemelerde ortaya çıkmış olabileceğini belirtmek önemlidir. Bu nedenle, tabloda belirtilen süreler yaklaşık olup söz konusu zaman dilimi hakkında genel bir fikir vermek amacıyla sunulmaktadır.

Protokol Lansman Tarihi Güvenlik Olayı Tarihi Süre
kyberSwap 2017 Kasım, 2023 ~ 6 yıl
Curve 2020 Temmuz, 2023 ~ 3 yıl
Balancer 2020 Ağustos, 2023 ~ 3 yıl

Yukarıdakilerin yanı sıra, Aave V2, Kasım ayında topluluktan gelen bir açık raporu üzerine acil olarak duraklatıldı. Protokol saldırıya uğramamış olsa da bu durum, köklü protokollere ilişkin güvenlik endişelerini yeniden gündeme getirdi.

Bu protokoller, dahili olarak uygulanan birden fazla güvenlik önlemiyle birlikte çeşitli denetimlerden geçmiştir. Aşağıdaki tablolar, her protokol için denetçileri listelemektedir. Bir denetçinin yalnızca protokollerdeki bazı akıllı sözleşmeleri denetlemiş olabileceğini belirtmek gerekir. Tabloda adı geçen denetçiler, açık bulunan akıllı sözleşmeleri denetleyenlerle mutlaka örtüşmeyebilir. Bu tablonun amacı, protokollerin güvenliğe kayda değer kaynaklar yatırdığını göstermektir.

Protokol Denetçiler Bağlantı
kyberSwap ChainSecurity, Sherlock, Hacken Denetimler - KyberSwap Belgeleri
Curve TrailOfBits, MixBytes, Quantstamp, ChainSecurity Denetimler - Curve Belgeleri
Balancer OpenZeppelin, TrailOfBits, Certora, ABDK Güvenlik | Balancer

Neyse ki, mağdurlar ilgili protokoller tarafından uygulanan planlar aracılığıyla kayıpları için tazmin edildi. Örneğin, Kyber Network, etkilenen kullanıcıları KyberSwap Hazinesi aracılığıyla tazmin etmeyi planladığını duyurdu. Benzer şekilde, Curve topluluğu, LP'lerin finansal kayıplarını geri ödemek amacıyla bir öneriyi oylamayla kabul etti. Bu önlemler, önemli bir maliyet gerektirse de DeFi topluluğunun güvenini yeniden tesis etmeye yönelik adımlardır.

Eğilim-II: Yeni Saldırı Vektörü Türleri Ortaya Çıktı

Derleyici hataları ve uyumsuz üçüncü taraf kütüphanelerini içeren saldırı vektörleri DeFi alanında gerçekten de ortaya çıkmıştır. Örneğin, Curve güvenlik olayının temel nedeni, Vyper derleyicilerinin belirli sürümlerindeki hatalar olarak tespit edildi. Bunun yanı sıra, bazı protokoller thirdweb gibi popüler üçüncü taraf geliştirme kütüphanelerinde uygulandığında, yaygın olarak benimsenen iki standart olan ERC2771 ve Multicall arasındaki uyumsuzluktan kaynaklanan saldırılara maruz kaldı. Bu karmaşık teknik zorluklar, kapsamlı güvenlik uygulamalarının önemini ve yeni ile öngörülemeyen açıklara karşı korunmak için güvenlik önlemlerinin sürekli geliştirilmesi gerektiğini vurgulamaktadır.

Derleyici Hataları

1983 yılında Ken Thompson, Turing Ödülü konuşmasında "Güvene Güvenmek Üzerine Düşünceler" başlıklı bir konuşma yaptı. Bu konuşmada, bir programa arka kapı eklemek için bir C derleyicisini değiştirme adımlarını anlattı; bu durum beklenmedik sonuçlara yol açabilir. Konuşmada aktarılan fikir topluluk tarafından olumlu karşılandı. Ancak pratikte kötü amaçlı derleyicilere ilişkin gerçek vakalar oldukça nadir görülmektedir (iyi bilinen XcodeGhost güvenlik olayları hariç). Güvenlik modelini kötü amaçlı derleyicilerden iyi niyetli ancak beklenmedik derleyici davranışlarına genişletsek bile, ciddi finansal kayıplara yol açan kamuya açık vakalar hâlâ nadir kalmaktadır.

Vyper derleyici hatası nedeniyle yaşanan Curve güvenlik olayı, yaklaşık 70 milyon dolar kayba yol açtığı bilinen kamuya açık bir vakadır (bir kısmı iade edildi ve gerçek kayıplar yaklaşık 23 milyon dolar civarındadır). Vyper derleyici sürümleri 0.2.15, 0.2.16 ve 0.3.0, yeniden giriş koruyucusunu etkisiz hale getirecek hatalar içermektedir. Bu, saldırganın yeniden girişten yararlanarak saldırı gerçekleştirebileceği anlamına gelir; oysa geliştirici yeniden girişi önlemek için kodu eklediğinden, derleyici doğru bayt kodunu üretmiş olsaydı bu durum gerçekleşmemesi gerekirdi.

Saldırı Tx: 0x2e7dc8b2fb7e25fd00ed9565dcc0ad4546363171d5e00f196d48103983ae477c

Yaygın Standartların Uyumsuzluğu

DeFi bileşilebilirliği, farklı akıllı sözleşmelerin ve standartların birbirine bağlanarak güçlü uygulamalar oluşturmasına olanak tanır. Ancak bu durum potansiyel uyumluluk sorunlarını da beraberinde getirir. Örneğin, popüler standartları bir araya getirmek, her akıllı sözleşme tek başına sorunsuz çalışsa bile yeni güvenlik açıklarına yol açabilir.

Böyle bir uyumsuzluk sorununun bir örneği, ERC-2771 ve Multicall standartlarını içermektedir. ERC-2771, güvenilir bir iletici aracılığıyla meta işlemleri almak için bir arayüz tanımlarken, Multicall tek bir işlem içinde birden fazla fonksiyon çağrısını toplu olarak gerçekleştirme mekanizmasıdır. Sorun, güvenilir bir ileticiden iletilen bir çağrının gerçek çağrı adresini calldata'dan almasıyla ortaya çıkmakta ve bu durum bir saldırgan tarafından manipüle edilebilmektedir. Her standart tek başına kusursuz çalışsa da birlikte kullanımları belirli varsayımları bozabilir ve öngörülemeyen sorunlara yol açabilir. Daha fazla ayrıntı için OpenZeppelin'in blog yazısına bakınız.

ERC-2771 ve Multicall standartlarının her ikisinin de OpenZeppelin ve thirdweb gibi popüler geliştirme kütüphanelerinde uygulandığını not etmek gerekir. Geliştiriciler genellikle bu iyi bilinen kod tabanlarına güvenir ve bunları kod denetiminin dışında tutabilir. Bu uygulama, protokollerin kendileri doğası gereği açık olmasa bile yeni güvenlik açıklarına yol açabilir.

Eğilim-III: Eski Açıkların Yeni Güvenlik Etkileri Var

Hassasiyet kaybı, hesaplamalar sırasında hassasiyet ve doğruluğun azalmasını ifade eder; bu durum genellikle sonucun beklenenden daha az ondalık basamağa sahip olmasından kaynaklanır. Statik analizörler hassasiyet kaybı sorunlarını kolayca tespit edebilse de bunların varlığı tek başına bir güvenlik açığına işaret etmez. Ancak hassasiyet kaybı ciddi sonuçlara yol açabiliyorsa bu bir açık olarak değerlendirilir. Bununla birlikte, hassasiyet kaybının etkisini değerlendirmek genellikle güçtür; çünkü protokolün anlambilimini ve kodun belirli bağlamını derinlemesine anlamayı gerektirir.

Compound v2 ve Aave v2 gibi önde gelen protokollerin çatallamaları olan protokolleri hedef alan çeşitli saldırılar gerçekleşti; bu protokoller bilinen hassasiyet sorunlarına karşı savunmasız olabilir. Özellikle, Compound v2'nin çatallamaları olan Hundred Finance ve Channels Finance olayları; yanlış başlatılmış piyasalar ile hassasiyet kaybı sorunlarından kaynaklandı. Bu sorunlar, saldırganların aşağı yuvarlama hataları nedeniyle azaltılmış sayıda token ile teminatı nakde çevirmesine olanak tanıdı.

Saldırı Tx: 0x3f7de75566289224c5e95a35ee8717ddd6928500227a05c1d83838844c60491d

0x1. Mevcut Çözümler

Köklü DeFi protokollerinin güvenlik önlemlerine önemli ölçüde yatırım yaptığı ve birden fazla güvenlik denetimi turuna tabi tutulduğu doğrudur. Bununla birlikte, bu protokollerin yönettiği devasa kullanıcı varlıkları göz önüne alındığında, protokol güvenliğinin kritik önemi üzerinde durmak son derece haklıdır. Kod denetiminin ötesinde, tehdit izleme gibi ek çözümler de önerilmektedir. Şimdi bu çözümlerin mevcut durumunu ve sınırlılıklarını ele alalım.

Kod Denetimi

Burada tanımlandığı şekliyle kod denetimi, DeFi protokollerinin güvenlik değerlendirmesinde gerçekten kritik bir süreçtir ve genellikle bir protokol yayına geçmeden önce gerçekleştirilir. Manuel kod incelemesi, statik analiz, dinamik bulanıklık testi ve biçimsel doğrulama gibi çeşitli teknikleri kapsar. Ayrıca bu süreç bir (veya birkaç) denetim şirketi tarafından ya da topluluk odaklı bir yöntemle yürütülebilir. Ancak kod denetiminin kabul edilmesi gereken belirli sınırlılıkları bulunmaktadır.

  • Birincisi, kod denetimi öncelikle protokol devreye alınmadan önce gerçekleştirilir. Protokol yayına girdikten sonra denetim süreci genellikle sona erer ve devam eden güvenlik, ilk kod denetimi tarafından sürekli olarak değerlendirilemez. Bu durum, lansmanın ardından ortaya çıkabilecek açık veya sorunların ilk kod denetimi tarafından tespit edilemeyebileceği anlamına gelir.

  • İkincisi, kod denetimi genellikle karmaşık etkileşimler ve istismar edilmesi için belirli durumlar gerektiren ince açıkları tespit etmekte zorlanır. DeFi protokollerinin bileşilebilirliği, esnekliği ve entegrasyonu destekleyen bir özellik olsa da program alanını önemli ölçüde genişletir ve program durumlarının tüm kapsamını keşfetmekte güçlük çeken insan inceleyiciler ile statik analizörler için ciddi zorluklar yaratır. Dinamik bulanıklık testi faydalı olabilse de işlem ve durum bağımlılıklarıyla sınırlıdır. Hataları tespit edebilen DeFi protokolüne özgü bulanıklık test orakllarının yokluğu, hem endüstri hem de akademi için açık bir araştırma sorusu olmaya devam eden önemli bir boşluktur.

  • Üçüncüsü, nitelikli kod denetçisi sıkıntısı kısa sürede çözülemez; çünkü yetenek havuzu sınırlıdır. Kod denetimi, siber güvenlik, finans ve matematik bilgisi gerektiren disiplinlerarası bir görevdir. Şu anda yalnızca sınırlı sayıda üniversite bu özel alanda eğitim sunmaktadır; bu durum, kaliteli kod denetimleri için yüksek maliyetlere ve uzun bekleme sürelerine yol açmaktadır. Sonuç olarak, protokoller iş zaman çizelgelerini korumak için kod denetimi yapılmadan yayına girebilir.

  • Dördüncüsü, bir kod denetiminin kalitesini değerlendirmek kullanıcılar açısından güçtür. Kullanıcılar varlıklarını protokole emanet ettiklerinden protokol güvenliğinde en çok çıkarı olan taraf olmasına karşın, çoğu bir kod denetiminin kapsamlılığını değerlendirebilecek konumda değildir. Bu durum, yalnızca görünüş için yürütülen denetimlere yol açabilir; bu da hem protokolün hem de kullanıcı varlıklarının güvenliğini nihayetinde tehlikeye atabilir.

Sonuç olarak, kod denetimi protokollerin güvence altına alınmasında değerli bir araç olsa da, bu işlemin sahip olduğu doğal sınırlılıklar onun tek güvenlik çözümü olamayacağı anlamına gelir.

Tehdit İzleme

Tehdit izlemenin temel fikri, şüpheli işlemleri izlemek ve tespit etmektir. Bu durum güvenliği gerçekten artırır; ancak etkili olabilmesi için aşağıdaki endişelerin giderilmesi gerekmektedir.

  • Birincisi, tehdit izleme sistemlerinin doğruluğu kritik öneme sahiptir. Bu sistemler, hem yanlış pozitifleri hem de yanlış negatifleri en aza indirerek bir denge kurmalıdır. Yüksek oranda yanlış pozitif, kullanıcıların veya güvenlik ekiplerinin uyarılara duyarsızlaşmasına ve gerçek tehditleri gözden kaçırmasına yol açabilecek sahte alarmlar üretebilir.

  • İkincisi, tehdit izleme sistemlerinin mevcut durumu genellikle şüpheli işlemlerin tespitinde harekete geçmek için manuel onay gerektirmektedir. Bu büyük ölçüde yukarıda bahsedilen yüksek yanlış pozitif oranı sorunuyla ilgilidir. Manuel müdahalelerin reaktif yapısı sorunludur; çünkü blok zinciri ve DeFi protokollerinin hızlı ortamında saldırılar, manuel müdahaleler uygulanmadan önce kaynakları hızla tüketebilir. Bu nedenle, bir tehdit izleme sisteminin değeri, saldırıları önlemek veya azaltmak için zamanında otomatik eylemler sağlayamazsa önemli ölçüde azalır.

  • Ayrıca, tehdit izleme kalıcı olmalı ve ortaya çıkan yeni tehditlere uyum sağlayabilmelidir.

0x2. BlockSec'in Bakış Açısı

Protokol güvenliğinin, bir protokolün yaşam döngüsünün farklı aşamalarında çoklu savunmaya ihtiyaç duyduğunu düşünüyoruz; bu aşamalar arasında yüksek kaliteli kod denetimi, lansman öncesi güvenlik testi, saldırı tespiti ve engelleme ile lansman sonrası güvenlik olayı müdahalesi yer almaktadır. Ayrıca topluluk tarafından göz ardı edilen bazı bakış açılarını da vurgulamak istiyoruz.

  • Birincisi, küçük herhangi bir kod veya yapılandırma yükseltmesi için kapsamlı güvenlik testinin gerekli olduğunu düşünüyoruz. Bu tür bir test, kullanıcı verilerinin yapay durumları yerine protokolün gerçek durumları üzerinde gerçekleştirilmelidir. Daha önce de ele aldığımız üzere, protokol durumları karmaşık protokollerdeki açıkları tespit etmek için kritik öneme sahiptir.

  • İkincisi, manuel müdahalenin yanı sıra saldırılara karşı otomatik bir yanıt sistemi gerekmektedir. Bu, son derece düşük yanlış pozitif ve neredeyse sıfır yanlış negatif oranlarıyla doğru ve hızlı bir saldırı tespit sistemini gerektirmektedir. Örneğin, otomatik bir yanıt sistemi devreye alınırsa milyonlarca kullanıcının varlığı kurtarılabilir.

  • Üçüncüsü, uygun bir güvenlik olayı müdahale prosedürü oluşturulmalı ve kapsamlı güvenlik hizmetleri sunabilecek güvenlik ortaklarına ihtiyaç duyulmaktadır. Örneğin, bir istismar gerçekleştiğinde, ortak; bir savaş odası oluşturma sürecine yardımcı olabilir, atılacak adımları önerebilir, güvenlik yamalarını inceleme ve denetleme konusunda destek sağlayabilir, fon akışlarını takip edebilir ve benzeri işlemleri gerçekleştirebilir. Yearn finance makalesi, istismarların nasıl yönetileceği konusunda iyi bir kaynaktır.

BlockSec Tarafından Sağlanan Tam Yığın Güvenlik Hizmeti

Edinilen bu içgörülere dayanarak BlockSec, protokollere tam yığın güvenlik hizmetleri sunmaktadır.

  • Phalcon: Saldırı Tespit ve Engelleme Sistemi. 20'den fazla saldırıyı engellemek ve yaklaşık 14 milyon USD kurtarmak için savaş testi görmüş tekniklerle, BlockSec Phalcon protokolün saldırı sözleşmelerini ve işlemlerini (hatta hacker saldırı işlemlerini başlatmadan önce) aktif olarak izlemesine yardımcı olabilir. Neredeyse %99,99 hassasiyete sahip saldırı tespit motoru ve kullanıcı tarafından özelleştirilebilen politikalar sayesinde BlockSec Phalcon, yanlış pozitif ve negatifleri dengeleyerek otomatik savunma mekanizmasını etkinleştirir.
  • Güvenlik Olayı Müdahalesi. BlockSec, DeFi saldırılarında saldırı kök nedenlerini ve açıklarını tespit edebilen her zaman en hızlı (olmasa da ilk) güvenlik sağlayıcısıdır. Protokollerin güvenlik yamalarını incelemesine (Telcoin), beyaz fon kurtarma işlemleri sağlamasına [örn. AnySwap, TransitSwap, Paraspace, Loot], saldırı fon akışlarını takip etmesine ve Hopeland saldırganının kimliğini tespit etmesine yardımcı olabiliriz.

0x3. Sonuç

2023 yılında, DeFi protokol güvenliğinde yeni eğilimler gözlemledik ve pek çok köklü protokol saldırıya uğradı. Teknik açıdan protokol güvenliğini sağlamanın karmaşık ve süregelen bir zorluk olduğunu biliyoruz. Yalnızca kod denetimi veya izleme sistemlerini benimsemek artık yeterli değildir. Bu unsurları bir araya getiren ve bir protokolün tüm yaşam döngüsü boyunca işleyen tam yığın bir çözüme ihtiyacımız var.

Sonuç olarak BlockSec'in DeFi protokol güvenliğine yönelik bütüncül yaklaşımı; son teknoloji denetim teknikleri, otomatik saldırı savunma araçları ve duyarlı olay yönetimini bir araya getirerek, 2024 yılında DeFi alanındaki gelişen tehditlere karşı güvenlik önlemlerini güçlendirmek ve kullanıcı varlıklarını korumak isteyen protokoller için lider bir ortak konumuna gelmesini sağlamaktadır.