Decentralized Applications' safety and security
Resumen
En este trabajo se ha investigado la seguridad que hay presente en las aplicaciones descentralizadas que funcionan sobre el blockchain, en concreto, las que trabajan con las wallets. Para ello, se ha realizado una primera fase de investigación en la que se han recopilado datos de las principales aplicaciones (de forma masiva). También se han documentado los distintos mecanismos de implementación del blockchain en las aplicaciones. Gracias a esto, se ha creado una documentación precisa de los distintos métodos proporcionados por las Apis de las distintas carteras (en especial Metamask). Una vez recopilada toda la información, se procede a analizar los métodos que proporcionan seguridad y firmas. Dentro de este grupo, se centra el esfuerzo en investigar los métodos eth_sign, personal_sign y eth_signTypedData. De estos métodos se estudian los mecanismos que hacen que sean seguros o vulnerables. Por último y gracias al conocimiento obtenido del análisis de estos métodos, se realiza un estudio de la seguridad de las aplicaciones obtenidas en la primera fase. Para ello, se ha creado una herramienta que permite seleccionar una aplicación de la base de datos y estudiar en tiempo real su seguridad. El objetivo de la herramienta y del proyecto es, proporcionar información al usuario final sobre la seguridad de la aplicación que desea usar. Gracias a esto, se consigue reducir el número de aplicaciones maliciosas que mueven grandes cantidades de dinero en el blockchain. De este estudio, se obtiene que, de la muestra estudiada, un 20% de las aplicaciones se pueden considerar vulnerables, lo cual es un porcentaje muy elevado. In this project, we have investigated the security present in decentralized applications that operate on the blockchain, specifically those that work with wallets. To do this, a preliminary research phase was conducted in which data from the main applications was collected (on a massive scale). The different implementation mechanisms of the blockchain in the applications were also documented. Based on this, precise documentation has been created regarding the different methods provided by the APIs of different wallets (especially Metamask). Once all the information has been collected, the methods that provide security and signatures are analyzed. Within this group, the effort is focused on investigating the methods eth_sign, personal_sign, and eth_signTypedData. The mechanisms that make these methods secure or vulnerable are studied. Lastly, based on the knowledge gained from the analysis of these methods, a study of the security of the applications obtained in the first phase is conducted. For this purpose, a tool has been created that allows selecting an application from the database and studying its security in real time. The objective of the tool and the project is to provide information to the end user about the security of the desired application. This helps reduce the number of malicious applications that handle large amounts of money on the blockchain. From this study, it is concluded that, out of the sample studied, 20% of the applications can be considered vulnerable, which is a high percentage.
Trabajo Fin de Máster
Decentralized Applications' safety and securityTitulación / Programa
Máster Universitario en Ingeniería de TelecomunicaciónMaterias/ categorías / ODS
H67 (MIT)Palabras Clave
Aplicaciones descentralizadas, Dapps, Blockchain, ciberseguridad, criptomonedas, APIs, criptografía, testingDecentralized apps, Dapps, blockchain, cybersecurity, criptocoins, APIs, criptography, testing