Analise smart-contract
12.04.2024

Proxy dedektör açıklaması

Akıllı sözleşmelerdeki dolandırıcılık planlarını açıklamaya adanmış makale serisine devam ediyoruz. Bugün proxy kontrolü (Proxy) özelliğine sahip akıllı sözleşmelerden bahsedeceğiz.

Proxy akıllı sözleşmeleri, modernize edilebilirlikleri ve esneklikleri nedeniyle blok zinciri alanında popülerlik kazanmıştır. Bununla birlikte, bu tür sözleşmeler, özellikle kötü niyetli kullanıcılar tarafından kullanıldığında büyük tehlike de taşır. Dolandırıcılar, kullanıcıları dolandırmak için genellikle proxy akıllı sözleşmelerinde aldatıcı planlar kullanır. Bu tür tehditleri belirlemek için olası riskleri anlamanız ve teknik açıdan bilgili olmanız gerekir.

Potansiyel tehlikelerin açıklamasına, yaygın aldatma planlarına ve proxy akıllı sözleşmelerindeki bu tür tehditlerin nasıl belirleneceğine daha yakından bakalım.

Proxy akıllı sözleşmelerinin tehlikeleri:

  1. Yetkisiz Güncelleme:
    Vekil sözleşmeler, sahibinin temel sözleşmeyi güncellemesine izin verir. Ancak, bu mekanizma güvenli bir şekilde uygulanmazsa, yetkisiz güncellemelere yol açabilir ve saldırganların sözleşmeye kötü amaçlı kod enjekte etmesine izin verebilir.

  2. Kontrol edilmemiş harici çağrılar:
    Sahte programcılar, uygun doğrulama olmadan güvenilmeyen sözleşmelere harici çağrılar kullanabilir. Bu, kötü niyetli sözleşmelerin bir proxy sözleşmesini tekrar tekrar çağırarak fonlarını tüketebileceği reentrancy saldırıları da dahil olmak üzere güvenlik açıklarına yol açabilir.

  3. Şeffaflık eksikliği:
    Yönetim sözleşmesinin kaynak kodu genellikle doğrulanmaz.

  4. Sahte projeler:
    Dolandırıcılar, yüksek getiri veya benzersiz işlevsellik gibi cazip özellikler vaat eden sahte projeler oluşturur. Kötü niyetlerini gizlerken meşruiyet görüntüsü yaratmak için vekalet sözleşmeleri kullanabilirler.

  5. Ponzi şemaları:
    Dolandırıcılar, vekalet sözleşmelerine dayalı saadet zincirleri oluşturarak kullanıcıları yüksek getiri vaatleriyle cezbetmektedir. Bu tür planlar, inandırıcılık yanılsamasını sürdürmek için güncellenebilir bileşenlere sahip olabilir.

  6. Klonlanmış sözleşmeler:
    Dolandırıcılar meşru projeleri klonlar ve klonlanmış sözleşmeye güvenlik açıkları ya da değişiklikler ekler. Şüphelenmeyen kullanıcılar bu tür klonlarla etkileşime girerek bunları orijinaliyle karıştırabilir.

Akıllı sözleşmelerde bu tür tehditlerin mevcut olup olmadığını bağımsız olarak nasıl belirleyebilirsiniz?

Bir akıllı sözleşmenin hedef kodu harici bir sözleşmeye (Proxy) referans içeriyorsa, vakaların neredeyse %100'ünde bu Proxy sözleşmesinin gizli kaynak koduna sahip olacağını belirtmek gerekir. Bu durumda, harici kontrol sözleşmesi hedef sözleşmeyle kesinlikle herhangi bir eylem gerçekleştirebilir (örneğin: kullanıcı bakiyelerini değiştirme, ticareti etkinleştirme ve devre dışı bırakma, emisyonu başlatma vb.)

Bu nedenle, bir Proxy akıllı sözleşmesiyle çalışmanın kelimenin tam anlamıyla bir rulet oyunu olduğunu anlamaya değer (kumarhane her zaman kazanır).

Akıllı bir sözleşmede Proxy çağrılarını bulmak yeterince kolaydır. Ve daha önce de söylediğimiz gibi, kötü amaçlı işlevlerin uygulanması kontrol sözleşmesindedir - hedef akıllı sözleşme "beyaz ve kabarık" görünür (yani, genellikle şüphe uyandırabilecek herhangi bir yöntem içermez).

