Yayg─▒n K├Âpr├╝ G├╝venlik A├ž─▒klar─▒ Nelerdir?
Ana sayfa
Makaleler
Yayg─▒n K├Âpr├╝ G├╝venlik A├ž─▒klar─▒ Nelerdir?

Yayg─▒n K├Âpr├╝ G├╝venlik A├ž─▒klar─▒ Nelerdir?

─░leri Seviye
Yay─▒nlanma: Mar 22, 2023G├╝ncellenme: Jun 15, 2023
9m

Bu makale bir topluluk g├Ânderisidir. Yazar, CertiK'te bir denet├ži olan Minzhi He'dir.

Bu makaledeki g├Âr├╝┼čler, katk─▒da bulunan ki┼čiye/yazara aittir ve Binance Academy'nin g├Âr├╝┼člerini yans─▒tmayabilir.

K─▒sa ├ľzet

Blockchain k├Âpr├╝leri, blockchain d├╝nyas─▒nda birlikte ├žal─▒┼čabilirli─či m├╝mk├╝n k─▒lmak i├žin temel bir i┼čleve sahiptir. Bu nedenle, k├Âpr├╝ g├╝venli─či ├žok ├Ânemlidir. Baz─▒ yayg─▒n k├Âpr├╝ g├╝venlik a├ž─▒klar─▒ aras─▒nda zay─▒f zincir ├╝st├╝ ve zincir d─▒┼č─▒ do─črulama, yerel tokenlerin uygun olmayan bir ┼čekilde idare edilmesi ve yanl─▒┼č yap─▒land─▒rmalar yer al─▒r. Do─črulama mant─▒─č─▒n─▒n sa─člam oldu─čundan emin olmak i├žin k├Âpr├╝n├╝n t├╝m olas─▒ sald─▒r─▒ vekt├Ârlerine kar┼č─▒ test edilmesi ├Ânerilir.

Giri┼č┬á

Bir blockchain k├Âpr├╝s├╝, aralar─▒nda etkile┼čim kurulmas─▒n─▒ m├╝mk├╝n k─▒lmak i├žin iki blockchain'i birbirine ba─člayan bir protokold├╝r. Elinizde bitcoin varken Ethereum a─č─▒ndaki DeFi etkinliklerine kat─▒lmak istiyorsan─▒z, bir blockchain k├Âpr├╝s├╝n├╝ kullanarak bitcoin'lerinizi satmak zorunda kalmadan bunu yapabilirsiniz.┬á

Blockchain k├Âpr├╝leri, blockchain d├╝nyas─▒nda birlikte ├žal─▒┼čabilirli─či m├╝mk├╝n k─▒lmak i├žin temel bir i┼čleve sahiptir. ├çe┼čitli zincir ├╝st├╝ ve zincir d─▒┼č─▒ do─črulamalar kullanarak faaliyet g├Âsterirler ve bu nedenle de farkl─▒ g├╝venlik a├ž─▒klar─▒na sahiptirler.

K├Âpr├╝ G├╝venli─či Neden ├ľnemlidir?┬á

Bir k├Âpr├╝ genellikle, kullan─▒c─▒n─▒n bir zincirden di─čerine aktarmak istedi─či tokeni tutar. Genellikle ak─▒ll─▒ s├Âzle┼čmeler ┼čeklinde konu┼čland─▒r─▒lan k├Âpr├╝lerin tuttu─ču tokenler, zincirler aras─▒ transferler biriktik├že ├Ânemli miktarlara ula┼č─▒r ve bu da onlar─▒ hacker'lar i├žin k├órl─▒ hedefler haline getirir.┬á

Buna ek olarak, blockchain k├Âpr├╝leri bir├žok bile┼čen i├žerdi─či i├žin geni┼č bir sald─▒r─▒ y├╝zeyine sahiptir. Bu da k├Ât├╝ niyetli ki┼čilerin b├╝y├╝k miktarlarda fonu hortumlamak i├žin zincirler aras─▒ uygulamalar─▒ hedeflemesine neden olur.┬á

