¿Qué es una auditoría de seguridad de contrato inteligente?
Inicio
Artículos
¿Qué es una auditoría de seguridad de contrato inteligente?

¿Qué es una auditoría de seguridad de contrato inteligente?

Intermedio
Publicación: Mar 1, 2022Actualización: Apr 27, 2023
8m

TL;DR (RESUMEN)

Una auditoría de seguridad de contrato inteligente proporciona un análisis detallado de los contratos inteligentes de un proyecto. Estos contratos son importantes para salvaguardar los fondos invertidos a través de ellos. Como todas las transacciones en la blockchain son definitivas, los fondos no se pueden recuperar en caso de robo. Por lo general, los auditores examinan el código de los contratos inteligentes, redactan un informe y lo proporcionan al proyecto para que este trabaje con él. Luego, se publica un informe final en el que se detallan los errores pendientes y el trabajo ya realizado para abordar problemas de rendimiento o seguridad.


Introducción

Las auditorías de seguridad de contratos inteligentes son muy comunes en el ecosistema de Finanzas Descentralizadas (DeFi). Si has invertido en un proyecto de blockchain, es posible que tu decisión se haya basado en parte en los resultados de una revisión del código del contrato inteligente.

Si bien la mayoría de las personas comprende la importancia de las auditorías para la ciberseguridad, no muchas revisan las líneas de código. Echemos un vistazo a los métodos, las herramientas y los resultados que normalmente se ven en las auditorías de seguridad de contratos inteligentes para que puedas tomar decisiones mejor fundamentadas.


¿Qué es una auditoría de contrato inteligente?

Una auditoría de seguridad de contrato inteligente examina y comenta el código de contrato inteligente de un proyecto. Por lo general, estos contratos están escritos en el lenguaje de programación Solidity y se proporcionan a través de GitHub. Las auditorías de seguridad son particularmente valiosas para los proyectos DeFi que esperan manejar transacciones de blockchain valoradas en millones de dólares o una gran cantidad de intervinientes. Las auditorías suelen seguir un proceso de cuatro pasos:

1. Los contratos inteligentes se proporcionan al equipo de auditoría para el análisis inicial.

2. El equipo de auditoría presenta sus hallazgos al proyecto para que este actúe en consecuencia.

3. El equipo del proyecto realiza cambios en función de los problemas encontrados.

4. El equipo de auditoría emite su informe final considerando cualquier cambio nuevo o errores pendientes.

Para muchos usuarios de criptomonedas, las auditorías de contratos inteligentes son esenciales al invertir en nuevos proyectos DeFi. Se ha convertido en un estándar para los proyectos que quieren ser tomados en serio. Ciertos proveedores de auditoría también son vistos como líderes de la industria, lo que hace que sus auditorías sean más valiosas a los ojos de los inversores.


¿Por qué necesitamos auditorías de contratos inteligentes?

Con grandes cantidades de valor negociadas o bloqueadas en contratos inteligentes, estos se convierten en objetivos atractivos para los ataques maliciosos de hackers. Los errores menores de programación pueden provocar el robo de grandes sumas de dinero. Por ejemplo, el hackeo de DAO en la blockchain Ethereum representó una pérdida de aproximadamente 60 millones de dólares en ETH e incluso dio lugar a un hard fork de la red Ethereum.

Dado que las transacciones de blockchain son irreversibles, es esencial asegurarse de que el código de un proyecto sea seguro. La naturaleza altamente segura de la tecnología Blockchain dificulta la recuperación de los fondos y la resolución de problemas después del hecho, por lo que es mejor prevenir las vulnerabilidades a toda costa.


¿Cómo funcionan las auditorías de contratos inteligentes?

El proceso de una auditoría de contrato inteligente es bastante estándar entre los proveedores de auditorías. Si bien el enfoque de cada auditor puede diferir ligeramente, el proceso habitual es el siguiente:

1. Determinar el alcance de la auditoría. El contrato inteligente y las especificaciones del proyecto están definidos por el proyecto (su propósito previsto) y la arquitectura general. Una especificación ayuda al equipo de auditoría a comprender los objetivos del proyecto al escribir y utilizar el código.

2. Proporcionar una cotización inicial basada en la cantidad de trabajo necesario.

3. Ejecutar pruebas. La naturaleza exacta de las pruebas cambiará según el equipo de auditoría, sus herramientas de análisis y sus métodos. Por lo general, se llevan a cabo pruebas tanto manuales como automatizadas.

4. Crear un primer borrador del informe con los errores encontrados y entregarlo al equipo del proyecto para obtener comentarios y correcciones de seguimiento.

5. Publicar el informe final, considerando cualquier acción tomada por el equipo para abordar los problemas planteados.


Métodos de auditoría de contratos inteligentes

Eficiencia de gas 

Las auditorías de contratos inteligentes no se centran solo en la seguridad de la blockchain. También evalúan la eficiencia y la optimización. Algunos contratos realizan una serie complicada de transacciones para completar su función prevista. Dado que las comisiones del gas en redes como Ethereum son relativamente costosas, los contratos eficientes pueden ahorrar mucho en costos de transacción.

