Merkezi Olmayan Finans güvenlik açıkları ve önleme yöntemleri
Son zamanlarda, bir güvenlik uzmanı toplulukla Merkezi Olmayan Finans güvenlik kursu paylaştı. Uzman, geçtiğimiz yıl Web3 sektörünün karşılaştığı önemli güvenlik olaylarını gözden geçirdi, bu olayların nedenlerini ve nasıl kaçınılacağına dair tartışmalarda bulundu, yaygın akıllı sözleşme güvenlik açıklarını ve önleme tedbirlerini özetledi ve proje sahipleri ile kullanıcılar için bazı güvenlik önerileri sundu.
Yaygın DeFi güvenlik açıkları arasında flash loan, fiyat manipülasyonu, fonksiyon yetki sorunları, rastgele dış çağrılar, fallback fonksiyonu sorunları, iş mantığı açıkları, özel anahtar sızıntıları ve yeniden giriş saldırıları gibi türler bulunmaktadır. Bu yazıda flash loan, fiyat manipülasyonu ve yeniden giriş saldırısı olmak üzere bu üç tür üzerinde durulacaktır.
Hızlı Kredi
Açık kredi, Merkezi Olmayan Finans'ın (DeFi) bir yeniliğidir, ancak aynı zamanda hackerlar tarafından saldırılar için kullanılmaktadır. Saldırganlar, açık kredi aracılığıyla büyük miktarda para borç alarak fiyatları manipüle eder veya iş mantığını hedef alır. Geliştiricilerin, sözleşme işlevlerinin büyük miktardaki fonlar nedeniyle anormal bir duruma yol açıp açmayacağını veya kötüye kullanılarak haksız kazanç elde edilip edilmeyeceğini düşünmeleri gerekmektedir.
Birçok Merkezi Olmayan Finans projesi, kod veya mantık sorunları nedeniyle hızlı kredi saldırılarına kolayca maruz kalmaktadır. Örneğin, bazı projeler belirli bir zaman diliminde pozisyona göre ödül verirken, saldırganlar hızlı krediyi kullanarak büyük miktarda token satın alıp ödüllerin çoğunu alabiliyor. Diğer bazı projeler Token ile fiyat hesaplaması yaparken, hızlı krediden etkilenebilir. Proje ekipleri bu sorunlara karşı dikkatli olmalıdır.
Fiyat Manipülasyonu
Fiyat manipülasyonu sorunu, hızlı kredilerle yakından ilişkilidir, başlıca iki durum vardır:
Fiyat hesaplama esnasında üçüncü taraf verileri kullanılır, ancak kullanım şekli yanlış veya kontrol eksikliği nedeniyle fiyat kötü niyetli bir şekilde manipüle edilir.
Belirli adreslerin Token miktarını hesaplama değişkeni olarak kullanın ve bu adreslerin Token bakiyeleri geçici olarak artırılabilir veya azaltılabilir.
Yeniden Giriş Saldırısı
Dış sözleşmeleri çağırmanın ana riski, kontrol akışını ele geçirebilmeleri ve verilere beklenmeyen değişiklikler yapabilmeleridir. Örneğin:
function withdrawBalance() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool success, ) = msg.sender.call.value(amountToWithdraw)("");
require(başarı);
userBalances[msg.sender] = 0;
}
Kullanıcı bakiyesi işlevin sonunda 0 olarak ayarlandığından, tekrar tekrar çağrılar hala başarılı olacak ve bakiye birden fazla kez çekilebilir.
Reentrancy saldırısının birçok biçimi vardır, bu tek bir sözleşmenin farklı fonksiyonlarını veya birden fazla sözleşmenin fonksiyonlarını içerebilir. Reentrancy sorununu çözmek için dikkat edilmesi gerekenler:
Sadece tek bir fonksiyonun yeniden girişini önlemekle kalmaz
Checks-Effects-Interactions modeline uygun kodlama
Doğrulanmış reentrancy modifier'larını kullanın
Olgun güvenlik uygulamalarını kullanmanızı öneririm, tekerleği yeniden icat etmekten kaçının. Kendi geliştirdiğiniz yeni çözümler yeterince doğrulanmamış olabilir, sorun yaşama olasılığı daha yüksektir.
Güvenlik Önerileri
Proje tarafı güvenlik önerileri
Sözleşme geliştirme için en iyi güvenlik uygulamalarına uyun
Sözleşmenin yükseltilebilir ve durdurulabilir işlevlerini gerçekleştirmek
Zaman kilidi mekanizması kullanma
Güvenlik yatırımlarını artırmak, kapsamlı bir güvenlik sistemi kurmak
Tüm çalışanların güvenlik bilincini artırmak
İçerideki kötü niyetli davranışları önlemek, verimliliği artırırken risk kontrolünü güçlendirmek
Üçüncü taraf bağımlılıklarını dikkatlice tanıtın, varsayılan olarak yukarı ve aşağı akış güvenli değildir.
Kullanıcılar akıllı sözleşmelerin güvenliğini nasıl değerlendirir?
Sözleşme açık kaynak mı?
Owner merkezi olmayan çoklu imza kullanıyor mu?
Sözleşmenin mevcut işlem durumunu kontrol et
Sözleşme yükseltilebilir mi, zaman kilidi var mı?
Birden fazla kurumun denetimini kabul ediyor musunuz, Owner yetkisi fazla mı?
Orakların güvenilirliğine dikkat edin
Sonuç olarak, proje sahipleri ve kullanıcılar güvenlik bilincini artırmalı ve DeFi güvenlik risklerini azaltmak için gerekli önlemleri almalıdır.
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.
7 Likes
Reward
7
7
Share
Comment
0/400
RugResistant
· 6h ago
Yine bir koruma adı altında enayileri oyuna getiren biri geldi.
View OriginalReply0
ChainDoctor
· 6h ago
Yine başkalarının hatasını üstlenen Flaş Krediler, tsk tsk.
View OriginalReply0
PessimisticOracle
· 6h ago
Haa, açıkların arkasında her zaman büyük kar arzusu var.
View OriginalReply0
ParallelChainMaxi
· 6h ago
Bu kadar çok açık var, herkes dikkatli olsun.
View OriginalReply0
TokenGuru
· 6h ago
Mining döneminde gördüğümüz eski açıklar, dikkatli olun arkadaşlar.
View OriginalReply0
Anon4461
· 6h ago
Gösteriş yapmayı bırak, herkesin bir açığı var gibi görünüyor.
View OriginalReply0
RektCoaster
· 6h ago
Balık ölse de ağ kopsa da mei insanına ve weiruan'a yenilmeyecek.
Merkezi Olmayan Finans üç büyük güvenlik açığı analizi: Flaş Krediler, fiyat manipülasyonu ve yeniden giriş saldırısı
Merkezi Olmayan Finans güvenlik açıkları ve önleme yöntemleri
Son zamanlarda, bir güvenlik uzmanı toplulukla Merkezi Olmayan Finans güvenlik kursu paylaştı. Uzman, geçtiğimiz yıl Web3 sektörünün karşılaştığı önemli güvenlik olaylarını gözden geçirdi, bu olayların nedenlerini ve nasıl kaçınılacağına dair tartışmalarda bulundu, yaygın akıllı sözleşme güvenlik açıklarını ve önleme tedbirlerini özetledi ve proje sahipleri ile kullanıcılar için bazı güvenlik önerileri sundu.
Yaygın DeFi güvenlik açıkları arasında flash loan, fiyat manipülasyonu, fonksiyon yetki sorunları, rastgele dış çağrılar, fallback fonksiyonu sorunları, iş mantığı açıkları, özel anahtar sızıntıları ve yeniden giriş saldırıları gibi türler bulunmaktadır. Bu yazıda flash loan, fiyat manipülasyonu ve yeniden giriş saldırısı olmak üzere bu üç tür üzerinde durulacaktır.
Hızlı Kredi
Açık kredi, Merkezi Olmayan Finans'ın (DeFi) bir yeniliğidir, ancak aynı zamanda hackerlar tarafından saldırılar için kullanılmaktadır. Saldırganlar, açık kredi aracılığıyla büyük miktarda para borç alarak fiyatları manipüle eder veya iş mantığını hedef alır. Geliştiricilerin, sözleşme işlevlerinin büyük miktardaki fonlar nedeniyle anormal bir duruma yol açıp açmayacağını veya kötüye kullanılarak haksız kazanç elde edilip edilmeyeceğini düşünmeleri gerekmektedir.
Birçok Merkezi Olmayan Finans projesi, kod veya mantık sorunları nedeniyle hızlı kredi saldırılarına kolayca maruz kalmaktadır. Örneğin, bazı projeler belirli bir zaman diliminde pozisyona göre ödül verirken, saldırganlar hızlı krediyi kullanarak büyük miktarda token satın alıp ödüllerin çoğunu alabiliyor. Diğer bazı projeler Token ile fiyat hesaplaması yaparken, hızlı krediden etkilenebilir. Proje ekipleri bu sorunlara karşı dikkatli olmalıdır.
Fiyat Manipülasyonu
Fiyat manipülasyonu sorunu, hızlı kredilerle yakından ilişkilidir, başlıca iki durum vardır:
Fiyat hesaplama esnasında üçüncü taraf verileri kullanılır, ancak kullanım şekli yanlış veya kontrol eksikliği nedeniyle fiyat kötü niyetli bir şekilde manipüle edilir.
Belirli adreslerin Token miktarını hesaplama değişkeni olarak kullanın ve bu adreslerin Token bakiyeleri geçici olarak artırılabilir veya azaltılabilir.
Yeniden Giriş Saldırısı
Dış sözleşmeleri çağırmanın ana riski, kontrol akışını ele geçirebilmeleri ve verilere beklenmeyen değişiklikler yapabilmeleridir. Örneğin:
katılık mapping (address => uint) private userBalances;
function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(başarı); userBalances[msg.sender] = 0; }
Kullanıcı bakiyesi işlevin sonunda 0 olarak ayarlandığından, tekrar tekrar çağrılar hala başarılı olacak ve bakiye birden fazla kez çekilebilir.
Reentrancy saldırısının birçok biçimi vardır, bu tek bir sözleşmenin farklı fonksiyonlarını veya birden fazla sözleşmenin fonksiyonlarını içerebilir. Reentrancy sorununu çözmek için dikkat edilmesi gerekenler:
Olgun güvenlik uygulamalarını kullanmanızı öneririm, tekerleği yeniden icat etmekten kaçının. Kendi geliştirdiğiniz yeni çözümler yeterince doğrulanmamış olabilir, sorun yaşama olasılığı daha yüksektir.
Güvenlik Önerileri
Proje tarafı güvenlik önerileri
Kullanıcılar akıllı sözleşmelerin güvenliğini nasıl değerlendirir?
Sonuç olarak, proje sahipleri ve kullanıcılar güvenlik bilincini artırmalı ve DeFi güvenlik risklerini azaltmak için gerekli önlemleri almalıdır.