Nightshade lleva el análisis de seguridad a los contratos Compact de Midnight

El desarrollador Dickson Wu probó la herramienta de código abierto frente a errores introducidos deliberadamente y con 300 contratos disponibles públicamente.

By SongMarketCap

Midnight News - Nightshade lleva el análisis de seguridad a los contratos Compact de Midnight

Nightshade es una herramienta de análisis estático diseñada para ayudar a los desarrolladores a revisar contratos inteligentes escritos en Compact, el lenguaje de programación usado para crear aplicaciones en Midnight.

Presentada por Wu en el Midnight Forum el 29 de octubre, la herramienta verifica el código fuente contra 96 reglas y señala patrones que pueden requerir un examen más detenido. Sus hallazgos identifican la línea de código relevante e incluyen información destinada a ayudar a los desarrolladores a investigar el problema.

Nightshade verifica el código Compact en busca de patrones de seguridad

El análisis estático examina el código fuente sin requerir que se ejecute el contrato. Nightshade utiliza este enfoque para buscar patrones relacionados con la privacidad, la autorización y otras partes de la lógica de un contrato.

Un ejemplo que Wu identificó implica que un secreto privado se publique en el libro mayor después de haberse usado en una verificación de autorización. Un desarrollador podría tener la intención de usar el secreto para confirmar el permiso de un usuario mientras mantiene privado el valor subyacente. Publicarlo después podría exponer información que debía permanecer protegida.

Otras comprobaciones buscan resultados descartados de verificación de firmas y casos en los que los valores de testigo se tratan como prueba de identidad. La herramienta también señala patrones que implican tiempo proporcionado por quien llama sin un límite basado en el tiempo de la cadena, así como pruebas de Merkle cuya pertenencia no se comprueba.

Para cada hallazgo, Nightshade proporciona la línea de código fuente relevante, la ruta que siguen los datos y una solución sugerida, según Wu. Esto le da a un desarrollador un punto de partida para examinar cómo se mueve un valor a través del contrato y dónde ocurre el comportamiento señalado.

Una advertencia, por sí sola, no establece que un contrato haya sido explotado ni que se haya expuesto información. Del mismo modo, un análisis completado no es garantía de que un contrato sea seguro.

Dickson Wu comparte los resultados de las pruebas de Nightshade

Wu evaluó Nightshade con casos de prueba que contenían errores introducidos deliberadamente. Informó que la herramienta detectó 263 de 266 casos positivos cubiertos por la evaluación.

El desarrollador también probó versiones corregidas de esos casos. La herramienta no produjo advertencias para 240 de 242 versiones corregidas, emitiendo hallazgos para las otras dos. Los resultados describen los casos de prueba usados en esa evaluación y no establecen una tasa de detección para todos los posibles problemas de seguridad.

Wu luego ejecutó la herramienta contra 300 contratos Compact públicos de 144 repositorios. Informó que no hubo fallos durante el ejercicio e identificó 258 contratos que recibieron un análisis completo.

La distinción es importante porque completar un escaneo y no encontrar problemas son resultados distintos. Según Wu, los contratos que no recibieron un análisis completo se informaron como incompletos en lugar de considerarse limpios.

El desarrollador publicó el método de evaluación y los conteos de pruebas junto con la herramienta, lo que permite a otros examinar cómo se obtuvieron los resultados reportados.

[NEWSBREAK]

Análisis sin conexión e integración para desarrolladores

Nightshade se ejecuta localmente y no requiere conexión a internet ni un compilador de Compact para analizar el código fuente, según Wu. La herramienta es compatible con las versiones del compilador de Compact 0.28 a 0.35.

Los desarrolladores pueden ver los hallazgos como texto o exportarlos en formatos JSON y SARIF. También hay una GitHub Action disponible para mostrar resultados durante la revisión de cambios de código propuestos, ubicando los hallazgos dentro de un flujo de trabajo que los desarrolladores pueden usar ya para examinar actualizaciones.

La herramienta se publica bajo la licencia de código abierto Apache 2.0. Wu presentó la versión 0.1.1 e invitó a los desarrolladores a compartir comentarios, reportar falsos positivos y sugerir reglas adicionales.