Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
Prijevodi ove stranice:

Ovo je stara izmjena dokumenta!


Sigurnosne prijetnje programskog jezika Solidity

Sažetak

The fact that we could even recover data from a formatted Hard Drive is kind of amazing. You choose (or not) to delete data, but it is still there, even if it is not that easy to read.

The purpose of this paper is to understand how data recovery works. To do so, we explain the steps and some technics. We will go through how a sinister leading to a try for data recovery can occur. Then, we will see a method that could have been used by computer forensics experts in order to find traces. To finish, we will mention methods to definitely erase data from Hard Drives to avoid leaving traces.

The reasons for those sinisters are numerous, but human mistakes are majorly involved. Peter Gutmann proposed through his papers an explanation of how this data could still be read on Hard Drives at that time, but also some advices to securely erase data.

This paper is some kind of a warning to all those selling Hard Drives via eBay that once contained personal data.

Keywords: recovery; data; traces

Uredi

Uredi

Uvod

Solidity je objektno orijentirani programski jezik namijenjen za pisanje pametnih ugovora. Najpoznatiji je po činjenici da je upravo on primarni jezik na jednoj od najpoznatijih blockchain platforma - na Ethereumu, ali koristi se i na raznim drugim blockchain platformama. Prvi put se pojavio u kolovozu 2014. godine.

Pametni ugovori su javni i nepromjenjivi računalni programi koji su pohranjeni na blockchainu. Mogu se javno i pouzdano izvršavati koristeći blockchain. Da bi se program uopće mogao pohranjivati i izvršavati na blockchainu u obliku pametnog ugovora, mora se pridržavati pravila i poštivati ograničenja tehnologije blockchain. Svrha Solidity-ja je da omogući programerima lako i intuitivno pisanje pametnih ugovora dok Solidity interno rješava dio ograničenja i pravila zadanih blockchainom.

Najpopularnije primjene pametnih ugovora programiranih u Solidity-ju su implementacije glasovanja, grupnog financiranja (crowdfunding), aukcija i novčanika s više potpisa (multi-signature wallets).

Iako je široko raširen, Solidity je još uvijek u ranoj razvojnoj fazi (trenutna najnovija verzija je 0.6.X), a to ukazuje na puno prostora za sigurnosne prijetnje. Ovaj će seminar razmotriti nekoliko zanimljiviih otkrivenih sigurnosnih propusta te službena ili potencijalna rješenja za sprječavanje istih.

Napad: Višestruki ulazak (Re-Entrancy)

Za razumijevanje ovog napada, potrebno se upoznati s pojmom fallback funkcije. Fallback funkcija je funkcija koja se izvršava kada neki ugovor primi ethere bez ikakvih drugih podataka povezanih s tom transakcijom. Također, izvršavaju se kad identifikator funkcije ne odgovara niti jednoj funkciji dostupnoj u pametnom ugovoru ili kada nikakvi podatci nisu dani pri pozivu funkcije. Fallback funkcije nemaju ime, ne mogu primati argumente, ne mogu vraćati ništa te u jednom ugovoru postoji najviše jedna fallback funkcija.

Ovaj je napad omogućen kada pametni ugovor šalje ethere na nepoznatu adresu pozivom odgovarajuće funkcije nepoznate adrese / primatelja. Napadač pažljivom konstrukcijom svog ugovora na toj nepoznatoj adresi može umetnuti zlonamjerni kod koji će se pokretati pri slanju sredstava na tu nepoznatu adresu. Točnije, u ovom napadu, taj će zlonamjerni kod ponovno pozvati funkciju napadnutog ugovora prije nego što se prošla iteracija ugovora izvršila do kraja te na taj način iskoristiti ranjivi ugovor.

Pogledajmo primjer.

Napadnuti ugovor

U ovom primjeru EtherStore je napadnuti ugovor, a Attack je ugovor napadač.

Chapter 2

Uredi

Uredi

Chapter 3

Uredi

Uredi

Chapter 4

Uredi

Uredi

Chapter 5

Uredi

Uredi

Chapter 6

Uredi

Uredi

racfor_wiki/razno/sigurnosne_prijetnje_solidity.1578614824.txt.gz · Zadnja izmjena: 2024/12/05 12:23 (vanjsko uređivanje)
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0