Le vulnerabilità di sicurezza di DAO Hack e Blockchain

ad-Midbar
ad-Midbar
ad-Midbar
ad-Midbar

[Ad_1]

I problemi di sicurezza prevalgono su tutti gli altri problemi nel pacchetto software in base e in blockchain in particolare. Se la protezione fallisce, praticamente nient'altro importa. Blockchain dimostra che le transazioni decentralizzate e senza fiducia funzionano, ma rimangono tuttavia diverse vulnerabilità di sicurezza della blockchain.

Gli exploit di protezione esistono a livello di struttura e architettura, in fase di codifica e in fase operativa. E nel caso tu stia riflettendo, infatti, la blockchain può essere hackerata.

Vulnerabilità di sicurezza della blockchain: dal basso all'eternità

I diamanti sono per sempre e i buoni contratti durano tanto a lungo quanto la blockchain su cui sono distribuiti continua a essere utilizzata. Pertanto, tutti i bug e le vulnerabilità di sicurezza della blockchain persistono finché dura il contratto.

Di solito, ogni singola blockchain offre il proprio linguaggio di programmazione per implementare buoni contratti. Acquisiamo una ricerca più approfondita.

Lingue sensate

Gli ambienti blockchain contengono i propri linguaggi per la creazione di saggi contratti.

La piattaforma Ethereum, ad esempio, presenta l'estensione Solidity linguaggio per produrre contratti intelligenti. I creatori hanno fatto Solidity di essere Turing lingua completa.

A Turing Il linguaggio di finitura consente principalmente al programmatore di mettere in atto qualcosa di cui la tecnica fondamentale è capace. Pertanto, questo presenta capacità dei programmatori come l'utilizzo di loop nel codice, che probabilmente possono causare vulnerabilità alla stabilità della blockchain.

Turing completezza

Turing linguaggi completi incorporano complessità per carattere e la complessità invita a bug e vulnerabilità.

La rete Bitcoin ha anche un linguaggio di programmazione che chiama Copione. Copione di proposito non lo è Turing finire per migliorare la sicurezza.

Minore è il numero di possibilità fornite a un programmatore, minore è la probabilità che le vulnerabilità della protezione blockchain entrino nel processo.

Per ridurre al minimo la possibilità di rilasciare codice difettoso in natura, i programmatori dovrebbero rendersi conto delle insidie ​​e degli anti-stili popolari inerenti alla programmazione intelligente dei contratti. (Gli anti-design rappresentano pratiche di programmazione negative).

L'hack DAO: il problema del rientro

immagine delle vulnerabilità della sicurezza blockchain

L'attacco DAO

Il problema del rientro è molto probabilmente il più alto tra i programmatori di vulnerabilità della sicurezza blockchain codificati in contratti intelligenti. Reentrancy prosciuga un conto attraverso varie spese per la stessa transazione. Il caso d'uso dell'elaborazione dei rimborsi si presta da solo a questo exploit, ma questo difetto impatta su qualsiasi tipo di transazione se non affrontato in fase di stile, progettazione e codifica.

In uno solo dei più famigerati attacchi di criptovaluta fino ad oggi, gli hacker della DAO hanno sfruttato il rientro. Nessun leader organizzativo ha dettato come far funzionare il DAO (o gruppo autonomo decentralizzato), e il DAO ha proposto di autorizzare gli acquirenti con la capacità di votare sugli incarichi da dedicare.

Ha raccolto più di 150 milioni di dollari di finanziamenti nel suo primo mese. Il 17 giugno 2016, gli hacker hanno prosciugato $ 50 milioni dal gruppo a causa della falla di rientro. Il difficile fork da Ethereum Traditional (Etc) a Ethereum (ETH) ha portato a uno sforzo per risolvere le sfide sviluppate da questo hack.

Anti-campione vulnerabile al rientro

Una logica rientrante vulnerabile per il codice sembra essere la seguente:

eseguire per eseguire un pagamento ()

(1) testare la validità della transazione, il destinatario e l'equilibrio del conto

(2) sistema la transazione

(3) aggiornare lo stato del metodo per mostrare che la transazione è stata elaborata

All'inizio con il look, la logica sembra essere appropriata e completa, ma il difetto risiede nell'ottenere l'esecuzione della fase 2 prima del passaggio 3.

Sebbene il primo contatto con la funzione proceda con l'elaborazione della fase 2, può entrare nello scopo un ulteriore contatto per la stessa transazione. Considerando il fatto che i fatti di stato rimangono nella loro posizione originale e non sono comunque elaborati nel passaggio 3, il 2 ° si mette in contatto con i pagamenti come una transazione legittima al metodo.

Di conseguenza, il processo spende il forex per lo stesso identico obbligo una seconda volta. Gli hacker affrettano una serie di transazioni allo scopo prima che la condizione venga impostata completamente.

Rimedio per il rientro

Questo adattamento all'algoritmo corregge il dilemma eccessivo:

eseguire per avvicinarsi a un pagamento ()

(1) controlla la validità della transazione, il destinatario e l'equilibrio del conto

(2) aggiornare le condizioni del sistema per dimostrare che la transazione è stata elaborata

(3) metodo della transazione

Il codice deve tenere conto di tutta la gestione delle eccezioni essenziali e dovrebbe tenere conto anche di tutte le dipendenze sensibili.

straripamento

L'overflow è un altro difetto di protezione popolare di cui i programmatori devono essere informati.

Alcuni linguaggi di programmazione presentano una digitazione potente e altri forniscono una digitazione debole. I linguaggi fortemente tipizzati rifiutano di consentire ai programmatori di assegnare informazioni di stringa a una variabile numerica, per esempio, e i linguaggi debolmente tipizzati consentono questo tipo di azioni.

