Introducción: "Aunque la gente de Pao no cura a los Pao, los cadáveres y los deseos no irán más allá de Zunzu y los reemplazarán". -- "Zhuangzi·Xiaoyaoyou" En la antigüedad, había un líder destacado llamado Tang Yao . La gente de la zona que gobernó vive y trabaja en paz y contenta, pero escuchó que el ermitaño Xu You era muy talentoso, por lo que tuvo la idea de ceder el liderazgo a Xu You. Pero Xu You se negó y dijo algo como esto: "El reyezuelo anida en la profundidad del bosque, pero solo en una rama." Hasta ahora, las generaciones posteriores también han usado el término Yuezudaidai para expresar el significado de autoridad superior. Hay derechos de acceso en la implementación de contratos inteligentes, si los derechos se establecen de manera irrazonable, es fácil provocar que los contratos inteligentes sean atacados e incluso causar enormes pérdidas económicas. Chengdu Lianan-Security Lab tiene una gran experiencia y acumulación en la seguridad de contratos inteligentes, pero a medida que la tecnología blockchain recibe cada vez más atención, la cantidad de contratos inteligentes también aumenta y los contratos inteligentes posteriores son atacados Hay cada vez más incidentes, que también permítanos sentir cuán importante es la misión corporativa de "hacer que la cadena de bloques sea más segura”, pero es difícil luchar contra todas las amenazas por nosotros mismos. A continuación, acumularemos nuestra propia experiencia en seguridad a través de la combinación con el contrato inteligente CTF campo de tiro ethernaut , cómo lograr códigos más seguros en el proceso de desarrollo se popularizará entre la mayoría de los desarrolladores de contratos inteligentes a través de la serialización técnica. ShapeShift abre su token FOX, airdrop y staking smart contracts: es oficial, Erik Voorhees, director ejecutivo del intercambio de criptomonedas sin custodia ShapeShift, hoy abrió su token FOX, airdrop y staking smart contracts. [2021/7/28 1:19:43] Ahora hablemos de la primera pregunta Fallback del campo de tiro ethernaut, el evento de la función de código "sobrepasando la marca". La vulnerabilidad de violación de autoridad significa que en un contrato inteligente, debido a la configuración irrazonable de visibilidad de la función o la falta de verificación efectiva de la función, el usuario que no pudo llamar a una determinada función llama con éxito a la función directamente o pasa por alto la verificación. Esta vulnerabilidad se puede explotar sola o combinada con otras vulnerabilidades para ataques combinados. El método de explotación es simple y el impacto de la vulnerabilidad depende de la función con la vulnerabilidad, lo que puede causar un golpe devastador al contrato. 2.1 ¿Cómo entender "Zu" y "Pa" en el contrato? Veamos primero un fragmento de código de contrato, como se muestra en la siguiente figura: Este fragmento de código de contrato proviene de la primera pregunta Fallback of the ethernaut shooting range. Para el problema en el campo de tiro, la idea de resolver el problema es activar el propietario = msg.sender; llamando a la función de devolución de llamada función () payable public, para que el propietario del contrato se convierta en la persona que llama. El tema es muy simple, siempre que se inicie una transacción para este contrato y se cumpla la condición de requisito, se puede activar la función de reserva. El contrato inteligente Bee ha pasado la auditoría de seguridad de Zhichuangyu: según el sitio web oficial, Zhichuangyu completó recientemente el servicio de auditoría de seguridad del proyecto de contrato inteligente Bee. Según los informes, Bee es un protocolo DeFi de segunda generación basado en la capa inferior de TRON. Su objetivo es mejorar algunos desafíos inherentes que enfrenta la generación anterior de protocolos DeFi en términos de velocidad y costo de transacción, y romper el cuello de botella de las aplicaciones DeFi a gran escala. Bee comenzará la extracción de génesis a las 20:00 el 15 de octubre de 2020. Actualmente, Bee ha lanzado la posición recomendada en la columna defi de la billetera bitkeep y ha abierto la circulación en Justswap. Bee no tiene ICO, cero minería previa y cero colocación privada, y la comunidad tiene un alto grado de autonomía. Dirección del contrato: TNUXHrnHFJ89cgT8kCLmxYCVj3PeEqyJ4C[2020/10/13] En circunstancias normales, en una llamada de contrato, si ninguna otra función coincide con el identificador de función dado o no se proporcionan datos adicionales, se ejecutará la función de reserva. Generalmente se usa como la operación predeterminada para transferir ether. Por lo tanto, generalmente no es necesario escribir propietario = msg.sender en la función de respaldo durante el desarrollo del contrato inteligente. Como se muestra en la siguiente imagen: Sonido | Director de operaciones de la Fundación MakerDAO: la bifurcación dura Ethereum Istanbul no supondrá un problema para el contrato inteligente de Maker: según Ambcrypto, Steven Becker, director de operaciones de la Fundación MakerDAO, dijo en una entrevista que el próximo Ethereum Istanbul La bifurcación dura no supondrá un problema para el contrato inteligente de Maker, porque el contrato de Maker no tiene un requisito de tarifa de gas codificado. [2019/12/4] Sin embargo, own=msg.sender, que no debe ser llamado por el usuario, se llamó aquí, lo que resultó en un control de permisos inadecuado y una autoridad superior, y "Zu" y "Pao" sucedieron de esta manera. historia. 2.2 Incidentes de seguridad relacionados 2.2.1 Incidente del contrato de Bancor El 18 de junio de 2020, la red de Bancor (0x5f58058c0ec971492166763c8c22632b583f667f) estuvo expuesta a tener vulnerabilidades. El motivo de la vulnerabilidad es que existe un método público safeTransferFrom en el contrato, por lo que el atacante puede llamar directamente a este método para autorizar la transferencia de los tokens del contrato de red de Bancor a cualquier cuenta. Sus tres permisos de función sobre transferencia y autorización son públicos, lo que permite que cualquier usuario pueda llamarlos. Este incidente involucró fondos de más de 500.000 dólares estadounidenses. El código detallado se muestra en la siguiente figura: Voz | Feng Lun, fundador de Vantone Group: uso de contratos inteligentes para generar automáticamente enlaces de transacciones inmobiliarias: el 26 de noviembre, Feng Lun, presidente de Yufeng Group y fundador de Vantone Group, habló en el "Rey Sabio de la Nueva Economía 2019" "En la conferencia, se afirmó que las nuevas tecnologías y los bienes raíces tienen una relación profunda en seis aspectos, siendo el más importante el vínculo de transacción. Ahora los contratos inteligentes se pueden usar para generar transacciones automáticamente al mismo tiempo que garantiza la seguridad. En el futuro, con el desarrollo de tecnologías como blockchain, etc., el método de recopilación, el método de transacción y el método de titulización de bienes raíces de los fondos inmobiliarios cambiarán. Los cambios en estas cosas traerán cambios en el modelo operativo y calidad de transacción de la industria de bienes raíces La nueva economía es omnipresente. [2019/11/26] El "traidor" del método público safeTransferFrom no obtuvo el permiso del "rey" del contrato de Bancor, y directamente le quitó el "poder financiero" al "país". Afortunadamente, el equipo de la red de Bancor y los sombreros blancos descubrieron primero este problema y transfirieron los fondos. La vulnerabilidad también fue reparada en el seguimiento para evitar pérdidas. Para un análisis detallado, consulte (https://mp.weixin.qq.com/s/vN1bNLqdvr8JEqq9QI0X1Q) Dinámica | Vitalik Buterin propone un nuevo plan para motivar a los desarrolladores: subsidiar las tarifas de transacción de contratos inteligentes a los creadores de contratos: Vitalik Buterin en Ethereum Research Foro Publicó un artículo en el sitio web, proponiendo un nuevo esquema para motivar a los desarrolladores. Cuando un desarrollador crea un contrato inteligente, una parte de la tarifa de transacción (por ejemplo, 33%) pagada por cualquier otro usuario que use el contrato se enviará a el creador del contrato, se utilizan como incentivos y se proponen dos algoritmos sobre recompensas, que son lineales y superlineales. La idea surgió de la conferencia StarkWare Sessions celebrada en Israel el 16 de septiembre. Al discutir el desarrollo de la infraestructura de la cadena pública, si los fondos deben obtenerse a través de la gobernanza y los acuerdos, o si deben ser financiados por empresas independientes, el fundador de Ethereum Según Vitalik Buterin , "La ventaja de obtener fondos a través del acuerdo es que este método puede obtener más fondos. La desventaja también es obvia. Dado que este tipo de método es neutral, no importa qué mecanismo se use, será atacado maliciosamente y ha sido hecho antes. Me he encontrado con varios intentos. Entonces, el mayor desafío de este tipo de enfoque es llegar a una estructura de gobierno adecuada y sus componentes. Luego también dio un ejemplo, si establecemos un mecanismo de financiación de este tipo: cuando alguien usa Se establece un cierto contrato inteligente, y parte de la tarifa de transferencia generada se asignará al creador del contrato. Este mecanismo es muy neutral. [2019/9/23] Y el mismo evento también se escenifica en otro contrato, A continuación, presentaremos el incidente de vulnerabilidad del contrato VETH a finales de junio.2.2.2 Incidente del proyecto VETH El 30 de junio de 2020, el proyecto VETH estuvo expuesto a vulnerabilidades.El protagonista de este incidente es la modificación externa del cambio Función excluida en el contrato. El modificador externo permite que cualquier persona llame a la función changeExcluded para eludir la verificación del monto de la transferencia autorizada dentro de la función transferFrom y robar los tokens VETH del contrato. En este incidente, el atacante usó esta vulnerabilidad para robar 919,299 VETH y luego una gran cantidad de The La liquidación causó una pérdida instantánea del valor de los tokens VETH. Para obtener más detalles, consulte (https://mp.weixin.qq.com/s/plbSmpMfvIk_A457GoUaQA) El código de contrato involucrado se muestra en la siguiente figura: A través de los dos anteriores casos, creo que todos se han dado cuenta del grave impacto del evento de "sustituir el zu" en el contrato, entonces, ¿cómo distinguir efectivamente entre "zu" y "pao" en el proceso de escritura del código del contrato? 2.3 "Zu" y información "pao" que revela Para el evento ultra vires, en primer lugar, se requiere el desarrollo del contrato El personal comprende la visibilidad de las funciones Hay cuatro tipos de visibilidad de las funciones: externa, pública, interna y privada: Externa Las funciones externas son parte de la interfaz del contrato, lo que significa que podemos llamarlos desde otros contratos y transacciones. No se puede acceder a una función externa f desde llamadas internas (es decir, f no funciona, pero this.f() sí). Las funciones externas a veces son más eficientes cuando recibir grandes cantidades de datos, porque los datos no se copian de calldata a la memoria. Las funciones públicas públicas son contratos. Parte de la interfaz, a la que se puede llamar internamente o a través de mensajes. Para las variables de estado públicas, se genera automáticamente una función getter (ver más abajo). . YO internal Estas funciones y variables de estado solo se pueden acceder internamente (es decir, desde dentro del contrato actual o desde contratos derivados de él), sin usar esta llamada. Las funciones privadas privadas y las variables de estado solo se usan dentro del contrato en el que están definidas actualmente y no se pueden usar en contratos derivados. Cuando un desarrollador construye una función, debe seguir esta visibilidad para desarrollar. Es necesario aclarar qué funciones puede llamar el usuario y qué funciones no pueden reemplazarse arbitrariamente en el contrato, y asignarlas según el principio mínimo. Por ejemplo, una función safeTransfer está diseñada para operaciones de transferencia.Los usuarios pueden transferir tokens emitidos por este contrato llamando a esta función. Podemos usar public y external para cumplir con los requisitos, pero desde el punto de vista de la seguridad, debemos usar external para evitar llamar a esta función en el contrato, lo que genera riesgos impredecibles. Si hay una función safeTransferFrom, el usuario puede transferir otros tokens a una dirección específica autorizando otros tokens a este contrato. Cuando _token es igual al contrato en sí, la función sadeTransfer se llamará como el contrato en sí, es decir, Transferir el dinero en el contrato a otras direcciones. Sin embargo, está lejos de ser suficiente seguir la visibilidad de funciones, la visibilidad de funciones solo distingue los tres límites de contrato interior, contrato de herencia y exterior, lo que está lejos de satisfacer nuestras necesidades. Para lograr una gestión de derechos más completa, debemos introducir el concepto de "roles", tales como: administradores, usuarios ordinarios, usuarios privilegiados, etc. Almacene las direcciones de estos roles en el contrato y controle los permisos juzgando las direcciones o las variables de marca. Como se muestra en la figura a continuación: Administre estos diferentes "roles" a través de decoradores, como usar el decorador onlyOwner para restringir direcciones específicas para llamar a esta función. Gestión de permisos correspondientes a "rol". Al usar el decorador, puede juzgar más claramente si hay un defecto. En lo que respecta al status quo de la cadena, existen muchas lagunas causadas por la gestión incorrecta de los permisos de contratos inteligentes, incluidos muchos "proyectos famosos", y las pérdidas causadas por tales lagunas también son enormes. Basado en años de experiencia en auditoría de contratos y seguridad de análisis en cadena, el equipo de seguridad de Chengdu Lianan brinda las siguientes sugerencias: 1. Siga el principio de desarrollo de autoridad mínima y planifique la visibilidad al diseñar funciones. 2. Establezca un mecanismo de roles y utilice decoradores para administrar los permisos de cada función para evitar errores. 3. Antes de conectarse, debe encontrar una organización profesional para realizar una auditoría de código. Como dice el refrán, "una persona tiene un cerebro y no hay discusión sobre cómo hacer las cosas; diez personas tienen diez cerebros, y hay muchos de métodos".
Tags:
El artículo es una contribución del análisis de blockchain de Niu Qi.
El 15 de enero de 2019, se reinició la primera red de prueba de Filecoin. Después de la prueba y el desarrollo de la red de prueba.
La imagen de arriba muestra la relación entre la tendencia histórica actual del precio de BTC de 2010 a 2020 y la curva de fluctuación de la cantidad de billeteras móviles que se han mantenido durante más de un año.
Introducción: "Aunque la gente de Pao no cura a los Pao, los cadáveres y los deseos no irán más allá de Zunzu y los reemplazarán". -- "Zhuangzi·Xiaoyaoyou" En la antigüedad.
En el último medio mes, el mercado de divisas ha sido muy bueno. Aunque las monedas principales no han fluctuado.
Recientemente, Hebei, Guizhou, Hunan, Beijing, Guangzhou, Ganzhou y otras provincias y ciudades emitieron planes de acción para el desarrollo de blockchain.
Cashaa es un proveedor de servicios bancarios y de billetera criptográfica con sede en Londres.El año pasado.