Cryptocurrencies Ε ΠΛ 682 ADVANCE D S ECURITY TOPICS ΡΑΦΑΗΛ ΜΑΚΡΥΓΙΩΡΓ ΗΣ 18/04/2019
Paper 1 SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies Joseph Bonneau, Andrew Miller, Jeremy Clark, Arvind Narayanan, Joshua A. Kroll, Edward W. Felten Princeton University, Stanford University, Electronic Frontier Foundation, University of Maryland, Concordia University
Σκοπός του paper Γενική επισκόπηση του Bitcoin Επισημάνει πολλές ερευνητικές προκλήσεις, καινοτόμες τομείς(payment protocols to user-friendly key management ) Ανάλυση της μακροχρόνιας σταθερότητας του Bitcoin
Γιατί το Bitcoin είναι άξιο έρευνας Bitcoin works in practice, but not in theory. - Έλλειψη θεωρητικού υπόβαθρου Lack of security proofs Αποφυγή από security researchers Άλλες εφαρμογές Domain naming Secure timestamping and commitment Generation of public randomness Financial problems self-enforcing, smart contracts Distributed autonomous agents
Ιστορία: Cryptocurrencies Cryptocurrencies - Chaum s proposal for untraceable payments in 1983 Ζήτησε να έχει εκδοθούν από την τράπεζα μετρητά σε τυφλά υπογεγραμμένα κέρματα (blindly signed coin). Η τράπεζα ελέγχει μόνο εάν το blind coin έχει χρησιμοποιηθεί προηγουμένως ή όχι. Δεν συνδέεται με καμία οντότητα. Δεν συνδέει χρήστες με τα νομίσματα Τα νομίσματα μεταφέρονται από τους χρήστες και τους εμπόρους
Ιστορία: Cryptocurrencies Διάφορες προτάσεις για χρήση των crypto-currencies Aντιμετώπιση email spam fair lottery minting (νομισματοκοπείο) για micropayments Hashcash (εναλλαχτικές ψηφιακές μικροπληρομές) B-money [1990]
Ιστορία: Bitcoin 2008 - Satoshi Nakamoto s paper, source code. 3 Ιανουαρίου 2009, Πρώτο Bitcoin block mined. Μάιος 2010 10,000 Bitcoins για παραγγελία πίτσας 2014 CryptoLocker virus, encrypting files για αντάλλαγμα Bitcoins
Technical Overview Κύρια τεχνικά στοιχεία Transactions and scripts Consensus and Mining Peer-to-Peer Communication Network
Transactions and scripts Σειρά μηνυμάτων που αντιπροσωπεύουν τη μεταφορά νομίσματος από ένα χρήστη σε άλλο. Input/output arrays. 10^8 satoshis = 1 bitcoin. hashed using SHA-256 (unique trans. ID). Transaction to ownership.
Consensus and Mining Nakamoto consensus: Set of rules Proof of Work First announced block is correct Process of mining Mining Επίλυση τυχαίους computational puzzle εύρεση blocks όπου το SHA-256 hash < target value Δημιουργία έγκυρων blocks, απαιτεί POW Χρηματική ανταμοιβή Νέο block κάθε 10 λεπτά αλλάζει κάθε 2016 blocks ή 2 εβδομάδες. Blockchain
Consensus and Mining Fork Temporary fork : δημιουργία αν υπάρχουν 2 valid blocks (net. Latency) Λύση; Ενθάρρυνση καλής συμπεριφοράς Καλή συμπεριφορά => πιο επικερδές λόγω new coin reward Block Confirmation clients περιμένουν confirmation block για να συνεχίσουν στο blockchain
Peer-to-Peer Communication network Relay policy: Τα Bitcoin nodes αναμεταδίδουν συναλλαγές block όσους πληρούν τους κανόνες επικύρωσης. Penny-flooding defense: 0.0001 bitcoin ανά λεπτό.
Stability Δεν εγγυάται η σταθερότητα, ήδη έγιναν αλλαγές για διόρθωση bugs. Ιδιότητες που αν συνεχίσουν να ισχύουν θα παραμείνει σταθερό 1. Ενδεχόμενη συναίνεση - Eventual consensus 2. Εκθετική σύγκλιση- Exponential Convergence [n is O(2^(-n))] 3. Ζωτικότητα Liveness 4. Ορθότητα - Correctness 5. Δικαιοσύνη - Fairness
Stability Δεν διασφαλίζει fairness με χρήστες όπου: Έχουν πιο γρήγορο δίκτυο Έχουν περισσότερη υπολογιστική δύναμη Mining pools Δεν αναμένονταν στο αρχικό πρωτόκολλο Mining pools tend not to attack each other Attacks Feather-forking attack Goldfinger attack (51% problem)
Client Side Security SPV Simplified payment verification security Key Management για ασφάλεια του public key Keys Stored on device (π.χ. on a disk) Wallet on Offline storage (π.χ. usb) Split control, k-of-n multi signature script - k of the n valid signatures Password-protected wallets Hosted wallet (web service key management) Air Gapped and hardware storage
Modifying Bitcoin Upgrading Bitcoin Hard fork Soft Fork Relay policy updates Altcoins New genesis block, from scratch Forking bitcoin Proof-of-burn Pegged sidechains
Εναλλακτικά πρωτόκολλα Consensus Σκοπός να επιδιορθώσουν κάποια προβλήματα του Bitcoin. Parameter Changes Inter-block time and difficulty adjustment window 10 minutes Limits on block and transaction size - 1 MB - transaction volume with the set block size is 7 per second, 1000 times slower than peak Visa transactions. Monetary Policy Alternative computational puzzles ASIC-resistant puzzles Useful puzzles Non-outsourceable puzzles Virtual mining Proof of Stake Designated Authorities
Anonymity & privacy Bitcoin => unlinkability Δημιουργία νέων διευθύνσεων από χρήστες Υπάρχουν τρόποι παρακολούθησης των transaction flow Σύνδεση λόγω χρήσης funds από διαφορετικά accounts. De-anonymize Network Dy-anonimization
Anonymity & privacy Προτάσεις για βελτίωση anonymity: Peer to Peer Distributed mix network Altcoins with integrated unlinkability
Conclusion Bitcoin is not flawless Unclear stability and efficiency Παίζει σημαντικό ρόλο στην έρευνα στην θέση του letting the market decide Practice seems to be ahead of theory
Paper 2 teether: Gnawing at Ethereum to Automatically Exploit Smart Contracts Johannes Krupp CISPA, Saarland University, Saarland Informatics Campus Christian Rossow CISPA, Saarland University, Saarland Informatics Campus
Ethereum Ίδια λογική με Bitcoin Ether cryptocurrency coin Χρήση Smart Contracts για συναλλαγές Turing-complete γλώσσα EVM Ethereum virtual machines 1 Ether = 10^8 Wei
Smart Contracts Ethereum λογαριασμούς μαζί με κώδικα Set of rules, που συμφωνείτε έτσι ώστε να γίνει μια συναλλαγή Δεν μπορούν να αλλαχτούν => αυξημένο ρίσκο σε ευπάθειες Solidity javascript like γλώσσα προγραμματισμού Δυνατότητα ανασχηματισμού του περιεχομένου του contract αναλύοντας όλες τις συναλλαγές ( λόγω blockchain). Δημιουργία στέλνοντας special transaction στο zero address. String of bytecode on EVM
Smart Contracts
Smart Contracts - Transactions Variables: { To, Sender, Value, Data, gas } Notations: μ: Denote an EVM with μm: memory, μs: memory stack. I: transaction s execution environment, Id: data field of the transaction, Iv: transaction s value. S: contract s storage Attacker Model Πρέπει να έχει το contract s bytecode για κατάθεση συναλλαγής.
Smart Contracts - Vulnerabilities Vulnerable Contract εάν ο attacker μπορεί να μεταφέρει Ether από ένα account στο δικό του. Critical EVM instructions για να αποσπάσεις Ether CALL, κανονική συναλλαγή {gas, to, value, in/out offset in/out size} SELFDESTRUCT, πλήρη διαγραφή ενός account Code Inject CALLCODE, παρόμοιο με call αλλά δεν εκτελεί την συναλλαγή στο to DELEGATECALL, διατηρεί τις τιμές value,sender δηλ. δεν δημιουργεί νέα συναλλαγή
Smart Contracts Vulnerable States Critical Path Valnerable State State changing Path State changing Transaction Vulnerable
TEETHER - Automatic Exploitation 1. EVM Bytecode 2. CFG Control Flow Graph Recovery depended edges labels return address Εφαρμογή 4300 lines of Python using Z3 constraint solver έγινε release open source 180 μέρες μετά την δημοσίευση του άρθρου. Ραφαήλ Μακρυγιώργης 18/04/2019
TEETHER - Automatic Exploitation 1. EVM Bytecode 2. CFG Control Flow Graph Recovery 3. PATH GENERATION
TEETHER - Automatic Exploitation 1. EVM Bytecode 2. CFG Control Flow Graph Recovery 3. PATH GENERATION 4. CONSTRAINT GENERATION Ακατόρθωτα μονοπάτια Hash computation Keccak256 Symbolic-Length Memory access Constraint results
TEETHER - Automatic Exploitation 1. EVM Bytecode 2. CFG Control Flow Graph Recovery 3. PATH GENERATION 4. CONSTRAINT GENERATION 5. EXPLOIT GENERATION Encode scopes with constraints Path constraint check with Keccak-256 Χρήση Ζ3 constraint solver Exploiting Transactions
EVALUATION Στιγμιότυπο του Ethereum blockchain Σάρωση 784,344 contracts Κάποια είχα ίδιο bytecode Διαγραφή duplicates 38,757 μοναδικά contracts Intel Xeon E5-2660,192GB RAM (max 32GB used).
EVALUATION
VALIDATION Private Fresh Ethereum network 3 accounts Συγκεκριμένο αριθμό Ether σε κάθε account 0 gas fee στις συναλλαγές
VALIDATION
Conclusion TEETHER tool Ασφάλεια των Smart contracts χαμηλή Εντελώς αυτοματοποίηση των exploits Βοήθεια Κατανόηση, εύρεση, αποφυγή των exploits πρώτού υπάρξουν απώλειες.