La optimización de su rendimiento también es un indicador de la habilidad del desarrollador. Los pasos ineficientes proporcionan más espacio para errores, lo cual debe evitarse. Cuando los costos del gas son altos, es posible que los contratos inteligentes no se ejecuten, más aún cuando se utiliza un límite de gas bajo.

Vulnerabilidades del contrato

La mayor parte del trabajo en las auditorías consiste en verificar los contratos en busca de vulnerabilidades de seguridad. Si bien algunos problemas pueden ser fáciles de detectar, muchos exploits involucran técnicas y estrategias avanzadas para drenar fondos. Por ejemplo, la manipulación del mercado se puede utilizar con contratos inteligentes débiles para realizar ataques de Flash Loan. Para encontrar estos problemas, los auditores inician el proceso de prueba de ruptura y simulan ataques maliciosos en el contrato inteligente. Entre las vulnerabilidades comunes se incluyen las siguientes:

1. Problemas de reingreso: Cuando un contrato inteligente realiza una llamada externa a otro contrato externo antes de que se resuelvan los efectos. El contrato externo puede llamar recurrentemente al contrato inteligente original e interactuar con él de maneras que no debería, ya que el balance del contrato original aún no se ha actualizado.
2. Desbordamientos y subdesbordamientos de enteros: Cuando un contrato inteligente realiza una operación aritmética, pero el resultado excede la capacidad de almacenamiento (generalmente 18 decimales). Esto puede conducir a que se calculen cantidades incorrectas.
3. Oportunidades de manipulación bursátil (front running): El código mal estructurado puede proporcionar alertas anticipadas de las compras o ventas del mercado. Esto, a su vez, puede permitir que otros utilicen la información y hagan trading con ella para su propio beneficio.

Fallas de seguridad de la plataforma

La mayoría de las auditorías incluyen observar la red que aloja los contratos e incluso la API utilizada para interactuar con la DApp. Un proyecto puede ser vulnerable a un ataque DDoS o tener la interfaz de usuario de su sitio web comprometida, lo que significa que los usuarios conectarán sus billeteras a aplicaciones de blockchain maliciosas.


¿Qué es un informe de auditoría?

El informe de auditoría se proporciona al final del proceso de auditoría. Para mayor transparencia, se espera que los proyectos compartan sus hallazgos con la comunidad. La mayoría de los informes clasifican los problemas por nivel de gravedad, como crítico, grave, menor, etc. El informe también incluirá el estado del problema en una lista, ya que los proyectos tienen tiempo para resolverlos antes de la publicación del informe final.

Junto con un resumen ejecutivo, un informe estándar contendrá recomendaciones, ejemplos de código redundante y un desglose completo de dónde existen errores de programación. Se le da tiempo al proyecto para tomar medidas sobre los hallazgos del informe antes de que se publique la versión final.


¿Dónde puedo obtener una auditoría de contrato inteligente?

Varios servicios de auditoría de contratos inteligentes se han vuelto reconocidos por el servicio que ofrecen. Dos de ellos son particularmente populares, y obtener una auditoría de ellos requerirá una cotización inicial y la entrega de información previa.

CertiK

CertiK es un líder de la industria cuando se trata de auditorías de contratos inteligentes. Cientos de proyectos han auditado sus contratos inteligentes con CertiK. PancakeSwap, el Automated Market Maker (AMM) más grande de BSC, es un ejemplo. A continuación, se muestra una sección de la auditoría de Certik en PancakeSwap.


Además, la gran mayoría de los proyectos respaldados por Binance Labs han auditado sus contratos con CertiK. CertiK publica una tabla de clasificación de proyectos auditados que te permite comparar cada uno, junto con una puntuación de seguridad. Ten en cuenta que, además de Ethereum, CertiK también cubre proyectos de BSC y Polygon.


ConsenSys Diligence

Dirigido por Joseph Lubin, cofundador de Ethereum, ConsenSys es uno de los nombres más importantes de la industria de las criptomonedas en el desarrollo de blockchain. Bajo ConsenSys Diligence, la empresa ofrece auditorías de contratos inteligentes de Ethereum. También brindan un servicio automatizado que verifica los contratos de Ethereum Virtual Machine (EVM) en busca de errores comunes.


¿Cuánto cuesta una auditoría de contrato inteligente?

El costo exacto de una auditoría depende de la cantidad de contratos inteligentes a evaluar. Por lo general, una auditoría costará miles de dólares. Un proyecto grande en particular puede costar fácilmente más de 10,000 USD. La empresa que realice tu auditoría y su reputación también afectarán la cantidad que deberás pagar.


Conclusiones

Por suerte para inversores y usuarios, las auditorías de contratos inteligentes se han convertido en un estándar de oro. Sin embargo, cuando cada proyecto tiene su auditoría, ya esto dejar de ser un indicador fácil de valor. Por ello es sumamente importante que leas el informe de la auditoría. Incluso si no tienes los conocimientos técnicos, es útil echar un vistazo a los comentarios y la gravedad de los posibles problemas.

Ahora, cada vez que te encuentres con un informe de auditoría, ya podrás al menos comprender un poco más su contenido. Como siempre, antes de tomar cualquier decisión de inversión, asegúrate de contemplar el panorama completo y considerar toda la información disponible.