Intercambio de Ethereum Intercambio de Ethereum
Ctrl+D Intercambio de Ethereum
ads
Casa > XMR > Info

Práctica de seguridad de contrato inteligente (2) | practica "ojos agudos" para ver los constructores verdaderos y falsos de un vistazo.

Author:

Time:

"El verdadero viajero se queja en el monte Luojia, y el falso rey mono transcribe el texto en Shuiliandong".

En "Viaje al Oeste", el macaco de seis orejas finge ser el rey mono Sun Wukong y engaña al monje Tang y a los dioses confundiendo lo falso con lo real. Incluso el espejo del demonio no puede distinguir lo real de lo real. el falso. Ahora, cuando el contrato inteligente se encuentre con el "macaco de seis orejas", ¿qué tipo de chispa creará?

En el contrato inteligente, el constructor es responsable de la inicialización de algunos datos y el valor del propietario generalmente se coloca en el constructor para la inicialización. propietario es el título del propietario del contrato inteligente y, a menudo, se utiliza como superadministrador del contrato. Para el contrato de token, los derechos que se le pueden asignar al propietario incluyen: acuñar/destruir tokens, congelar tokens, etc. Si el desarrollador crea un "constructor" con una sintaxis incorrecta, lo que hace que falten constructores, lo que hace que el "macaco de seis orejas" engañe al desarrollador y, finalmente, haga que el atacante sea el propietario del contrato, entonces el atacante puede depender de la autoridad de el propietario, operaciones como la emisión adicional o la destrucción de tokens pueden provocar el colapso de todo el token.

El contrato inteligente puente QANplatform ha sido atacado y se recomienda no ejecutar transacciones relacionadas con tokens QANX: el 11 de octubre, QANplatform, una cadena de bloques de capa 1 resistente a los ataques de computación cuántica, tuiteó que su contrato inteligente puente fue atacado y el atacante logró extraer tokens, se recuerda a los usuarios que no realicen ninguna transacción relacionada con los tokens QANX. El equipo está investigando el problema actualmente. En la actualidad, el precio de QANX ha caído más del 90 % en una caída a corto plazo. [2022/10/11 10:30:53]

En el lenguaje Solidity, cuando el nombre de la función es el mismo que el nombre del contrato, esta función es el constructor del contrato. Cuando se crea el objeto del contrato, se llamará primero al constructor para inicializar los datos relevantes.

Ethereum Solidity versión 0.4.22 presenta la palabra clave constructor, una nueva forma de declaración de constructor: constructor() public { }, el propósito de la introducción es reemplazar la forma gramatical en la que se usa el nombre del contrato como nombre del constructor en la versión inferior , De esta manera, se evita el problema del error de nomenclatura del constructor causado por el error administrativo del desarrollador. La palabra clave presentada parece ordinaria, pero tiene un significado profundo, déjame decirte lentamente.

Junsik Sim: la CBDC de Corea del Sur utilizará el lenguaje de contrato inteligente de solidez: Jinse Finance informó que Junsik Sim, director ejecutivo de la empresa de cadena de bloques de Corea del Sur Onther, dijo en una entrevista sobre la prueba de Corea del Sur de su CBDC que la CBDC utilizará el mismo algoritmo de consenso que Klaytn. Tal como está, admitirá 3000 transacciones por segundo (TPS) en 50 millones de billeteras. Usando la tecnología de escalado de Onther, esto aumenta a 10,000TPS. Además, la CBDC utilizará el lenguaje de contrato inteligente de solidez, y la CBDC utilizará criptografía similar a Ethereum para generar billeteras y claves para estas billeteras. (Forbes)[2021/8/4 1:33:07]

Tomemos el título de Fallout del campo de tiro ethernaut como ejemplo para el análisis. A primera vista, este parece ser un código de contrato normal sin lagunas, pero después de una observación cuidadosa, se descubre que hay un error fatal en el contrato: el nombre del constructor no es coherente con el nombre del contrato y el constructor del contrato de Fallout se escribe incorrectamente como Fall1out (la letra l y el número 1), tal error lo convierte en una función ordinaria modificada por public, que pierde la característica de que el constructor solo se llama cuando se implementa el contrato, por lo que cualquiera puede llamarlo El código fuente de este tema se muestra a continuación:

Fundador de Plasm: se han bloqueado 150 000 ETH en el contrato inteligente y se está desarrollando el puente Ethereum: Sota Watanbe, fundador de Plasm, tuiteó que recibió 6 donaciones de la Fundación Web3 y envió 4 donaciones. El contrato inteligente bloquea 150 000 ETH y los miembros de la comunidad superan los 30 000. A continuación, Plasm lanzará Ethereum Bridge, lanzará Plasm Network Portal y se convertirá en una parachain de Kusama/Poca. [2021/2/4 18:51:20]

Figura 1

En la función Fall1out, la dirección de la persona que llama a la función se especifica directamente como propietario, por lo que solo es necesario llamar a la función Fall1out para realizar el cambio del propietario del contrato. Como se muestra abajo:

Noticias | El ataque Ethereum AirDrop reaparece Decenas de contratos inteligentes fueron atacados: a las 13:19 de esta tarde, la plataforma de control de riesgos del escudo de seguridad PeckShield detectó que la cuenta Ethereum que comienza con 0x84ec atacó sucesivamente 29 juegos y tokens, incluidos FOMO Lightning y MC2 COSMOS El contrato realizado realizó un ataque de lanzamiento aéreo AirDrop y continuó obteniendo ganancias en forma de vellón. El personal de seguridad de PeckShield analizó y descubrió que el atacante creó un contrato de control que comenzó con 0x42fe a las 13:19 del mediodía de hoy y, a través de este contrato, creó e implementó los contratos de ataque correspondientes para cada juego objetivo y luego llevó a cabo el ataque con éxito. Este tipo de ataque fue revelado y nombrado por PeckShield cuando los juegos FOMO3D fueron populares el año pasado. Los ataques continuos de hoy muestran que los atacantes han estado buscando objetivos potenciales y realizando intentos de ataque. El equipo de PeckShield recuerda a los desarrolladores de proyectos que presten atención y arreglen las lagunas en tiempo para evitar la pérdida innecesaria de activos digitales. [2019/3/12]

