1. Anasayfa
  2. Akıllı Sözleşme

Akıllı Sözleşme Hackleme Yol Haritası 2024

Web3 / Smart Contract Hacking için Yol Haritası 2022

Akıllı Sözleşme Hackleme Yol Haritası 2024
Akıllı Sözleşme Hackleme
2

Akıllı Sözleşme Hackleme

Akıllı Sözleşmeler konusunda tek yol deliştirici / yazılımcı olmak değil. Akıllı Sözleşme Denetçisi olma ya da beyaz şapkalı Akıllı Sözleşme Hackerı olmak gibi birçok alternatifi var…

Bu blogda, web3 ve Akıllı Sözleşme korsanlığına başlamak için yol haritasını ve adım adım kılavuzu paylaşacağım.

Web3 güvenliğinde öğrenilecek kesin bir yol veya yol haritası yoktur. İstediğiniz şekilde, öğrenebilirsiniz. Ancak yeni başlayan biriyseniz, mümkün olan en verimli yolu haritasını sizlerle paylaşıyorum. Yani bu yol haritası tam size göre :)

Bu nihai rehber olacak ve başlamanıza yardımcı olabilecek birçok kaynak içeriyor. Blockchain korsanlığını öğrenmek sadece Solidity ve Ethereum ile ilgili değildir. Bunda iyi olmak, farklı protokoller, ekonomi, finans, matematik, mantık vb. hakkında iyi bir bilgi gerektirir.

Daha fazla zaman kaybetmeden doğrudan adımlara geçelim:

1. Blockchain Temellerini ve Ethereum’u öğrenin.

İlk adım, Blockchain teknolojisinin temellerini ve bloklar, düğümler, madencilik, karma vb. gibi çeşitli terminolojileri öğrenmemiz gerekiyor. Ardından Ethereum temellerini öğrenebiliriz. Blockchain temellerini öğrenmek, bize bu teknolojinin nasıl çalıştığı hakkında genel bir fikir verecek ve neyle uğraştığımıza dair size genel bir bakış sağlayacaktır.

Blockchain nedir?

Blok zinciri, bir bilgisayar ağının düğümleri arasında paylaşılan dağıtılmış bir veritabanı veya defterdir. Bir veritabanı olarak, bir blok zinciri, bilgileri elektronik olarak dijital biçimde saklar. Ethereum, Bitcoin gibi bir blok zinciri protokolüdür. Bitcoin’den farklı olarak, Ethereum Turing Complete’tir, bu da diğer herhangi bir gerçek dünyanın, genel amaçlı bilgisayarın hesaplama yönlerini yaklaşık olarak simüle edebileceği ve programları çalıştırabileceği anlamına gelir.

Mutlaka Okuyun : Blok Zinciri

2. Akıllı Sözleşmeler ve Programlama Dili.

Daha sonra, Akıllı Sözleşmeler ve solidity veya vyper gibi programlama dillerini kullanarak Akıllı Sözleşmelerin nasıl yazılacağı hakkında bilgi edinebiliriz. Solidity, şu anda Akıllı Sözleşme yazmak için en yaygın kullanılan programlama dilidir.

Akıllı Sözleşmeler Nelerdir?

Akıllı sözleşmeler, basitçe bir blok zinciri ağı üzerinde çalışan bilgisayar programlarıdır. Konsept ilk olarak 1990’ların sonlarında bilgisayar bilimcisi ve kriptograf Nick Szabo tarafından icat edildi. Ancak, ilk önce Ethereum protokolü tarafından uygulandılar.

Solidity için, Solidity Docs başta olmak üzere burada aktardığım Solidity kategorisine mutlaka göz atmalısınız.

3. Hardhat / Foundry gibi Test Çerçevelerini Öğrenin

Ardından, Akıllı Sözleşmeleri yerel ortamlarda çalıştırmamıza ve Akıllı Sözleşmeler için test çalıştırmamıza yardımcı olan hardhat/foundry gibi Test çerçevelerini öğrenebiliriz. Bunun için Remix IDE‘yi de kullanabiliriz, ancak büyük projeler için yerel test ortamı kurmak çok daha iyidir. Bu nedenle, bu çerçeveleri öğrenmek, saldırılarımız için POC’leri test ederken veya yazarken yardımcı olan birçok avantaja ve eklentiye sahiptir.

