paint-brush
Obtener una auditoría de contrato inteligente: todo lo que necesita saberpor@rareskills
144 lecturas

Obtener una auditoría de contrato inteligente: todo lo que necesita saber

por RareSkills12m2023/06/26
Read on Terminal Reader

Demasiado Largo; Para Leer

El término "auditoría de contrato inteligente" es una evolución de la jerga de la industria, no tiene una definición rigurosa y puede significar diferentes cosas para diferentes personas.
featured image - Obtener una auditoría de contrato inteligente: todo lo que necesita saber
RareSkills HackerNoon profile picture
0-item

Una auditoría de contrato inteligente es una revisión realizada por expertos en seguridad de blockchain para garantizar que los usuarios no pierdan fondos debido a un mal funcionamiento o una vulnerabilidad de seguridad. Además, una auditoría intenta anticipar el comportamiento inesperado e indeseable del contrato inteligente antes de que se implemente el contrato.


Navegar por este campo es complicado. Hay docenas de firmas de auditoría, y obtener cotizaciones de varias de ellas lleva tiempo, y es difícil saber si está obteniendo un precio justo o no.


Este artículo ayudará a servir como punto de partida para navegar la tarea de obtener una auditoría de contrato inteligente.


Las referencias a firmas de auditoría en este artículo no deben interpretarse como un endoso.

No existe un estándar oficial para una auditoría de contrato inteligente

Y probablemente no habrá uno en el futuro previsible con la rapidez con la que se mueve la industria.

El término "auditoría de contrato inteligente" es una evolución de la jerga de la industria, no tiene una definición rigurosa y puede significar diferentes cosas para diferentes personas. Para aquellos que provienen de industrias donde los estándares ISO son la norma, la auditoría de contratos inteligentes parecerá el salvaje oeste (y, francamente, esa sería una evaluación precisa).


Aunque algunas vulnerabilidades de los contratos inteligentes son bien conocidas, otras son propiedades emergentes de sistemas complejos y son difíciles de detectar sistemáticamente.


Los estándares son característicos de los mercados maduros y web3 en su conjunto no es un mercado maduro.


Es un poco una combinación de términos llamar "auditorías" a las auditorías de contratos inteligentes. En el campo de la contabilidad, una “auditoría” tiene una definición muy rigurosa; este no es el caso en la ingeniería de cadenas de bloques. Lo que se llama una "auditoría" en blockchain es una revisión de seguridad realizada por un equipo de expertos.


Lo que hace que esto sea aún más confuso es que no existe una definición o certificación formal de lo que hace que alguien sea un auditor o un experto en seguridad en contratos inteligentes. Sí, hay empresas que venden certificaciones, pero estas certificaciones no tienen peso en la industria.


Como es de esperar, hay varias personas emprendedoras que aprovechan la confusión para vender la experiencia que no tienen, ya que no existe una forma establecida de medir la experiencia.


Emptor de advertencia.


Dicho todo esto, está ampliamente de acuerdo en la industria que decir "este contrato inteligente ha sido auditado" significa que "se pagó a un grupo de expertos en seguridad para revisar este código base y encontrar problemas". Dado que no existe una definición formal de experiencia, la reputación de la industria se utiliza a menudo como un indicador.

Tres tipos principales de auditores

Empresas de auditoría de contratos inteligentes

Estas son empresas que se especializan en investigación de seguridad. Algunos solo auditan contratos inteligentes, mientras que otros auditan contratos inteligentes y aplicaciones informáticas tradicionales. Puede pensar en esto como una agencia compuesta por investigadores de seguridad. Hasta hace poco, esta era la forma estándar de obtener una auditoría de contrato inteligente. Si realiza una búsqueda en Google de empresas de auditoría de contratos inteligentes, estos son el tipo de resultados que normalmente obtendrá.

Investigadores de seguridad independientes

En lugar de unirse a una empresa, algunos investigadores de seguridad trabajan por su cuenta. Son un poco más difíciles de encontrar ya que tienen presupuestos de marketing mucho más pequeños en comparación con las agencias, pero debido a que tienen menos gastos generales, a menudo pueden ofrecer mejores precios.


Un inconveniente es que una empresa puede hacer que varios auditores revisen su código, mientras que un auditor independiente solo tendrá un revisor. Pero para bases de código más pequeñas o menos complicadas, esto podría ser más rentable.

Auditorías competitivas

Recientemente, han aparecido un par de plataformas ( Sherlock DeFi , Code4rena ) donde las empresas que solicitan una auditoría publican su código fuente en la plataforma junto con un premio monetario, y luego los concursantes independientes intentan encontrar errores y vulnerabilidades.


