Powrót

3. Poziom zaawansowany

Ukończono: 0%
Kroki: 0/0
  1. 1. Co to jest Taproot?
  2. 2. Mosty blockchain – co to jest?
  3. 3. Czym jest Ethereum Plasma?
  4. 4. Co to jest Ethereum Casper?
  5. 5. Co to jest dowód Zk-SNARK i Zk-STARK
  6. 6. Co to jest Selfish Minning?
  7. 7. Czym jest spoofing na rynku kryptowalut?
  8. 8. Podpisy Schnorra - co to jest?
  9. 9. MimbleWimble
  10. 10. Cyfrowe prawo własności
  11. 11. Czym są ETFy?
  12. 12. Jak sprawdzić projekt kryptowalutowy – czyli tokenomia kryptowalut
  13. 13. Czym jest atak 51% na blockchain?
  14. 14. Czym jest i jak działa DAO? 
  15. 15. Zero-Knowledge Proof- protokół, który szanuje prywatność
  16. 16. Co to jest EOSREX?
  17. 17. Co to jest Proof of Elapsed Time- dowód upływającego czasu (PoET)?
  18. 18. Mirror Protocol – co to jest?
  19. 19. Aktywa syntetyczne
  20. 20. Jak stworzyć własny NFT?
  21. 21. Czym są likwidacje DeFI?
  22. 22. Nowy system tożsamości - Polygon ID
  23. 23. Fundacja Ethereum i protokół Scroll - czym są?
  24. 24. Czym jest bizantyjska tolerancja błędów?
  25. 25. Czym jest skalowalność technologii blockchain?
  26. 26. Interchain Security- nowy protokół Cosmos (Atom)
  27. 27. Coin Mixing vs. Coin Join - definicja, możliwości i zagrożenia
  28. 28. Czym jest Ethereum Virtual Machine MEV?
  29. 29. Co to są tokeny SoulBound SBD?
  30. 30. Co to jest Lido?
  31. 31. Czym są Threshold Signatures i jak działają?
  32. 32. Technologia blockchain i cyberataki
  33. 33. Skrypt Bitcoina - czym jest i co powinieneś wiedzieć na ten temat
  34. 34. Czym jest zkEVM i jakie są jego podstawowe cechy?
  35. 35. Czy poufne transakcje na blockchainie istnieją? Co to jest Confidential Transaction?
  36. 36. Algorytmiczne stablecoiny – wszystko, co powinieneś o nich wiedzieć
  37. 37. Polygon Zk Rollups - co powinieneś wiedzieć na jego temat?
  38. 38. Co to jest Infura Web3?
  39. 39. Mantle – skalowalność Ethereum L2 – jak działa?
  40. 40. Czym jest NEAR Rainbow Bridge?
  41. 41. Liquid Staking Ethereum i tokeny LSD. Co musisz wiedzieć na ten temat?
  42. 42. 10 najlepszych blockchainowych wyroczni. Jak działają? Czym się różnią?
  43. 43. Czym jest Web3.js i Ether.js? Jakie są między nimi podstawowe różnice?
  44. 44. Czym jest StarkWare i rekurencyjne dowody ważności
  45. 45. Quant Network: Skalowalność przyszłości
  46. 46. Polygon zkEVM - wszystko, co powinieneś wiedzieć
  47. 47. Co to jest Optimism (OP) i jak działają jego rollupy?
  48. 48. Czym są węzły RPC node i jak działają?
  49. 49. SEI Network: wszystko, co musisz wiedzieć o rozwiązaniu warstwy 1 dla DeFi
  50. 50. Rodzaje mechanizmów konsensusu Proof-of-Stake: DPoS, LPoS oraz BPoS
  51. 51. Bedrock: krzywa epileptyczna, która zapewnia bezpieczeństwo!
  52. 52. Czym jest Tendermint i jak działa?
  53. 53. Pantos: jak rozwiązać problem transferu tokenów miedzy blockchainami?
  54. 54. Czym jest szyfrowanie asymetryczne?
  55. 55. Funkcja Base-58 w kryptowalutach
  56. 56. Czym jest i jak działa protokół Nostr?
  57. 57. Czym jest i jak działa most XDAI Bridge?
  58. 58. Porównanie Solidity i Rust: Wybór języka programowania w ekosystemie blockchain.
  59. 59. Czym jest Real-Time Operating System (RTOS)?
  60. 60. Czym jest i jak działa Rinkeby Testnet Ethereum?
  61. 61. Czym jest szyfrowanie probabilistyczne?
  62. 62. Czym jest Pinata w Web 3? Wyjaśniamy!
  63. 63. Czym jest EIP-4337? Czy Ethereum Account Abstraction zmieni Web3 na zawsze?
  64. 64. Czym są audyty inteligentnych kontraktów? Jakie firmy się nim zajmują?
  65. 65. Jak działa portfel AirGapped?
  66. 66. Czym jest proto-danksharding (EIP-4844) na Ethereum?
  67. 67. Czym jest i jak działa zdecentralizowana pamięć masowa?
  68. 68. Jak odzyskać kryptowaluty wysłane na niewłaściwy adres lub sieć? Praktyczny poradnik!
  69. 69. Portfel MPC i Obliczenia Wielostronne: Innowacyjna technologia dla prywatności i bezpieczeństwa.
  70. 70. Podpis progowy w kryptografii: zaawansowana technika podpisywania!
  71. 71. Adres Vanity w kryptowalutach: czym jest i jaka jest jego charakterystyka?
  72. 72. Atak Ponownego Wejścia (Reentrancy Attack) na inteligentnych kontraktach: zagrożenie dla bezpieczeństwa blockchain!
  73. 73. Slither: statyczny analizator dla smart kontraktów!
  74. 74. Sandwich Attack w DeFi: wyjaśnienie i zagrożenia!
  75. 75. Blockchain RPC dla Web3: Kluczowa technologia w świecie zdecentralizowanych finansów!
  76. 76. Re-staking: Korzyści z ponownego delegowania środków w stakingu!
  77. 77. Base: Ewolucja transakcji kryptowalutowych dzięki rozwiązaniu warstwy 2 od Coinbase
  78. 78. IPFS: Nowa era zdecentralizowanego przechowywania danych
  79. 79. Typowe luki i zabezpieczenia mostów w technologii blockchain
  80. 80. JumpNet – nowy sidechain Ethereum
