Merkezi Olmayan Finansın Yaygın Güvenlik Açıkları ve Önleme Yöntemleri
Son zamanlarda, bir güvenlik uzmanı topluluk üyeleriyle Merkezi Olmayan Finans güvenliği ile ilgili konuları paylaştı. Uzman, son bir yıl içinde Web3 sektörünün karşılaştığı önemli güvenlik olaylarını gözden geçirdi, bu olayların nedenlerini derinlemesine inceledi ve bunlardan nasıl kaçınılacağına dair tartışmalarda bulundu. Ayrıca, yaygın akıllı sözleşmelerin güvenlik açıklarını ve önleyici tedbirlerini özetledi ve proje sahipleri ile sıradan kullanıcılara bazı güvenlik önerileri sundu.
Yaygın DeFi güvenlik açıkları temel olarak flash loan, fiyat manipülasyonu, fonksiyon izin sorunları, rastgele dış çağrılar, fallback fonksiyonu sorunları, iş mantığı açıkları, özel anahtar sızıntısı ve yeniden giriş saldırıları gibi türleri içermektedir. Bu makalede flash loan, fiyat manipülasyonu ve yeniden giriş saldırıları gibi üç tür üzerinde durulacaktır.
Hızlı Kredi
Lightning kredisi, Merkezi Olmayan Finans'ın bir yeniliğidir, ancak genellikle hackerlar tarafından kötüye kullanılır. Saldırganlar, lightning kredisi aracılığıyla büyük miktarda fon borç alabilir, fiyatları manipüle edebilir veya iş mantığını hedef alabilir. Geliştiricilerin, sözleşme işlevlerinin büyük miktardaki fonlardan dolayı anormal hale gelip gelmeyeceğini veya bir işlem içinde birden fazla fonksiyonla etkileşim kurarak haksız kazanç elde edilip edilmeyeceğini dikkate alması gerekir.
Birçok Merkezi Olmayan Finans projesi yüksek kazanç sağlıyormuş gibi görünüyor, ancak projelerin kalitesi çok değişken. Kodun kendisi açık bir güvenlik açığına sahip olmasa bile, mantıksal olarak hala sorunlar olabilir. Örneğin, bazı projeler belirli bir zamanda pozisyon miktarına göre ödül dağıtırken, saldırganlar bu durumu kullanarak büyük miktarda token satın almak için flash loan kullanabilir ve ödül dağıtımında büyük bir kısmını elde edebilirler. Ayrıca, Token ile fiyat hesaplayan bazı projeler de flash loan'ların fiyatı etkilemesine açıktır. Proje sahipleri bu sorunlara karşı dikkatli olmalıdır.
Fiyat Manipülasyonu
Fiyat manipülasyonu sorunu, bazı parametrelerin kullanıcılar tarafından kontrol edilebilmesinden dolayı, hızlı kredi hizmetleriyle yakından ilişkilidir. İki yaygın durum vardır:
Fiyat hesaplaması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 bakiyelerini hesaplama değişkeni olarak kullanın, bu adreslerin Token sayısı 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çirebilirler ve verilerde beklenmedik değişiklikler yapabilirler. Örneğin:
function withdrawBalance() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool success, ) = msg.sender.call.value(amountToWithdraw)("");
require(başarılı);
userBalances[msg.sender] = 0;
}
Kullanıcı bakiyesi, fonksiyonun sonuna kadar 0 olarak ayarlanmadığı için, ikinci ve sonraki çağrılar yine başarılı olacak ve bakiye tekrar tekrar çekilecektir.
Reentrancy saldırılarının çeşitli biçimleri vardır ve bunlar aynı sözleşmenin farklı fonksiyonlarını veya birden fazla sözleşmenin fonksiyonlarını içerebilir. Reentrancy sorununu çözerken dikkat edilmesi gerekenler:
Sadece tek bir fonksiyonun yeniden giriş sorununu önlemekle kalmaz.
Checks-Effects-Interactions modeline göre kodlama
Doğrulanmış reentrancy modifier'ı kullanın
En iyisi tekrarlayan tekerlekler yapmaktan kaçınmak ve sektördeki olgun en iyi güvenlik uygulamalarını kullanmaktır. Yeni yapılan "tekerlekler" yeterince doğrulanmamış olup, sorun yaşama olasılığı genellikle kanıtlanmış çözümlerden daha yüksektir.
Güvenlik Önerileri
Proje Ekibi Güvenlik Önerisi
Sözleşme geliştirmede en iyi güvenlik uygulamalarına uyun
Yükseltilebilir ve duraklatılabilir sözleşmeler tasarlamak: saldırı kayıplarını zamanında tespit edip azaltmaya yardımcı olur.
Zaman kilidi kullanma: Potansiyel sorunları keşfetmek ve bunlara yanıt vermek için bir tampon süresi sağlama
Güvenlik yatırımlarını artırmak, mükemmel bir güvenlik sistemi kurmak: Güvenlik, sistematik bir çalışmadır, yalnızca sözleşme denetimi ile sınırlı değildir.
Tüm çalışanların güvenlik bilincini artırmak: Birçok saldırı insan doğasının zayıflıklarını kullanıyor, tetikte olmak birçok sorunun önüne geçebilir.
İçerideki kötülükleri önlemek, verimliliği artırırken risk kontrolünü güçlendirmek: çoklu imza, zaman kilidi gibi mekanizmalar kullanılabilir.
Üçüncü tarafları dikkatlice dahil edin: Özellikle açık kaynak olmayan sözleşmeler için hem yukarı hem de aşağı akışta güvenlik kontrolü yapılmalıdır.
Kullanıcı/LP akıllı sözleşme güvenliğini değerlendirme yöntemleri
Sözleşmenin açık kaynak olup olmadığını kontrol et: Açık kaynak olmayan projelere katılma.
Owner'ın merkezi olmayan çoklu imza kullanıp kullanmadığını onaylayın.
Sözleşmenin mevcut işlem durumunu görüntüleme: dağıtım zamanı, etkileşim sayısı vb.
Sözleşmenin bir proxy sözleşmesi olup olmadığını, yükseltilebilir olup olmadığını ve zaman kilidi olup olmadığını kontrol edin.
Sözleşmenin birden fazla kurum tarafından denetlenip denetlenmediğini ve Owner yetkisinin çok büyük olup olmadığını onaylayın.
Oracle güvenilirliğine dikkat edin: Lider oracle'lar oldukça güvenli, kendi inşa edilen veya düşük eşik oracle'lar dikkatli kullanılmalıdır.
Sonuç olarak, DeFi alanında katılımcıların dikkatli olmaları gerekir, proje sahipleri güvenlik sorunlarını kapsamlı bir şekilde ele almalı, kullanıcılar ise projelerin güvenliğini dikkatlice değerlendirdikten sonra karar vermelidir.
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.
12 Likes
Reward
12
5
Share
Comment
0/400
HackerWhoCares
· 14h ago
Fonlar ödünç alınır, güvenlik ödünç alınamaz.
View OriginalReply0
SurvivorshipBias
· 21h ago
Yine enayi yerine konulmuş enayilerin kanlı gözyaşı hikayesi
View OriginalReply0
MetaMaskVictim
· 21h ago
Yine birileri enayileri oyuna getirdi... Kim kaybetti, bana söylesin.
Merkezi Olmayan Finans güvenlik açıklarının tam analizi: Flaş Krediler, fiyat manipülasyonu ve yeniden giriş saldırılarına karşı koruma kılavuzu
Merkezi Olmayan Finansın Yaygın Güvenlik Açıkları ve Önleme Yöntemleri
Son zamanlarda, bir güvenlik uzmanı topluluk üyeleriyle Merkezi Olmayan Finans güvenliği ile ilgili konuları paylaştı. Uzman, son bir yıl içinde Web3 sektörünün karşılaştığı önemli güvenlik olaylarını gözden geçirdi, bu olayların nedenlerini derinlemesine inceledi ve bunlardan nasıl kaçınılacağına dair tartışmalarda bulundu. Ayrıca, yaygın akıllı sözleşmelerin güvenlik açıklarını ve önleyici tedbirlerini özetledi ve proje sahipleri ile sıradan kullanıcılara bazı güvenlik önerileri sundu.
Yaygın DeFi güvenlik açıkları temel olarak flash loan, fiyat manipülasyonu, fonksiyon izin sorunları, rastgele dış çağrılar, fallback fonksiyonu sorunları, iş mantığı açıkları, özel anahtar sızıntısı ve yeniden giriş saldırıları gibi türleri içermektedir. Bu makalede flash loan, fiyat manipülasyonu ve yeniden giriş saldırıları gibi üç tür üzerinde durulacaktır.
Hızlı Kredi
Lightning kredisi, Merkezi Olmayan Finans'ın bir yeniliğidir, ancak genellikle hackerlar tarafından kötüye kullanılır. Saldırganlar, lightning kredisi aracılığıyla büyük miktarda fon borç alabilir, fiyatları manipüle edebilir veya iş mantığını hedef alabilir. Geliştiricilerin, sözleşme işlevlerinin büyük miktardaki fonlardan dolayı anormal hale gelip gelmeyeceğini veya bir işlem içinde birden fazla fonksiyonla etkileşim kurarak haksız kazanç elde edilip edilmeyeceğini dikkate alması gerekir.
Birçok Merkezi Olmayan Finans projesi yüksek kazanç sağlıyormuş gibi görünüyor, ancak projelerin kalitesi çok değişken. Kodun kendisi açık bir güvenlik açığına sahip olmasa bile, mantıksal olarak hala sorunlar olabilir. Örneğin, bazı projeler belirli bir zamanda pozisyon miktarına göre ödül dağıtırken, saldırganlar bu durumu kullanarak büyük miktarda token satın almak için flash loan kullanabilir ve ödül dağıtımında büyük bir kısmını elde edebilirler. Ayrıca, Token ile fiyat hesaplayan bazı projeler de flash loan'ların fiyatı etkilemesine açıktır. Proje sahipleri bu sorunlara karşı dikkatli olmalıdır.
Fiyat Manipülasyonu
Fiyat manipülasyonu sorunu, bazı parametrelerin kullanıcılar tarafından kontrol edilebilmesinden dolayı, hızlı kredi hizmetleriyle yakından ilişkilidir. İki yaygın durum vardır:
Fiyat hesaplaması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 bakiyelerini hesaplama değişkeni olarak kullanın, bu adreslerin Token sayısı 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çirebilirler ve verilerde beklenmedik değişiklikler yapabilirler. Ö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ılı); userBalances[msg.sender] = 0; }
Kullanıcı bakiyesi, fonksiyonun sonuna kadar 0 olarak ayarlanmadığı için, ikinci ve sonraki çağrılar yine başarılı olacak ve bakiye tekrar tekrar çekilecektir.
Reentrancy saldırılarının çeşitli biçimleri vardır ve bunlar aynı sözleşmenin farklı fonksiyonlarını veya birden fazla sözleşmenin fonksiyonlarını içerebilir. Reentrancy sorununu çözerken dikkat edilmesi gerekenler:
En iyisi tekrarlayan tekerlekler yapmaktan kaçınmak ve sektördeki olgun en iyi güvenlik uygulamalarını kullanmaktır. Yeni yapılan "tekerlekler" yeterince doğrulanmamış olup, sorun yaşama olasılığı genellikle kanıtlanmış çözümlerden daha yüksektir.
Güvenlik Önerileri
Proje Ekibi Güvenlik Önerisi
Sözleşme geliştirmede en iyi güvenlik uygulamalarına uyun
Yükseltilebilir ve duraklatılabilir sözleşmeler tasarlamak: saldırı kayıplarını zamanında tespit edip azaltmaya yardımcı olur.
Zaman kilidi kullanma: Potansiyel sorunları keşfetmek ve bunlara yanıt vermek için bir tampon süresi sağlama
Güvenlik yatırımlarını artırmak, mükemmel bir güvenlik sistemi kurmak: Güvenlik, sistematik bir çalışmadır, yalnızca sözleşme denetimi ile sınırlı değildir.
Tüm çalışanların güvenlik bilincini artırmak: Birçok saldırı insan doğasının zayıflıklarını kullanıyor, tetikte olmak birçok sorunun önüne geçebilir.
İçerideki kötülükleri önlemek, verimliliği artırırken risk kontrolünü güçlendirmek: çoklu imza, zaman kilidi gibi mekanizmalar kullanılabilir.
Üçüncü tarafları dikkatlice dahil edin: Özellikle açık kaynak olmayan sözleşmeler için hem yukarı hem de aşağı akışta güvenlik kontrolü yapılmalıdır.
Kullanıcı/LP akıllı sözleşme güvenliğini değerlendirme yöntemleri
Sözleşmenin açık kaynak olup olmadığını kontrol et: Açık kaynak olmayan projelere katılma.
Owner'ın merkezi olmayan çoklu imza kullanıp kullanmadığını onaylayın.
Sözleşmenin mevcut işlem durumunu görüntüleme: dağıtım zamanı, etkileşim sayısı vb.
Sözleşmenin bir proxy sözleşmesi olup olmadığını, yükseltilebilir olup olmadığını ve zaman kilidi olup olmadığını kontrol edin.
Sözleşmenin birden fazla kurum tarafından denetlenip denetlenmediğini ve Owner yetkisinin çok büyük olup olmadığını onaylayın.
Oracle güvenilirliğine dikkat edin: Lider oracle'lar oldukça güvenli, kendi inşa edilen veya düşük eşik oracle'lar dikkatli kullanılmalıdır.
Sonuç olarak, DeFi alanında katılımcıların dikkatli olmaları gerekir, proje sahipleri güvenlik sorunlarını kapsamlı bir şekilde ele almalı, kullanıcılar ise projelerin güvenliğini dikkatlice değerlendirdikten sonra karar vermelidir.