Cuantos más errores encuentre un concursante, más dinero ganará, pero si otro concursante encuentra el mismo error, el pago se diluye entre los dos. Para errores bien entendidos, el pago puede diluirse considerablemente.


Las ganancias para los auditores en este formato son bastante inferiores. Los concursantes rara vez pueden esperar ganar mucho más de $ 1,000 por concurso a pesar de hacer un esfuerzo considerable. El incentivo principal para los participantes es demostrar sus habilidades para que puedan conseguir un trabajo en una firma de auditoría tradicional o atraer negocios como auditores independientes (investigadores independientes). Tampoco hay garantías sobre la calidad de las personas que participan en el concurso, ya que cualquiera puede participar.


Sin embargo, estas plataformas pueden ser muy educativas para los nuevos auditores. Debido a que el formato fomenta un enfoque intenso en la búsqueda de errores y luego brinda retroalimentación sobre los errores que se pasaron por alto, pueden proporcionar un ciclo de retroalimentación relativamente estrecho que ayuda a acelerar el aprendizaje. De hecho, orientamos parte de nuestra formación solidaria a participar en estos concursos con fines educativos.


Los mejores auditores no pasan una cantidad significativa de tiempo en concursos, ya que ganan mucho más dinero trabajando para ellos mismos o para una empresa. Por lo tanto, tenga en cuenta que a alguien que le vaya bien en un concurso de auditoría puede significar simplemente que no se enfrentó a una competencia significativa en los concursos en los que participó. También hay un elemento de suerte en el que un solo concurso constituye una parte importante de las ganancias públicas de un auditor. .


Sin embargo, este formato tiene muchos más ojos en el código que otros formatos de auditoría, y los concursos de auditoría han detectado errores que otros auditores no detectaron. También sirven como un canal para que las empresas comercialicen sutilmente sus protocolos a las comunidades de desarrolladores y auditores, por lo que son una valiosa contribución al ecosistema.

Bonificación: tueste de código informal

Algunos grupos de discordia de desarrolladores revisarán su código de forma gratuita (con el deseo de ser útiles, así que no abuse de la generosidad de los demás). Si tiene una base de código pequeña y simple, a veces conseguir que algunos expertos donen su tiempo puede ser la ruta más rentable para usted. Sería extremadamente falso que una revisión de este tipo se llame "auditoría", pero si es la única opción disponible, ciertamente es mejor que ninguna revisión.

Aspectos a tener en cuenta en las auditorías de contratos inteligentes

Mire las auditorías pasadas de la firma.

Algunos auditores usan una lista de verificación rígida para una lista de vulnerabilidades de contratos inteligentes y verifican si el problema está presente o no. Esto es bueno como primer paso, pero muchos errores son específicos de la aplicación (como señalamos en ese artículo). Desea asegurarse de que el auditor considere los matices y los requisitos comerciales de su aplicación. Al observar sus auditorías anteriores, puede ver si van mecánicamente en contra de una lista o profundizan en los detalles de su aplicación. Un auditor que no proporciona auditorías anteriores es generalmente una señal de alerta.

Especialización auditor

Si su proyecto utiliza tokenómicas DeFi exóticas o Pruebas de conocimiento cero , entonces querrá asegurarse de que su auditor seleccionado tenga experiencia con eso. Del mismo modo, si está creando una dapp en una cadena no compatible con evm como Solana , querrá un auditor con experiencia en esa cadena de bloques.

Costo mínimo

Algunas firmas de auditoría no se molestarán con bases de código pequeñas como un token ERC20 o un NFT básico porque no ganarán suficiente dinero para pagar la llamada de ventas y la administración de la cuenta.

Auditores de sellos de goma

Debido a que no existe una definición formal o aceptada para una auditoría, han surgido algunas empresas que producen lo que se conoce burlonamente como "auditorías de sello de goma". Estas firmas brindan informes de auditoría simplemente porque el comprador quería una auditoría para poder decirles a sus clientes: "¡Mira, nos auditaron!"


No todos los protocolos obtienen auditorías de sello de goma intencionalmente; es posible que simplemente hayan elegido al auditor sin saber que son auditores de sellos de goma.

¿Qué tan confiables son las auditorías de contratos inteligentes?

Incluso si se audita un contrato inteligente, aún puede ser pirateado después; esto no es una ocurrencia rara.


Rekt.news tiene una tabla de clasificación que rastrea los hacks de contratos inteligentes por la cantidad de dinero perdido. Es fácil ver que la mayoría de los protocolos pirateados no fueron auditados en absoluto.


Sin embargo, algunos de los protocolos tenían auditorías, algunas más de una, que los auditores aún no vieron. En algunos casos, esto puede deberse a que los auditores fueron incompetentes o no se esforzaron lo suficiente, pero en general, no es posible garantizar que una base de código esté libre de errores.