Lekcja 72 z 80

72. Atak Ponownego Wejścia (Reentrancy Attack) na inteligentnych kontraktach: zagrożenie dla bezpieczeństwa blockchain!

Blockchain to innowacyjna technologia, która zrewolucjonizowała wiele obszarów, nie tylko finansów. Jednak, podobnie jak w przypadku każdej technologii, jest ona narażona na różne zagrożenia, w tym na ataki typu “Reentrancy Attack” na smart kontraktach. W dzisiejszej lekcji szczegółowo omówimy, czym dokładnie jest ten rodzaj ataku, jak działa oraz jak można się przed nim bronić.

Czym jest Reentrancy Attack?

Atak typu Reentrancy, jak sama nazwa wskazuje, jest rodzajem zagrożenia, które może wystąpić w inteligentnych kontraktach. Z naszych poprzednich lekcji wiesz już, że smart kontrakty umożliwiają wykonanie niezaufanego kodu zewnętrznego w ramach ich działania. Taka sytuacja może nastąpić, gdy inteligentny kontrakt wywołuje zewnętrzny kontrakt, a ten z kolei powraca do oryginalnego kontraktu, tworząc pętlę działania.

Atak Reentrancy wykorzystuje te luki w smart kontraktach, umożliwiając atakującemu wielokrotne wywołanie danej funkcji w kontrakcie. Efektem tego jest niekończąca się pętla działania oraz możliwość kradzieży środków.

