Nel 2021 le vendite totali di NFT sono cresciute da 1,3 miliardi di dollari nel secondo trimestre a 10,7 miliardi nel terzo trimestre. Le vendite di NFT da collezione sono cresciute in maniera ben più drastica, di oltre 100 volte dai 55,5 milioni di dollari di inizio anno ai 5,6 miliardi registrati nel terzo trimestre; anche le due case d’asta più famose, Sotheby’s e Christie’s, si sono unite al boom degli NFT e hanno iniziato ad accettare le criptovalute come metodo di pagamento, permettendo così ai ricchi detentori di cripto di partecipare come offerenti alle loro aste.
L’ascesa del mercato degli NFT non è certo passata inosservata tra gli hacker, pronti a mostrare la loro ingegnosità nel tentativo di espropriare o contraffare token non fungibili. Non esistono molti casi di offensive a smart contract per NFT, ma i marketplace server-based hanno subito diversi attacchi, alcuni dei quali sono andati a buon fine. Dunque, se un giorno non vuoi diventare vittima anche tu di questo genere di attacchi, devi sapere come proteggerti.
Come proteggersi da un NFT contraffatto?
Per cominciare, gli NFT non possono essere replicati e questo è un elemento di cui puoi essere certo; possono essere comunque emessi NFT con ID simili, ma questo deve avvenire da uno smart contract diverso. Per verificare l’autenticità di un NFT, è necessario copiare l’indirizzo dello smart contract che lo ha coniato ed eseguire una ricerca sul rispettivo blockchain explorer.
Se lo smart contract è falso, questo verrà contrassegnato come non verificato e senza metadati; se invece lo smart contract è valido, lo vedrai contrassegnato come verificato e conterrà dei metadati che definiscono in maniera inequivocabile il proprietario dello smart contract e altri aspetti rilevanti.
Tutto ciò rientra nell’ambito della normale due diligence, e nessuna revisione degli smart contract potrà aiutarti in questa situazione.
Tieni al sicuro i tuoi NFT
In merito alla sicurezza degli NFT in tuo possesso, ricorda che possono essere rubati, e quindi devi usare un metodo sicuro per conservarli perché non succeda. In questo caso, il principale punto debole è costituito dall’archiviazione dei tuoi token non fungibili su marketplace centralizzati: queste piattaforme sono server-based e conservano i tuoi NFT in un unico wallet. Quindi, se l’hacker entra nel tuo account, sarà in grado di trasferire i tuoi NFT a un indirizzo diverso.
Lo abbiamo visto accadere con il marketplace Nifty Gateway a marzo di quest’anno: il 14 marzo uno degli utenti della piattaforma ha scritto che qualcuno aveva rubato i suoi NFT per poi acquistare degli NFT droppati quel giorno per un valore di oltre 10.000 dollari utilizzando i suoi fondi. Questo mostra la vulnerabilità dei marketplace centralizzati e le minacce in cui possono incorrere i loro utenti.
Questo genere di problemi non ha nulla a che fare con gli smart contract che coniano gli NFT, ma piuttosto con la sicurezza della piattaforma; sarà dunque più sicuro trasferire i tuoi NFT nel tuo wallet, rispetto al quale hai il pieno controllo.
Vedi anche: Quali sono i migliori wallet di criptovalute?
L’attacco ricorsivo
L’attacco ricorsivo (reentrancy attack) è un noto tipo di attacco hacker che prende di mira la funzione di fallback dei contratti Ethereum: nei contratti ERC-20, le funzioni di fallback inviano Ether, eseguendo transazioni che non possono essere eseguite da nessun’altra funzione di un contratto; in particolare, eseguono le transazioni prive di dati supplementari.
Per eseguire un attacco ricorsivo, l’attaccante deve prima mappare un saldo in Ethereum sul suo smart contract; poi può utilizzare la funzione di fallback del suo smart contract per chiamare il comando «preleva» dallo smart contract da cui vuole prelevare; se lo smart contract preso di mira dall’hacker esegue il trasferimento prima di riaggiustare il saldo, l’hacker può ripetere più volte il comando «preleva» e svuotare il contratto.
Con gli smart contract per NFT, la funzione di fallback di un contratto NFT può chiamare il comando «preleva» da un altro contratto per trasferire i suoi token; lo smart contract dell’hacker avrà anche bisogno di mappare un saldo in modo che il contratto di destinazione possa leggerlo prima di eseguire il trasferimento. Quindi, se un attacco ricorsivo funziona su un NFT, la vittima sarà il venditore.
Gli attacchi ricorsivi sfruttano sostanzialmente l’ordine di esecuzione delle funzioni in uno smart contract; il modo più affidabile per proteggere un contratto da questo tipo di attacchi è utilizzando il cosiddetto “ordine di esecuzione delle interazioni fra controlli e effetti”, che garantisce che la funzione prima controlli il saldo e soltanto dopo trasferisca gli asset. Si tratta di un elemento per il quale una revisione dello smart contract può essere d’aiuto, ed è di uno strumento che i marketplace di NFT dovrebbero sempre impiegare prima di distribuire i loro contratti.
In conclusione
I token non fungibili sono unici e non possono essere contraffatti; soltanto uno smart contract diverso può emettere un NFT simile, che però sarà diverso e potrà essere identificato come tale dall’indirizzo del contratto che lo conia. Si tratta di un aspetto a cui l’acquirente dovrebbe prestare attenzione: in questo caso, la revisione del contratto non può essere d’aiuto.
Un altro rischio è il pericolo di furto: i token possono essere sottratti dai marketplace centralizzati di NFT qualora un hacker riesca a entrare nell’account di un utente. Per evitare che accada, assicurati di trasferire i tuoi NFT a un wallet controllato da te, non dal marketplace. Peraltro i marketplace dovrebbero prendere molto sul serio la sicurezza della piattaforma e seguire rigidi protocolli interni, oltre ad adottare misure serie contro gli attacchi esterni.
Infine, è necessario effettuare la revisione contabile di un NFT smart contract per verificare che non sia vulnerabile a un attacco ricorsivo; questo vale anche per i marketplace, visto che gli smart contract predominano in modo evidente nel’emissione di NFT.