Akıllı sözleşmelerde Proxy özelliklerinin mevcut olup olmadığını kendiniz belirlemek istiyorsanız, aşağıdaki ipuçları yardımcı olacaktır.

  • Bir sözleşme denetimi gerçekleştirin: Herhangi bir akıllı kontratla çalışmadan önce kaynak kodunu ve işlevselliğini gözden geçirin. İyi belgelenmiş güncelleme süreçlerinin, erişim kontrol mekanizmalarının ve proje şeffaflığının varlığına dikkat edin.

  • Akıllı sözleşmenin saygın şirketler tarafından harici bir güvenlik denetiminden geçtiğinden emin olun. Denetim raporu potansiyel güvenlik açıkları hakkında fikir verebilir.

  • Proje geliştirme ekibini araştırın. Şeffaf ve güvenilir ekiplerin dolandırıcılık yapma olasılığı daha düşüktür.

  • Proje topluluğuna danışın ve sözleşmeyle ilgili deneyimi olan diğer kullanıcılardan geri bildirim alın. Dolandırıcılar genellikle kamuya açık tartışmalardan kaçınır.

  • Sözleşmelerle çalışırken, ek güvenlik ve işlem koruma özellikleri sağlayan iyi bilinen cüzdan programlarını ve araçlarını kullanın.

  • Yeni ve kanıtlanmamış sözleşmelerle, özellikle de yüksek getiri vaat eden veya olağandışı davranışlar sergileyen sözleşmelerle uğraşırken dikkatli olun.

  • Sözleşmedeki bir şey gerçek olamayacak kadar iyi görünüyorsa veya şüpheli ise, sezgilerinize güvenin ve bundan kaçının.

  • Topluluğumuzdaki en son gelişmeleri (Telegram kanalı) ve dolandırıcılık tespiti için en iyi uygulamaları (Blogumuz ve YouTube kanalımız) takip edin.

Lotus Market'in güvenlik tarayıcısı tüm yaygın (gizli dahil) harici kontrol (Proxy) özelliklerini bulur. Premium aboneliğimizi kullanın ve fonlarınızı tehditlerden koruyun.


Aşağıda, potansiyel olarak kötü amaçlı işlevselliği belirlemek için akıllı sözleşmeleri incelerken aramanız gereken yaygın kırmızı bayraklara ve şüpheli modellere örnekler verilmiştir. Kendinizi ve başkalarını potansiyel dolandırıcılıktan korumak için bu işaretleri anlamak önemlidir. Akıllı bir sözleşmedeki şüpheli işlevselliği belirlemenize yardımcı olacak bazı kod kalıbı varyasyonlarına ve ipuçlarına bakalım:

Ana kural, bir sözleşme kodunun Call, CallCode veya DelegateCall işlevlerinin çağrısını içermesi durumunda, sözleşmenin harici bir kodu çağırdığı ve verilerinin kontrolünü ona aktardığı anlamına gelir.

tips around proxy

Proxy sözleşmelerini kullanmanın ana örneklerine bir göz atalım.

1. Başlatılmamış depolama değişkenleri.

Proxy sözleşmelerindeki en yaygın güvenlik açıklarından biri, depolama değişkenlerinin kötüye kullanılmasıdır. Bir uygulama sözleşmesindeki işlevleri çağırmak için DelegateCall ile bir proxy sözleşmesi kullanıldığında, proxy sözleşmesinin depolama değişkenleri değiştirilir. Ancak, proxy sözleşmesinin depolama alanı başlatılmamış değerlere veya varsayılan değerlere sahipse, bu beklenmedik davranışlara yol açabilir.


  contract Implementation {
    address public owner;

    constructor() {
        owner = msg.sender;
    }
}

Bu örnekte, Proxy sözleşmesindeki owner değişkeni başlatılmamışsa, proxy sözleşmesinde owner() çağrısı, kullanıcının beklediği gibi olmayabilecek uygulama sözleşmesinin owner değişkenini döndürür.

2. Doğrulanmamış harici çağrılar.

Dolandırıcı sözleşmeler, uygun kontroller olmadan güvenilmeyen sözleşmelere yapılan harici çağrıları kullanabilir. Bir proxy sözleşmesi DelegateCall aracılığıyla doğrudan veya dolaylı olarak kötü niyetli bir sözleşmeyi çağırırsa, kötü niyetli sözleşme uygun korumalar olmadan reentrancy saldırıları da dahil olmak üzere keyfi eylemler gerçekleştirebilir.


  contract Proxy {
    function execute(address target, bytes memory data) external {
        target.delegatecall(data);
    }
}

