Home Ciencia y Tecnología Prueba de seguridad de contrato inteligente con averificador

Prueba de seguridad de contrato inteligente con averificador

36
0

Resumen y 1. Introducción

  1. Fondo

    2.1 Ethereum Primer

    2.2 Verificación de dirección blanca

    2.3 Análisis de mancha en contratos inteligentes y modelo de amenaza 2.4

  2. Ejemplo y desafíos motivadores

    3.1 Ejemplo motivador

    3.2 Desafíos

    3.3 Limitaciones de las herramientas existentes

  3. Diseño de averificador y descripción de 4.1

    4.2 Notaciones

    4.3 Componente#1: Grapher de código

    4.4 Componente#2: Simulador EVM

    4.5 Componente#3: Detector de vulnerabilidad

  4. Evaluación

    5.1 Preguntas experimentales de configuración e investigación

    5.2 RQ1: efectividad y eficiencia

    5.3 RQ2: Características de los contratos vulnerables del mundo actual

    5.4 RQ3: detección en tiempo actual

  5. Discusión

    6.1 amenazas a validez y limitaciones 6.2

    6.3 Consideración ética

  6. Trabajo relacionado

  7. Conclusión, disponibilidad y referencias

5 Evaluación

5.1 Preguntas experimentales de configuración e investigación

Línea de base. Hasta donde sabemos, ningún marco de análisis de contrato inteligente existente respalda la detección de la vulnerabilidad de verificación de direcciones. Sin embargo, para ilustrar la efectividad del averificador, hemos extendido mythril [70] (Compromiso: F5E2784), Ethainter [14]Chacal [39] (Commit: 3993e5c) y Ethbmc [33] (Commit: E887F33), cuatro analizadores de contratos populares, como líneas de base. Específicamente, Mythril es un ejecutor simbólico bien conocido y ampliamente adoptado que está específicamente diseñado para detectar vulnerabilidades en los contratos inteligentes de Ethereum. Por lo tanto, en primer lugar integramos las mismas reglas de propagación de contaminación en Mythril. Luego, empleamos la misma lógica de detección de tres etapas que declaramos en §4.5. En consecuencia, Mythril se modifica como un analizador Taint basado en ejecución simbólica estática. En cuanto a Ethainter, es un analizador Taint de buena reputación, ampliamente utilizado y escalable basado en Datalog. Después de recibir un código fuente, EthAinter primero realizará un análisis completo y extraerá las dependencias del flujo de management y el flujo de datos en el contrato. Por lo tanto, también implementamos un detector de tres etapas en Datalog para filtrar las que cumplen con las reglas mencionadas en §4.5 de todos los estados generados. Con respecto a Jackal, descompila Ethereum Good Contracts ‘bytecode a una representación intermedia para construir gráficos de flujo de management. Integramos las mismas reglas de propagación de contaminación en Jackal y empleamos la lógica de detección de tres etapas descritas en §4.5. Esta modificación mejora la capacidad de Jackal para centrarse en identificar vulnerabilidades de verificación de direcciones en contratos inteligentes. Por último, ETHBMC utiliza la verificación del modelo limitado y la ejecución simbólica. También integramos manualmente la lógica de detección de tres etapas en ella para agudizar su enfoque en identificar las vulnerabilidades de verificación de direcciones. Debido a que los detectores en todas estas herramientas siguen el mismo conjunto de principios en el nivel semántico, esto puede reflejar la distinción entre ellos en términos de efectividad y eficiencia.

Implementación del averificador. Avverifier está escrito en Python y consta de 1.3k líneas de código. Como se muestra en la Fig. 1, se compone de tres módulos principales:

Código Grapher. Es responsable de desmontar el bytecode dado en los códigos de operación, y construir el CFG de acuerdo con los códigos de operación de llamadas de función estadística como mencionamos en §4.3. Además, en el selector de funciones, el gráfico selecciona funciones sospechosas de acuerdo con la heurística en §4.3, y obtiene el bloque básico de entrada correspondiente.

Simulador EVM. El cuerpo del simulador es básicamente un bucle anidado de dos capas, el externo itera todas las funciones sospechosas recolectadas del gráfico y el interno itera todos los códigos de operación. De acuerdo con las reglas de propagación de contaminación definidas en §4.4, se actualiza un estado, que se compone de estructuras de datos como la información EVM, memoria, almacenamiento y mancha. Cuando se encuentra Jumpi, Avverifier emplea el enfoque de selección de ruta basado en la heurística. El estado remaining de cada ruta se enviará al detector. Una vez que una función se etiqueta como susceptible, el bucle interno se irá a la siguiente función para mejorar la eficiencia del análisis.

Detector de vulnerabilidad. Aprovechando el estado producido por el simulador, todos los estados se someten a una verificación trifásica como se introdujo en §4.5. Si algún estado puede pasar las tres fases, es decir, susceptible, se volverá al simulador de inmediato.

Configuración experimental. Los experimentos se realizan en un servidor central 48 equipado con dos procesadores Intel Xeon 6248R, acompañados de 256 GB de RAM, mientras que su limitación de tiempo para cada contrato es de 10 minutos.

Respondemos las siguientes preguntas de investigación (RQS):

RQ1 ¿Es el averificador eficiente y efectivo para identificar la vulnerabilidad de verificación de direcciones?

RQ2 ¿Cuántos contratos inteligentes son vulnerables en la naturaleza y cuáles son sus características?

RQ3 ¿Se puede implementar el averificador como un sistema de detección en tiempo actual?

Para responder a RQ1, lanzamos Avverifier y cuatro herramientas de referencia en un punto de referencia bien construido y contratos del mundo actual en la naturaleza, que van desde el bloque Genesis hasta el que tiene una altura de 17,421,000, creada el 6 de junio de 2023, alrededor de 59 millones de contratos en complete. Entre estos contratos, consideramos los que están involucrados en al menos una transacción como la que vale la pena analizar uno. Por lo tanto, 5,158,101 contratos inteligentes permanecen como candidatos. Para responder a RQ2, caracterizamos los contratos vulnerables desde diferentes perspectivas, por ejemplo, número de transacciones y tokens involucrados. Para responder a RQ3, hemos implementado averificador en Ethereum y BSC [20]una conocida plataforma blockchain comparable a EVM con la capitalización de mercado como $ 37.7 mil millones [24]. Completamente tenemos su usabilidad y escalabilidad de ser un detector en tiempo actual.

Autores:

(1) Tianle Solar, Universidad de Ciencia y Tecnología de Huazhong;

(2) Ningyu He, Universidad de Pekín;

(3) Jiang Xiao, Universidad de Ciencia y Tecnología de Huazhong;

(4) Yinliang Yue, Laboratorio Zhongguancun;

(5) Xiapu Luo, la Universidad Politécnica de Hong Kong;

(6) Haoyu Wang, Universidad de Ciencia y Tecnología de Huazhong.


fuente

LEAVE A REPLY

Please enter your comment!
Please enter your name here