BLOCKCHAIN E SICUREZZA
/in Blockchain/di Cristiano FrassinetiLa blockchain è un libro mastro digitale che registra le transazioni condividendole tra molti computer. È un database distribuito, il che significa che ne esistono molte copie e che nuove informazioni possono essere aggiunte solo se tutti i partecipanti alla rete sono d’accordo.
La tecnologia blockchain è uno strumento potente per migliorare la sicurezza e l’affidabilità: tuttavia, non è priva di rischi e pericoli.
EXPLOIT
Il rischio più evidente della tecnologia blockchain è la vulnerabilità agli exploit. Si tratta di minacce alla blockchain che sorgono a causa di bug o violazioni nella progettazione del sistema. Esistono due tipi di exploit: quelli che sfruttano i bug (ad esempio, gli attacchi denial-of-service) e quelli che sfruttano i difetti di progettazione del sistema stesso (ad esempio, la rientranza). Ad esempio, un attore può utilizzare un attacco denial-of-service per mettere offline un nodo inviandogli un numero eccessivo di messaggi o di query che non è in grado di gestire.
RIENTRANZA
Un exploit di rientranza si verifica quando un attore invia due transazioni diverse allo stesso tempo, una dopo l’altra, con ciascuna transazione che apporta modifiche per conto dell’attore stesso senza attendere che la prima transazione venga eseguita. La seconda transazione sarà in grado di eseguire le sue modifiche anche prima che la precedente transazione restituisca una risposta. Se le transazioni di una blockchain non sono atomiche, un attore che invia due transazioni contemporaneamente può permettere alla seconda transazione di essere eseguita prima che la prima termini l’esecuzione, apportando le sue modifiche senza attendere che la prima transazione termini. Questa è chiamata rientranza ed è considerata un problema importante per le blockchain come Ethereum a causa della sua dipendenza da smart contract.
Altri tipi di problemi di sicurezza
La sicurezza delle blockchain è una preoccupazione fondamentale per molti investitori e aziende che stanno cercando di utilizzare la tecnologia blockchain nel loro modello di business. Oltre a quelli indicati sopra, ci sono vari altri rischi che devono essere affrontati, come gli errori umani, gli attacchi di phishing e le vulnerabilità del codice (soprattutto nelle chain con possibilità di esecuzione di smart contract).
Vulnerabilità del codice
Le vulnerabilità del codice sono una conseguenza diretta degli smart contract, una forma di codice supportata da molte Blockchain. Gli smart contract sono protocolli informatici che eseguono i termini di un contratto: si possono considerare come un programma informatico auto-operante che viene eseguito automaticamente quando vengono soddisfatte determinate condizioni.
Le vulnerabilità degli smart contract sono causate da una cattiva stesura del codice e da bug. Il rischio è elevato a causa della difficoltà di modificare uno smart contract in seguito alla sua distribuzione.
I bug possono essere sfruttati dagli hacker, che possono utilizzarli per rubare denaro o dati dalla blockchain, ad esempio accedendo a funzioni del codice che non dovrebbero essere eseguibili.
Nel mondo della blockchain, gli smart contract vengono utilizzati per automatizzare alcuni processi che di solito vengono svolti manualmente, ma come sempre l’automazione aumenta il livello di rischio.
Una delle vulnerabilità più tipiche è il rischio di rientranza di cui sopra, che colpisce gli smart contract in modo molto comune a causa della loro struttura basata su metodi con un controllo degli accessi autovalutativi.
Attacchi di phishing
Dall’altro lato, il phishing è quando qualcuno ruba le vostre credenziali per un servizio, come l’accesso al vostro conto bancario o all’account di un social media, fingendo di essere un’altra persona che conoscete tramite un’e-mail, un messaggio di testo, una telefonata, ecc. Le chiavi private vengono utilizzate per firmare le transazioni su una blockchain, il che significa che se qualcuno fosse in grado di rubare la vostra chiave privata, avrebbe accesso ai vostri fondi e a tutte le funzioni degli smart contract che avete voi stessi implementato.
Le truffe di phishing sono, in generale, il tipo di attacco informatico più comune. I malintenzionati utilizzano l’ingegneria sociale per ottenere l’accesso alla vostra chiave privata e prendere il controllo del vostro conto.
Di solito si tratta di uno schema composto da quattro fasi:
- I truffatori creano un sito web falso che sembra identico a quello legittimo;
- Inviano e-mail di spam o messaggi su siti di social media come Facebook, Twitter, ecc;
- Poi ingannano l’utente e lo costringono a inserire la sua chiave privata o la sua frase mnemonica sul loro sito;
- Infine, sottraggono le informazioni di cui hanno bisogno e le usano per agire a vostro nome.
Il phishing non è un fenomeno nuovo, ma è diventato più sofisticato con l’avvento dei social media e di altri strumenti online. Può essere difficile riconoscere i tentativi di phishing perché vengono fatti passare per messaggi legittimi provenienti da fonti attendibili.
Errori umani
Infine, ci sono molti tipi di errori umani che possono portare a violazioni della sicurezza nelle reti blockchain. Il tipo di errore umano più comune è l’ingegneria sociale, un ventaglio di attacchi che utilizza l’inganno per ottenere l’accesso a informazioni o dati privati. L’errore umano è un grande rischio per la sicurezza della blockchain a causa della sua complessità. L’ingegneria sociale è un tipo di errore umano che può essere mitigato assicurandosi che le persone siano ben addestrate su cosa fare e cosa non fare quando interagiscono con la tecnologia blockchain. Gli attacchi di ingegneria sociale possono verificarsi quando agli esseri umani vengono fornite informazioni organizzative a cui non dovrebbero avere accesso, come password o chiavi (come detto prima). Abbiamo appena parlato del tipo più comune di attacco di social engineering – il phishing – ma, come già detto, non ci si ferma qui: altri vettori di attacco sono:
- spoofing, ovvero quando qualcuno finge di essere qualcun altro tramite e-mail o telefono, di solito con una posizione geografica corrispondente;
- vishing, ovvero quando gli hacker chiamano la vittima al telefono e la convincono a fornire informazioni per qualcosa che non esiste.
Attori malintenzionati: scams e rug pulls
Il mondo delle criptovalute è pieno di progetti scam. È importante saperli riconoscere prima di investire in un progetto.
- Uno scam è un inganno o una frode intenzionale, che tipicamente comporta l’uso di informazioni false o fuorvianti, progettate per trarre vantaggio da altri.
- Il rug pull invece è una tattica utilizzata dai manipolatori del mercato che consiste nel convincere gli investitori ad acquistare un token, spesso rilasciando dichiarazioni positive sulle prospettive del progetto, con l’unica intenzione di estrarre (cioè togliere, “pullare”) tutto il valore immesso dagli utenti per rubarlo.
Il mercato delle criptovalute non è un luogo sicuro e ci sono molte persone che vogliono approfittare della mancanza di conoscenza ed esperienza altrui. I progetti scam sono spesso lanciati da sviluppatori con l’intenzione di derubare gli investitori. Promettono rendimenti irrealistici per attirare l’attenzione sul loro progetto, ma nella maggior parte dei casi falliscono miseramente o scompaiono senza lasciare traccia. Altri modi in cui i truffatori cercano di approfittare degli investitori inesperti sono:
- Promettere profitti garantiti che non possono essere raggiunti nella realtà
- Vendita di token a prezzi scontati
- Creazione di ICO false
- Promessa di token gratuiti in cambio di major asset.
Le truffe sono un problema importante nello spazio delle criptovalute. Con il lancio di così tanti progetti e token, diventa sempre più difficile per l’utente medio distinguere tra una truffa e un progetto legittimo.
Per difendersi da questi rischi, si dovrebbe investire solo in token con informazioni sul locking della liquidità. Questo impedisce al token di essere venduto sul mercato prima della data di rilascio, riducendo così la possibilità che si verifichi, appunto, un rug pull. Con la liquidità bloccata, nessuno è in grado di sottrarre al progetto il valore investito. È inoltre molto importante essere consapevoli dell’offerta in circolazione del token in cui si è investito e della distribuzione dello stesso (tokenomics). Infatti, un progetto all’interno del quale solo pochi attori hanno alte percentuali di token sbloccate, rispetto all’offerta totale è può comportare un rischio concreto.
Sono Cristiano Frassineti, uno sviluppatore fullstack con una grande passione per la Blockchain. Ho iniziato la mia carriera da bambino: la curiosità mi ha sempre spinto a capire come funzionano le cose. Negli anni ho continuato a studiare, specializzandomi in Python e nodeJS, fino a due anni fa quando ho iniziato il mio viaggio nella Blockchain. Con questa nuova passione ho iniziato ad apprendere i linguaggi degli smart contract (Solidity) e attualmente sto lavorando su un progetto Ethereum, un intero ecosistema con l’obiettivo di facilitare il passaggio al mondo decentralizzato.