CertiK'in tahminlerine g├Âre, k├Âpr├╝ sald─▒r─▒lar─▒ 2022'de 1,3 milyar USD'nin ├╝zerinde kayba yol a├žm─▒┼čt─▒r. Bu da y─▒l i├žindeki toplam kayb─▒n %36's─▒n─▒ olu┼čturmaktad─▒r.┬á

Yayg─▒n K├Âpr├╝ G├╝venlik A├ž─▒klar─▒

K├Âpr├╝lerin g├╝venli─čini art─▒rmak i├žin yayg─▒n k├Âpr├╝ g├╝venlik a├ž─▒klar─▒n─▒ bilmek ve kullan─▒ma sunmadan ├Ânce k├Âpr├╝leri bunlar i├žin test etmek gerekir. Bu g├╝venlik a├ž─▒klar─▒ a┼ča─č─▒daki d├Ârt alan alt─▒nda grupland─▒r─▒labilir.┬á

Zay─▒f zincir ├╝st├╝ do─črulama

Basit k├Âpr├╝lerde, ├Âzellikle de belirli DApp'ler i├žin tasarlanm─▒┼č olanlarda zincir ├╝st├╝ do─črulama minimumda tutulur. Bu k├Âpr├╝ler token ├ž─▒karma, yakma ve transfer etme gibi temel i┼člemleri y├╝r├╝tmek i├žin merkezi bir arka u├ž kullan─▒r ve t├╝m do─črulamalar zincir d─▒┼č─▒nda yap─▒l─▒r.

Bunun aksine, di─čer k├Âpr├╝ t├╝rleri ise mesajlar─▒ do─črulamak ve do─črulamalar─▒ zincir ├╝st├╝nde ger├žekle┼čtirmek i├žin ak─▒ll─▒ s├Âzle┼čmeleri kullan─▒r. Bu senaryoda, bir kullan─▒c─▒ bir zincire fon yat─▒rd─▒─č─▒nda, ak─▒ll─▒ s├Âzle┼čme imzal─▒ bir mesaj olu┼čturur ve imzay─▒ i┼člemde g├Ânderir. Bu imza yat─▒rma i┼čleminin kan─▒t─▒ niteli─činde olup, kullan─▒c─▒n─▒n di─čer zincirdeki ├žekim talebini do─črulamak i├žin kullan─▒l─▒r. Bu s├╝re├ž, yeniden y├╝r├╝tme sald─▒r─▒lar─▒ ve sahte yat─▒rma kay─▒tlar─▒ gibi ├že┼čitli g├╝venlik sald─▒r─▒lar─▒n─▒ ├Ânleyebilmelidir.┬á

Fakat zincir ├╝st├╝ do─črulama i┼člemi s─▒ras─▒nda bir g├╝venlik a├ž─▒─č─▒ olu┼čursa sald─▒rgan ciddi zararlar verebilir. ├ľrne─čin bir k├Âpr├╝ i┼člem kayd─▒n─▒ do─črulamak i├žin Merkle a─čac─▒ kullan─▒rsa, sald─▒rgan sahte kan─▒tlar ├╝retebilir. Bu da do─črulama i┼čleminde g├╝venlik a├ž─▒─č─▒ olmas─▒ durumunda sald─▒rgan─▒n kan─▒t do─črulamas─▒n─▒ atlatabilece─či ve yeni ├ž─▒kar─▒lan tokenlerin kendi hesab─▒na aktar─▒lmas─▒n─▒ sa─člayabilece─či anlam─▒na gelir.

Baz─▒ k├Âpr├╝ler "wrapped token" kavram─▒n─▒ uygular. ├ľrne─čin bir kullan─▒c─▒ Ethereum'dan BNB Chain'e DAI transfer etti─činde, bu DAI'ler Ethereum s├Âzle┼čmesinden al─▒n─▒r ve e┼č de─čer miktarda DAI BNB Chain'de ├ž─▒kar─▒l─▒r.┬á

