DApps - Merkeziyetsiz Uygulamalar
Reading time: 4 minutes
{{#include ../../banners/hacktricks-training.md}}
DApp Nedir?
DApp, merkezi bir sunucu yerine, eşler arası bir ağda çalışan merkeziyetsiz bir uygulamadır. DApp'ler genellikle blok zinciri teknolojisi üzerine inşa edilir ve bu, veri şeffaflığı, güvenliği ve değişmezliği sağlamalıdır.
Web3 DApp Mimarisi
bu gönderiye göre, Web3 DApp mimarisinin 3 farklı türü vardır:
"API-siz" DApp'ler
Bu DApp'ler bir blok zincirinin üzerine inşa edilmiştir ve herhangi bir merkezi API veya arka uca dayanmaz. Blok zincirinin uygulamanın gerçek arka ucu olduğunu düşünebilirsiniz. Tamamen merkeziyetsizdirler ve doğrudan blok zinciri üzerinden erişilebilirler.
Blok zinciri ile etkileşimde bulunmak için istemci genellikle bir cüzdan kullanır. Cüzdan, işlemleri imzalar ve bunları blok zincirine gönderir. İstemci ayrıca blok zincirinden veri okumak için bir düğüm de kullanabilir.
"API-Destekli" DApp'ler
Bu DApp'ler bir blok zincirinin üzerine inşa edilmiştir ancak genellikle bilgi toplamak için merkezi API'lere dayanır. Çoğunlukla merkeziyetsizdirler çünkü merkezi bir API'ye dayanıyor olsalar bile, DApp'in temel işlevselliği hala blok zincirindedir. İstemcinin blok zinciri ile iletişimi genellikle bir cüzdan aracılığıyla yapılır.
Bu tür bir DApp için iyi bir örnek NFT mintleme uygulamasıdır. Sunucu, resimlerin yüklenmesine izin verir ancak mintleme, istemci tarafından bir cüzdan aracılığıyla yapılır.
"Tam Ölçekli" DApp'ler
Bu DApp'ler bir blok zincirinin üzerine inşa edilmiştir ancak merkezi API'lere ve arka uç sunucularına da dayanır. Kısmen merkeziyetsiz olabilirler çünkü istemci bir cüzdan kullanarak blok zincirinde işlemler gerçekleştirebilir. Ancak genellikle arka uç da blok zincirinde işlemler gerçekleştirebilir.
Bu tür bir DApp için iyi bir örnek, varlık transferini gerçekleştirmek için farklı blok zincirlerindeki akıllı sözleşmelerle iletişim kurmak için bir offchain bileşen gerektiren bir çapraz zincir köprüsüdür.
Web2 Açıkları
Web2 açıkları, etkileri değişiklik gösterse de, bu tür uygulamaları hala etkilemektedir:
- İstemci tarafı açıkları, Web3 DApp'lerde istemcinin genellikle bir cüzdan aracılığıyla blok zincirinde işlemleri gerçekleştiren kişi olması nedeniyle artan bir etkiye sahiptir. Bu, istemci tarafında JS kodunu çalıştırmayı başaran veya sayfanın içeriğiyle oynayan XSS gibi saldırıların, cüzdanla etkileşimde bulunabilmesi ve kullanıcının blok zincirinde istenmeyen işlemler gerçekleştirmesi için ikna edebilmesi nedeniyle daha büyük bir etki yaratabileceği anlamına gelir.
- Genellikle bu tür uygulamalarda istemcinin işlemleri cüzdanla imzalamadan önce gözden geçirebileceğini unutmayın. Ancak, saldırgan sayfanın içeriğiyle oynayabilirse, kullanıcının blok zincirinde istenmeyen bir işlemi gerçekleştirecek bir işlemi imzalaması için ikna edebilir.
- Sunucu tarafı açıkları, bir arka uç sunucusuna dayanan DApp'lerde hala mevcuttur. Bu açıkların etkisi, DApp'in mimarisine bağlı olacaktır. Ancak, bir saldırgan arka uçta şirketin anahtarlarını bulabilir ve akıllı sözleşmelerin fonlarına erişebilir veya kullanıcıların fonlarını veya NFT'lerini çalmalarına olanak tanıyan hesap ele geçirme gerçekleştirebilir.
Elbette, DApp bir arka uç kullanmıyorsa veya kullanılan arka uç yalnızca kamu zinciri verileri veya statik sayfalar sunuyorsa, DApp'in saldırı yüzeyi azalır.
Web3 Saldırı Yüzeyi
Genel olarak bir DApp'in saldırı yüzeyinin azaltılmış olmasına rağmen, hala bir saldırgan tarafından istismar edilebilecek bazı saldırı vektörleri vardır.
Web3 DApp açıklarını aşağıdaki kategorilerde gruplamak mümkün olabilir:
-
Yanlış Yönetilen Zincir İçi İşlemler: yanlış biçimlendirilmiş veya kısıtlanmamış işlem API'leri, yanıt bekleme ve blok onaylama mantığının eksikliği, hassas verilerin ifşası ve kötü niyetli veri yüklemelerine izin veren başarısız, geri alınmış veya dahili türdeki işlemlerin yanlış yönetimi.
-
Akıllı Sözleşme Tabanlı Arka Uç Saldırıları: sözleşmeler ve veritabanları arasında hassas verilerin doğrulama olmadan depolanması veya senkronize edilmesi, kontrolsüz olay yayılımları veya sözleşme adresleri ve arka uç mantığını zehirleyebilecek istismar edilebilir sözleşme açıkları.
-
Hatalı Kripto Varlık İşlemleri: farklı token türlerinin (yerel vs. ERC-20) yanlış işlenmesi, ondalık hassasiyetin göz ardı edilmesi, başarısız transferler veya iç işlemler ve doğrulama olmadan sahte, deflasyonist, yeniden temel veya kayma eğilimli tokenlerin kabul edilmesi, veri yüklemelerine olanak tanıyan token meta verileri aracılığıyla.
bu gönderiden bazı örnekler:
Fonları İsraf Etme: Arka Ucu İşlem Yapmaya Zorlama
Sınırsız API ile Gazda İsraf
senaryosunda, saldırgan arka ucu gaz tüketecek bir akıllı sözleşme fonksiyonunu çağırmaya zorlayabilir. Saldırgan, sadece bir ETH hesap numarası göndererek ve herhangi bir limit olmadan, arka ucu akıllı sözleşmeyi kaydetmeye zorlayacak ve bu da gaz tüketecektir.
DoS: Kötü İşlem Yönetim Süresi
Kötü İşlem Süresi Yönetimi DoS'a Yol Açar
senaryosunda, arka ucun bir işlem gerçekleştirilene kadar HTTP isteğini açık tutacağı açıklanmaktadır; bu nedenle bir kullanıcı, arka uca birkaç HTTP isteği gönderebilir ve bu da arka ucun tüm kaynaklarını tüketerek bir DoS'a yol açar.
Arka Uç<-->Blok Zinciri Senkronizasyonu - Yarış Durumu
Kötü İşlem Süresi Yönetimi Yarış Durumuna Yol Açar
senaryosunda, bir oyunda kullanıcının arka uca bir para çekme talebi göndermesi mümkün olduğu açıklanmaktadır; arka uç kullanıcının paralarını gönderecek ancak işlem hala işlenirken, kullanıcı bu paraları oyunda öğeler satın almak için kullanabilecektir ve bunları bedava alacaktır.
Başka bir örnek, arka ucun işlemin onaylanmasını beklemeden kullanıcıya öğeyi hemen vermesi nedeniyle aynı paraları farklı öğeleri satın almak için kullanabilmektir; bu nedenle blok zincirindeki kullanıcı bakiyesinin azaltılmasını beklemez.
Akıllı Sözleşme Adresi Doğrulaması
Köprü Arka Ucu Akıllı Sözleşme Adresi Doğrulaması Yapmıyor
senaryosunda, arka ucun akıllı sözleşmenin adresini kontrol ettiği açıklanmaktadır; bu nedenle bir saldırgan sahte bir akıllı sözleşme dağıtabilir, üzerine fon koyabilir, işlemi arka uca gönderebilir ve arka uç kullanıcının gerçek akıllı sözleşmeye fon gönderdiğini düşünecek ve kullanıcıya token verecektir.
Varlık Sınıflarının Yanlış Yönetimi
Varlık Sınıflarının Yanlış Yönetimi
senaryosunda, arka ucun bir adresle 1 MATIC olan bir dolandırıcılık NFT'sini karıştırdığı açıklanmaktadır; bu nedenle saldırgan, adrese yüzlerce dolandırıcılık NFT'si gönderebilir ve her biri için platformdan 1 MATIC alabilir.
Referanslar
{{#include ../../banners/hacktricks-training.md}}