Jarvis Network projesi Flaş Krediler yeniden giriş saldırısı analizi
15 Ocak 2023'te, Jarvis_Network projesi saldırıya uğradı ve 663,101 MATIC kaybetti. Bu saldırı esas olarak Flaş Krediler ve yeniden giriş açığından yararlanarak proje fonlarının kaybına yol açtı.
İşlem çağrı yığınını analiz ederek, saldırganın remove_liquidity fonksiyonunda yeniden giriş saldırısı gerçekleştirdiğini keşfettik. Bu fonksiyon, likiditeyi kaldırmaktan ve kullanıcı tokenlerini geri vermekten sorumludur. Polygon'un EVM zincir yapısına benzer olması nedeniyle, MATIC transferi sırasında sözleşme yeniden girişi tetiklendi.
Reentrancy saldırısı fiyat sorgulama aşamasında meydana gelir. Saldırgan, likiditeyi kaldırırken MATIC'i saldırganın sözleşmesine aktarır. Geri çağırma sürecinde saldırgan, önce belirli bir tokenin fiyatını sorgular. Sözleşmedeki self.D değişkeninin güncellenmesi, transfer işleminin gerisinde kaldığı için, önceki fiyat alımında hata oluşur.
remove_liquidity fonksiyonunun yürütülme süreci aşağıdaki gibidir:
Kullanıcı LP tokenlerini yok etme
Kullanıcılara teminat fonu gönder
self.D değişkenini güncelle
self.D değişkeni fiyat hesaplaması için kullanılır ve likidite eklenip çıkarıldığında güncellenir. Saldırgan, büyük miktarda fon kullanarak self.D değerinin likidite eklerken önemli ölçüde artmasına neden oldu, ancak çıkarırken zamanında güncellenmedi.
Remove_liquidity fonksiyonu @nonreentrant('lock') dekoratörünü kullanarak yeniden girişleri önlese de, saldırganlar bu kısıtlamayı çapraz sözleşme kredisi ile aştı.
Bu saldırı, proje kodunun güvenlik açıkları içerdiğini ortaya koydu. Benzer sorunların önlenmesi için proje ekibinin aşağıdaki önlemleri alması önerilir:
Sıkı güvenlik denetimleri gerçekleştirin
Değişken değiştirme işlemini dış çağrıdan önce yerleştirin
Fiyat alımında birden fazla veri kaynağı kullanmak
Kod mantığını optimize ederek ve güvenlik önlemlerini güçlendirerek, projenin güvenliğini ve istikrarını etkili bir şekilde artırabilir ve benzer saldırıların bir daha gerçekleşmesini önleyebilirsiniz.
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.
23 Likes
Reward
23
9
Share
Comment
0/400
MEV_Whisperer
· 6h ago
Bu tencere sadece geliştirilmek için kaldırılabilir.
Jarvis Network, Flaş Krediler ile yeniden giriş saldırısına uğradı, 663,101 MATIC kaybetti.
Jarvis Network projesi Flaş Krediler yeniden giriş saldırısı analizi
15 Ocak 2023'te, Jarvis_Network projesi saldırıya uğradı ve 663,101 MATIC kaybetti. Bu saldırı esas olarak Flaş Krediler ve yeniden giriş açığından yararlanarak proje fonlarının kaybına yol açtı.
İşlem çağrı yığınını analiz ederek, saldırganın remove_liquidity fonksiyonunda yeniden giriş saldırısı gerçekleştirdiğini keşfettik. Bu fonksiyon, likiditeyi kaldırmaktan ve kullanıcı tokenlerini geri vermekten sorumludur. Polygon'un EVM zincir yapısına benzer olması nedeniyle, MATIC transferi sırasında sözleşme yeniden girişi tetiklendi.
Reentrancy saldırısı fiyat sorgulama aşamasında meydana gelir. Saldırgan, likiditeyi kaldırırken MATIC'i saldırganın sözleşmesine aktarır. Geri çağırma sürecinde saldırgan, önce belirli bir tokenin fiyatını sorgular. Sözleşmedeki self.D değişkeninin güncellenmesi, transfer işleminin gerisinde kaldığı için, önceki fiyat alımında hata oluşur.
remove_liquidity fonksiyonunun yürütülme süreci aşağıdaki gibidir:
self.D değişkeni fiyat hesaplaması için kullanılır ve likidite eklenip çıkarıldığında güncellenir. Saldırgan, büyük miktarda fon kullanarak self.D değerinin likidite eklerken önemli ölçüde artmasına neden oldu, ancak çıkarırken zamanında güncellenmedi.
Remove_liquidity fonksiyonu @nonreentrant('lock') dekoratörünü kullanarak yeniden girişleri önlese de, saldırganlar bu kısıtlamayı çapraz sözleşme kredisi ile aştı.
Bu saldırı, proje kodunun güvenlik açıkları içerdiğini ortaya koydu. Benzer sorunların önlenmesi için proje ekibinin aşağıdaki önlemleri alması önerilir:
Kod mantığını optimize ederek ve güvenlik önlemlerini güçlendirerek, projenin güvenliğini ve istikrarını etkili bir şekilde artırabilir ve benzer saldırıların bir daha gerçekleşmesini önleyebilirsiniz.