La buena noticia es que los auditores no solo pasan por alto algunas vulnerabilidades; los piratas informáticos también los pasan por alto. Algunos contratos inteligentes habían durado meses con una vulnerabilidad activa antes de que se parchearan. Una auditoría decente se asegurará de que se elimine la "fruta madura" para los piratas informáticos.

¿Debo obtener múltiples auditorías?

Esta es una práctica estándar con protocolos DeFi bien financiados que pretenden retener mucho dinero; tener tres o más firmas de auditoría revisando el código es bastante normal.


Lo que un auditor pasa por alto, otro puede captarlo, y viceversa. De manera similar, un auditor puede notar una vulnerabilidad y los desarrolladores pueden parchear esa vulnerabilidad mientras introducen una diferente.

Flujo de trabajo típico para obtener una auditoría

1. Obtenga cotizaciones Se comunicará con varias empresas para solicitar cotizaciones y se coordinará en función de su disponibilidad y sus fechas de lanzamiento.


2. Comienza la auditoría Debería estar congelado el código cuando vaya a la auditoría. Si los auditores están revisando un código base diferente del que lanzará para probar, ¡probablemente esté desperdiciando dinero!


3. Informe de auditoría La mayoría de los informes de auditoría (que no siguen una lista de verificación fija) devolverán una lista de hallazgos categorizados como Crítico, Alto, Medio, Bajo, Informativo y Optimización de gas. Estos se explican en la siguiente sección. Una auditoría puede durar desde unos pocos días hasta unos pocos meses, según el alcance del proyecto.


4. Revisar las correcciones Según el acuerdo, el auditor revisará los cambios realizados por los desarrolladores y se asegurará de que la solución solucione el error. El número de revisiones de revisión consideradas aceptables depende del auditor.


5. Publicar informe Los auditores generalmente publican su informe si el cliente lo permite (y los clientes generalmente quieren que la auditoría sea pública para demostrar que han sido auditados).

Gravedad de los hallazgos de auditoría

La mayoría de los informes de auditoría agrupan los hallazgos de seguridad por gravedad:

  • Crítico

  • Alto

  • Medio

  • Bajo

  • Informativo

  • Optimización de gases


No todas las empresas utilizan las mismas etiquetas. Como señalamos, debido a la falta de estándares universales, no existe una definición uniforme de lo que se considera una vulnerabilidad “alta” o “media”. Algunos auditores no están de acuerdo sobre la calificación adecuada para asignar el mismo error, pero aquí hay algunos factores que los auditores usan para asignar la gravedad:


  • Resultado del peor de los casos. Todos los fondos robados son catastróficos. Los errores en los que un pirata informático no puede robar fondos, pero los usuarios no están protegidos adecuadamente contra dispararse en el pie, se etiquetarían como de gravedad baja.

  • Número de usuarios afectados. La pérdida de dinero del protocolo completo es más grave que la pérdida de dinero de un usuario individual.

  • Incentivo para realizar el ataque. Si un atacante necesita gastar más capital para realizar un ataque de lo que ganaría por llevarlo a cabo, la gravedad se reduce. Esto sigue siendo una vulnerabilidad porque el atacante podría tener un motivo no económico para realizar un ataque (presumir, vendetta personal, etc.).

  • Oscuridad del ataque. Si la vulnerabilidad es algo así como perder un control de acceso, entonces un atacante poco sofisticado puede llevar a cabo el ataque. Si la debilidad depende de una comprensión profunda de un mecanismo tokenómico sofisticado que utiliza matemáticas avanzadas, entonces es menos probable que el atacante encuentre el problema.


Algunos auditores combinan los dos últimos factores en uno: la probabilidad de un ataque. Bajo este modelo, utilizan la siguiente tabla para asignar la gravedad: Tabla de gravedad de vulnerabilidad de contrato inteligente

Crítico vs Alto vs Medio

Algunos auditores hacen una distinción entre vulnerabilidades críticas y vulnerabilidades altas, y otros auditores agrupan vulnerabilidades críticas con vulnerabilidades altas. En cualquier caso, estos se consideran errores extremadamente graves. Para aquellos que hacen una distinción, Critical puede significar que todo el protocolo se ve gravemente afectado, mientras que High significa que los usuarios individuales pueden verse gravemente afectados.


Los problemas de gravedad media generalmente significan problemas que pueden ser dañinos pero que es poco probable que ocurran.

Informativo

Algunos auditores señalarán problemas, como no adherirse a la guía de estilo de Solidity o tener nombres de funciones y variables mal escritos o engañosos. Estas no son vulnerabilidades de seguridad, pero podrían causar confusión en el futuro. No todos los auditores señalan problemas de información.

Optimización de gases

