Análisis de vulnerabilidades del compilador de Solidity: riesgos, ejemplos y estrategias de respuesta

robot
Generación de resúmenes en curso

Análisis de vulnerabilidades del compilador Solidity y estrategias de respuesta

El compilador es uno de los componentes básicos de los sistemas informáticos modernos, y su función es convertir el código fuente de lenguajes de programación de alto nivel en código de instrucciones ejecutables por la computadora. Aunque la mayoría de los desarrolladores y personal de seguridad suelen centrarse en la seguridad del código de las aplicaciones, la seguridad del propio compilador también es importante. Como programa informático, el compilador también puede tener vulnerabilidades de seguridad, que en ciertas circunstancias pueden representar riesgos de seguridad graves.

Tomando como ejemplo un navegador, durante la compilación y la ejecución del código JavaScript, pueden ocurrir graves consecuencias como la ejecución remota de código debido a vulnerabilidades en el motor de JavaScript. El compilador de Solidity no es una excepción, ya que existen vulnerabilidades de seguridad en múltiples versiones.

Análisis de vulnerabilidades del compilador Solidity y medidas de respuesta

El propósito del compilador de Solidity es convertir el código del contrato inteligente en código de instrucciones para la Máquina Virtual de Ethereum (EVM). Es necesario distinguir entre las vulnerabilidades del compilador de Solidity y las vulnerabilidades de la propia EVM. Las vulnerabilidades de la EVM se refieren a problemas de seguridad que surgen durante la ejecución de instrucciones de la máquina virtual, lo que puede afectar a toda la red de Ethereum. Por otro lado, las vulnerabilidades del compilador de Solidity se refieren a problemas en el proceso de compilación, que no afectan directamente a la red de Ethereum, pero pueden llevar a que el código EVM generado no coincida con lo que el desarrollador esperaba.

Una de las amenazas de una vulnerabilidad en el compilador de Solidity es que puede dar lugar a que el código EVM generado difiera de las expectativas del desarrollador del contrato inteligente. Dado que los contratos inteligentes a menudo implican activos de criptomonedas de los usuarios, cualquier error causado por el compilador podría tener graves consecuencias. Es difícil detectar este tipo de problemas solo auditando el código fuente del contrato; se requiere un análisis conjunto de la versión específica del compilador y del patrón de código.

A continuación, se presentan varios ejemplos reales de vulnerabilidades en compiladores de Solidity, mostrando su forma específica, causas y peligros.

La vulnerabilidad SOL-2016-9 HighOrderByteCleanStorage existe en versiones anteriores del compilador Solidity ( >=0.1.6 <0.4.4). Esta vulnerabilidad puede hacer que las variables de almacenamiento devuelvan valores inesperados sin modificaciones. Esta inconsistencia puede causar consecuencias graves en escenarios como la verificación de permisos y la contabilidad de activos.

La vulnerabilidad InlineAssemblyMemorySideEffects en SOL-2022-4 existe en los compiladores de versiones >=0.8.13 <0.8.15. Esta vulnerabilidad se origina en un manejo incorrecto del código de ensamblaje en línea durante el proceso de optimización de compilación, lo que puede llevar a que ciertas operaciones de memoria sean eliminadas incorrectamente.

La vulnerabilidad SOL-2022-6 AbiReencodingHeadOverflowWithStaticArrayCleanup afecta a compiladores de versiones >= 0.5.8 y < 0.8.16. Esta vulnerabilidad puede provocar inconsistencias de datos al realizar operaciones abi.encode en arreglos de tipo calldata.

Análisis de vulnerabilidades del compilador Solidity y medidas de respuesta

Basado en el análisis de las vulnerabilidades del compilador de Solidity, se proponen las siguientes recomendaciones para desarrolladores y personal de seguridad:

Desarrollador:

  • Utilizar una versión más reciente del compilador Solidity
  • Mejorar los casos de prueba unitarios y aumentar la cobertura del código
  • Evita usar ensamblado en línea, operaciones complejas de codificación y decodificación de ABI, etc.
  • Utiliza con precaución las nuevas características y funciones experimentales

Personal de seguridad:

  • Considerar los riesgos que el compilador puede introducir durante la auditoría de seguridad
  • Promover la actualización de la versión del compilador en el proceso SDL
  • Introducir la verificación automática de la versión del compilador en CI/CD
  • Evaluar el impacto real de las vulnerabilidades del compilador según el proyecto específico.

Algunos recursos útiles:

  • Alerta de seguridad publicada oficialmente por Solidity
  • Lista de errores en el repositorio de GitHub de Solidity
  • Lista de errores del compilador de cada versión
  • Advertencia de vulnerabilidad del compilador en Etherscan

Análisis de vulnerabilidades del compilador Solidity y medidas de respuesta

En resumen, aunque las vulnerabilidades del compilador Solidity no son comunes, pueden tener consecuencias graves. Los desarrolladores y el personal de seguridad deben mantenerse alerta y tomar las medidas adecuadas para reducir los riesgos.

ETH5.57%
SOL3.11%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 5
  • Compartir
Comentar
0/400
MetaverseHobovip
· hace23h
Otra vez un montón de vulnerabilidades, ¿qué tanto se preocupan?
Ver originalesResponder0
OfflineValidatorvip
· hace23h
Jugué a perder más de 2k usdt, golpeando a los que entienden la compra baja y la venta alta.

Con el compilador, otra vez hubo un fallo...
Ver originalesResponder0
FallingLeafvip
· hace23h
Me asustó la vulnerabilidad, no me atrevo a jugar a nada.
Ver originalesResponder0
PoetryOnChainvip
· hace23h
Otra vez seguir la vulnerabilidad. Me escapé, me escapé.
Ver originalesResponder0
AirDropMissedvip
· hace23h
Otra vez el compilador tiene problemas, no puedo evitar reírme.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)