Birçok Test Çerçevesi vardır. Ama ünlü olanlar:

  • Foundry : Foundry’de Testler ve komut dosyaları Solidity ile yazılır.
  • Hardhat : Hardhat’ta Testler ve scriptler Javascript ile yazılır.
  • Brownie : Brownie’de Testler ve komut dosyaları Python’da yazılır.

4. Finans Temellerini Öğrenin

Bu, pek çok insanın öğrenmeye odaklanmadığı bir şeydir. Ancak birçok geleneksel finans terimini kullanan bir DeFi projesini denetlediğiniz ve hiçbir şey anlamadığınız bir zaman olacaktır. Bu terimleri aradığınızda, bilmediğiniz daha da fazla terime atıfta bulunan tanımlar göreceksiniz. Bu nedenle, projelerin çoğu finans ile ilgili olduğundan, Öğrenme Finansmanı web3’te çok önemlidir.

DeFi projelerinde hisse senetleri, emir defteri, piyasa, borsalar, DEX, opsiyonlar ve daha pek çok finans terminolojisi ile ilgileneceğiz. Bu alanda temel finans öğrenimi için Dr. Aysel Gündoğdu hocanın kaynakalrını takip etmelisiniz.

5. DEFI ve DEFI Saldırı Vektörleri

DeFi, aracı kurumlar veya bankalar gibi aracılara güvenmeden finansal araçlar sağlar. Bu uygulamalar, kullanıcıların herhangi bir ücret ödemeden (banka gibi herhangi bir finans şirketinin aldığı) tasarruf etmelerini, ödünç almalarını, ödünç vermelerini ve ticaret yapmalarını sağlar.

Bunlar, çoğu DeFi projesinde yaygın olarak kullanılan bazı protokollerdir. Onlara aşina olmak ve nasıl çalıştıklarını ve nüanslarını derinlemesine anlamak güzel.

  • MasterChef : Shushiswap’ın MasterChef’i , kullanıcıların likidite havuzu (LP) jetonlarını yatırdığı time * stakeAmount.
  • Compound : Compound , tüm merkezi olmayan eşler arası ödünç verme protokollerinin temelidir. Bir çok DeFi primitifinin bir şekilde borç verme protokolleriyle etkileşime girdiğini bilmelisiniz.
  • UniswapV2 : Uniswap zaten V3 üzerindeyken, Uniswap V2 önemli ölçüde daha basit, daha az gazlı golf oynuyor ve yine de genel olarak otomatik piyasa yapıcıları (AMM’ler) anlamak için temel oluşturuyor.
  • Aave : Aave, Ethereum platformu üzerine kurulmuş açık kaynaklı, merkezi olmayan bir borç verme protokolü olması sayesinde, kullanıcıların dijital varlıkları ödünç almalarına ve mevduat/kredilerden faiz kazanmalarına olanak tanır.
  • Balancer : Balancer, geliştiricilere benzersiz bir özelleştirilebilirlik sağlayan en esnek ve çok yönlü Otomatik Piyasa Yapıcıdır.

DeFi Saldırı Vektörler

DeFi yani Merkezi Olmayan Finans’ı öğrendikten sonra, sıra bazı yaygın saldırı vektörlerini ve azaltmalarını öğrenmektir. Aşağıda birkaç DeFi saldırı vektörü ve hafifletme vardır:

  • Flash Loan – Price Oracle manipulation (Flaş Kredi – Fiyat Oracle Manipülasyonu)
  • Reentrancy attack (yeniden giriş saldırısı)
  • Rug Pull

6. Yaygın Olarak Kullanılan Kitaplıkları ve Simge Standartlarını Öğrenin

Denetim kariyeriniz boyunca tekrar tekrar göreceğiniz belirli sözleşmeler, kalıplar ve hatta algoritmalar vardır. Onlara aşina olmak ve nasıl çalıştıklarını ve nüanslarını derinlemesine anlamak güzel.

Belirteç sözleşmeleri : En çok kullanılan belirteç standartları, takas edilebilir belirteçler için EIP20 ve NFT’ler için EIP721’dir. Daha pek çok şey var, ancak başlangıçta bilmeniz gereken tek şey bu ikisi. ERC777, ERC1155, ERC2646 ERC2981 vb. gibi başka standartlar da vardır.

Yükseltilebilir Sözleşmeler : Ethereum sözleşmeleri yükseltilemez . Kodu güncellemek istiyorsanız, yeni bir sözleşme dağıtmanız gerekir. Pek çok farklı proxy uygulaması vardır, OpenZeppelin Proxy‘ye bir göz atın .

