Level_Up!: Web3 Security WarGames Para Los Amantes Del Challenge Based Learning
Recientemente se ha celebrado la RootedCON, uno de los eventos nacionales que más profesionales del sector reúne. Este año, desde IdeasLocas, hemos tenido una amplia participación. Teníamos muchas ganas de que llegara el evento y poder mostrar uno de los proyectos que más mimo hemos dado en los últimos tiempos y es que para nosotros Level_Up! es uno de los nuestros y es una plataforma que permite aprender y formarse en la seguridad de Web3 a través de diversos retos. En un artículo previo de este blog hemos mencionado ya algo sobre "Level_UP!: Una plataforma para aprender a hacer pentesting en Web3 (SmartContracts & BlockChain ) a través de retos hacking".
Pero, ¿de qué iba la charla? La charla tenía dos bloques diferenciados. En primer lugar, quería hablar sobre lo que los años de experiencia me han enseñado y es que las personas necesitan de pasión para tener motivación y la motivación hay que cultivarla a través de retos. En otras palabras, la charla sobre level_up! comenzaba hablando sobre la importancia del aprendizaje basado en retos o Challenge-Based Learning. En realidad, no es nada nuevo, en Ciberseguridad es una forma de aprendizaje que se lleva haciendo mucho y que cada vez aporta mayor adicción a estos temas a los alumnos. Digamos, una adicción sana :D
Antes de nada, quise realizar una breve descripción de los elementos de la Web3: Blockchain, Wallet, SmartContract, DApps, transacción… Elementos básicos que se tocan en un proyecto Web3. Además, expuse un ejemplo básico de DApp que interactuaba con un SmartContract y con la Blockchain de forma que fuera más sencillo para el asistente entender la interacción dentro de la Web3.
Una vez hablado de los diferentes elementos que existen en la Web3 y que pueden interactuar, comenté qué es la Web2.5 y cómo los elementos Web2 y Web3 pueden coexistir en un proyecto. Es más, Level_Up! es una plataforma 2.5, ya que hace uso de elementos de ambos mundos. En mi opinión, la Web2.5 tendrá un largo recorrido en los próximos años, ya que muchas de las operaciones off-chain se podrán llevar a cabo con estos elementos. La plataforma tiene los siguientes elementos que pueden verse en la imagen:
La arquitectura de Level_Up! funciona de la siguiente forma:
Después de la arquitectura se mostraron algunos flujos de interacción para que los asistentes entendieran qué pasos había que dar y en qué orden. En este esquema se pueden ver los elementos que aparecen en caso del registro de un usuario. Se puede ver la importancia que tiene el contrato base (el cual puede ser leído en la carpeta Contracts del proyecto y está disponible para que aprendáis más sobre este tema).
En el siguiente esquema se puede ver cómo funciona un despliegue de reto en la plataforma. Desde la DApp el usuario solicita un despliegue de reto al backend y éste ‘paga la fiesta’ haciendo y costeando el despliegue del reto para ese usuario. Para ello debe hacer una gestión con el contrato Base que es el que gestiona toda esta parte. El despliegue del contrato queda reflejado en la Blockchain y a partir de ahí el usuario debe resolver el reto propuesto en ese nivel.
El último flujo que vamos a ver es el de validar una flag. Cuando se consigue una flag se debe validar contra el contrato Base para conseguir los puntos asociados.
Vista la arquitectura y los flujos de interacción. se mostraron temáticas de algunos retos. Actualmente Level_Up! tiene 10 retos de diferente dificultad. Nos hemos marcado como objetivo publicar 1 o 2 retos nuevos cada mes, así cómo hacer un Write-up de un reto al mes, el cual se irá publicando en El lado del mal.
Iremos añadiendo retos y temáticas orientadas a que se conozca más las vulnerabilidades que pueden afectar a un SmartContract, aunque también podemos evolucionar a crear fallos en la propia DApp. Iremos contando el ‘roadmap’ de este proyecto en el que hemos depositado muchas ilusiones.
Por supuesto, tenéis disponible Level_Up! en su repositorio de GitHub. Os animamos a descargarlo y probarlo. Si alguien quiere añadir algún reto puede decírnoslo y estudiaremos su reto para añadirlo a la plataforma. Las ideas que tenemos con la plataforma son muchas, por lo que necesitaremos tiempo y paciencia para ir incorporando lo que creamos que es mejor para Level_Up!
Figura 1: Level_Up!: Web3 Security WarGames
para los amantes del Challenge Based Learning
Imagen Dall-e "painting of a hacker happy in picasso style"
Pero, ¿de qué iba la charla? La charla tenía dos bloques diferenciados. En primer lugar, quería hablar sobre lo que los años de experiencia me han enseñado y es que las personas necesitan de pasión para tener motivación y la motivación hay que cultivarla a través de retos. En otras palabras, la charla sobre level_up! comenzaba hablando sobre la importancia del aprendizaje basado en retos o Challenge-Based Learning. En realidad, no es nada nuevo, en Ciberseguridad es una forma de aprendizaje que se lleva haciendo mucho y que cada vez aporta mayor adicción a estos temas a los alumnos. Digamos, una adicción sana :D
Figura 2: Level_Up! en GitHub
Antes de nada, quise realizar una breve descripción de los elementos de la Web3: Blockchain, Wallet, SmartContract, DApps, transacción… Elementos básicos que se tocan en un proyecto Web3. Además, expuse un ejemplo básico de DApp que interactuaba con un SmartContract y con la Blockchain de forma que fuera más sencillo para el asistente entender la interacción dentro de la Web3.
Figura 3: Ejemplo de componentes Web3
Una vez hablado de los diferentes elementos que existen en la Web3 y que pueden interactuar, comenté qué es la Web2.5 y cómo los elementos Web2 y Web3 pueden coexistir en un proyecto. Es más, Level_Up! es una plataforma 2.5, ya que hace uso de elementos de ambos mundos. En mi opinión, la Web2.5 tendrá un largo recorrido en los próximos años, ya que muchas de las operaciones off-chain se podrán llevar a cabo con estos elementos. La plataforma tiene los siguientes elementos que pueden verse en la imagen:
Figura 4: Elementos de Level_Up!
La arquitectura de Level_Up! funciona de la siguiente forma:
- Tenemos una DApp que muestra el sitio web y que permite interactuar con el Wallet (recomendado usar Metamask con la plataforma).
- La DApp permite:
- Registrar usuarios.
- Desplegar retos.
- Validar las flag obtenidas y conseguir los puntos asociados al reto.
- Visualizar qué retos ha conseguido un usuario.
- Visualizar las puntuaciones globales de todos los usuarios que están dados de alta en la plataforma.
- La DApp puede interactuar directamente con los SmartContracts de los retos desplegados a través de un objeto ‘contract’ que puede ser utilizado desde las DevTools del navegador.
- La DApp puede interactuar directamente con el contrato Base. Este contrato es el que gestiona el alta y baja de jugadores en la plataforma, el que registra qué retos tiene desplegados un usuario y qué flags ha logrado un usuario. En otras palabras, habrá que validar las flags obtenidas contra este reto.
- Los cambios persistentes quedarán en la blockchain, pero habrá otra información que se almacena en un backend (off-chain) que almacena la dirección de los contratos desplegados, así como los usuarios que están jugando esos niveles. De esta forma se consigue que al levantar la plataforma todo sea más rápido y se evita hacer más transacciones contra la Blockchain.
Figura 5: Arquitectura híbrida de Level_Up!
Después de la arquitectura se mostraron algunos flujos de interacción para que los asistentes entendieran qué pasos había que dar y en qué orden. En este esquema se pueden ver los elementos que aparecen en caso del registro de un usuario. Se puede ver la importancia que tiene el contrato base (el cual puede ser leído en la carpeta Contracts del proyecto y está disponible para que aprendáis más sobre este tema).
Figura 6: Flujo de interacción
En el siguiente esquema se puede ver cómo funciona un despliegue de reto en la plataforma. Desde la DApp el usuario solicita un despliegue de reto al backend y éste ‘paga la fiesta’ haciendo y costeando el despliegue del reto para ese usuario. Para ello debe hacer una gestión con el contrato Base que es el que gestiona toda esta parte. El despliegue del contrato queda reflejado en la Blockchain y a partir de ahí el usuario debe resolver el reto propuesto en ese nivel.
Figura 7: Flujo de despliegue del SmartContract
El último flujo que vamos a ver es el de validar una flag. Cuando se consigue una flag se debe validar contra el contrato Base para conseguir los puntos asociados.
Figura 8: Flujo de validación de flag conseguida contra el contrato Base
Vista la arquitectura y los flujos de interacción. se mostraron temáticas de algunos retos. Actualmente Level_Up! tiene 10 retos de diferente dificultad. Nos hemos marcado como objetivo publicar 1 o 2 retos nuevos cada mes, así cómo hacer un Write-up de un reto al mes, el cual se irá publicando en El lado del mal.
Figura 9: Retos para Level_Up! que se irán publicando
Iremos añadiendo retos y temáticas orientadas a que se conozca más las vulnerabilidades que pueden afectar a un SmartContract, aunque también podemos evolucionar a crear fallos en la propia DApp. Iremos contando el ‘roadmap’ de este proyecto en el que hemos depositado muchas ilusiones.
Figura 10: Libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo |
Más artículos de Web3, Blockchain & SmartContracts
- Blockchain & SmartContracts: Una serie para aprender
- BlockChain & SmartContrats: Primer SmartContract con Solidity
- Blockchain & SmartContracts: Cómo probar y desplegar un SmartContract en Ethereum
- WWW, Web 1.0, Web 2.0, Web 3.0, Web3 y ¿Web 4.0?
- Metaverso, multiverso y las tierras digitales en que vivimos en forma de avatar
- Los Fan Tokens vs. las Criptomonedas y los NFTs: Level 101
- Tokenomics: Las criptomonedas y las "Proof-of-work": Level 101
- Los NFTs y el registro mundial de los dueños de activos digitales en el Metaverso
- BitCoin: Blockchain y su investigación
- BlockChain & SmartContrats: El Internet descentralizado y el almacenamiento off-chain en IPFS
- Reentrancy Attack: Cómo te roban criptomonedas por un bug en tu SmartContract
- BlockChain & SmartContract: Bugs que pueden dejar tu SmartContrat "fuera de juego"
- Blockchain & SmartContracts: Patrones y buenas prácticas de seguridad
- Blockchain & SmartContracts: Herramientas de Auditoría de Seguridad de SmartContracts
- BlockChain & SmartContracts: Ataque de phishing a tx.origin y robo de criptomonedas
- BlockChain & SmartContracts: Ataques de Ice Phishing
- Blockchain & SmartContracts: Herramientas de análisis dinámico
- ZIION: Una distribución Linux para auditar SmartContracts (& BlockChain)
- Dominios Web3 en Etherenum Name Service y la trazabilizad de las transacciones Blockchain
- BlockChain & SmartContracts: Actualizar SmartContracts como los grandes protocolos
- Jumping level up (from) web2 (to) web3: Vulnerabilities & SCAMs - SmartContracts
- 20 millones (Euros) en Tokens de Optimism perdidos por no saber cómo funcionan los Wallets Multifirma
- BlockChain & SmartContracts: Cómo crear una DApp de la Web3 con Python (y Flask)
- Pentesting SmartContracts: From Web2.0 to Web3
- Tokenomics 101: Una explicación con gráficos
- Read-Only Reentrancy Attack: $220k robados y otros +$100M en riesgo
- Como utilizar ChatGPT para encontrar bugs en SmartContracts
- Level_Up! en su repositorio de GitHub
- Level_UP!: Una plataforma para aprender a hacer pentesting en Web3 (SmartContracts & BlockChain ) a través de retos hacking
- Level_up!: Web3 Security WarGames para los amantes del Challenge-Based Learning
Saludos,
Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root", “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica. Para consultas puedes usar el Buzón Público para contactar con Pablo González
Contactar con Pablo González |
Via: www.elladodelmal.com
Level_Up!: Web3 Security WarGames Para Los Amantes Del Challenge Based Learning
Reviewed by Zion3R
on
2:51
Rating: