1. Attacchi e Vulnerabilità delle Blockchain
- Livelli di attacco:
- Dati: Vulnerabilità nelle primitive di sicurezza.
- Rete: Attacchi come Man-in-the-Middle e Denial of Service (DoS).
- Applicazione: Furti di wallet e chiavi private.
- Tipologie di attacchi:
- Fork: Soft fork (retrocompatibile) e Hard fork (cambio regole).
- Selfish Mining: Miner maliziosi ritardano la pubblicazione dei blocchi.
- Attacco del 51%: Controllo della maggioranza dell'hash rate per manipolare la blockchain.
- DNS/BGP Hijacking: Reindirizzamento del traffico verso nodi malevoli.
- Eclipse Attack: Isolamento di nodi legittimi.
- DDoS: Congestione della rete con transazioni inutili.
- Attacco Finney: Double spending ritardando la propagazione dei blocchi.
- Block Withholding: Miner trattengono blocchi validi per danneggiare il pool.
2. Vulnerabilità negli Smart Contract (Solidity)
- Reentrancy: Chiamate esterne malevole che rientrano nel contratto (esempio: furto di fondi).
- Overflow/Underflow: Errori nei tipi di dati che permettono manipolazioni.
- DELEGATECALL: Esecuzione di codice esterno nel contesto del chiamante.
- Timestamp Manipolation: Miners possono alterare i timestamp dei blocchi.
- Front Running: Miners privilegiano transazioni con gas più alto per trarne vantaggio.
- Vulnerabilità nei costruttori: Errori nell'inizializzazione degli smart contract.
3. Vulnerabilità nei Chaincode (Hyperledger Fabric)
- Non determinismo: Problemi con variabili globali, iterazioni non ordinate, concorrenza e timestamp.
- Accessi off-chain: Elaborazioni esterne introducono rischi di sicurezza.
- Concorrenza: Utilizzo di goroutine e channel in Go può causare comportamenti imprevedibili.
4. Blockchain e GDPR
- Problemi:
- Diritto all'oblio e rettifica: Difficile garantire cancellazione/modifica dei dati.
- Responsabilità: Decentrata nelle blockchain permissionless.
- Privacy by Design/Default: Violata dalla natura pubblica e replicata delle blockchain.
- Soluzioni proposte: Crittografia, anonimizzazione e archiviazione off-chain dei dati sensibili.
5. Trusted Execution Environment (TEE)
- Scopo: Proteggere l'esecuzione del codice da nodi compromessi e comportamenti bizantini.
- Funzione: Complementa le misure di sicurezza esistenti, garantendo un ambiente sicuro per l'elaborazione.