Fakat bu i┼člem d├╝zg├╝n bir ┼čekilde do─črulanmazsa, bir sald─▒rgan i┼člevi manip├╝le ederek wrapped tokenleri k├Âpr├╝den yanl─▒┼č bir adrese y├Ânlendirmek i├žin k├Ât├╝ niyetli bir s├Âzle┼čme konu┼čland─▒rabilir.┬á

Sald─▒rganlar─▒n k├Âpr├╝ s├Âzle┼čmesinden varl─▒klar─▒ ├žekmek amac─▒yla "transferFrom" i┼člevini kullanarak tokenleri aktarmas─▒ i├žin kurbanlar─▒n k├Âpr├╝ s├Âzle┼čmesini de onaylamas─▒ gerekir.┬á

Ne yaz─▒k ki bir├žok k├Âpr├╝n├╝n DApp kullan─▒c─▒lar─▒ndan ├žok fazla say─▒da token onay─▒ talep etmesi bu durumu daha da k├Ât├╝le┼čtirir. Bu yakla┼č─▒m gas ├╝cretlerini d├╝┼č├╝ren, ancak bir ak─▒ll─▒ s├Âzle┼čmenin kullan─▒c─▒n─▒n c├╝zdan─▒ndan s─▒n─▒rs─▒z say─▒da tokene eri┼čmesine izin vererek ek riskler olu┼čturan yayg─▒n bir uygulamad─▒r. Sald─▒rganlar, tokenleri di─čer kullan─▒c─▒lardan kendilerine transfer etmek i├žin do─črulama eksikli─činden ve s├╝recin ├žok say─▒da onay gerektirmesinden yararlanabilir.

Zay─▒f zincir d─▒┼č─▒ do─črulama

Baz─▒ k├Âpr├╝ sistemlerinde zincir d─▒┼č─▒ arka u├ž sunucusu blockchain'den g├Ânderilen mesajlar─▒n me┼črulu─čunu do─črulamada ├Ânemli bir rol oynar. Bu ├Ârnekte, yat─▒rma i┼člemlerinin do─črulanmas─▒na odaklanaca─č─▒z.┬á

Zincir d─▒┼č─▒ do─črulama kullanan bir blockchain k├Âpr├╝s├╝nde s├╝re├ž ┼ču ┼čekilde i┼čler:┬á

  1. Kullan─▒c─▒lar, kaynak zincirdeki ak─▒ll─▒ s├Âzle┼čmeye token yat─▒rmak i├žin DApp ile etkile┼čime girer.

  2. Bunun ard─▒ndan da DApp, yat─▒rma i┼člemi hash'ini bir API ├╝zerinden arka u├ž sunucusuna g├Ânderir.

  3. ─░┼člem hash'i, sunucu taraf─▒ndan ├že┼čitli do─črulamalardan ge├žirilir. Me┼čru oldu─ču tespit edilirse, imzalayan bir mesaj─▒ imzalar ve imzay─▒ API ├╝zerinden kullan─▒c─▒ aray├╝z├╝ne geri g├Ânderir.

  4. DApp, imzay─▒ ald─▒ktan sonra bu imzay─▒ do─črular ve kullan─▒c─▒n─▒n tokenlerini kaynak zincirden ├žekmesine izin verir.

Arka u├ž sunucusu, i┼čledi─či yat─▒rma i┼čleminin ger├žekten ger├žekle┼čti─činden ve sahte olmad─▒─č─▒ndan emin olmal─▒d─▒r. Bu arka u├ž sunucusu, bir kullan─▒c─▒n─▒n kaynak zincirdeki tokenleri ├žekip ├žekemeyece─čini belirler, bu nedenle de sald─▒rganlar i├žin de─čerli bir hedeftir.

Arka u├ž sunucusunun i┼člemde iletilen olay─▒n yap─▒s─▒n─▒ ve olay─▒ ileten s├Âzle┼čme adresini do─črulamas─▒ gerekir. S├Âzle┼čme adresi i├žin do─črulama yap─▒lmazsa, bir sald─▒rgan me┼čru bir yat─▒rma olay─▒ ile ayn─▒ yap─▒ya sahip bir yat─▒rma olay─▒ olu┼čturmak i├žin k├Ât├╝ niyetli bir s├Âzle┼čme konu┼čland─▒rabilir.┬á