Bir kullanıcı rastgele bir sözleşme ve hedef adres olarak kötü amaçlı veriler gönderirse, kullanıcı adına yetkisiz eylemlerin gerçekleştirilmesine neden olabilir.

3. Uygunsuz erişim kontrolü.

Sahte sözleşmeler, yetkisiz kullanıcıların yönetim işlevlerini gerçekleştirmesine izin veren uygunsuz erişim kontrollerine sahip olabilir. Bir vekil sözleşme kullanılırken, uygulama sözleşmesini güncelleme iznine kimin sahip olduğu dikkatle kontrol edilmelidir. Bunun yapılmaması, sözleşmenin davranışında yetkisiz değişikliklere neden olabilir.


  contract Proxy {
    function execute(address target, bytes memory data) external {
        target.delegatecall(data);
    }
}

Bu örnekte, sahip adresi düzgün bir şekilde kontrol edilmezse veya güncelleme işlevini kimin çağırabileceğine dair herhangi bir kontrol yoksa, yetkisiz taraflar uygulamayı kötü amaçlı bir sözleşmeye dönüştürebilir.

4. Sürüm oluşturma ve yönetim riskleri.

Proxy sözleşmeleri, sözleşme mantığını güncellemek için genellikle sürüm oluşturma ve yönetim mekanizmalarını kullanır. Bu mekanizmalar güvenli bir şekilde uygulanmazsa, kötü niyetli taraflarca saldırıya veya manipülasyona açık hale gelebilir.


  contract Proxy {
    address public owner;
    address public implementation;
                                    
    function upgrade(address newImplementation) external {
        require(msg.sender == owner, "Only the owner can upgrade.");
        implementation = newImplementation;
    }
}

Bu durumda, saldırgan yeni bir "temiz" sözleşme sunabilir ve ardından hemen güncellemeler yaparak kötü amaçlı kodlarını etkin bir şekilde çalıştırabilir.

tips around proxy

Proxy sözleşmelerini incelerken nelere dikkat etmeliyim ve hangi tehditleri oluşturuyorlar?

  1. Yetkisiz fon transferi:
    Dolandırıcıların para çalmasının en yaygın yollarından biri, sözleşme sahibinin fonları yetkisi olmadan kendisine veya başka bir adrese aktarmasıdır.

  2. Gizli "arka kapılar":
    Dolandırıcılar, kötü amaçlı kodları gizlenmiş veya yanıltıcı özellik adlarının arkasına saklayarak kullanıcıların gerçek niyetlerini tespit etmelerini zorlaştırabilir. Belirsiz veya yanıltıcı işlev adları. Belirli adreslere özel ayrıcalıklar veren koşullu operatörler.

  3. Sahte tokenlar ve takaslar:
    Dolandırıcılar genellikle sahte tokenlar veya sahte değişim platformları oluşturarak kullanıcıları varlıklarını kötü niyetli bir sözleşmeye aktarmaları için kandırır. Sınırsız token basma veya yetkisiz transferleri kabul etme gibi davranışları şüpheli olan token sözleşmelerine dikkat edin.

  4. Yetkisiz ihraç veya sahiplik transferi işlevleri:
    Harici bir sözleşme token sahibini değiştirebilir veya yeni bir ihracı tetikleyerek fiyat enflasyonuna neden olabilir.

  5. Yanıltıcı belgeler veya kod davranışıyla tutarsız yorumlar:
    Dolandırıcılar, kullanıcıları sözleşmenin gerçek işlevselliği konusunda yanıltmak için kodlarında yanıltıcı veya yanlış belgeler veya yorumlar sağlayabilir. Belgeleri her zaman gerçek kod davranışı ile çapraz kontrol edin.

  6. Güvenlik denetimlerinin eksikliği:
    Uygun güvenlik kontrolleri ve erişim denetimleri olmayan ya da reentrancy gibi yaygın güvenlik açıklarına karşı koruma uygulamayan sözleşmelere dikkat edin. Bir akıllı sözleşmeyi değerlendirirken her zaman kodu inceleyin, iyi belgelenmiş ve şeffaf tasarımlar arayın, harici güvenlik denetimlerini kontrol edin ve topluluk geri bildirimlerini inceleyin. Buna ek olarak, fon çalmak ya da diğer kötü niyetli faaliyetleri gerçekleştirmek üzere tasarlanmış olabileceklerinden, bu özelliklerden herhangi birini sergileyen sözleşmelerle etkileşim kurarken dikkatli olun.

  7. Karmaşık koşullu ifadeler:
    Dolandırıcılar karmaşık koşullu ifadeler veya takip edilmesi zor bir mantık kullanarak sözleşmenin gerçek işlevselliğini anlamayı zorlaştırabilir. Gereksiz derecede karmaşık kodlara bakın: aşırı karmaşık veya net olmayan mantık ve sözleşmenin amacıyla ilgisi olmayan hüküm ve koşullar.

  8. Belirsiz yönetim ve sahiplik modelleri (Mülkiyet):
    Dolandırıcılar genellikle belirsiz yönetişim mekanizmalarına veya gizli sahiplik yapılarına sahip vekalet sözleşmeleri kullanarak kullanıcıların sözleşmeyi kimin kontrol ettiğini belirlemesini zorlaştırır.

  9. Bilinen projelerin ihmal edilmesi:
    Dolandırıcılar genellikle bilinen, meşru projelerin işlevselliğini veya görünümünü taklit eden sözleşmeler oluştururlar. Her zaman projenin gerçekliğini kontrol edin ve sahte olmadığından emin olun. İsimler, logolar veya markalardaki küçük farklılıklara dikkat edin. Resmi olduğunu iddia eden ancak uygun doğrulamadan yoksun projeler.

  10. Hasty veya anonim dağıtım:
    Dolandırıcılar sözleşmeleri aceleyle, net bir tanımlama olmadan ve proje veya geliştiricileri hakkında minimum bilgi ile dağıtabilirler. Gerekli özen ve planlama yapılmadan, bilinmeyen bir ekip tarafından yayınlanan sözleşmelere dikkat edin.

  11. Halka açık doğrulama veya denetim eksikliği:
    Sözleşme herkese açık kaynak kodu incelemesi sunmuyorsa veya üçüncü taraf güvenlik denetiminden geçmemişse, sözleşmeye son derece dikkatli yaklaşmalısınız.

  12. Alışılmadık veya gizli veri depolama:
    Dolandırıcılar, kötü niyetli işlevselliği maskelemek için geleneksel olmayan veya gizli veri depolama şemaları kullanabilir. Verilerin sözleşme içinde beklenmedik yerlerde saklanabileceğini unutmayın.

  13. Sahte likidite havuzları:
    DeFi projeleri söz konusu olduğunda, yüksek getiri vaat eden likidite havuzlarına karşı dikkatli olun. Dolandırıcılar likidite çekmek için sahte havuzlar oluşturabilir ve ardından kullanıcıları istismar edebilir. Likidite sağlamadan elde edilen tutarsız yüksek gelirler. Havuzun çalışma mekanizmasının şeffaf olmaması ve belgelendirilmemesi.

tips around proxy

Bu tür güvenlik açıklarına karşı korunmak için proxy şablonları ve DelegateCall kullanan sözleşmeler dikkatle incelenmeli ve denetlenmeli, erişim kontrol mekanizmaları uygulanmalı ve harici çağrılar güvence altına alınmalıdır. Kullanıcılar, özellikle karmaşık güncelleme mekanizmalarına sahip sözleşmelerle etkileşime girerken dikkatli olmalı ve blok zincirindeki bir akıllı sözleşmeyle etkileşime girmeden önce her zaman gerekli özeni göstermelidir.

Hızla gelişen Blok Zinciri dünyasında, kendinizi ve varlıklarınızı proxy sözleşmeleri ve DelegateCall özellikleriyle ilgili potansiyel dolandırıcılık planlarından ve güvenlik açıklarından korumak için uyanık ve bilgili olmak zorunludur.


Umarız bu bilgiler, yönetilen (Proxy) akıllı sözleşme planlarını daha iyi anlamanıza yardımcı olmuştur.


Blok zincirindeki tüm bilgiler açık olduğundan (elbette sözleşmenin kaynak kodunun doğrulanması şartıyla), bu bilgiyle donanmış olarak akıllı sözleşmeleri bağımsız olarak inceleyebilir ve çeşitli dolandırıcılık planlarını belirleyebilirsiniz.

Ancak, biz zaten sizin için her şeyi yaptık! Premium abonelik için kaydolun ve akıllı sözleşmelerin özellikleri ve yeni analizler hakkında özel filtrelere erişin. Karlı tokenlara başarılı bir şekilde yatırım yapma şansınızı artırın.

Saygılar, Lotus Market ekibi.

All posts

Connect to a wallet

Metamask