Jarvis Network Flaş Krediler ile yeniden saldırıya uğradı, 66.3 bin MATIC kaybedildi.

robot
Abstract generation in progress

Jarvis Network projesi Flaş Krediler yeniden giriş saldırısına uğradı analizi

2023年1月15日,Jarvis_Network项目在Polygon网络上遭遇攻击,造成约66.3万MATIC的损失。分析显示,攻击者利用了 Flaş Krediler 和重入漏洞进行攻击。

Jarvis Network Flaş Krediler重入攻击事件分析

Saldırı işlemi çağrıları analizinde, yeniden giriş sırasında aynı sözleşmenin aynı fonksiyonuna yapılan çağrılarda, geçirilen parametreler aynı olmasına rağmen dönen değerlerin belirgin farklılıklar gösterdiği ortaya çıkmıştır. Yeniden giriş öncesi ve sonrası dönen değerler sırasıyla şunlardır:

  • Yeniden giriş öncesi: 1002157321772769944
  • Yeniden giriş sonrası: 10091002696492234934

Jarvis Network Flaş Krediler reentrancy saldırı olayı analizi

Reentrancy, remove_liquidity fonksiyonunda gerçekleşir. Bu fonksiyon, likiditeyi kaldırırken kullanıcının eklediği tokenleri geri döndürür. Polygon EVM ile uyumlu olduğundan, MATIC'in sözleşmeye transfer edilmesi reentrancy'yi tetikledi.

Jarvis Network Flaş Krediler重入攻击事件分析

Derinlemesine analizler, sorunun getUnderlyingPrice fonksiyonunun uygulanmasında yattığını göstermektedir. Bu fonksiyon, bir dizi iç hesaplama ve dış çağrı ile ilgilidir; burada kritik olan, get_virtual_price fonksiyonunun döndürdüğü değerdir. Bu fonksiyonun döndürdüğü değer, self.D değişkeninden etkilenmektedir ve self.D'nin güncellenmesi, token transferinden sonra gerçekleşmektedir.

Jarvis Network Flaş Krediler reentrancy saldırısı olay analizi

Saldırganlar, likiditeyi kaldırırken, MATIC'i saldırı sözleşmesine transfer ettikten sonra, geri çağırma ile önce token fiyatını sorguladılar. self.D henüz güncellenmediği için, fiyat alımında hata oluştu. Saldırganlar bu zaman farkını kullanarak, yeniden giriş sırasında borç verme fiyatını yaklaşık 10 kat artırdılar.

Jarvis Network Flaş Krediler重入攻击事件分析

remove_liquidity fonksiyonu, yeniden girişin önlenmesi için '@nonreentrant('lock')' dekoratörünü kullansa da, saldırganlar çoklu sözleşme yeniden girişi ile bu koruma mekanizmasını aşmayı başardılar.

Jarvis Network Flaş Krediler reentrancy saldırı olayı analizi

Bu saldırı birkaç temel sorunu ortaya çıkardı:

  1. Değişken değiştirme mantığı dışarıdan çağrılmadan sonra yer alıyor, bu da fiyat alımında anormalliklere neden oluyor.
  2. Çapraz sözleşme yeniden giriş, yeniden giriş kilidini geçersiz kılar.
  3. "Kontroller-Etkiler-Etkileşimler" (Checks-Effects-Interactions) modeline uymadı.

Jarvis Network Flaş Krediler重入攻击事件分析

Benzer saldırıları önlemek için proje ekiplerine önerilir:

  • Sıkı güvenlik denetimleri gerçekleştirin
  • Değişken modifikasyonunu dış çağrıdan önce yapın
  • Fiyatları almak için birden fazla veri kaynağı yöntemi kullanma
  • "Kontrol-Etkileşim" kodlama standartlarına uyun

Bu önlemlerle, projenin güvenliği ve istikrarı önemli ölçüde artırılabilir.

Jarvis Network Flaş Krediler yeniden giriş saldırı olayı analizi

Jarvis Network Flaş Krediler重入攻击事件分析

Jarvis Network Flaş Krediler重入攻击事件分析

Jarvis Network Flaş Krediler重入攻击事件分析

Jarvis Network Flaş Krediler重入攻击事件分析

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • Comment
  • Repost
  • Share
Comment
0/400
No comments
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)