Arka u├ž sunucusu olay─▒ hangi adresin iletti─čini do─črulamazsa, bunu ge├žerli bir i┼člem addeder ve mesaj─▒ imzalar. Sald─▒rgan b├Âylece do─črulamay─▒ atlatarak i┼člem hash'ini arka uca g├Ânderebilir ve tokenleri kaynak zincirden ├žekebilir.

Yerel tokenlerin iyi idare edilmemesi

K├Âpr├╝ler, yerel tokenleri ve hizmet tokenlerini idare etmek i├žin farkl─▒ yakla┼č─▒mlar benimser. ├ľrne─čin, Ethereum a─č─▒n─▒n yerel tokeni ETH'dir ve ├žo─ču hizmet tokeni ERC-20 standard─▒na ba─čl─▒ kal─▒r.┬á

Bir kullan─▒c─▒ ETH'lerini ba┼čka bir zincire aktarmak istiyorsa, bunlar─▒ ├Ânce k├Âpr├╝ s├Âzle┼čmesine yat─▒rmal─▒d─▒r. Bunun i├žin de kullan─▒c─▒n─▒n ETH'leri i┼čleme eklemesi yeterlidir ve ETH miktar─▒ i┼člemdeki "msg.value" alan─▒ okunarak al─▒nabilir.

ERC-20 tokenlerini yat─▒rmak, ETH yat─▒rmaktan ├žok farkl─▒d─▒r. Bir ERC-20 tokeni yat─▒rmak i├žin kullan─▒c─▒n─▒n ├Ânce k├Âpr├╝ s├Âzle┼čmesinin tokenleri harcamas─▒na izin vermesi gerekir. Kullan─▒c─▒ bunu onaylad─▒ktan ve tokenleri k├Âpr├╝ s├Âzle┼čmesine yat─▒rd─▒ktan sonra, s├Âzle┼čme ya "burnFrom()" i┼člevini kullanarak kullan─▒c─▒n─▒n tokenlerini yakar ya da "transferFrom()" i┼člevini kullanarak kullan─▒c─▒n─▒n tokenlerini s├Âzle┼čmeye aktar─▒r.┬á

Bunu ay─▒rt etmeye y├Ânelik yakla┼č─▒mlardan biri ayn─▒ i┼člev i├žinde bir if-else ifadesi kullanmakt─▒r. Ba┼čka bir yakla┼č─▒m ise her bir senaryo i├žin iki ayr─▒ i┼člev olu┼čturmakt─▒r. ERC-20 yat─▒rma i┼člevini kullanarak ETH yat─▒rma giri┼čiminde bulunmak bu fonlar─▒n kaybedilmesine neden olabilir.

Kullan─▒c─▒lar, ERC-20 yat─▒rma istekleri yaparken yat─▒rma i┼člevine girdi olarak genellikle token adresini sunar. ─░┼člem s─▒ras─▒nda g├╝venilir olmayan harici ├ža─čr─▒lar olu┼čabilece─činden bu ├Ânemli bir risk olu┼čturur. Yaln─▒zca k├Âpr├╝ taraf─▒ndan desteklenen tokenleri i├žeren bir beyaz liste kullanmak, riski en aza indirmek i├žin yayg─▒n bir uygulamad─▒r. Yaln─▒zca beyaz listedeki adreslerin ba─č─▒ms─▒z de─či┼čken olarak iletilmesine izin verilir. Proje ekibi token adresini zaten filtreledi─či i├žin de harici ├ža─čr─▒lar ├Ânlenmi┼č olur.

Bununla birlikte, k├Âpr├╝ler yerel tokenin zincirler aras─▒ transferini yapt─▒─č─▒nda da sorunlar ortaya ├ž─▒kabilir, ├ž├╝nk├╝ yerel token bir adrese sahip de─čildir. S─▒f─▒r adresi (0x000...0) yerel tokeni temsil eder. S─▒f─▒r adresinin i┼čleve iletilmesi, yanl─▒┼č bir ┼čekilde uygulansa bile beyaz liste do─črulamas─▒n─▒ atlatabilece─či i├žin bu durum s─▒k─▒nt─▒ yaratabilir.┬á

