Giriş
Son üç yılda, DeFi ekosisteminde çeşitli güvenlik olayları gözlemledik. Bu tehditlere karşı koymak için topluluk tarafından kod merkezli yöntemler, örneğin statik kod denetimi, akıllı sözleşme tarama araçları veya dinamik bulanıklaştırma (fuzzing) gibi yaklaşımlar benimsenmektedir. Bu yöntemler etkili olduğunu kanıtlamış olsa da, kod merkezli yaklaşımın tek başına güvenlik sorunlarını çözemeyeceğini ve kullanıcıların varlıklarını koruyamayacağını savunuyoruz. Örneğin, birden fazla saygın kod denetim şirketi tarafından denetlenmiş güvenlik açığı bulunan sözleşmelerin mevcut olduğu çeşitli vakalar bulunmaktadır.
Mevcut kod merkezli yaklaşımların yanı sıra, tehditlere karşı koymak için daha proaktif bir tehdit önleme çözümünün var olması gerektiğine inanıyoruz. Bu fikri 2021'in sonlarında dahili olarak değerlendirdik ve 2022'nin başında IronDome adında bir sistem geliştirdik. O tarihten bu yana sistemi BlockSec bünyesinde dahili olarak kullandık. 2022 yılında IronDome, birden fazla saldırıyı başarıyla engelledi ve Nisan 2022'de Saddle Finance'a yönelik istismarı önleyip 3,8 Milyon USD kurtaran vaka da dahil olmak üzere 5 milyon USD'den fazla kullanıcı varlığını korudu.
Bu blog yazısında, IronDome'un sistem mimarisini ve başarı hikayelerini ayrıntılı olarak ele alacağız. Ayrıca sistemimizin sınırlılıklarını ve tehdit önlemenin gelecekteki yönüne ilişkin öngörülerimizi de tartışacağız.
Üst Düzey Sistem Mimarisi
IronDome'un temel fikri, Ethereum'un bekleyen işlem havuzunu dinlemek, saldırı işlemini işlem ön-çalıştırma sistemimiz Mopsus aracılığıyla tespit etmek ve savunmasız varlıkları güvenli hesabımıza taşıyacak bir kurtarma işlemini otomatik olarak sentezleyerek saldırıyı engellemek ve FlashBot aracılığıyla saldırı işleminin önüne geçmektir. Aşağıdaki şekil bu mimariyi göstermektedir.

