Tutulma (Eclipse) Saldırısı Nedir?
HomeArticles

Tutulma (Eclipse) Saldırısı Nedir?

İleri Seviye
2mo ago
6m

İçerik


Tutulma saldırısı kötü niyetli bir kişinin ağ üzerindeki node'lara müdahale etmek için kullanabileceği nispeten basit bir saldırıdır. İsminden de anlaşılabileceği gibi saldırı genel bir aksama yaratmak ya da daha sofistike saldırılara ortam hazırlamak için bir katılımcının eşler arası ağ görüntüsünü kesmeyi amaçlar.

Tutulma saldırıları yüzeysel olarak Sibil saldırılarına benzermiş gibi gelebilir. Bazı benzerlikleri olsa da (kötü niyetli kişilerin sahte eşlerle ağı doldurması gibi) bu iki saldırının nihai amaçları farklıdır. Tutulma saldırısı tek bir node'u hedef alırken (önümüzdeki bölümlerde açıklanacak nedenlerden) bir Sibil saldırısı protokolün itibari sistemini bozmak için tasarlanmış ağ çapında bir saldırıdır.

Kavram, Boston Üniversitesi ve Kudüs İbrani Üniversitesi'nden araştırmacıların tutulma saldırıları üzerine deneylerinin sonuçlarından ve bu saldırılarla savaşmak için alınabilecek karşı önlemlerden bahseden 2015 tarihli Bitcoin'in Eşler Arası Ağında Tutulma Saldırıları adlı makalede derinlemesine incelenmiştir.


Tutulma saldırısı nasıl çalışır?

Bitcoin madencileri yeni bloklar yaratmak için özel ekipmanlara ihtiyaç duyar fakat madencilik yapmayan (ya da tam) node'lar minimum hesaplama gücüyle rahatça çalıştırılabilir. Bu da herhangi birinin düşük özellikli bir aygıtla node çalıştırabilmesine imkan tanıdığı için Bitcoin'in merkeziyetsizleşmesine katkıda bulunur. Yazılım bir işlem veritabanı tutarak bunu en yakın eşleriyle senkronize eder ve böylece ağla uyumlu halde kalır.

Birçok node için sınırlayıcı bir etmen bant genişliğidir. Yazılım üzerinde çok sayıda aygıt çalışıyor olsa da ortalama bir aygıt Bitcoin yazılımı tarafından belirlenen sınırlamalar (maksimum 125 bağlantıya izin verir) nedeniyle bunların çoğuna doğrudan bağlanamaz.

Bir tutulma saldırısında kötü niyetli kişiler hedef alınan node'un tüm bağlantılarının saldırgan kontrolündeki node'larla olmasını sağlar. Saldırgan ilk olarak kendi IP adresleriyle hedefin akışını doldurur. Bu adresler mağdurun yazılımı tekrar başlatırken bağlanması muhtemel adreslerdir. Tekrar başlatma için hedef zorlanabilir (örneğin bir DDoS saldırısı ile) ya da saldırgan yalnızca bunun kendiliğinden gerçekleşmesini bekleyebilir. 

Tekrar başlatma gerçekleştiğinde durumdan habersiz olan mağdur, geniş çapta ağla hiç bağlantısı olmadığından kötü niyetli node'ların insafına kalır ve saldırgan tarafından yanlış verilerle beslenmeye açık hale gelir.


Tutulma saldırısının sonuçları

Eğer saldırgan bir eşi ağdan uzaklaştırmaya çalışıyorsa muhtemelen bunu yapmak için bir nedeni vardır. Bir node'un boğulmasının ardından arka arkaya daha kolay şekilde gerçekleştirilebilecek birkaç saldırı bulunur.


0-onaylı çift harcamalar

Eğer bir birey bir işlemi hiçbir onaylama olmadan kabul ediyorsa bu durumda çift harcama riski altındadır. İşlem yayınlanabilir fakat bir bloğa dahil edilene (ve dolayısıyla blockchaine işlenene) kadar gönderici aynı fonları başka bir yerde harcadığı yeni bir işlem yaratabilir. Eğer yeni işlemin masrafı daha yüksekse madenci yüksek ihtimalle orijinalden önce bunu bloğa dahil eder böylece eski işlem geçersiz kılınır. 

Bazı işletmeler ve bireyler bu 0-onaylı işlemleri kabul eder. Bir lüks araç satıcısı olan Bob'u düşünelim. Bob, Alice'in node'unun tutulmaya maruz kaldığından habersiz ve ondan gelen bir lüks spor araba siparişi karşısında aklında bir şüphe oluşmuyor. Alice işlemi gerçekleştiriyor ve Bob da bunu ağa yayınlıyor. Ödemenin gelmek üzere olduğunu düşünerek araba anahtarlarını teslim ediyor ve Alice hızla uzaklaşıyor.