K├Âpr├╝ s├Âzle┼čmesi, kullan─▒c─▒ varl─▒klar─▒n─▒ s├Âzle┼čmeye aktarmak i├žin "transferFrom" i┼člevini ├ža─č─▒rd─▒─č─▒nda, s─▒f─▒r adresinde "transferFrom" i┼člevi uygulanmad─▒─č─▒ i├žin s─▒f─▒r adresine harici ├ža─čr─▒ false olarak d├Âner. Fakat s├Âzle┼čme d├Ând├╝r├╝len de─čeri uygun ┼čekilde i┼člemezse i┼člem yine de ger├žekle┼čebilir. Bu da sald─▒rganlar─▒n s├Âzle┼čmeye hi├žbir token aktarmadan i┼člemi ger├žekle┼čtirmesi i├žin f─▒rsat yarat─▒r.

Yanl─▒┼č yap─▒land─▒rma

├ço─ču blockchain k├Âpr├╝s├╝nde tokenler ve adresleri beyaz listeye veya kara listeye almaktan, imzalayanlar─▒ atamaktan veya de─či┼čtirmekten ve di─čer ├Ânemli yap─▒land─▒rmalardan sorumlu ayr─▒cal─▒kl─▒ bir rol yer al─▒r. G├Âr├╝n├╝┼čte ├Ânemsiz g├Âzden ka├ž─▒rmalar bile ├Ânemli kay─▒plara yol a├žabilece─či i├žin t├╝m yap─▒land─▒rmalar─▒n do─čru oldu─čundan emin olmak gerekir.

Asl─▒na bakarsan─▒z, sald─▒rgan─▒n yanl─▒┼č bir yap─▒land─▒rma nedeniyle aktar─▒m kayd─▒ do─črulamas─▒n─▒ ba┼čar─▒yla atlatmay─▒ ba┼čard─▒─č─▒ bir vaka ya┼čanm─▒┼čt─▒r. Proje ekibi, sald─▒r─▒dan birka├ž g├╝n ├Ânce bir de─či┼čkenin de─či┼čtirilmesini i├žeren bir protokol y├╝kseltmesi yapm─▒┼čt─▒r. De─či┼čken, g├╝venilir mesaj─▒n varsay─▒lan de─čerini temsil etmek i├žin kullan─▒lm─▒┼čt─▒r. Bu de─či┼čiklik t├╝m mesajlar─▒n otomatik olarak kan─▒tlanm─▒┼č say─▒lmas─▒na neden olmu┼č, b├Âylece bir sald─▒rgan─▒n rastgele bir mesaj g├Ândermesine ve do─črulama s├╝recini ge├žmesine olanak vermi┼čtir.

K├Âpr├╝ G├╝venli─či Nas─▒l Art─▒r─▒l─▒r?

Yukar─▒da bahsedilen d├Ârt yayg─▒n k├Âpr├╝ g├╝venlik a├ž─▒─č─▒, birbiriyle ba─člant─▒l─▒ bir blockchain ekosisteminde g├╝venli─či sa─člaman─▒n zorluklar─▒n─▒ g├Âstermektedir. Bu g├╝venlik a├ž─▒klar─▒n─▒n her birinin giderilmesi i├žin dikkat edilmesi gereken noktalar vard─▒r ve hepsi i├žin ge├žerli tek bir ├ž├Âz├╝m yolu yoktur.┬á

├ľrne─čin, her k├Âpr├╝n├╝n kendine has do─črulama gereksinimleri oldu─ču i├žin, hatas─▒z bir do─črulama s├╝reci sa─člamak amac─▒yla genel y├Ânergeler sunmak zordur. Do─črulaman─▒n atlat─▒lmas─▒n─▒ ├Ânlemek i├žin en etkili yakla┼č─▒m, k├Âpr├╝y├╝ t├╝m olas─▒ sald─▒r─▒ vekt├Ârlerine kar┼č─▒ kapsaml─▒ bir ┼čekilde test etmek ve do─črulama mant─▒─č─▒n─▒n sa─člam oldu─čundan emin olmakt─▒r.┬á

