SharkTeam: Tornado.Cash Teklifi Saldırı İlkesinin Analizi

Bu olayın nedeni, topluluğun teklifi kontrol ederken teklifteki riskleri keşfedememesi ve teklif sözleşmesinin kodunda güvenlik açıkları olup olmadığını dikkatlice doğrulamamasıdır.

Yazan: SharkTeam

20 Mayıs 2023 Pekin saatinde Tornado.Cash bir teklif saldırısına uğradı ve saldırgan yaklaşık 680.000 ABD doları kar elde etti. SharkTeam ilk kez bu olayın teknik analizini yaptı ve güvenlik önlemlerini özetledi, sonraki projelerin bundan ders çıkarabileceğini ve blockchain endüstrisi için bir güvenlik savunma hattı oluşturabileceğini umdu.

1. Olay Analizi

Saldırgan adresi:

0x092123663804f8801b9b086b03B98D706f77bD59

0x592340957eBC9e4Afb0E9Af221d06fDDDF789de9

Saldırı sözleşmesi:

0xAF54612427d97489707332efe0b6290F129DbAcb

0x03ecf0d22f9ccd21144a7d492cf63b471916497a

0x7dc86183274b28e9f1a100a0152dac975361353d (dağıtım sözleşmesi)

0xc503893b3e3c0c6b909222b45f2a3a259a52752d (sahte teklif sözleşmesi)

Saldırıya uğrayan sözleşme:

0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce

Bir teklif işlemi başlatın:

0x34605f1d6463a48b818157f7b26d040f8dd329273702a0618e9e74fe350e6e0d

Saldırı işlemleri:

0x3274b6090685b842aca80b304a4dcee0f61ef8b6afee10b7c7533c32fb75486d

Saldırı süreci:

(1) İlk olarak, saldırgan (0x08e80ecb), bu teklifin Önerme 16'ya ek olduğunu iddia ederek, saldırıya uğrayan sözleşmeye (0x5efda50f) bir teklif başlatır.

(2) Ancak teklifte aslında ek bir kendi kendini yok etme işlevi var.

(3) Ne yazık ki, topluluk bu öneride herhangi bir sorun bulmadı ve çoğu üye bu öneriyi kabul etmek için oy kullandı.

(4) Saldırgan, belirteçlerin transferini gerçekleştirmek için birçok sözleşme oluşturmuştur.

(5) Saldırgan (0x08e80ecb), teklif sözleşmesini (0xc503893b) ve oluşturma sözleşmesini (0x7dc86183) yok eder. Saldırı sözleşmesi (0xc503893b) daha sonra aynı adreste yeniden konuşlandırıldı.

(6) Saldırgan (0x08e80ecb) teklif sözleşmesini değiştirdikten sonra teklifi yürütür ve kontrolü altındaki sözleşme adresinin token kilit miktarını 10000 olarak değiştirir.

(7) Teklif gerçekleştirildikten sonra saldırgan (0x08e80ecb) tokenları kendi adresine devreder ve saldırıya uğrayan sözleşmenin sahipliğini elde eder.

Güvenlik açığı analizi: Teklif sözleşmesinin (0xc503893b) oluşturma sözleşmesi (0x7dc86183) creat2 aracılığıyla dağıtıldığından, iki sözleşme yok edildikten sonra aynı adrese yeni bir mantık sözleşmesi dağıtılabilir ve teklif yürütme şu şekilde çağrılır: Saldıran sözleşme, saldırıya uğrayan sözleşmedeki değeri keyfi olarak değiştirebilir.

Olayın özeti: Bu olayın nedeni, topluluğun teklifi kontrol ederken teklifteki riskleri keşfedememesi ve teklif sözleşmesinin kodunda güvenlik açıkları olup olmadığını dikkatlice doğrulamamasıdır.

2. Güvenlik Önerileri

Bu saldırıya karşı geliştirme sürecinde aşağıdaki önlemleri almalıyız:

  • Teklifleri tasarlarken, teklif mekanizmasının güvenliğini tamamen göz önünde bulundurun ve tekliflerin merkezi olarak kontrol edilme riskini en aza indirin.Saldırıların değerini azaltmayı, oy hakkı elde etme maliyetini artırmayı ve saldırı gerçekleştirme maliyetini artırmayı vb. düşünün.
  • Teklifi oylamadan önce topluluk, sözleşme kodunun arka kapısı olup olmadığını dikkatlice kontrol etmelidir.
  • Teklif onaylanmadan önce, sözleşme mantık kodunun güvenlik denetimini gerçekleştirmek için üçüncü taraf bir güvenlik denetim şirketiyle iletişime geçilebilir.
Orijinali Görüntüle
  • Bahşiş
  • Yorum
  • Paylaş
Yorum
Yorum yok
  • Konu