23 ene 2023

RootedLab: Pentesting a SmartContracts & Web3


Estamos a poco más de un mes de la RootedCON. Uno de los congresos de ciberseguridad más importantes a nivel europeo se celebra, en una edición más, en Madrid. Ya he contado en otras ocasiones las participaciones que he disfrutado en RootedCON, tanto a nivel de taller como a nivel de ponencia, por lo cual solo puedo sentir orgullo. Para este año, quería llevar un taller que me hiciera sudar y que me sacase de la llamada zona de confort. Hace tiempo que estoy interesado en el área del pentesting a Web3, especialmente a los SmartContracts. 

Hay que decir que, desde mi opinión, la Web3 abre un nuevo mundo lleno de oportunidades a los perfiles de Ciberseguridad. Para mí la ciberseguridad es una disciplina transversal a cualquier tecnología, ya sea nueva o no tan nueva. En cuanto una tecnología es utilizada y aporta un bien a la sociedad, la ciberseguridad la acompañará en su desarrollo, ya que sin ésta no podrá evolucionar o ganar la confianza de la gente. Dicho esto y observando el mundo laboral que nos rodea, se puede observar dos estrategias:

- Empresas del paradigma Web3 que buscan perfiles de Ciberseguridad para fortificar y auditar sus proyectos.
- Empresas del paradigma Web3 que forman a sus empleados en Ciberseguridad.

¿Qué camino creéis que es el adecuado? Si nos hacemos la pregunta de otra forma sería, ¿Es más sencillo que alguien del mundo Web3 aprenda todo lo necesario sobre Ciberseguridad? O, por el contrario, ¿Es más sencillo que a alguien con perfil Ciber se le enseñe Web3? Parece que los "tiros" van por el camino de "mejor traer gente con las habilidades de Ciberseguridad y enseñarles el entorno Web3". Para mí es el camino adecuado o el camino más corto para disponer de personas formadas y con conocimientos en Ciberseguridad en dichas empresas (y me consta que algunas empresas optan por ese camino). Dejamos el debate abierto, ya que cada uno puede exponer sus argumentos. 

Bien, dicho esto, el taller que se celebra el día 8 de Marzo en horario de 9.00 a 18.00 (quizá más, dependiendo cómo estemos de metidos haciendo pentesting a los SmartContract). Es un taller nuevo que se llevará a cabo por primera vez en RootedCON. Es un taller en el que el alumno podrá disfrutar de cero a conocer el mundo Web3. Es decir...

¿Qué ocurre si no tengo conocimientos previos, pero quiero conocer? 

El taller puede llevarlo a cabo cualquier persona, ya sea que tengas conocimientos previos en el tema o no. Tenemos la suerte de disponer de diferentes tipos de pruebas y de ejercicios por nivel, los cuales se pueden adoptar a cada alumno, en función de las necesidades técnicas de cada uno. De lo más básico a lo más avanzado. Dependerá del alumno!




Agenda


1- Introducción a web3 (blockchain, wallet/EOA, smart contract, transacciones, dapps, etc) 
    1.1- Relación web2 y web3 

2- Montaje entorno de pruebas y laboratorio 
(Montaremos un laboratorio de 0 en pocos minutos para ir realizando el taller sobre dicho laboratorio) 

3 - Clasificación de vulnerabilidades 
(éstas se explicarán de forma esquemática y se explicarán a través de contratos de ejemplo. Además, en algunos casos se ejecutarán dichos contratos en blockchain local para que el alumno pueda ver la vulnerabilidad paso a paso). 
Ejemplos de vulnerabilidades: Re-Entrancy, Denegación de servicio, Gas DOS, Tx.Origin, Ice-Phishing, Signature Replay, etc.

4 - Pruebas que verificar con análisis estático 
(aquí se estudian las pruebas mediante el uso de herramientas OpenSource como, por ejemplo, mythrhil o slither y se muestran ejemplos. También se estudiará el bytecode, los Opcodes y el ABI). Todo con enfoque práctico. 

5 - Pruebas que verificar con análisis dinámico 
(aquí se despliegan contratos sobre blockchain local o testnet y se lleva a cabo el uso de metodología para detectar vulnerabilidades a través de técnicas de interacción con las funciones, fuzzing, etc)

6- Durante las últimas 3 horas (o 4 horas si vamos bien de tiempo) se llevará a cabo ejercicios a través de plataforma CTF. Se disponen de diferentes tipos de pruebas para auditar contratos y diferentes escenarios. ¡Pentesting!


Anexo de info y contenidos

  • En este taller se mostrará cómo llevar a cabo un pentesting a SmartContracts (y web3) y cómo detectar vulnerabilidades realizando pruebas de tipo SAST y de tipo DAST. Se mostrarán propuestas de estándares y metodología para llevar a cabo estas auditorías. 
  • Además, se mostrarán algunas de las principales herramientas OpenSource para aplicar metodología en el mundo web3.
  • Se mostrará de forma práctica un entorno local dónde desplegar una blockchain, utilizar un Wallet y disponer de la posibilidad de desplegar de manera sencilla contratos. La idea es que el alumno se familiarice rápidamente con el laboratorio y con todas las herramientas (opensource) necesarias para crear el laboratorio. 
  • La base y la comprensión entre el cambio del mundo web2 al mundo web3 es importante, por eso se dota al taller de esta transición (mostrando paralelismos). La mayoría de los proyectos (en el mundo real) serán web2.5, dónde se juntan tecnologías web2 con tecnologías web3. El pentester deberá conocer ambos mundos para poder aplicar sus conocimientos sin las barreras de entrada de estos mundos.
  • Se expone una parte de metodología con el objetivo de facilitar las bases de auditoría y conocer las principales vulnerabilidades que existen en estos proyectos de web3 (focalizando energía en los SmartContract). Se explicarán técnicas de detección de vulnerabilidades basadas en SAST y DAST. 
  • Además, se utilizará una plataforma nueva (un CTF) para llevar a cabo algunas pruebas y ejercicios en el taller. Todas las pruebas son desarrolladas por el docente. Se expone una parte de metodología con el objetivo de facilitar las bases de auditoría y conocer las principales vulnerabilidades que existen en estos proyectos de web3 (focalizando energía en los SmartContract). Se explicarán técnicas de detección de vulnerabilidades basadas en SAST y DAST. 

¿Quieres saber más?

Si tienes dudas de la dinámica del taller, pregúntame! @pablogonzalezpe. Con muchas ganas de estar en este Lab y ver este aprendizaje guiado por retos. No dejes para el final tu plaza. Plazas limitadas ¡A por un gran día de entrenamiento y hacking!

No hay comentarios:

Publicar un comentario