Eclipse attack yani tutulma saldırısı, bir saldırganın bir kullanıcıyı izole edip onun üzerinden merkezi olmayan ağa saldırmasıdır. Tutulma saldırısı süresince genellikle ağdaki çoğu node kötü niyetli olur ve bu kötü niyetli nodelar doğru verileri kullanıcılara ulaştırmaya çalışan iyi niyetli nodeları engelleyerek kullanıcılara yanlış bilgi gönderir. Başarılı bir tutulma saldırısında, kötü niyetli kullanıcı hedefini başarılı bir şekilde izole eder. Daha sonra kötü niyetli bu kullanıcı, hedefin kendi mevcut cüzdan durumunu ve ağın mevcut aktivitesini görmemesini yada yanlış görmesini sağlar.
Bu saldırı, merkezi olmayan bir ağda nodeların birbirlerine aynı anda bağlanamaması nedeniyle yaşanır. Bunun yerine nodelar daha verimli olmak için kendi seçtikleri diğer nodelara bağlanırlar. Daha sonra bu bağlanılan nodelar aynı şekilde bir daha kendi seçtikleri nodelara bağlanırlar. Örneğin, bir Bitcoin nodeunun 8 adet node bağlantısı vardır, Ethereum’un ise 13’tür.
Tutulma Saldırısının Amacı Nedir?
Eclipse attack, bir saldırganın tüm ağa saldırması yerine, belirli bir kullanıcıyı izole etmeye ve onlara saldırmaya çalıştığı bir yöntemdir. Kötü niyetli bir saldırgan, ideal olarak tüm bu bağlantıları ele geçirmeyi hedefler. Başarılı bir Eclipse attack, kötü niyetli birinin, ağ etkinliğinin ve mevcut defter durumunun gerçek bir resmini elde etmesini izole etmesini ve ardından engellemesini sağlar. Merkezi olmayan bir ağ, tüm düğümlerin aynı anda diğer düğümlere bağlanmasına izin vermediği için bu saldırı mümkün olmaktadır. Bunun yerine verimlilik için, bir düğüm, sırayla kendi seçilmiş bir grubuna bağlı olan diğer düğümlerden oluşan seçili bir gruba bağlanmaktadır.
Bağlantıları ele geçirmek için gereken emek miktarı; ağın yapısına, boyutuna ve doğasına göre değişiklik göstermektedir. Bunu başarmak için gereken çaba, bir ağın yapısına, boyutuna ve doğasına göre değişse de genellikle bir saldırganın bir ana bilgisayar düğümleri Botnet’ini kontrol etmesi ve hedeflenen kurbanın komşu düğümleri üstünde deneme yanılma yoluyla çalışması gerekmektedir. Genellikle bir saldırgan, ev sahibi nodelarının botnetlerinin kontrolünü ele alır ve daha sonra komşu nodeları hedeflediği nodea ulaşabilmek için aramaya başlar. Kurban node, bir dahaki sefere oturumu kapatıp ağa yeniden bağlandığında, saldırgan kurbanın tüm bağlantılarını kontrol edebilme şansına sahip olur.
Saldırganlar Eclipse Attack'tan Nasıl Kazanç Sağlar?
Kötü niyetli bir birey, tüm outgoing bağlantıların kontrolünü ele geçirerek bir kullanıcıyı izole ettiğinde, örnek olarak bir 0 doğrulama çift harcama saldırısı gerçekleştirerek bunlardan yararlanabilmektedir. Kullanıcı A kötü niyetli bireyse, kullanıcı B yalıtılmış node ise ve kullanıcı C başka bir ağ varlığıysa, kullanıcı A kullanıcı C'ye bir ödeme gönderebilir ve ardından aynı işlemi kullanıcı B'ye gönderebilir. Kullanıcı B'nin tüm outgoing bağlantıları, kullanıcı B'nin aldığı bilgileri bastırabilen ve değiştirebilen kullanıcı A üzerinden yönlendirildiği için bu fonların zaten harcandığından habersizdir. Kullanıcı B coinleri kabul edecek ve ancak daha sonra “gerçek” blok zincirine bağlandıklarında, aldatıldıklarını ve gerçekte hiçbir şey almadıklarını öğrenecekler. Saldırgan ayrıca blok zincirinin kendisine saldırmak için de Eclipse Attack kullanabilir ve izole edilmiş bir düğümün ya da düğümlerin madencilik gücünü ele geçirebilir.
Sadece saldırganın gösterdiği defteri gören kurban, zincirin bu çeşidine destek verecektir ve eğer saldırgan yeterli sayıda kullanıcıya saldırabilirse ve bazı madencilerin önemli miktarda hash gücünü kontrol edebileceğini göz önünde bulundurarak, "gerçek" deftere meşru bir çatal olarak kendi zincirini kurabilecektir. Yeterince destek aldığında ise defter olacaktır.
Heilman, Kendler, Zohar ve Goldberg'in 2015 tarihli makalesinde belirtildiği gibi, Bitcoin gibi bir PoW ağı üzerindeki diğer potansiyel Eclipse Attack etkileri şunlardır:
Mühendislik Blok Yarışları: İki madenci aynı anda bir blok keşfetmiştir; Eclipse Attack ise saldırganın mayınlı blokların keşfini kurbanlardan "gizleyebilmesi" ve ardından rakip bir blok bulunduğunda serbest bırakabilmesi nedeniyle, Eclipsed madencilerin yetim bloklarda (orphan block) madencilik çabalarını boşa harcaması anlamına gelir.
Madencilik Gücünü Bölme: Kötü niyetli bir kişi, %51 saldırılarını başlatmayı kolaylaştırmak amacıyla eclipsed madencileri ağdan çıkarabilir ve böylece aktif madencilerin miktarını azaltabilir.
N-onay Çift Harcama: Çoğu satıcı, çift harcama saldırılarını önlemek için mallarını serbest bırakmadan önce bir dizi (N) blok onaylanana kadar bekler. Ancak, yeterli madenci tutulma saldırısına uğrarsa saldırgan buna rağmen eclipsed bir tradera çift harcama saldırısı başlatabilir. Saldırgan işlemlerini, defterlerine eklenmiş eclipsed madencilere sunabilir. Bu durum daha sonra daha tecrübesiz traderlara gösterilir çünkü onlar da tutulma saldırısına uğramış ve geniş ağdan kaldırılmıştır. Trader, karşılıklı malları saldırgana gönderdikten sonra, tutulma saldırısına uğrayan madencilerin defteri atılır ve traderların eli boş bırakılır.
Tutulma Saldırısı Önlenebilir mi?
Bir tutulma saldırısının meydana gelme kolaylığı; bir ağın veri yapısı, her kullanıcının kaç bağlantısı olduğu ve kullanıcıların tek bir IP adresinde birden fazla node başlatıp başlatamayacağı ve her bir kullanıcı için benzersiz bir IP adresi gerektirip gerektirmediği gibi bir dizi faktöre bağlıdır.
Mart 2018'de Marcus, Heilman ve Goldberg tarafından Ethereum'un Eşler Arası Ağındaki Düşük Kaynaklı Tutulma Atakları adlı araştırma raporu bu endişeleri açıkça ortaya koymuştur. Rapor, “her biri tek bir IP adresine sahip yalnızca iki ana bilgisayara” sahip bir saldırganın bir düğümü (node) tamamen izole edebileceğini açıkça ortaya koydu. Bunun nedeni hem yapılandırılmış Ethereum ağı (Kademlia olarak bilinen bir yapı) hem de düğümlerin aynı IP adresinden birden fazla node çalıştırabilmesidir. Yapılandırılmamış Bitcoin ağına eşdeğer bir saldırı, her nodeun Ethereum'dan daha az bağlantıya sahip olmasına rağmen yüzlerce benzersiz IP adresinin kullanılmasını gerektirmesinden dolayı çok daha zordur.
Bununla birlikte, Ethereum geliştiricilerinin raporun ardından belirttiği gibi: "Bildiğimiz kadarıyla, çıta, tutulma ataklarının daha önemli kaynaklar olmadan mümkün olmayacağı kadar yükseltildi". Bu, diğer DLT'ler için de geçerli bir ifadedir. Ne yazık ki, önemli kaynaklara sahip saldırganların var olması ve özellikle saldırganın bir Botnet'e erişimi varsa veya bir internet servis sağlayıcısını ele geçirebilirse, DLT'lere karşı bir Eclipse Attack için potansiyel saldırı vektörleri kalır.
Heilman ve arkadaşlarının 2015 tarihli makalesi, ağların bu yoğun saldırılara karşı ne kadar hassas olduğunu göstermiştir: “32 ayrı/24 IP adres bloğuna veya 4600 düğümlü bir Botnet'e sahip bir saldırgan, en kötü halinde %85'in üzerinde bir olasılıkla bir kurbanı eclipsed edebilmektedir. O zamandan beri karşı önlemler getirilmiş olsa da tutulma ataklarının nispeten az miktarda kaynakla uygulanabilmesinin kolaylığını vurgulamaktadır.
Ağların değeri ve bunlar arasında gerçekleşen işlemler artmaya devam ettikçe, önemli kaynakları bir saldırıya ayırmaya yönelik teşvikler de artmaktadır. Eclipse Attack sırasında izinsiz merkezi olmayan ağların savunması zordur ancak saldırının gerçekleşmesini zorlaştırabilecek bir dizi düzeltme vardır:
Rastgele düğüm seçimi: Ethereum ile ilgili sorunlardan biri, bir nodeun yeni bağlantılar aramasını rastgele yapmayan ve bu nedenle bir saldırganın kurban tarafından seçilecek düğümler oluşturmasına izin veren Kademlia'nın kullanılmasıdır. Bu seçimi ağa yayılmış eşler ile rastgele yapmak, bir saldırganın bir kurbanı hedeflemek için hangi nodeları oluşturması gerektiğini tahmin etmesini zorlaştırmaktadır.
IP adresi/makine başına node sayısının sınırlanması: Bu hareket Marcus ve arkadaşlarının makalesinde tanımlanan en büyük kusurlardan ve ele alınması en kolay olan kusurlardan biridir
Bilgi depolama: Nodelar, diğer nodelarla karşılaştıklarında onlar hakkında bilgi depolar; bir node ağdan ayrıldıktan ve ağa yeniden katıldıktan sonra bu bilgileri erişilebilir tutmak için diğerlerini bulmadan önce bazı meşru eşlerin bağlantı kurmasını sağlar.
Bağlantı sayısını arttırmak: Ağı yavaşlatacağı için sonsuz bir sayı olamaz ancak ne kadar çok bağlantıya izin verilirse, bir nodeun meşru bir kullanıcıya bağlanma olasılığı o kadar artar.
Tutulma atakları bir bütün olarak bir ağ için belki daha az tehlikelidir ancak bunların gerçekleşmesi daha olasıdır ve blok zincirinin değişmez doğası, başarılı bir saldırı durumunda kayıp fonları geri getirebilecek kimsenin olmadığı anlamına gelir. Saldırılar yaygınlaşırsa, ağa olan güven aşınır ve sistem nihayetinde bir krizle karşı karşıya kalabilir.