Merhaba arkadaşlar,
Uzun zaman sonra teknik bir yazıyla tekrar beraberiz. Çoğunuzun merak ettiği/edebileceği bir konu olan hacklenme vakaları nasıl oluyor, işin arka planında neler dönüyor cevabı hep birlikte arayalım. Öncelikle şunu belirtelim; hacklenme vakalarından kastımız son kullanıcıların uğradığı oltalama (phishing) saldırılarından bahsetmiyoruz. Bahsettiğimiz şey
x coinin hacklenmesi.
Yaşanmış OlaylarBitcoin - 2010 yılı - 184 trilyon BTC basılması,
Ethereum - 2016 yılı - 3 milyon ETH çalınması,
Bytecoin - 2017 yılı - 693 milyon BCN basılması.
Konuyla alakalı detaylı bilgi almak isteyen arkadaşlar şu adresi inceleyebilir.
https://bitfalls.com/2018/01/14/curious-case-184-billion-bitcoin/Neden Kaynaklanıyor?C / C++ programlama dilleri oluşumları gereği hafıza korumalı (memory safe) diller değildir. Bu yüzden hafıza işlemleri ile alakalı gerekli kontrolleri programcının yapmasını bekler.Mesela kullanıcıdan girdi alınacak bir yerde, isminiz nedir gibi bir soruya, gelecek cevap 40 byte uzunluğunda da olabilir 400 byte uzunluğunda da. Peki art niyetli bir kullanıcı 4000 byte boyutunda bir girdi gönderirse ne olacak? Programcı önlem olarak girdiye müdahele etmelidir, etmezse programın gidişatı değişebilir, sizin anlayacağınız dille program sapıtır. Fakat böyle bir sapıtmanın sonucu sadece programın çökmesi olmayabilir, felaket senaryosu olarak art niyetli kullanıcı kod çalıştırma zafiyeti elde etmiş olabilir. İşte yukarıda örneklendirdiğimiz olaylar bu tarz zafiyetlerden kaynaklanmaktadır.
Engellenebilir mi? Nasıl engellenir?Bu tarz zafiyetleri engellemenin tek yolu, art niyetli birisi sömürebileceği hatayı bulmadan evvel bunu sizin ya da iyi niyetli kişilerin bulmasıdır. Bahsi geçen zafiyetleri bulmanın temel yöntemlerinden biri
fuzzing yapmaktır. Yani programın beklemediği türde ve boyutta girdiler göndererek programın gidişatı incelenir, ve yeni bir zafiyet tespit edilirse bunun kaynağı bulunarak hata giderilir. Bunu yapan kim var derseniz Ethereum ekibi
solidity (kontrat dili) için bahsettiğim yöntemi kullanmaktadır.
Merak edenler için adres :
https://github.com/ethereum/solidity/issues/1125Bunun yanı sıra bu tarz olayları baştan engellemenin yolu ne derseniz, tabii ki
memory safe bir kullanmaktır. Örnek vermek gerekirse Tezos için kullanılan OCAML dili gibi..
Coin hacklenebilir mi?Forumda gezerken bir başlıkta aşağıda okuyabileceğiniz bir mesaj gördüm. Bilhassa "hacklenmek neredeyse imkansız" kısmına gelince Komodo'nun kaynak kodlarına bakmaya karar verdim, ve gördüğüm kadarıyla Komodo da C++ dilini kullanmaktadır. Yani hacklenmesi gayet muhtemeldir.
Komodo blok zinciri son dönemlerin parlayan yıldızı. Bir kaç tane yeni proje bu zincire eklendi. Gerçekten çok güvenli bir platform. Hacklenmek neredeyse imkansız. Steem'e gelirsek, bir çok üst düzey yorumcunun da söylediği gibi Steemit geleceğin sosyal medya devi. Bu kadar üst sırada yer almasının sebebi de bu. Ama tabiki de fikir ayrılığı olacaktır sıralamada. Herkesin herşeyine kimse karışamaz sonuçta
Yeni bir coin hakkında bilgi sahibi olmak isterseniz, kaynak kodlarına bakabilirsiniz. Genel itibariyle tercih edilen dil C++ olduğu için bu tarz olaylarla daha çok karşılacağımızı düşünüyorum. Güncel bir örnek isterseniz
EOS vakası yeterli olacaktır. 4 milyar USD gibi korkunç ICO rakamına ulaşmış bir proje olarak malesef EOS da kaçınılmaz sonu yaşamıştır.
Bunun yanı sıra Ethereum altyapısını kullanan bütün tokenlar bu tehlike ile karşı karşıyadır. Nisan ayından bir link paylaşalım :
https://twitter.com/bytemaster7/status/989118867879481345?lang=en Sonuç?2000 adet kriptopara projesinin olduğu günümüzde geleceğe yönelik yatırım yapmak isterseniz, güvenlik sizin için bir kriter olsun. 2017 yılında Redbull röportajında ve twitter hesabımdan sürekli Tezos'dan bahsetmemin, hatta ücretsiz dağıtım yapmamın 2 sebebi var arkadaşlar. Birincisi geleceğin akıllı kontratlarda olduğunu düşünüyorum, ikincisi de Tezosun kullandığı güvenli bir dil olan
OCAML yüzünden bu tarz olaylardan etkilenmeyeceğini düşünüyor olmam.
Bu arada siz de Tezos sahibi olmak isterseniz twitterda devam eden çekilişime katılabilirsiniz.
https://twitter.com/kyabd