Le vulnerabilità di sicurezza di hacker e blockchain DAO

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


I problemi di sicurezza prevalgono su tutti gli altri problemi nel pacchetto software in base e in blockchain appositamente. Se la protezione fallisce, praticamente non importa nient'altro. Blockchain dimostra la funzione di transazioni decentralizzate e prive di fiducia, ma permangono tuttavia alcune vulnerabilità legate alla blockchain.

Gli exploit di protezione esistono a livello di struttura e architettura, nella fase di codifica e nella fase operativa. E nel caso tu stia meditando, in effetti, la blockchain può essere violato.

Vulnerabilità legate alla sicurezza blockchain: dal basso all'eternità

I diamanti sono per sempre, e i buoni contratti durano fino a quando la blockchain su cui sono schierati continua a essere utilizzata. Pertanto, tutti i bug e le vulnerabilità di sicurezza blockchain si soffermano anche finché il contratto è valido.

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

Lingue di affare sensato

Gli ambienti Blockchain contengono le proprie lingue per la creazione di contratti saggi.

La piattaforma Ethereum, ad esempio, presenta il Solidità linguaggio per produrre contratti intelligenti. I creatori realizzati Solidità di essere Turing linguaggio completo.

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

Turing Completezza

Turing le lingue complete incorporano la complessità per carattere e la complessità invita bug e vulnerabilità.

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

Il minor numero di possibilità fornite a un programmatore, minore è la probabilità che si verifichino delle vulnerabilità di protezione da blockchain di entrare nel processo.

Per minimizzare la possibilità di rilasciare il codice difettoso in natura, i programmatori dovrebbero realizzare le insidie ​​e gli anti-stili più comuni inerenti alla programmazione intelligente dei contratti. (Gli anti-disegni rappresentano pratiche di programmazione negative).

The DAO Hack: The Reentrancy Trouble

immagine di vulnerabilità di sicurezza blockchain

L'attacco DAO

Il problema della rientranza è probabilmente il più alto tra i programmatori di vulnerabilità di sicurezza della blockchain codificati in contratti intelligenti. Reentrancy scarica un account a titolo di varie spese per la stessa transazione. Il caso di utilizzo dei rimborsi di elaborazione si presta solo a questo exploit, ma questa falla impatta qualsiasi tipo di transazione se non trattata nello stile, nella fase di progettazione e di codifica.

In uno dei più famigerati assalti di criptovaluta fino ad oggi, gli hacker del DAO hanno sfruttato la rientranza. Nessun leader organizzativo ha dettato come utilizzare il DAO (o il Gruppo autonomo decentralizzato) e il DAO ha proposto di conferire agli acquirenti la capacità di votare sugli incarichi da dedicare a.

Ha raccolto più di $ 150 in finanziamenti nel suo mese iniziale. A giugno 17, 2016, gli hacker hanno drenato $ 50 milioni dal gruppo per via del difetto della rientranza. 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 a Reentrancy

Una logica di rientro vulnerabile per il codice sembra essere così:

eseguire alla procedura un pagamento ()

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

(2) sistema la transazione

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

Per iniziare con lo sguardo, la logica sembra essere appropriata e completa, ma il difetto risiede nella fase di esecuzione 2 prima del passo 3.

Sebbene il primissimo contatto con la funzione proceda alla fase di elaborazione 2, un ulteriore contatto con la stessa transazione può entrare nello scopo. Considerando il fatto che i fatti di stato rimangono nel suo punto iniziale e non sono comunque elaborati nel passaggio 3, l'2e entra in contatto con i controlli come una transazione legittima al metodo.

Di conseguenza, il processo spende forex per lo stesso obbligo di 2nd. Gli hacker si precipitano un numero di transazioni allo scopo prima che la condizione riceva completamente.

Rimedio per Reentrancy

Questo si adegua 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) aggiorna la condizione del sistema per dimostrare che la transazione è stata elaborata

(3) metodo la transazione

Il codice deve tenere conto di tutte le principali operazioni di gestione delle eccezioni e deve anche tenere conto di tutte le dipendenze sensibili.

straripamento

L'overflow è un ulteriore problema per cui i programmatori di difetti di protezione devono essere informati.

Alcuni linguaggi di programmazione presentano una digitazione potente, mentre altri offrono una digitazione debole. Le lingue fortemente tipizzate si rifiutano di consentire ai programmatori di assegnare informazioni di stringa a una variabile numerica, caso per caso, e lingue con caratteri tipicamente deboli consentono questo tipo di azioni.