Tabi ki aslında işlem ağa yayınlanmıyor, Bob bunları yalnızca Alice'in kötü niyetli node'larına iletiyor onlar da bu işlemi dürüst node'larla paylaşmıyor. İşlem boşlukta asılı kalırken Alice aynı miktarda fonu başka bir partiye ya da kendisinin sahip olduğu bir adrese göndererek (gerçek) ağ üzerinde harcıyor. Bob'a yapılan ilk işlem en nihayetinde görülse bile coinler hali hazırda harcanmış olduğu için reddediliyor.


N-onaylı çift harcamalar

N-onaylı çift harcamalar 0-onaylı çift harcamalara benzerdir fakat daha fazla hazırlık gerektirir. Birçok işletme ödemeyi geçerli kılana kadar belli sayıda onaylamaya ulaşılmasını beklemeyi tercih eder. Bunun için de saldırganın hem madencileri hem de satıcıyı tutulmaya maruz bırakması gerekir. Saldırgan, satıcıya bir sipariş geçmesinin ardından bunu (tutulmaya maruz kalmış) madencilere yayınlar. İşlem onaylanır ve blockchaine dahil edilir fakat madencinin bağlantısı kesilmiş olduğu için bu blockchain çoğunluğun izlemekte olduğu zincir olmaz.

Bu noktada saldırgan blockchainin bu versiyonunu satıcıya iletir ve satıcı da işlemin onaylandığı düşüncesiyle ürünleri teslim eder. Tutulmaya maruz kalmış node'lar gerçek ağa tekrar katıldığında, yanlışlıkla geçerli olduğunu düşündükleri blockchain, ağın geri kalanının üzerinde çalıştığı gerçek zincir tarafından öksüz bırakılır (bu da %51 saldırısına bazı benzerlikler gösterir).


Rakip madencileri zayıflatma

Tutulmaya maruz kalmış bir node, ağın geri kalanından ayrıldığından habersiz halde çalışmaya devam eder. Madenciler protokolde belirtilen kurallara uygun şekilde blok kazmaya devam eder ama dürüst node'larla senkronize olduklarında bu bloklar göz ardı edilir. 

Teorik olarak, başlıca madenciler üzerinde yapılan geniş çaplı bir tutulma saldırısı, bir %51 saldırısını desteklemek için kullanılabilir. Normalde Bitcoin'in hashing gücünün çoğunluğunu ele geçirmenin masrafı en geniş kaynağa sahip olan saldırganlar için bile çok yüksektir – ~80TH/s'de, saldırganın böyle bir girişimde bulunmak için 40TH/s'den fazlasına ihtiyacı vardır. 

Bu hashing gücünün 10 parti arasında dağıtıldığı (her birinin 8TH/s'ye sahip olacağı şekilde) varsayımsal bir senaryoda saldırgan bu partilerin ağla bağlantılarının kesilmesini sağlayarak %51 saldırısının gerekliliklerini büyük ölçüde azaltabilir. Eğer 5 parti tutulmaya maruz kalırsa, bir sonraki bloğu bulma yarışından 40TH/s çıkar ve artık saldırganın kontrolü ele geçirmek için yalnızca 20TH/s'den biraz daha fazlasına ihtiyacı vardır.

Hedefleri tutulmaya maruz bırakarak yapılabilecek bir diğer sabotaj da bencil madencilik için node'ların ya da bir sonraki bloğu bulmak için madenciler arasındaki yarış mühendisliğinin manipülasyonudur.


Saldırıyı Önleme

Bir saldırgan yeteri kadar IP adresiyle herhangi bir node'u tutulmaya maruz bırakabilir. Bunun gerçekleşmesini engellemenin en doğrudan yolu bir operatörün gelen bağlantıları bloklaması ve yalnızca belirli node'larla (örneğin diğer node'lar tarafından beyaz listeye eklenmiş olanlarla) bağlantı kurmasıdır. Fakat araştırma raporunda da belirtildiği gibi bu ölçeklenebilir bir yaklaşım değildir, eğer tüm katılımcılar bu önlemi kullanırsa yeni node'lar ağa katılamaz.

Yazarlar Bitcoin yazılımı için çeşitli değişiklikler önerir ve raporun yayınlandığı tarihten bu yana bu önerilerin bir kısmı entegre edilmiştir. Bu öneriler koda yapılacak yeni bağlantıların rastgele seçilmesi ve adresleri saklamak için kapasitenin artması gibi küçük değişikliklerle tutulma saldırılarını daha masraflı hale getirir.


Son Fikirler

Tutulma saldırıları eşler arası seviyede gerçekleştirilir. Kendi başına saldırı yalnızca küçük bir fark yaratır. Fakat saldırının asıl etkili olduğu alan hedefleri finansal olarak etkileyecek ya da saldırgana madencilik bakımından avantaj sağlayacak diğer saldırıların yapılmasını kolaylaştırmaktır.

Gerçek hayatta bir tutulma saldırısının yarattığı ciddi sonuçlarla henüz karşılaşılmadı fakat ağa entegre edilen tüm önlemlere rağmen tehdit halen devam ediyor. Bitcoin ve diğer kripto paralar için mevcut tüm saldırı vektörlerinde olduğu gibi en güçlü savunma bu saldırıyı kötü niyetli kişiler için finansal olarak çok zorlayıcı hale getirmek olacaktır.