Przykładem takiego ataku może być umowa w inteligentnych kontraktach, która pozwala użytkownikom na wpłatę środków, a następnie ich wypłatę w późniejszym terminie. Haker może wywołać funkcję wypłaty wielokrotnie, jeszcze przed zakończeniem pierwszego wywołania funkcji, co skutkuje skuteczną kradzieżą środków z umowy.

Inny przykład, który pomaga zrozumieć atak Reentrancy, dotyczy smart kontraktu służącego do przesyłania kryptowalut między użytkownikami. Kontrakt taki może zawierać funkcję przekazywania środków. Jednakże, gdy funkcja ta nie jest odpowiednio zabezpieczona, atakujący może wysłać transakcję do kontraktu, która wywołuje funkcję przekazywania środków, a następnie natychmiast ponownie ją wywołać przed zakończeniem pierwszego wywołania. W rezultacie kontrakt nie ma czasu na zaktualizowanie stanu kont użytkowników między dwoma wywołaniami funkcji, co umożliwia atakującemu wielokrotne wypłacanie środków z kontraktu.

Jak działa atak ponownego wejścia?

W praktyce atak typu reentrancy działa w następujący sposób:

  1. Haker identyfikuje inteligentny kontrakt odpowiedzialny za przyjmowanie i wypłacanie środków w przyszłości.
  2. Atakujący tworzy złośliwy smart kontrakt, który wprowadza pętlę i wywołuje funkcję depozytową we właściwym smart kontrakcie.
  3. Następnie haker wywołuje funkcję “withdraw” w danym kontrakcie, wypłacając zdeponowane środki.
  4. Ponieważ funkcja depozytowa w danym kontrakcie nie jest wystarczająco zabezpieczona przed tym typem ataku, haker wielokrotnie wywołuje funkcję depozytową przed wywołaniem funkcji wypłaty. W rezultacie skutecznie kradnie środki ze smart kontraktu.

Atakujący powtarza ten proces, aż ukradnie żądaną ilość środków.

Rodzaje Reentrancy Attack

Jeśli myślisz, że istnieje tylko jeden rodzaj ataku Reentrancy, to jesteś w błędzie. W świecie kryptowalut istnieje kilka różnych wariantów tego typu ataków. Oto one:

  1. Frontrunning Attack: Ten rodzaj ataku polega na śledzeniu blockchaina w poszukiwaniu transakcji, które wywołują podatne na atak kontrakty. Gdy haker wykryje taką lukę, szybko przesyła własną transakcję, która wywoła ten sam kontrakt, zanim pierwotna zostanie przetworzona.
  2. Reentrancy Attack z manipulacją znacznikiem czasu: Ten typ ataku polega na manipulacji czasem bloku, co powoduje wykonanie podatnego na atak kontraktu w sposób korzystny dla hakerów, na przykład umożliwiający kradzież środków.
  3. Wywołanie rekurencyjne: To metoda, w której haker wielokrotnie wywołuje podatny smart kontrakt, co powoduje niezamierzone wielokrotne wykonanie określonej funkcji.
  4. Atak Cross-Function Call: W tym przypadku haker wywołuje wiele funkcji w podatnym na atak kontrakcie w określonej kolejności, aby doprowadzić do niezamierzonego działania, które przyniesie mu korzyść.

Jak chronić inteligentne kontrakty przed tego typu atakami?

Aby zabezpieczyć się przed tego typu atakami, warto zastosować różne środki bezpieczeństwa w inteligentnych kontraktach. Oto kilka z nich:

  1. Użycie blokady muteksowej lub funkcji wzajemnego wykluczenia: Blokada uniemożliwia wywoływanie tej samej funkcji wielokrotnie w tym samym czasie, co skutecznie zapobiega atakom ponownego wejścia.
  2. Wykorzystanie warunku ochronnego: Ustawienie warunku ochronnego na smart kontrakcie uniemożliwia wykonywanie jakichkolwiek zewnętrznych wywołań, co również zapobiega atakom reentrancy.
  3. Sprawdzanie głębokości stosu wywołań: Monitorowanie głębokości stosu wywołań zapewnia, że kontrakt nie jest rekursywnie wywoływany. Jeśli kontrakt przekroczy określoną głębokość, zostanie zaprzestane jego wykonania.
  4. Użycie instrukcji „require”: Instrukcja „require” pozwala sprawdzić stan kontraktu przed zezwoleniem na wykonanie danej funkcji, co może dodatkowo zabezpieczyć przed atakami.
  5. Ciągłe monitorowanie i aktualizacja: Regularne monitorowanie inteligentnych kontraktów oraz ich aktualizacja pozwala na szybkie wykrywanie i eliminację potencjalnych luk w zabezpieczeniach.