Algunos auditores sugerirán formas de mejorar la eficiencia del gas de ciertos códigos. Estos no están relacionados con la seguridad, pero ciertamente mejorarán la experiencia del usuario.

¿Cuánto cuesta auditar un contrato inteligente?

Estimaciones basadas en información pública

Si busca en Fiverr, encontrará algunos servicios para auditar contratos inteligentes a precios bajos, pero ¿realmente querría depender de ese tipo de servicio para algo tan crítico? Debido a que los contratos generalmente tienen acuerdos de confidencialidad, las tarifas pueden ser difíciles de determinar, pero aquí hay información pública.


1. Grupos de recompensas para auditorías competitivas Las plataformas de auditoría competitivas anuncian el grupo de recompensas y, por supuesto, este dinero proviene del cliente que paga la auditoría. Aquí puede ver premios acumulados tan bajos como 5k y, a veces, hasta cientos de miles de dólares para proyectos muy grandes. Por supuesto, las personas que organizan el concurso esperan una tarifa por ejecutar la plataforma, por lo que el costo real será mayor.


2. Salarios de los contratistas La firma de auditoría Spearbit publicó las tarifas a las que les pagan a sus auditores (que son contratistas, no empleados), por lo que se puede inferir cuánto costará una auditoría (sin incluir las operaciones y el margen de beneficio) con base en esto. El pago por auditor es 3k-20k por semana dependiendo de la antigüedad. Tenga en cuenta que este no es un trabajo de tiempo completo, sino por compromiso.


3. Auditores independientes Otro punto de datos que tenemos son los auditores independientes que han hecho públicas sus ganancias. Uno afirma ganar $40 000 por mes en los meses buenos, realizando alrededor de cuatro auditorías por mes, otro reclama $50 000 en un mes con cinco auditorías. Esto está en el extremo superior de lo que un auditor independiente puede esperar hacer, pero no está fuera del ámbito de la posibilidad; los ingenieros de plantilla de las principales empresas de Silicon Valley ganan más que eso .

Cómo los auditores generan cotizaciones

No existe un modelo de fijación de precios estándar, pero aquí hay algunas prácticas que utilizan los auditores para determinar el precio que cotizan.

Dólares por líneas de código

Un modelo de precios común es $/líneas de código. Esto podría costar entre unos pocos dólares y decenas de dólares por línea.

Tamaño y complejidad

Otros auditores utilizan una combinación de tamaño y complejidad. Una NFT de 1000 líneas es considerablemente más simple que una biblioteca matemática de 1000 líneas. La firma auditora hará un juicio subjetivo basado en la combinación de estos factores.

Similitud con los protocolos existentes

Algunos auditores darán un descuento si el proyecto a auditar es bifurcado o muy similar a un proyecto establecido, ya que pueden aprovechar las auditorías anteriores para determinar si su proyecto aprendió de los errores del pasado. Además, el número total de líneas que no han sido revisadas es un pequeño porcentaje del proyecto. Diferentes auditores tendrán un umbral diferente para lo que constituye "similar" a los proyectos establecidos.

Pago por vulnerabilidad

Este modelo es común entre los auditores independientes. Al investigador de seguridad se le paga un pequeño pago inicial y recibe un pago por cada error encontrado con un precio más alto por problemas de mayor gravedad. Esto tiene la ventaja de incentivar al auditor a buscar más, pero también puede incentivar la exageración de la gravedad de los errores.

¿Por qué son tan caras las auditorías?

En comparación con otros trabajadores del conocimiento altamente especializados, como los abogados (los mejores pueden generar más de un millón de dólares al mes ), las auditorías de contratos inteligentes no son prohibitivamente costosas, pero pueden ser una carga importante para las pequeñas empresas.


Convertirse en un auditor de contratos inteligentes no es fácil. En general, el nivel de habilidad requerido es comparable a tratar de conseguir un trabajo altamente competitivo en Silicon Valley, lo que significa que los salarios iniciales serán fácilmente de seis cifras. Una empresa de auditoría necesita cobrar un margen significativo además de esos salarios para seguir siendo rentable, por lo que no debería sorprender que las auditorías cuesten decenas de miles de dólares, si no cientos de miles de dólares.

¿Quieres ayuda de RareSkills?

RareSkills no es una empresa de auditoría, pero muchos de nuestros instructores son auditores profesionales y nos dedicamos a la investigación de seguridad. Tenemos una visión interna de qué empresas son de confianza y cuáles no. No dude en contactarnos y contarnos sus necesidades, y lo derivaremos al recurso adecuado según su situación.


Si está buscando capacitar a sus ingenieros sobre cómo desarrollar contratos inteligentes seguros, entonces nuestro bootcamp de contratos inteligentes líder en la industria para ingenieros profesionales puede ser de su interés.


También publicado aquí .