nChain recibe la primera patente de invención de contrato inteligente basada en blockchain que se centra en Bitcoin Cash Network: según las noticias de bitcoin, el director ejecutivo de nChain, Jimmy Nguyen, anunció que la empresa obtuvo su primera patente de la Oficina Europea de Patentes (EPO), un desarrollo cubierto por la patente proporciona un método para automatizar la gestión y ejecución de contratos inteligentes en la cadena de bloques. El CEO de nChain dijo que la patente estará disponible gratuitamente para individuos y equipos de desarrollo enfocados en la red Bitcoin Cash. [2018/4/13]

Figura 2

El "rey de los monos falsos" Fall1out quería confundir al público con la diferencia visual de caracteres similares en algunos tipos de fuentes, pero al final no logró escapar de nuestros "ojos dorados".

Incidentes de seguridad similares han ocurrido en el pasado. Los contratos que contenían constructores falsos se lanzaron con éxito a la cadena principal. El más famoso es el "Incidente MorphToken", que provocó que se emitieran adicionalmente miles de Tokens con un valor de mercado de 10,000. Dirección del código de contrato: https://etherscan.io/address/0x2ef27bf41236bd859a95209e17a43fbd26851f92#code

En el contrato Owned, debido a la mayúscula incorrecta de la primera letra, Owned, que debería haber sido una función constructora, se ha convertido en una función ordinaria Owned, que es modificada por public y puede ser llamada por cualquier persona. Como se muestra abajo:

Figura 3

El contrato MorphToken hereda el contrato Owned e inicializa el propietario en su propio constructor, pero cualquiera puede llamar a la función owned del contrato principal Owned, y un atacante puede cambiar el propietario del contrato llamando a la función owned. El código de inicialización del propietario se muestra en la siguiente figura:

Figura 4

De lo anterior, podemos ver que cualquiera puede convertirse en propietario del contrato llamando a la función de propiedad del contrato. Como se muestra abajo:

Figura 5

Una pequeña falla, una gran diferencia, un pequeño error de letra, pero provocó el colapso de las fichas del contrato. Los tokens también se emitieron maliciosamente. Como se muestra abajo:

Figura 6

Se recomienda reemplazar Solidity 0.4.22 y superior, y usar la sintaxis constructor() correcta. Como se muestra abajo:

Figura 7

Recuerde: no hay ninguna función antes de constructor(), y la función constructor() public { } es la forma de constructor incorrecta.

Si desea utilizar una versión anterior a la 0.4.22, debe verificar si el nombre de la función es consistente con el nombre del contrato. Como se muestra abajo:

Figura 8

En los contratos inteligentes, debido al descuido de los desarrolladores, los incidentes de brechas de seguridad surgen sin cesar. "El terraplén de mil millas se derrumba en un nido de hormigas". Chengdu Lianan-Security Lab ofrece las siguientes sugerencias:

1.  Al escribir funciones confidenciales de contratos inteligentes (como constructores y funciones de respaldo), los desarrolladores deben seguir estrictamente las especificaciones oficiales de escritura de código y tener cuidado de no cometer errores de caracteres, etc.

2.  En algunos casos, el compilador emitirá una advertencia por el uso incorrecto del constructor, y el desarrollador debe tratarlo correctamente y no puede ignorarlo, ya que es solo un mensaje de advertencia.

3.  Antes de que se lance oficialmente el contrato, es necesario encontrar una organización profesional y creíble para hacer un buen trabajo de auditoría del código del contrato.

Tags:

XMR
Director de impuestos de Coinbase: El capital se fugará de EE.UU.debido a la Ley de impuestos criptográficos

Coinbase, el intercambio de criptomonedas más grande de los Estados Unidos.

El mercado sigue cayendo, ¿es buen momento para comprar fondos?

Algunas monedas pequeñas son muy populares recientemente. Aunque algunas no son monedas convencionales, son los tokens de los proyectos calientes actuales. Cuando se lanzaron inicialmente.

Práctica de seguridad de contrato inteligente (2) | practica "ojos agudos" para ver los constructores verdaderos y falsos de un vistazo.

"El verdadero viajero se queja en el monte Luojia, y el falso rey mono transcribe el texto en Shuiliandong".En "Viaje al Oeste".

El nuevo libro de Central Party School Publishing House "Hablemos de Blockchain con cuadros líderes"

¿Qué tipo de libro es este?El libro es informativo y completo, con contenido destacado.

La popularidad de DeFi y las monedas estables continúa aumentando, y los costos de transacción de Ethereum continúan aumentando

Después de un gran mercado bajista, Ethereum ha vuelto a ser popular. Ethereum blockchain ha experimentado un fuerte crecimiento tanto en usuarios activos como en volumen de transacciones diarias.

Zhu Jiaming: ¿Cómo entender la importancia de blockchain para una reforma profunda?

En la tarde del 10 de abril, Yangmei Group cooperó con el Instituto de Investigación de Activos Digitales para realizar un evento de capacitación en línea sobre blockchain. Zhu Jiaming.

ads