I linguaggi fortemente tipizzati implementano vincoli di varietà. Se un array è composto da 10 caratteristiche, i programmatori non possono tentare di ottenere l'undicesimo fattore. I linguaggi debolmente tipizzati consentono questi tipi di comportamento, ma il risultato è un arresto anomalo. Se il vantaggio più consentito detiene una variabile è 99 e le assegni un valore di 100, visualizzala in crash quando la esegui!

Di conseguenza, l'overflow è un exploit utilizzato dagli hacker. Se un hacker fornisce un parametro a uno smart contract che è fuori dall'array a cui il codice può avvicinarsi, si verifica un arresto anomalo finale. Questo tipo di incidente alimenta molti exploit. Il crash potrebbe causare un attacco Denial of Service (attacco DDoS) e informazioni importanti sugli interni del programma a volte si rivelano da sole in messaggi di errore.

Nei programmi Internet, gli hacker di solito riempiono la memoria con il proprio codice distruttivo, quindi quando il software si arresta in modo anomalo e va in un punto casuale della memoria, il codice dannoso viene eseguito.

I linguaggi debolmente tipizzati forniscono energia elettrica e flessibilità generale dinamica, ma richiedono anche che vengano rafforzate strutture e test aggiuntivi contro gli assalti.

L'idra dalle numerose teste

immagine delle vulnerabilità della sicurezza blockchain

Una moltitudine di sfide alla sicurezza affligge il mondo delle applicazioni. Con l'emergere di nuove tecnologie, emergono nuove minacce. Oltre agli exploit menzionati in precedenza, questi difetti degni di nota rappresentano solo alcune delle molte altre vulnerabilità della protezione blockchain.

La scarsa crittografia genera molti mal di testa. La crittografia garantisce la privacy e quando la privacy si interrompe, ogni cosa si rompe. Il gruppo IOTA ha progettato lo sbaglio di creare la propria libreria crittografica personale da zero nel modello preliminare del proprio prodotto. La difficoltà inerente al rollio della tua crittografia individuale è che tutti i programmi complessi contengono bug, quindi hai la certezza di avere una crittografia difettosa.

Le biblioteche crittografiche riconosciute sopravvivono al controllo da parte dei docenti e si affermano affidabili in eccesso di tempo grazie alla vita allo stato brado.

Nel mondo dei portafogli, l'era della selezione casuale deve essere certamente casuale. Soprattutto nei primi giorni della criptovaluta, alcuni portafogli non hanno avuto successo.

Gli indirizzi di criptovaluta richiedono indirizzi che devono essere speciali. L'unicità verrà da un generatore di quantità casuale e il generatore di quantità casuale vuole un seme per avviare l'approccio. Se il seme non è certamente casuale, il sistema fallisce.

Un risultato particolare della cattiva casualità implica che lo stesso accordo con riceve creati diversi momenti. Foto lo stato delle cose in cui un portafoglio assegna la trattativa con X all'individuo A, e poi qualche tempo dopo assegna l'handle X all'uomo o alla donna B. Quando un pagamento va all'indirizzo X va solo a una persona in particolare. Quale persona in particolare riceverà i soldi?

Ancora un'altra difficoltà con la casualità negativa si verifica quando un hacker scopre l'algoritmo utilizzato per produrre il seme. L'hacker rigenera il seme per se stesso e possiede il sistema.

L'autostrada va avanti per sempre e la celebrazione non finisce mai

La sicurezza è una lotta senza fine e anche se programmatori, architetti e tester eliminano tutte le vulnerabilità dal codice, le vulnerabilità operative rimangono.

In un ecosistema Evidence of Operate, se gli attori negativi comandano il 51% della rete, l'integrità viene compromessa. Il principio del gioco presenta una mitigazione per questo assalto. Una nuova criptovaluta con una comunità compatta espone la maggior parte dei rischi a questo attacco. Ma un attacco del 51% distrugge il vantaggio del forex, quindi gli aggressori fanno male da soli.

Le blockchain vivono su Internet e condividono la stessa identica esposizione agli hacker del web. Per l'occasione, supponiamo di acquistare contanti da un'operazione su un sito web. Prevalgono attacchi di injection, cross-site scripting, attacchi di phishing e tutti gli altri hack standard del sito.

Sentimenti finali

Proprio come i programmatori proteggono dai bug, i programmatori dovrebbero dare stabilità al loro sviluppo. Esistono alcuni strumenti per assistere i programmatori nel lavoro, ma i programmatori devono inizialmente avere una comprensione delle proprie vulnerabilità per proteggersi.

Il Decentralized Software Security Job (DASP) aspira ad essere un archivio di fatti e metodi sulla sicurezza blockchain. Si modellano considerevolmente sul progetto Open up Internet Software Security (OWASP). L'annuale OWASP Best 10 elenca certamente le più importanti vulnerabilità delle applicazioni nette attualmente esistenti. Il DASP Top rated 10 spera di presentare la risorsa utile equivalente per blockchain.

Non tutte le aggressioni sono considerate in anticipo. Un exploit zero-working day definisce un exploit di cui gli hacker sono a conoscenza prima che lo faccia chiunque altro. Quindi i programmatori devono immaginare come gli attaccanti quando progettano e implementano il software. Se non ottieni le vulnerabilità nel tuo codice, aspettati che un hacker in cerca di profitto le scopra.

[Ad_2]

Fonte

ad-bottom
ad-bottom
ad-bottom
ad-bottom

NON CI SONO COMMENTI