Yükseltilebilir Akıllı Sözleşmeler
Yükseltilebilir Akıllı Sözleşmeler

Openzeppelin Helper Library: Güvenli akıllı sözleşme geliştirme için bir kütüphanedir. Topluluk tarafından onaylanmış kodun sağlam bir temeli üzerine inşa edin.

i. ERC20 ve ERC721 gibi standartların uygulanması .

ii. Esnek rol tabanlı izin şeması.

iii. Özel sözleşmeler ve karmaşık merkezi olmayan sistemler oluşturmak için yeniden kullanılabilir Solidity bileşenleri .

7. Yaygın Akıllı Sözleşme Hatalarını, Araçları ve en iyi Uygulamaları öğrenin

SWC kayıt defteri , bugüne kadar bilinen saldırıların bir listesini içeren bir sınıflandırma koleksiyonu sağlar. SWC kaydı, bir SWC tanımlayıcısı (ID), başlığı ve kodla ilgili örneklerin listesini sağlar.

Erişim Kontrolü Sorunları, Tamsayı Taşmaları ve Azalmaları ve yeniden giriş güvenlik açıkları (Solidity’de yazılmış DApp’ler için) gibi bir akıllı sözleşme denetçisinin incelemesi gereken yaygın saldırı faktörleri vardır.

En Yaygın Araçlar:

i. Slither : Savunmasız Solidity kodunu düşük hatalı pozitiflerle algılar.

ii. Echidna : Echidna, Ethereum akıllı sözleşmelerinin fuzzing/özellik tabanlı testi için tasarlanmış bir programdır.

iii. Surya : Sözleşmelerin yapısı hakkında bir dizi görsel çıktı ve bilgi sağlar.

iv. Eth Security Toolbox : Trail of Bits’in Ethereum güvenlik araçlarının tümü ile önceden yüklenmiş ve önceden yapılandırılmış Docker konteyneridir.

8. CTF zorluklarını tamamlayın

Ethereum Temelleri, Solidity ve Testing Frameworks ve bazı yaygın Akıllı Sözleşmeler güvenlik açıklarını öğrendik. Daha sonra tüm öğrenmelerimizi test etmek için CTF’ye geçebiliriz. Akıllı Sözleşmeler için Ethernaut, Damn Vulnerable Defi veya Capture The Ether gibi birçok CTF var, bunları tamamlayabilirsiniz. Ayrıca daha zor CTF çözmek istiyorsanız, paradigma ctf‘yi deneyebilirsiniz. Aşağıda bu CTF’lere bağlantılar bulunmaktadır.

9. Denetim Raporlarını ve Yıkım Sonrası Blogları Okuyun

Bu en önemli aşamadır, bulabildiğiniz kadar çok rapor okumaya çalışın. Çeşitli mantıksal hataları anlamanıza yardımcı olacak ve denetimin hangi düşünce sürecini anlamanıza yardımcı olacaktır.

10. Sürekli Öğrenme ve Araştırma

Web3 doğası gereği çok dinamiktir. Bu nedenle, tüm araştırma ve yeni saldırılardan haberdar olmanız gerekecek. En son haberler, saldırılar, araştırmalar vb. konulardan haberdar olmak için blogumu takip edebilirsiniz. Ayrıca medium gibi bu alanda oluşturulan içeriklerin depolandığı alanları gözlem altına almanızda fayda var.

BONUS : Web3 Bug Bounty Yolculuğunuzu Başlatın

En büyük web3 bug-bounty platformu olan Immunefi’de Web3 böcek avı yolculuğunuza başlayabilirsiniz. Immunefi dışında, gidebileceğiniz Hakenproof veya Code4rena gibi platformlar var. Platformların linkleri aşağıdadır.

Akıllı sözleşme geliştirme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeirğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacğaım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

Hasan YILDIZ, Girişimci. Doktora Öğrencisi. Yazmayan YAZILIMCI. Veri Şeysi. Eğitmen...

Yazarın Profili
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (2)

  1. 14 Ekim 2022

    Hocam çok teşekkürler, muhteşem bir hazırlık. Daha önceki içeriklerde eğitimden bahs etmiştiniz bu eğitim nerede olacak?

  2. Akıllı Kontrat Güvenliği hakkında özel bir eğitim olacak mı yoksa Solidity Kampında bir parça mı olacak?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir