Una empresa de desarrollo sorprendió a los profanos al ofrecer 300.000 dólares para una auditoría de seguridad en un estudio de mercado preliminar. Sin embargo, aquellos familiarizados con los entresijos del mundo blockchain no se sorprendieron en lo más mínimo por el elevado precio. Varios factores exigen los altos costos, incluida la extrema escasez de equipos de auditoría con la experiencia necesaria.
Las auditorías de blockchain requieren mucho tiempo y son muy complejas. Atom Accelerator realizó recientemente una solicitud de propuestas que culminó con una subvención de 440 000 dólares para que Zellic participara como socio auditor de Cosmos Hub durante un período de dos años. Zellic ha realizado auditorías para Cosmos Hub en numerosas ocasiones, incluido el conjunto de validadores inactivos, el ICS sin permiso y el módulo de participación líquida (comprometido por Atom Accelerator). El conjunto de validadores inactivos implicó una auditoría de terceros del código base con el mismo nombre. Zellic realizó la auditoría en dos semanas por un precio total de venta de 59.500 dólares, que incluía los honorarios de Simply Stake como intermediario. Esta entidad también realizó la mediación para la auditoría de terceros de Permissionless ICS, que permitió a cualquiera crear una cadena de consumidores opcional sin una propuesta de gobernanza, con el objetivo de lanzar cadenas más rápido y con menos fricción. La cotización de Zellic fue de 90.000 dólares y un colchón de precio del 25% para tener en cuenta la volatilidad del token ATOM durante el período de votación. El precio total, incluidas las tarifas de Simply Sating, fue de 121.500 dólares. Cosmos Hub gastó 327.000 dólares en auditorías de funciones únicas durante el último año y medio, llegando a un promedio de 26.000 dólares por cada semana en la que se realizaron auditorías. La subvención involucra a Zellic en base a un contrato de 20 semanas de auditoría, que cuesta un 16% menos por semana de lo que pagaba Cosmos Hub, gracias a los esfuerzos de Atom Accelerator.
Una auditoría de contrato inteligente puede tardar hasta un mes
El tamaño y la complejidad del proyecto son los factores principales para determinar cuánto tiempo llevará una auditoría de contrato inteligente. Si bien auditar un contrato de un solo token lleva un par de días, esto puede llegar a una semana para una aplicación descentralizada con una tokenómica complicada. Se realizan auditorías de seguridad de contratos inteligentes más avanzadas en hasta un mes. La duración también depende de si el equipo de desarrolladores desea una auditoría de seguridad completa o sólo un informe provisional. Generalmente es una mejor idea auditar el contrato inteligente que se ha implementado, no el de GitHub. Minimiza el riesgo de agitación de código y errores maliciosos de último momento y transmite un mensaje de transparencia a la comunidad de usuarios.
La duración de la auditoría también se ve afectada por si es manual o automatizada. La revisión manual de funciones individuales en el código requiere mucho tiempo. Sin embargo, las auditorías manuales son más eficientes porque reducen el riesgo de informes falsos. Implican verificar el código línea por línea para ayudar a identificar problemas ocultos en su arquitectura y lógica.
Análisis binario y verificación de algoritmos criptográficos.
Los auditores de contratos inteligentes realizan un análisis binario para asegurarse de que el código esté libre de puertas traseras, es decir, mecanismos ocultos que los atacantes utilizan para acceder a un sistema sin autenticación. Con este fin, el equipo se asegura de que ninguna entidad no autorizada obtenga acceso administrativo e inspecciona los protocolos de transcodificación y vinculación entre los participantes. También verifica algoritmos criptográficos y mejora la infraestructura de seguridad general.
Las auditorías de seguridad de productos requieren un conocimiento profundo de los lenguajes de programación.
La mayoría de los productos de software integran una interfaz de usuario. Los contratos inteligentes interactúan frecuentemente con un servidor backend en DeFi y Web3, cuyo código puede ser propietario o de código abierto. La interfaz se comunica con el servidor backend y utiliza Metamask u otra billetera local para verificar al usuario y firmar transacciones. Suele haber al menos una base de datos, como PostgreSQL o MongoDB, y AWS Cognito, Auth0 u otro servicio de autenticación OAuth2.
Los auditores de seguridad del producto verifican que todos los componentes interactúen entre sí como se espera, que cada componente realice sus funciones correctamente, que no sean posibles fugas de información, que los procedimientos de implementación del sistema sigan las mejores prácticas y que se evite el acceso no autorizado. Estas tareas requieren una sólida comprensión de la arquitectura de grandes proyectos de software y la capacidad de navegar por bases de código escritas en diferentes lenguajes de programación. Normalmente, el frontend está escrito en ReactJS, mientras que el backend es una combinación de Golang, NodeJS, Python, etc. Los contratos inteligentes están en Rust o Solidity. Se trata de una amplia gama de herramientas, incluidos nodos blockchain y técnicas de gestión de contenedores Docker.
Los probadores de penetración están bien versados en protocolos y arquitectura de red.
Las pruebas de penetración se centran en los puntos finales API externos que ofrecen los servicios backend Web2. Los auditores de pruebas mitigan los fallos de seguridad llamando a algunas de estas API mediante una sintaxis inesperada para obtener acceso privilegiado. Este es un vector de ataque común, donde los ciberdelincuentes engañan al sistema para que filtre datos privados o realice otra acción no autorizada. Los auditores están bien versados en protocolos de red como TCP/IP, HTTP/HTTPS, UDP, DNS y SMTP, así como en arquitecturas como firewalls, enrutadores, conmutadores y sus configuraciones. También se requiere familiaridad con subredes y direcciones IP (CIDR, NAT, VLAN y VPN) y herramientas como Wireshark para analizar paquetes. El conocimiento de la competencia, los permisos y las configuraciones de la línea de comandos permite a los auditores cobrar honorarios elevados.
Los riesgos de eludir una auditoría
No identificar errores o errores en los contratos inteligentes puede resultar en exploits, lo que lleva a la pérdida de fondos. Saltarse las auditorías también puede dar lugar a violaciones de las leyes KYC/AML, lo que resulta en multas o acciones legales.
Sin una auditoría, las vulnerabilidades en los contratos inteligentes, los mecanismos de consenso o los protocolos criptográficos pueden pasar desapercibidas. También sugiere una falta de diligencia debida, lo que genera escepticismo entre los usuarios y socios.
Un abuso de confianza o de fondos puede provocar una pérdida de usuarios o participantes en la red blockchain. Sin una auditoría, las ineficiencias en el código pueden generar mayores costos de transacción o un rendimiento lento de la red.
Por último, los auditores suelen ofrecer recomendaciones que mejoran el rendimiento, la seguridad y el cumplimiento. Sus servicios son indispensables para las operaciones de blockchain por estas y muchas otras razones y bien merecen una compensación sustancial.
Descargo de responsabilidad: Este contenido es informativo y no debe considerarse asesoramiento financiero. Las opiniones expresadas en este artículo pueden incluir opiniones personales del autor y no reflejan la opinión de The Crypto Basic. Se anima a los lectores a realizar una investigación exhaustiva antes de tomar cualquier decisión de inversión. Crypto Basic no es responsable de ninguna pérdida financiera.