Solgrep - A grammar aware Solidity query tool

In the last few years, the blockchain usage has been growing rapidly. A lot of industries have been using and developing blockchain platforms to perform decentralized computations. One of the most popular underlying technologies is the Ethereum blockchain. Executing, verifying and enforcing credible...

Full description

Bibliographic Details
Author: Celades Pons, Ferran
Format: master thesis
Publication Date:2022
Country:España
Institution:Universitat Oberta de Catalunya (UOC)
Repository:O2, repositorio institucional de la UOC
OAI Identifier:oai:openaccess.uoc.edu:10609/145646
Online Access:http://hdl.handle.net/10609/145646
Access Level:Open access
Keyword:Semgrep
AST
grammar
YAML
Node.js
gramàtica
gramática
Computer security -- TFM
Seguretat informàtica -- TFM
Seguridad informática -- TFM
id ES_7e22ca757b379f49cc8f00f2cff41853
oai_identifier_str oai:openaccess.uoc.edu:10609/145646
network_acronym_str ES
network_name_str España
repository_id_str
dc.title.none.fl_str_mv Solgrep - A grammar aware Solidity query tool
title Solgrep - A grammar aware Solidity query tool
spellingShingle Solgrep - A grammar aware Solidity query tool
Celades Pons, Ferran
Semgrep
AST
grammar
YAML
Node.js
AST
gramàtica
YAML
Node.js
Semgrep
AST
gramática
YAML
Node.js
Semgrep
Computer security -- TFM
Seguretat informàtica -- TFM
Seguridad informática -- TFM
title_short Solgrep - A grammar aware Solidity query tool
title_full Solgrep - A grammar aware Solidity query tool
title_fullStr Solgrep - A grammar aware Solidity query tool
title_full_unstemmed Solgrep - A grammar aware Solidity query tool
title_sort Solgrep - A grammar aware Solidity query tool
dc.creator.none.fl_str_mv Celades Pons, Ferran
author Celades Pons, Ferran
author_facet Celades Pons, Ferran
author_role author
dc.contributor.none.fl_str_mv Ballesteros Rodríguez, Alberto
dc.subject.none.fl_str_mv Semgrep
AST
grammar
YAML
Node.js
AST
gramàtica
YAML
Node.js
Semgrep
AST
gramática
YAML
Node.js
Semgrep
Computer security -- TFM
Seguretat informàtica -- TFM
Seguridad informática -- TFM
topic Semgrep
AST
grammar
YAML
Node.js
AST
gramàtica
YAML
Node.js
Semgrep
AST
gramática
YAML
Node.js
Semgrep
Computer security -- TFM
Seguretat informàtica -- TFM
Seguridad informática -- TFM
description In the last few years, the blockchain usage has been growing rapidly. A lot of industries have been using and developing blockchain platforms to perform decentralized computations. One of the most popular underlying technologies is the Ethereum blockchain. Executing, verifying and enforcing credible computable transactions on blockchains is done using smart contracts which the code is written using a Turing complete language. Those contracts are typically written in a high-level programming language called Solidity, then compiled to Ethereum Virtual Machine (EVM) assembly instructions and deployed to the Ethereum blockchain. So many tools have been written to analyze and find vulnerabilities in Solidity smart contracts from a static and dynamic standpoint. However, none of the already developed tools allow easy contribution by the community without actually having to modify the tool source code itself or write complex syntax specific queries. In this project we have created Solgrep. Solgrep is a tool that allows static semantic aware search on Solidity code. The initial idea of Solgrep was to be used as part of Smart Contracts Solidity Audits as a remarkable tool in the arsenal of an auditor. However, it was noticed that this tool could be easily integrated with current Solidity development stacks to find common bad patterns and coding mistakes that Solidity developers tend to do.
publishDate 2022
dc.date.none.fl_str_mv 2022
2022
2022
dc.type.none.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
dc.identifier.none.fl_str_mv http://hdl.handle.net/10609/145646
url http://hdl.handle.net/10609/145646
dc.language.none.fl_str_mv Inglés
language_invalid_str_mv Inglés
dc.rights.none.fl_str_mv CC BY-NC-ND
http://creativecommons.org/licenses/by-nc-nd/3.0/es/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv CC BY-NC-ND
http://creativecommons.org/licenses/by-nc-nd/3.0/es/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
application/pdf
application/pdf
dc.publisher.none.fl_str_mv Universitat Oberta de Catalunya (UOC)
publisher.none.fl_str_mv Universitat Oberta de Catalunya (UOC)
dc.source.none.fl_str_mv reponame:O2, repositorio institucional de la UOC
instname:Universitat Oberta de Catalunya (UOC)
instname_str Universitat Oberta de Catalunya (UOC)
reponame_str O2, repositorio institucional de la UOC
collection O2, repositorio institucional de la UOC
repository.name.fl_str_mv
repository.mail.fl_str_mv
_version_ 1869411714894659584
spelling Solgrep - A grammar aware Solidity query toolCelades Pons, FerranSemgrepASTgrammarYAMLNode.jsASTgramàticaYAMLNode.jsSemgrepASTgramáticaYAMLNode.jsSemgrepComputer security -- TFMSeguretat informàtica -- TFMSeguridad informática -- TFMIn the last few years, the blockchain usage has been growing rapidly. A lot of industries have been using and developing blockchain platforms to perform decentralized computations. One of the most popular underlying technologies is the Ethereum blockchain. Executing, verifying and enforcing credible computable transactions on blockchains is done using smart contracts which the code is written using a Turing complete language. Those contracts are typically written in a high-level programming language called Solidity, then compiled to Ethereum Virtual Machine (EVM) assembly instructions and deployed to the Ethereum blockchain. So many tools have been written to analyze and find vulnerabilities in Solidity smart contracts from a static and dynamic standpoint. However, none of the already developed tools allow easy contribution by the community without actually having to modify the tool source code itself or write complex syntax specific queries. In this project we have created Solgrep. Solgrep is a tool that allows static semantic aware search on Solidity code. The initial idea of Solgrep was to be used as part of Smart Contracts Solidity Audits as a remarkable tool in the arsenal of an auditor. However, it was noticed that this tool could be easily integrated with current Solidity development stacks to find common bad patterns and coding mistakes that Solidity developers tend to do.En els últims anys, l’ús de la cadena de blocs, o blockchain, ha anat creixent ràpidament. Moltes indústries han estat utilitzant i desenvolupant plataformes de cadena de blocs per realitzar càlculs descentralitzats. Una de les tecnologies subjacents més populars en blockchain es Ethereum. S’han escrit moltes eines per analitzar i trobar vulnerabilitats als contractes intel·ligents de Solidity des d’un punt de vista estàtic i dinàmic. Tanmateix, cap de les eines ja desenvolupades permet una aportació fàcil per part de la comunitat sense haver de modificar el propi codi font de l’eina o escriure consultes específiques de sintaxi complexes. En aquest projecte he creat Solgrep. Solgrep és una eina que permet la cerca semàntica estàtica al codi Solidity. La idea inicial de Solgrep s’havia d’utilitzar com a part de Smart Contracts Solidity Audits com una eina remarcable en l’arsenal d’un auditor. Tanmateix, es va observar que aquesta eina es podria integrar fàcilment amb les piles de desenvolupament de Solidity actuals per trobar patrons dolents comuns i errors de codificació que solen fer els desenvolupadors de Solidity.En los últimos años, el uso de la cadena de bloques, o blockchain, ha ido creciendo rápidamente. Muchas industrias han estado utilizando y desarrollando plataformas de cadena de bloques para realizar cálculos descentralizados. Una de las tecnologías subyacentes más populares en blockchain se Ethereum. Se han escrito muchas herramientas para analizar y encontrar vulnerabilidades en los contratos inteligentes de Solidity desde un punto de vista estático y dinámico. Aun así, ninguno de las herramientas ya desarrolladas permite una aportación fácil por parte de la comunidad sin tener que modificar el propio código fuente de la herramienta o escribir consultas específicas de sintaxis complejas. En este proyecto he creado Solgrep. Solgrep es una herramienta que permite la busca semántica estática al código Solidity. La idea inicial de Solgrep se tenía que utilizar como parte de Smart Contracts Solidity Audits como una herramienta remarcable en el arsenal de un auditor. Aun así, se observó que esta herramienta se podría integrar fácilmente con las pilas de desarrollo de Solidity actuales para encontrar patrones malos comunes y errores de codificación que suelen hacer los desarrolladores de Solidity.Universitat Oberta de Catalunya (UOC)Ballesteros Rodríguez, Alberto202220222022info:eu-repo/semantics/masterThesisapplication/pdfapplication/pdfapplication/pdfhttp://hdl.handle.net/10609/145646reponame:O2, repositorio institucional de la UOCinstname:Universitat Oberta de Catalunya (UOC)InglésCC BY-NC-NDhttp://creativecommons.org/licenses/by-nc-nd/3.0/es/info:eu-repo/semantics/openAccessoai:openaccess.uoc.edu:10609/1456462026-05-28T12:42:01Z
score 15.301603