Bellek Havuzu İzleme
IronDome, özelleştirilmiş Geth istemcimiz aracılığıyla bellek havuzundaki bekleyen işlemleri dinler. Kritik nokta, sistemimizin işlemleri zamanında ve mümkün olduğunca fazla sayıda dinlemesidir.
Saldırı Tespiti
Her bekleyen işlem, saldırı tespit modülüne beslenecektir. Bu işlemler henüz zincirde olmadığından, söz konusu işlemleri önceden çalıştırmak ve işlemin çalışma zamanı durumları ile sonuçlarına dayanarak saldırı (kötü amaçlı) işlemleri tespit etmek için işlem ön-çalıştırma motorumuz Mopsus'tan yararlanacağız.
Kurtarma İşlemi Sentezleme
Saldırı işlemi için IronDome, otomatik olarak bir kurtarma işlemi ve yardımcı sözleşmeler sentezleyecektir. Kurtarma işlemi, savunmasız sözleşmeyi "istismar etmek" için saldırı işlemine benzer bir yöntem izleyecek; ancak kârı saldırganın kontrolündeki hesap yerine güvenli hesabımıza (çoklu imza hesabı) aktaracaktır. Örneğin, saldırı sözleşmelerine benzer yardımcı sözleşmeleri otomatik olarak dağıtabilir, ancak token transfer adresini güvenli hesabımızla değiştirebiliriz. Elbette, bazı saldırı işlemleri için daha karmaşık yaklaşımların kullanılması gerekmektedir.
Kurtarma işlemi için, saldırı işleminden önce zincire alınmasını sağlamamız gerekmektedir. Mevcut sistemde bu amaçla FlashBot'tan yararlanıyoruz. Öncelikle, kurtarma işlemimizin başkaları tarafından dinlenememesini sağlamalıyız. İkinci olarak, kurtarma işlemimizin bloğun başına geçmesini sağlamak için çeşitli stratejiler uygulayabiliriz.
Temsili Başarı Hikayeleri
IronDome'u 2022'nin başında kullanıma aldık. Sistem, birden fazla saldırıyı başarıyla tespit edip engelledi. Bu tablo, başarı vakalarından bazılarını özetlemektedir.
Aşağıdaki zaman çizelgesi, sistemimizin Nisan 2022'nin sonunda Saddle Finance için 3,8 milyon USD'yi nasıl kurtardığını göstermektedir. Özellikle, sistemimiz saldırı işlemini tespit etme ve kurtarma işlemini otomatik olarak sentezleme sürecinin tamamını bir saniyeden kısa sürede tamamladı. Kurtarılan tüm fonları Saddle Finance'a iade ettik. Orijinal hack işlemi ve kurtarma işlemimiz için bağlantıya tıklayın.
- Orijinal hack işlemi: https://etherscan.io/tx/0xd9bc83688e8eddde39bd9073c363665b1419d475dd4498e81b52cce41d7c76b3
- Kurtarma işlemimiz: https://etherscan.io/tx/0x9549c0cb48ec5a5a2c4703cbbbbea5638028b2d8c8adc103220ef1c7fe5e99a3
Etik Değerlendirme
Sistemimizde güvenlik etiğini ciddiye alıyoruz. Sistemimiz kullanıcıların varlıklarını kurtarmak amacıyla savunmasız sözleşmeyi "istismar ediyor" olsa da, bu eylemin etik bir sorun teşkil etmediğine inanıyoruz.
- Birincisi, sistemimiz savunmasız sözleşmeyi aktif olarak istismar etmemektedir. Yalnızca bekleyen bir saldırı işlemi tespit ettiğinde tepki verir ve otomatik olarak benzer bir işlem sentezler (saldırı işlemini engellemek için). İlk etapta saldırı işlemini hiçbir zaman kendisi oluşturmaz.
- İkincisi, etkilenen protokolle aktif olarak iletişime geçiyor ve kurtarılan fonları iade ediyoruz.
Sınırlılıklar
IronDome etkinliğini kanıtlamış olsa da, sistemin hâlâ bazı sınırlılıkları bulunmaktadır. Aşağıda bu sınırlılıkları açıklayacak ve proaktif tehdit önlemede ileri yönleri tartışacağız.
- Birincisi, sistemimiz bellek havuzundaki bekleyen işlemleri dinlemektedir. Saldırgan, FlashBot gibi özel bir işlem hizmeti kullanırsa, saldırı işlemi bellek havuzunda yer almayacak ve dolayısıyla tespit edilemeyecektir. Bu sorunu çözmek için, saldırı işlemini tespit edip engellemek amacıyla özel işlem hizmet sağlayıcılarıyla iş birliği yapılması çağrısında bulunuyoruz (sistemimize benzer şekilde kötü amaçlı işlemleri tespit eden bir yöntem kullanarak). Bunun yanı sıra, sistemimiz bekleyen havuzdaki saldırı işlemini engelleyemese bile, zincirdeki saldırı işlemini tespit edebilir ve daha fazla saldırı işlemini önlemek için bir kurtarma işlemi gönderebilir. Birçok durumda birden fazla saldırı işlemi bulunduğunu unutmayın.
- İkincisi, güvenlik bir kol güreşidir. Saldırganların kurtarma işlemini sentezleme önündeki engeli yükselttiği vakalar gördük. Örneğin, bir saldırı işlemini birden fazla işleme bölebilir ve kâr adresini gizleyebilirler. Bu sorunlar çözülebilir olsa da, bu kol güreşinin durmayacağına inanıyoruz. Bu sorunları çözmek için çalışmalar yürütüyoruz.
- Üçüncüsü, kurtarma işleminin saldırı işleminden önce zincire alınmasını nasıl sağlayacağımız hâlâ açık bir sorudur. Bazı teklif stratejileri, kurtarma işlemimizin bloğa dahil edilme şansını artırabilse de, %100 garanti veremeyiz.
Referanslar ve İleri Okuma
[1] Blok Zinciri Saldırısı Nasıl "Engellenebilir" Hale Getirilir | BlockSec tarafından
[2] The Block: Stablecoin DEX Saddle Finance 10 milyon dolar için hacklendi
[3] Lend İstismar Sonrası Analiz — HomeCoin (mirror.xyz)
[5] FSWAP Twitter'da: "FSWAP likidite sürecindeki saldırının ayrıntıları" / Twitter
[6] https://forta.org/blog/blocksec-and-forta-work-to-secure-web3-beyond-audits/
[7] https://forta.org/blog/the-future-of-threat-prevention-in-web3/