├ľzetlemek gerekirse, olas─▒ sald─▒r─▒lara kar┼č─▒ s─▒k─▒ testler yapmak ve k├Âpr├╝lerdeki en yayg─▒n g├╝venlik a├ž─▒klar─▒na ├Âzellikle dikkat etmek gerekir.┬á┬á

Son S├Âz┬á

Y├╝ksek de─čerlerinden dolay─▒ zincirler aras─▒ k├Âpr├╝ler sald─▒rganlar─▒n hedefinde uzun s├╝redir yer almaktad─▒r. Geli┼čtiriciler, konu┼čland─▒rma ├Âncesi kapsaml─▒ testler yaparak ve ├╝├ž├╝nc├╝ taraf denetimler yapt─▒rarak k├Âpr├╝lerinin g├╝venli─čini art─▒rabilir ve son birka├ž y─▒ld─▒r k├Âpr├╝lerde s─▒k├ža ya┼čanan sald─▒r─▒lar─▒n ger├žekle┼čme riskini azaltabilir. K├Âpr├╝ler ├žok zincirli bir d├╝nya i├žin ├žok ├Ânemlidir, fakat etkili bir Web3 altyap─▒s─▒ tasarlarken ve geli┼čtirirken g├╝venlik birinci ├Âncelik olmal─▒d─▒r.

Ek Okumalar

Blockchain K├Âpr├╝s├╝ Nedir?

Zincirler Aras─▒ Birlikte ├çal─▒┼čabilirlik Nedir?

Pop├╝ler ├ť├ž Kripto K├Âpr├╝s├╝ ve Bu K├Âpr├╝lerin ├çal─▒┼čma ┼×ekilleri

Wrapped Token (Sar─▒lm─▒┼č Token) Nedir?

Sorumluluk Reddi ve Risk Uyar─▒s─▒: Bu i├žerik, size herhangi bir beyan veya garanti verilmeksizin yaln─▒zca genel bilgi sunma ve e─čitim amac─▒yla "oldu─ču gibi" sunulmaktad─▒r. Bu i├žerik finansal, hukuki veya di─čer herhangi bir profesyonel tavsiye olarak yorumlanmamal─▒d─▒r ve belirli bir hizmet veya ├╝r├╝n├╝n sat─▒n al─▒nmas─▒n─▒ ├Ânerme amac─▒ ta┼č─▒mamaktad─▒r. Uygun profesyonel dan─▒┼čmanlarla g├Âr├╝┼čerek tavsiye alman─▒z gerekir. ├ť├ž├╝nc├╝ bir taraf├ža haz─▒rlanan makalelerde yer alan g├Âr├╝┼člerin o ├╝├ž├╝nc├╝ tarafa ait oldu─čunu ve Binance Academy'nin g├Âr├╝┼člerini yans─▒tmayabilece─čini l├╝tfen dikkate al─▒n─▒z. Daha fazla bilgi i├žin sorumluluk reddimizin tam metnini buradan okuyabilirsiniz. Dijital varl─▒k fiyatlar─▒ dalgalanabilir. Yat─▒r─▒m─▒n─▒z─▒n de─čeri y├╝kselebilece─či gibi d├╝┼čebilir de ve yat─▒r─▒m yapt─▒─č─▒n─▒z tutar─▒ geri alamayabilirsiniz. Yat─▒r─▒m kararlar─▒n─▒z─▒n t├╝m sorumlulu─ču size aittir ve Binance ya┼čanacak hi├žbir kay─▒p i├žin sorumluluk kabul etmez. Yat─▒r─▒m tavsiyesi de─čildir. Daha fazla bilgi i├žin Kullan─▒m Ko┼čullar─▒ ve Risk Uyar─▒s─▒ b├Âl├╝mlerimize bakabilirsiniz.