Warto jednak pamiętać, że powyższe środki to tylko niektóre z dostępnych sposobów ochrony. Aby zapewnić pełne bezpieczeństwo przed atakami ponownego wejścia, inteligentne kontrakty powinny być audytowane przez specjalistów z branży oraz poddawane szerokim testom, co dodatkowo zwiększa ich bezpieczeństwo.

Przykłady ataków ponownego wejścia na inteligentne kontrakty

Atak na protokół pożyczkowy Lendf.me miał miejsce w 2019 roku na zdecentralizowanej platformie zbudowanej na blockchainie Ethereum. Atakujący wykorzystał lukę w inteligentnym kontrakcie, która umożliwiła mu wielokrotne pożyczanie i spłacanie tej samej pożyczki. Manipulując jednocześnie cenami aktywów bazowych, zwiększał kwoty swoich pożyczek, co doprowadziło do kradzieży aktywów kryptowalutowych o wartości ponad 350 000 USD.

Podobny atak miał miejsce na platformie Siren Protocol, również zbudowanej na blockchainie Ethereum. Atakujący wykorzystał tę samą metodę, co w przypadku Lendf.me, co skutkowało wielokrotną pożyczką i spłatą tej samej pożyczki, prowadząc do kradzieży kryptowalut o wartości ponad 30 milionów USD.

W 2021 roku doszło do ataku na platformę BurgerSwap, zdecentralizowaną giełdę zbudowaną na Binance Smart Chain. Atakujący ponownie wykorzystał lukę w inteligentnych kontraktach, wielokrotnie pożyczając i spłacając tę samą pożyczkę oraz kradnąc aktywa o wartości ponad 2 milionów dolarów.

W innym przypadku, atak na zdecentralizowany fundusz inwestycyjny DAO, również zbudowany na blockchainie Ethereum, miał miejsce, gdy haker wykrył lukę w kontrakcie DAO. Poprzez wielokrotne wywoływanie funkcji “split”, nieświadomi inwestorzy wycofywali środki z DAO, zanim smart kontrakt aktualizował wewnętrzne saldo, co doprowadziło do kradzieży Etheru o wartości około 50 milionów USD.

W 2020 roku platforma DeFi, Cream Finance, padła ofiarą ataku na inteligentny kontrakt, gdzie atakujący wielokrotnie pożyczał i spłacał tę samą pożyczkę oraz manipulował cenami aktywów bazowych. To pozwoliło mu na kradzież środków o wartości ponad 30 milionów USD.

Podsumowanie

Atak Ponownego Wejścia stanowi znaczące zagrożenie dla smart kontraktów działających na blockchainach. Zrozumienie sposobu działania tego rodzaju ataku oraz wdrożenie odpowiednich środków ostrożności i praktyk programistycznych są kluczowe dla zapewnienia bezpieczeństwa smart kontraktów przed potencjalnymi atakami. Ochrona przed atakami Ponownego Wejścia jest fundamentalnym elementem budowania bezpiecznego i zaufanego ekosystemu blockchain.

Uzupełnij dzisiejszą lekcję!

  1. Na czym polega atak 51% na blockchainie?
  2. Czym jest bizantyjska tolerancja błędów w technologii blockchain?
  3. Technologia blockchain i cyberataki.
  4. Czy poufne transakcje na blockchainie istnieją?