I linguaggi fortemente tipizzati implementano vincoli di varietà. Se un array è dotato di funzionalità 10, i programmatori non possono tentare di ottenere l'undicesimo fattore. Linguaggi deboli tipizzati consentono questi tipi di comportamento, ma si blocca il risultato. Se il vantaggio più ammissibile che una variabile detiene è 99, e gli assegni un valore di 100, vederlo crash quando lo esegui!

Di conseguenza, l'overflow è un exploit che gli hacker utilizzano. Se un hacker alimenta un parametro con un contratto intelligente che è fuori dall'array cui il codice può avvicinarsi, si verificherà un crash finale. Questo tipo di incidente alimenta molti exploit. Il crash potrebbe causare un attacco denial of service (attacco DDoS), e le informazioni importanti sugli interni del programma a volte si rivelano da sole nei messaggi di errore.

Nei programmi internet, gli hacker di solito riempiono la memoria con il proprio codice distruttivo, quindi quando il software si blocca e si sposta in una posizione casuale nella memoria, il codice dannoso viene eseguito.

Linguaggi deboli tipizzati forniscono energia elettrica e flessibilità generale dinamica, ma richiedono anche strutture e prove più impegnative da indurire contro gli assalti.

L'Idra a testa numerosa

immagine di vulnerabilità di sicurezza blockchain

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

La povera crittografia genera molti mal di testa. La crittografia assicura la privacy e quando la riservatezza si rompe, ogni cosa si rompe. Il gruppo IOTA ha progettato la scomposizione di creare la propria libreria crittografica personale da zero nel modello preliminare del proprio prodotto. La difficoltà insita nella rotazione della crittografia individuale è che tutto il programma complesso contiene bug, quindi si ha la certezza di disporre di crittografia crittografata.

Le librerie crittografiche riconosciute sopravvivono al controllo dei docenti e stabiliscono affidabilità in eccesso di tempo come risultato della vita in natura.

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

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 iniziare l'approccio. Se il seme non riesce a essere certamente casuale, il sistema fallisce.

Un risultato particolare di cattiva casualità implica l'accordo identico con i riceventi creati diversi momenti. Foto lo stato di cose in cui un portafoglio assegna il contratto con X a un individuo A, e poi in un secondo momento assegna il punto X a un uomo o una donna B. Quando un pagamento va a X, va solo a una persona in particolare. Quale persona in particolare otterrà il denaro?

Ancora un'altra difficoltà con casualità negativa si verifica quando un hacker individua l'algoritmo impiegato 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 rimuovono tutte le vulnerabilità dal codice, le vulnerabilità operative rimangono.

In un Evidence of Operate ecosystem, se gli attori negativi comandano 51% della rete, l'integrità viene distrutta. Il principio del gioco presenta una mitigazione per questo assalto. Una nuova criptovaluta con una comunità compatta espone maggiormente a questo attacco. Ma un assalto 51% distrugge il beneficio del forex, quindi gli aggressori semplicemente fanno del male da soli.

I blockchain vivono su internet e condividono la stessa identica esposizione agli hacker come il web. Per l'occasione, supponiamo di acquistare denaro da una transazione su un sito web. Gli attacchi di iniezione, lo scripting cross-web-site, gli attacchi di phishing e tutti gli altri hack del sito prevalgono.

Sentimenti conclusivi

Proprio come i programmatori proteggono dagli errori, i programmatori dovrebbero dare stabilità al loro sviluppo. Esistono alcuni strumenti per assistere i programmatori nel lavoro, ma i programmatori devono inizialmente comprendere le proprie vulnerabilità per proteggersi da essi.

Il DASP (Decentralized Software Security Job) aspira ad essere un repository di fatti e metodi sulla sicurezza della blockchain. Si modellano notevolmente su Open-up Internet Software Security Project (OWASP). L'annuale OWASP Best 10 elenca sicuramente le più importanti vulnerabilità delle applicazioni nette attualmente esistenti. 10, la più votata DASP, spera di presentare l'equivalente risorsa utile per la blockchain.

Non tutti gli assalti sono considerati in anticipo. Un exploit zero-working day definisce un exploit che gli hacker conoscono proprio prima di chiunque altro. Quindi i programmatori devono immaginare come attaccanti durante la progettazione e l'implementazione del software. Se non si ottengono le vulnerabilità nel codice, aspettarsi che un hacker cerchi profitti per scoprirli.



Fonte

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

NON CI SONO COMMENTI