Blockchain Güvenliği
Merhabalar, önümüzdeki günlerde Blockchain teknolojisi ile ilgili güvenlik sorunlarını inceleyeceğim. Bu incelemeyi 2 yazıya ayırdım. Birincisinde Blockchain 1.0 ile, ikincisinde ise Blockchain 2.0 ile ilgili konular olacak, öyleyse 1. yazıya başlayabiliriz :)
Blockchain günümüzde devrim olarak nitelendirilen bir teknoloji ve bize birçok fayda, yenilik sunuyor. Her geçen gün biraz daha yaygınlaşan bu teknolojinin ne yazık ki güvenlik ile ilgili yönlerini ele almayı pek sevmiyoruz ve geçiştiriyoruz. Şimdi gerçekleşen veya gerçekleşme potansiyeli olan saldırıları inceleyelim ve blockchainin ne gibi zaafları olabilirmiş bunlara bakalım.
51% Saldırıları
Blockchain teknolojileri karşılıklı güveni sağlayabilmek için bazı konsensus mekanizmaları kullanır. Fakat kullanılan bu mekanizmada %51 açığı bulunabilir. Bu açık sayesinde saldırganlar tüm blockchain ağını etkileyebilir. Detaylandırmak istersek, PoW(Proof of Work) mekanizmasıyla çalışan bir blockchainde bir madencinin kazma gücü(hashing power) tüm ağın kazma gücünün %50’sini geçerse bahsedilen 51% açığı ortaya çıkabilir. Hatta mining havuzlarının (mining pools) çok güçlenmesi sonucu bu açık biraz daha tehlikeli hale gelebilir. Bu olayla ilgili 2014 yılının ocak ayında, ghash.io isimli mining havuzunun Bitcoin ağında %42 oranında hesaplama gücü elde etmesiyle havuzdaki bazı minerlar gönüllü olarak ghash.io mining havuzunu terk ettiler ve ghash.io tekrar %51 eşiğine ulaşmayacağına dair topluluğa teminat verdi. Bu bahsettiğimiz olaylar PoW mekanizması için geçerliydi.
Gelelim bir diğer yaygın mekanizma olan PoS(Proof of Stake)’e . PoS mekanizmasında hesaplama gücü bireylerin elinde bulundurduğu coin/token miktarıyla doğru orantılıdır. Tahmin ettiğiniz üzere 51% saldırısının gerçekleşebilmesi için bahsedilen coinin yarısından fazlasının bir kişinin elinde bulunması gerekir.
51% saldırısının gerçekleşmesi için gerekli koşulları gördük. Peki bu şartlar sağlanırsa ve 51% saldırısı olursa ne gibi sonuçlar ortaya çıkar?
- Saldırıyı yapan kişi, otorite sahibi olduğu için blockchain üzerindeki bilgileri keyfi olarak değiştirebilir ya da manipule edebilir,
- Double spending(aynı parayı iki kere harcama sorunu) işlemi yapabilir veya tersine olarak blocklar içerisindeki bilgileri değiştirebilir,
- Transactionların gerçekleşme sırasını etkileyebilir. Blok ödüllerini kendine yönlendirebilir,
- Ağ üzerinde çatallaşmaya sebep olabilir,
- Ağ üzerindeki diğer işlemlerin sonuçlandırılmasını etkileyebilir.
51% saldırılarına örnek göstermek gerekebilir. Bugünlerde sıklaşan 51% saldırıları MonaCoin, BitcoinGold, ZenCash, Verge ve Litecoin Cash gibi pazar payı yüksek coinler üzerinde gerçekleşti. Ayrıca 2016 yılında Krypton adında Ethereum tabanlı bir tokene, kendine 51% Crew adını veren bir grup tarafından 51% saldırısı yapıldı.
Mining Attacks
Saldırganların şüphe çekmeden bazı bilgisayarları yeni coinler üretmek veya mining yaptırmak için kullanmaları da görülen saldırı yöntemlerinden biridir. Örneğin, Neptune exploit kit, zararsızmış gibi görünen reklamlarlar aracılığıyla kullanıcılara mining yaptıran bir zararlı yazılım. Bu sayede saldırganların ağ üzerindeki karar algoritmasını etkileyebilecek hale gelmesini (şu an için düşük bir ihtimal olsa da gelecekte bir tehlike olarak değerlendirilebilir) veya kullanıcılara iş yükü yükleyip kazdıkları coinleri saldırganlara yollatmasını sağlıyor. Hatta bazı tarayıcı tabanlı zararlı yazılımlar, kullanıcılar tarayıcıdaki oturumlarını kapatsalar bile arkaplanda çalışmaya devam edebiliyor. Bu konuda daha detaylı bilgi için Cryptojacking Nedir ? Nasıl Korunulur? yazımı okuyabilirsiniz.
Man in The Middle Attacks
MITM(Man in The Middle) saldıları, saldırganların, kendi aralarında iletişim kurduğuna inanan taraflar arasına sızması ve taraflar arası paylaşılan bilgileri kullanmasıdır.
Blockchain üzerinde gerçekleşen her işlem bazı şifreler ile korunur. Bu şifrelere private ve public key adı verilir. Public key bir adresten diğerine değer transferi yapmayı sağlarken, bu işlemin gerçekleşmesi için kullanıcının private keyini kullanması gerekir. Yani private keyin gizliliği çok önemlidir. MITM saldırılarında, saldırganlar kullanıcıların private keyinin saklandığı cüzdanlarına erişim sağladıkları için işlemleri istedikleri gibi manipüle edebilirler.
Bu sene şubat ayının başlarında, saldırganlar Ledger markalı hardware cüzdanında MITM saldırılarına imkan sağlayan bir açıktan yararlandı . Bu açık sayesinde saldırganlar kullanıcıların cüzdanın erişebiliyor ve kullanıcıların gerçekleştirecekleri işlemlerde ulaşım(destination) adresini kendi adresleri olarak ayarlayabiliyordu. Bu yüzden büyük kayıplar oluştu. En güvenli değer saklama yöntemlerinden biri olarak düşünülen Ledger Hardware cüzdanlarda böyle bir açık çıkması da büyük bir hayal kırıklığı olarak nitelendirilebilir.
Sybil attack
Eğer bir saldırgan ağı kendi kontrol ettiği kişilerle doldurursa, kullanıcı büyük ihtimalle saldırganın düğümlerinden birine bağlanmış olacaktır. Ağ üzerinde böyle bir saldırının gerçekleşmesi ve dürüst(honest nodes) düğümlerinin sayılarının azalması bazı sonuçlar doğurabilir:
- Saldırgan yapılan işlemleri aktarmayı reddedebilir ve herhangi birini ağdan çıkarabilir,
- Saldırgan sadece istediği blokları ağa aktarır, sizi ana ağdan ayırarak double-spending ataklarına karşı savunmasız bırakabilir,
- Belirli işlemleri filtreleyerek double-spending imkanı yaratabilir.
Denial of Service (DoS) / Spam Attacks
Kötü amaçlı bir kullanıcının bir blockchain üzerinde kısa sürede bir çok işlem yapması da görülen saldırı çeşitlerinden biri. Saldırgan aynı anda binlerce işlem yaparak bloğu yıpratmaya ve yormaya çalışır. Böylelikle onaylanması gereken işlem sayısı oldukça artar ve işlem havuzunda(mempool) birikme olur.
2015 yılının başlarında gerçekleşen bir saldırıda, öncelikle saniye başına yapılan işlem sayısı 1–2 iken saldırı sırasında bu sayı 150’ye kadar yükseldi. Sayının bu kadar yükselmesi de işlem havuzunda biriken işlem sayısının 100 bini geçmesine sebep oldu. Bu sırada işlemler için alınan transfer ücretleri katlanarak arttı. Tüm bunlar sonucunda bir çok insan Bitcoin transferi yapmak için yaklaşık bir gün beklemek zorunda kaldı, diğer bir deyişle kendi paralarını harcayamadılar.
Blockchain sorunları ve güvenliğini işleyeceğimiz 2 yazılık serinin birinci yazısını bitirdik. Bu yazıda Blockchain 1.0 üzerinde yapılabilecek saldırıları ve olası zaafları inceledik. İkinci yazımızda Blockchain 2.0 olarak adlandırılan Ethereum ve Smart Contractlarla ilgili sorunlara değinip çıkarımlarda bulunacağız.
Tüm bu problemlerin de çözülmesiyle umarım daha güvenli ve daha sağlam bir Blockchain teknolojisi oluşur.
Bir sonraki yazımızda görüşmek üzere, blockchainle kalın :)