Dissertação
A Static Analysis-based Platform-as-Service to Improve the Quality of Smart Contracts EVALUATED
A tecnologia Blockchain garante concordância num conjunto de dados desentralizados e imutáveis entre entidades peer-to-peer sem requerer confiança entre os mesmos. Esta tecnologia tem ganhado imensa popularidade e valor financeiro nos últimos anos. Da mesma forma, os smart contracts da rede Ethereum têm seguido o mesmo rumo. Mais de um milhão e meio de smart contracts foram lançados para a rede, nos quais foram encontrados algumas vulnerabilidades sérias. Ataques recentes a explorar estas vulnerabilidades resultaram em perdas financeiras extremas e, devido à imutabilidade dos smart contracts, estas vulnerabilidades são quase impossíveis de serem reparadas. Já foram criados vários analisadores estáticos para smart contracts e o programa SmartBugs foi desenvolvido como uma ferramenta extensível que agrega estes analisares de forma a detetar o maior número de vulnerabilidades antes do contrato ser lançado. Enquanto usam o SmartBugs, os programadores tendem a encontrar-se com uma grande sobrecarga para analisar os relatórios, unificar os resultados e entender as informações providenciadas por esta ferramenta. Nesta dissertação descrevemos o SARIF, um formato padrão para a informação gerada por analisadores estáticos, e também discutimos como convertemos as 11 ferramentas do SmartBugs para este formato. Além disso, programámos o protocolo SASP como um serviço que recebe pedidos de análise, executa a análise e agrega os resultados. Também explicamos a plataforma de desenvolvimento do GitHub como uma possível maneira de automatizar a análise e mostrar os resultados de forma mais intuitiva. O nosso objetivo é a maior adoção de ferramentas de análise estática por parte dos programadores.
novembro 15, 2021, 10:30
Publicação
Obra sujeita a Direitos de Autor
Orientação
ORIENTADOR
Rui Filipe Lima Maranhão de Abreu
Faculdade de Engenharia da Universidade do Porto
Professor Catedratico
ORIENTADOR
João Fernando Peixoto Ferreira
Departamento de Engenharia Informática (DEI)
Professor Auxiliar