Merkezi Olmayan Finans'ın Yaygın Güvenlik Açıkları ve Önleme Önlemleri
Son zamanlarda, bir güvenlik uzmanı DeFi güvenliği hakkında görüşlerini paylaştı, geçen 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 önlenebileceğini tartıştı, yaygın akıllı sözleşme güvenlik açıklarını ve önleyici tedbirleri özetledi ve projelerin sahipleri ile kullanıcılara bazı güvenlik önerileri sundu.
Yaygın DeFi açıkları arasında flaş kredi, fiyat manipülasyonu, fonksiyon yetki sorunları, rastgele dış çağrılar, fallback fonksiyonu sorunları, iş mantığı açıkları, özel anahtar sızıntıları, yeniden giriş gibi durumlar bulunmaktadır. Aşağıda flaş kredi, fiyat manipülasyonu ve yeniden giriş saldırısı olmak üzere bu üç tür üzerinde durulacaktır.
Hızlı Kredi
Açık Krediler, Merkezi Olmayan Finans'ın bir yeniliğidir, ancak aynı zamanda hackerlar tarafından saldırılar için kullanılmaktadır. Saldırganlar, Açık Krediler aracılığıyla büyük miktarda fon borç alarak fiyatları manipüle edebilir veya iş mantığını saldırıya uğratabilir. Geliştiriciler, sözleşme işlevlerinin büyük miktarda fon nedeniyle anormal hale gelip gelmeyeceğini veya haksız ödüller elde etmek için kullanılabileceğini düşünmelidir.
Birçok Merkezi Olmayan Finans projesi yüksek getiri vaat etse de, aslında proje sahiplerinin seviyeleri oldukça farklılık göstermektedir. Bazı projelerin kodları satın alınmış olabilir, bu durumda kodun kendisi hatasız olsa bile, mantıksal açıdan sorunlar yaşanabilir. Örneğin, bazı projeler belirli bir zamanda pozisyonlara göre ödül dağıtırken, saldırganlar flash loan kullanarak büyük miktarda token satın alabilir ve bu sayede ödüllerin çoğunu elde edebilir.
Fiyat Manipülasyonu
Fiyat manipülasyonu sorunu, kullanıcıların kontrol edebildiği parametrelerden kaynaklandığı için, ani kredilerle yakından ilişkilidir. Yaygın sorun türleri iki şekilde ortaya çıkar:
Fiyat hesaplanırken üçü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 kullanmak, bu adreslerin token bakiyesi geçici olarak artırılabilir veya azaltılabilir.
Yeniden Giriş Saldırısı
Dış sözleşmeleri çağırmanın başlıca risklerinden biri, kontrol akışını ele geçirebilir ve veriler üzerinde beklenmedik değişiklikler yapabilirler. Örneğin:
function withdrawBalance() public {
uint çekilecekMiktar = kullanıcıBakiye[msg.sender];
(bool başarı, ) = msg.sender.call.value(çekilecekMiktar)("");
require(başarı);
userBalances[msg.sender] = 0;
}
Kullanıcı bakiyesi fonksiyonun sonunda sıfıra inene kadar, tekrar eden çağrılar başarılı olmaya devam edecek ve bakiye tekrar tekrar çekilebilir.
Çift çağrı sorununu çözmek için dikkat edilmesi gerekenler:
Sadece tek bir fonksiyonun yeniden girmesini önlemekle kalmaz
Checks-Effects-Interactions modelini takip et
Doğrulanmış reentrancy modifier'ını kullanın
Reentrancy saldırı yöntemleri çeşitlidir ve birden fazla fonksiyon veya sözleşme içerebilir, bu nedenle çözümü oldukça karmaşıktır. En iyi uygulamaları kullanmak, tekerleği yeniden icat etmekten çok daha iyidir.
Proje Tarafı Güvenlik Önerileri
Sözleşme geliştirmede en iyi güvenlik uygulamalarını izleyin
Sözleşmelerin 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
İçeriden kötüye kullanımı önlemek, verimliliği artırırken risk kontrolünü güçlendirmek
Üçüncü taraf bileşenlerini dikkatlice tanıtın, güvenlik kontrolünü iyi yapın.
Kullanıcılar akıllı sözleşmelerin güvenliğini nasıl değerlendirir?
Sözleşmenin açık kaynak olup olmadığını doğrulayın
Owner'ın çok imzalı mı olduğunu ve çok imzanın merkeziyetsiz olup olmadığını kontrol edin.
Sözleşmenin mevcut işlem durumunu kontrol et
Sözleşmenin bir vekil sözleşmesi olup olmadığını, yükseltilebilir olup olmadığını ve zaman kilidi olup olmadığını belirleyin.
Sözleşmenin birden fazla kurum tarafından denetlenip denetlenmediğini ve Owner yetkisinin fazla olup olmadığını kontrol edin.
Oracle kullanımına dikkat edin
Sonuç olarak, Merkezi Olmayan Finans alanında güvenlik sorunları özellikle önemlidir. Proje sahipleri güvenlik yatırımlarına önem vermeli, kullanıcılar da dikkatli olmalı ve temkinli katılmalıdır. Ancak ortak çaba ile daha güvenli ve güvenilir bir Merkezi Olmayan Finans ekosistemi inşa edilebilir.
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.
9 Likes
Reward
9
5
Share
Comment
0/400
BoredRiceBall
· 2h ago
Onun saçmalıklarını dinleme, yine bir Rug Pull oldu.
View OriginalReply0
SchrodingerProfit
· 07-12 06:52
Şu anda hala insanları enayi yerine koymayan enayiler var mı?
View OriginalReply0
ContractSurrender
· 07-12 06:50
Yine Emiciler Tarafından Oyuna Getirilmek Büyük Rehberi!
View OriginalReply0
SnapshotDayLaborer
· 07-12 06:50
Kesinlikle dikkatli olmalısın, iyi ki hızlı koşabiliyorum.
Merkezi Olmayan Finans güvenliği: Yaygın güvenlik açıkları türleri ve önleme kılavuzu
Merkezi Olmayan Finans'ın Yaygın Güvenlik Açıkları ve Önleme Önlemleri
Son zamanlarda, bir güvenlik uzmanı DeFi güvenliği hakkında görüşlerini paylaştı, geçen 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 önlenebileceğini tartıştı, yaygın akıllı sözleşme güvenlik açıklarını ve önleyici tedbirleri özetledi ve projelerin sahipleri ile kullanıcılara bazı güvenlik önerileri sundu.
Yaygın DeFi açıkları arasında flaş kredi, fiyat manipülasyonu, fonksiyon yetki sorunları, rastgele dış çağrılar, fallback fonksiyonu sorunları, iş mantığı açıkları, özel anahtar sızıntıları, yeniden giriş gibi durumlar bulunmaktadır. Aşağıda flaş kredi, fiyat manipülasyonu ve yeniden giriş saldırısı olmak üzere bu üç tür üzerinde durulacaktır.
Hızlı Kredi
Açık Krediler, Merkezi Olmayan Finans'ın bir yeniliğidir, ancak aynı zamanda hackerlar tarafından saldırılar için kullanılmaktadır. Saldırganlar, Açık Krediler aracılığıyla büyük miktarda fon borç alarak fiyatları manipüle edebilir veya iş mantığını saldırıya uğratabilir. Geliştiriciler, sözleşme işlevlerinin büyük miktarda fon nedeniyle anormal hale gelip gelmeyeceğini veya haksız ödüller elde etmek için kullanılabileceğini düşünmelidir.
Birçok Merkezi Olmayan Finans projesi yüksek getiri vaat etse de, aslında proje sahiplerinin seviyeleri oldukça farklılık göstermektedir. Bazı projelerin kodları satın alınmış olabilir, bu durumda kodun kendisi hatasız olsa bile, mantıksal açıdan sorunlar yaşanabilir. Örneğin, bazı projeler belirli bir zamanda pozisyonlara göre ödül dağıtırken, saldırganlar flash loan kullanarak büyük miktarda token satın alabilir ve bu sayede ödüllerin çoğunu elde edebilir.
Fiyat Manipülasyonu
Fiyat manipülasyonu sorunu, kullanıcıların kontrol edebildiği parametrelerden kaynaklandığı için, ani kredilerle yakından ilişkilidir. Yaygın sorun türleri iki şekilde ortaya çıkar:
Fiyat hesaplanırken üçü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 kullanmak, bu adreslerin token bakiyesi geçici olarak artırılabilir veya azaltılabilir.
Yeniden Giriş Saldırısı
Dış sözleşmeleri çağırmanın başlıca risklerinden biri, kontrol akışını ele geçirebilir ve veriler üzerinde beklenmedik değişiklikler yapabilirler. Örneğin:
katılık mapping (address => uint) private userBalances;
function withdrawBalance() public { uint çekilecekMiktar = kullanıcıBakiye[msg.sender]; (bool başarı, ) = msg.sender.call.value(çekilecekMiktar)(""); require(başarı); userBalances[msg.sender] = 0; }
Kullanıcı bakiyesi fonksiyonun sonunda sıfıra inene kadar, tekrar eden çağrılar başarılı olmaya devam edecek ve bakiye tekrar tekrar çekilebilir.
Çift çağrı sorununu çözmek için dikkat edilmesi gerekenler:
Reentrancy saldırı yöntemleri çeşitlidir ve birden fazla fonksiyon veya sözleşme içerebilir, bu nedenle çözümü oldukça karmaşıktır. En iyi uygulamaları kullanmak, tekerleği yeniden icat etmekten çok daha iyidir.
Proje Tarafı Güvenlik Önerileri
Kullanıcılar akıllı sözleşmelerin güvenliğini nasıl değerlendirir?
Sonuç olarak, Merkezi Olmayan Finans alanında güvenlik sorunları özellikle önemlidir. Proje sahipleri güvenlik yatırımlarına önem vermeli, kullanıcılar da dikkatli olmalı ve temkinli katılmalıdır. Ancak ortak çaba ile daha güvenli ve güvenilir bir Merkezi Olmayan Finans ekosistemi inşa edilebilir.