Dissertação

{en_GB=A Study of Static Analysis Tools for Ethereum Smart Contracts} {} EVALUATED

{pt=A tecnologia blockchain tem recebido considerável atenção por parte da indústria e academia, pelas suas promessas em mudar o mundo digital permitindo uma economia digital aberta, democrática e escalável baseada em consenso distribuído de forma descentralizada. Smart contracts, programas de computador executados em blockchain, são parte nuclear desta tecnologia, pois permitem a criação de novas aplicações distribuídas. Milhões de smart contracts foram submetidos na rede Ethereum, a maior plataforma de blockchain para smart contracts e, embora sejam vistos com grande potencial, sabe-se que smart contracts têm tido vários problemas de segurança. Ataques recentes a smart contracts e vulnerabilidades críticas descobertas mostram a enorme perda financeira que podem causar aos utilizadores e alertam-nos para a necessidade de uma implementação segura e confiável, alertando para a necessidade de aplicar técnicas de verificação. Nos últimos anos, foram desenvolvidas várias ferramentas de análise estática visando especificamente smart contracts da rede Ethereum. Nesta dissertação apresentamos uma revisão de ferramentas de análise a smart contracts e introduzimos o SmartBugs, um novo framework de execução extensível, criado para facilitar a integração e a comparação entre várias ferramentas de análise e a análise de smart contracts. O SmartBugs inclui dois datasets com um total de 47,661 smart contracts escritos em Solidity e é utilizado para realizar uma avaliação empírica de 7 ferramentas de análise estática usando os dois novos datasets. O nosso estudo mostra que Mythril é a ferramenta mais sensível e Slither tem a melhor precisão. Além disso, apresentamos uma extensão que melhora o SmartCheck., en=Blockchain technology has been receiving considerable attention from industry and academia, for it promises to disrupt the digital online world by enabling a democratic, open, and scalable digital economy based on decentralized distributed consensus without the intervention of third-party trusted authorities. Smart contracts, computer programs executed on top of a blockchain, are at the core of this technology, for they allow the creation of new distributed applications. Millions of smart contracts have been deployed on Ethereum, a major blockchain platform for smart contracts, and although they are seen with great potential, smart contracts have been known to have several security problems. Recent attacks on smart contracts and critical vulnerabilities discovered show us the huge financial loss they can impose on the users and warn us for the necessity of having methods that lead to secure and reliable implementations. Over the last few years several static analysis tools have been developed specifically targeting Ethereum smart contracts. In this dissertation, we present a review of state-of-the-art static analysis tools and introduce SmartBugs, a new extendable execution framework, created to facilitate the integration and comparison between multiple analysis tools and the analysis of Ethereum smart contracts. SmartBugs includes two datasets with a total of 47,661 Solidity smart contracts. We use SmartBugs to perform an empirical evaluation of 7 state-of-the-art automated analysis tools using the two new datasets. Our study shows that Mythril is the most sensitive and Slither has the best precision. In addition, we present an extension that improves SmartCheck.}
{pt=Blockchain, Ethereum, Smart Contracts, Análise Estática, Vulnerabilidades, Solidity, en=Blockchain, Ethereum, Smart Contracts, Static Analysis, Vulnerabilities, Solidity}

Novembro 14, 2019, 16:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Fernando Peixoto Ferreira

Departamento de Engenharia Informática (DEI)

Professor Auxiliar