WEB3DEV Español

Cover image for Las 5 Principales Extensiones de VS Code para Ataques a Contratos Inteligentes
Juliana Cabeza
Juliana Cabeza

Posted on

Las 5 Principales Extensiones de VS Code para Ataques a Contratos Inteligentes

Image description

Hola, soy Samrat Gupta, también conocido como Sm4rty, auditor de contratos inteligentes en QuillAudits y cazarrecompensas de bugs a tiempo parcial. En este blog, voy a compartir algunas extensiones de VS Code utilizadas en ataques de Contratos Inteligentes (Smart Contracts). El uso de estas extensiones lo ayudará a encontrar bugs y a ser eficiente en su búsqueda en los Contratos Inteligentes. Vamos a empezar:

Índice:

  1. Inline Bookmarks
  2. Solidity Visual Developer
  3. EthOver
  4. Slither VSCode
  5. GraphViz Interactive Preview
  6. MythXvsc [BONUS]

1. Inline Bookmarks:

La extensión Inline Bookmarks ayuda a marcar el código en sí. La extensión se puede utilizar para realizar un seguimiento de las notas de desarrollo y las tareas (to-do) pendientes, para la revisión de documentos y para fines de auditoría y revisión de registros. Dado que las marcas se almacenan con sus documentos, puede compartir fácilmente sus notas y marcas con otras personas.

Image description

Las siguientes palabras/etiquetas de activación predeterminadas están configuradas de forma predeterminada:

  • @todo - (azul) Observación general de la tarea a realizar.
  • @note - (azul) Observacion general.
  • @remind - (azul) Observacion general.
  • @follow-up - (azul) Observacion general.
  • @audit - (rojo) - Marcador general de posibles problemas.
  • @audit-info - (azul) Marcador general para información a tener en cuenta para su uso posterior.
  • @audit-ok - (verde) Agregue una nota de que una línea específica no es un problema, aunque pueda parecerlo.
  • @audit-issue - (púrpura) Referencia a una ubicación de código para la que se registró un problema.

Referencia:
https://github.com/tintinweb/vscode-inline-bookmarks

2. Solidity Visual Developer:

Esta es una extensión imprescindible para un auditor de Contratos Inteligentes. Las características de esta extensión son bastante impresionantes. Esta extensión aporta sintaxis centrada en la seguridad y resaltado semántico, un esquema de clase detallado, vistas especializadas, insights avanzados sobre el código de Solidity y mejoras en Visual Studio Code.

Image description

Algunas de las características de esta extensión son:

  1. Resaltado de sintaxis
  2. Resaltado semántico
  3. Funciones de gráficos e informes
  4. Recursos de revisión
  5. Múltiples vistas

Referencia: https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor

3. EthOver

A veces codificamos las direcciones de los Contratos Inteligentes para integrarlas con las nuestras. La extensión EthOver se utiliza para ver instantáneamente los detalles de las direcciones codificadas en Contratos Inteligentes. Esto ahorra mucho tiempo, ya que no tiene que copiar y pegar la dirección en Etherscan una y otra vez.

Todo lo que tienes que hacer es pasar el cursor sobre una dirección de Ethereum y obtendrás una serie de opciones como:

  1. Abrir en Etherscan.
  2. Mostrar el saldo de la dirección al pasar el mouse.
  3. Descargar el bytecode y desmontarlo.
  4. Descargar el bytecode y mostrarlo.
  5. Mostrar fuente de contrato verificada (etherscan.io).
  6. Mostrar fuente de contrato reconstruida de eveem.org
  7. Mostrar el origen del contrato reconstruido de evm.js.
  8. Ejecutar vscode-decompiler para descompilar el contrato manualmente usando panoramix (eveem.org) localmente.

Referencia: https://marketplace.visualstudio.com/items?itemName=tintinweb.vscode-ethover

4. Slither vscode

Esta extensión proporciona integración de Visual Studio Code para Slither, un framework de análisis estático de Solidity escrito en Python 3. Con Slither para Visual Studio Code, los usuarios pueden ejecutar un conjunto de escáneres de vulnerabilidades en sus contratos inteligentes de Solidity para anotar códigos potencialmente peligrosos y recibir correcciones sugeridas.

Image description

Proporciona una vista limpia de todos los bugs encontrados, a diferencia de la versión CLI de Slither, donde es un poco difícil de leer. Si está utilizando Slither, se recomienda tener una extensión de VS Code para ello.

Algunas características de Slither son:

  • Analizar espacios de trabajo abiertos
  • Explorar los resultados en un árbol personalizado, ordenados por tipo de problema o gravedad.
  • Ver los resultados como información/advertencias/errores nativos de Visual Studio Code.
  • Ver notas para el código fuente relevante de cada problema.
  • Imprimir descripciones detalladas de problemas y recomendaciones.
  • Filtrar problemas por tipo (por configuración del espacio de trabajo).
  • Especificar la ruta personalizada del compilador oficial de Solidity (solc) (por configuración del espacio de trabajo).
  • Realce de sintaxis Solidity.

Referencia:
https://marketplace.visualstudio.com/items?itemName=trailofbits.slither-vscode

5. GraphViz Interactive Preview

GraphViz Interactive Preview es una extensión de VSCode que ofrece características como resaltado de sintaxis, snippets y una vista previa interactiva en vivo con zoom, pan y búsqueda, con seguimiento de bordes para gráficos en formato Graphviz/dot. Aumenta su eficiencia, especialmente si el proyecto que está auditando es grande. Los mapas mentales lo ayudan a obtener una comprensión general del flujo del proyecto.

Image description

Algunas características de Graphviz son:

  • Renderiza fuentes de dot/Graphviz en una vista previa interactiva en vivo.
  • Actualiza la vista a medida que escribe.
  • Puede buscar nodos en el grafo.
  • También puede exportar el gráfico como svg o dot.
  • Seguimiento interactivo de bordes. Haga clic en un nodo para resaltar los bordes entrantes y salientes (ESC para anular la selección). La dirección de resaltado se puede cambiar (opciones: simple, arriba, abajo, bidireccional).
  • Tiene un motor de renderizado configurable, opciones de renderizado y preferencia de seguimiento: por ejemplo, transitionDelay, transitionDuration.

Referencia: https://marketplace.visualstudio.com/items?itemName=tintinweb.graphviz-interactive-preview

[BONUS] Mythx VSC:

MythX es un conjunto de técnicas de análisis que detectan automáticamente vulnerabilidades de seguridad en los contratos inteligentes de Ethereum. MythX VSC es una extensión para realizar análisis de contratos inteligentes MythX desde Visual Studio Code.

Image description

MythX utiliza una clave API para la autenticación. Después de configurar su cuenta, vaya a dashboard.mythx.io/. En la sección Perfil, hay un elemento denominado MythX API Key.

Algunas de las características de esta extensión son:

  • Compilación de contratos inteligentes (a través de la extensión Solidity VS Code).
  • Autenticación de la plataforma MythX.
  • Extracción AST del código fuente compilado.
  • Envío de análisis.
  • Visualización de resultados de análisis en VS Code en un formato de linting.

Referencia: https://marketplace.visualstudio.com/items?itemName=MythX.mythxvsc

Artículo original escrito por Sm4rty. Traducido por Juliana Cabeza

Discussion (0)