lunes, julio 31, 2023

De Hacker a Developer. Pablo González entrevista a Brais Moure

Hoy, último día del mes de Julio, os voy a dejar la última de las entrevistas que llamamos "De hacker a hacker" donde tenemos a dos hackers con el súper poder de enseñar muy bien a otros, aunque en este caso se trata de un "De hacker a developer". Se trata de - sí, nuestro compañero - Pablo González - que hace de entrevistador - y el gran Brais Moure, hablando de justo eso, aprender y tener una actitud hacker con tu educación, sobre el trabajo y la pasión de enseñar y comunicar. Y de hacer lo que te gusta, que yo lo conocí por nuestra afición común a los Todopoderosos a los que él les hizo la app TPCast que puedes ver y descargar aquí.
La charla dura 50 minutos, y os la he subido a mi canal de Youtube para que la podáis ver - o escuchar - mientras trabajáis, o mientras estáis relajados, que además ambas personas tienen ese capacidad de divulgar como pocos. Brais Moure tiene una historia preciosa de buscar su camino, hacerlo desde su lugar de origen, que es una maravilla para aprender a vivir.

Figura 2: Contactar con Pablo González

Puedes además contactar con ellos de forma privada utilizando sus buzones públicos en la plataforma de MyPublicInbox. Sus cuentas son las que ves en la Figura 2 y la Figura 4 para que contactes con Pablo González y Brais Moure.

Figura 3: Entrevista de Pablo González a Brais Moure

En la charla, hablan de muchas cosas que tienen que ver con formarse, aprender técnicas de desarrollo de aplicaciones, cómo estudiar, practicar, dónde, y cómo conseguir avanzar en esta profesión de programación teniendo una actitud muy hacker. Y sobre todo, como seguir tu camino con las cosas que a ti te gustan.
Y nada más, que ya estamos en pleno verano contando minutos cada uno para cortar un poco de tanto trabajo... y a los que estáis ya de vacaciones, pues que lo disfrutéis a tope.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


domingo, julio 30, 2023

Office 365: Cómo reducir el spam y el ruido en tu e-mail y sacar más tiempo a tu vida.

Hace tiempo que gestiono y mis buzones de correo electrónico y mis redes sociales en modo "Whitelist" o "Lista Blanca". Es decir, no contesto ningún mensaje de correo electrónico que no venga de alguien que tenga en mi lista blanca de contactos. Personas con las que trabajo en mi compañía, o colegas con los que llevo años colaborando de manera fluida. Todos los demás, son borrados y bloqueados, porque mi buzón de correo es una herramienta de trabajo que tiene que serme útil para sacar mis tareas y permitiendo que cualquiera pueda robarme tiempo y atención escribiéndome un e-mail no me ayudaba a eso.

Figura 1: Office 365: Cómo reducir el spam y el ruido
en tu e-mail y sacar más tiempo a tu vida.

Para todo lo demás, tengo un canal de comunicaciones abierto a todo el mundo, donde todo el que quiera para algo que sea importante para él, que quiera presentarme algo, invitarme a algo, o contarme algo, puede hacerlo. Es un canal que, como los otros, también gestiono en Inbox Zero, es decir, que contesto en un plazo de tiempo súper corto: Es mi buzón de MyPublicInbox, donde está abierto a todos.
Gracias a esta disciplina de trabajo con mi correo electrónico y redes sociales, yo hago Inbox Zero, si no todos los días, casi todos los días, dejando que las tareas importantes de mi trabajo se lleven mi tiempo, y no contestar mensajes. Y para ello, la regla número uno es proteger qué correos entran en tu buzón de Office 365, especialmente desde que hay empresas que se dedican a vender tu contacto, como la empresa que os conté que vendía mis datos y con la que tuve mis más y mis menos.

Protegiendo los correos que entran en el inbox de mi Office 365

Así, cuando llega un mensaje a mi buzón de correo electrónico personal o del trabajo de alguien que no está en mi "Whitelist" de destinatarios, he configurado una regla que envía un mensaje de respuesta que dice:

[Respuesta Automática - English below ] 

¡Hola! 

Gracias por contactar conmigo, pero como bien sabes, el tiempo es oro, y para proteger el mío, te escribo este mensaje automático para informarte de que este buzón solo acepta los mensajes que están dentro de la lista blanca. Y esta dirección no está entre ellas. 

No respondo mensajes por este buzón ni ninguna otra plataforma social. Este tipo de mensajes los contesto a través de la plataforma de comunicaciones responsables con el tiempo de las personas MyPublicInbox, donde tengo un buzón público en la siguiente dirección. 

    https://www.mypublicinbox.com/ChemaAlonso 
 
Si quieres proponerme algo, tener una reunión de trabajo, o buscar oportunidades de colaboración juntos, no dudes en contactarme. Puedes reservar tiempo para una reunión virtual conmigo aquí: 

    https://www.mypublicinbox.com/chemaalonso/videocall

Espero que comprendas que el tiempo que puedo dedicar a responder mensajes diariamente es muy limitado. 

¡Gracias! 

[English Version] 
 
Hi! 
 
Thanks for reaching me, but as you probably know, time is gold, and to protect mine, this is an automatic reply to inform you that I do only answer messages from a whitelist, and your address is not on it. 
 
I do this kind of communications using MyPublicInbox, a responsible communications platform. I have a public Inbox at: 
 
    https://www.mypublicinbox.com/ChemaAlonso 
 
You can also book time in my agenda for a Virtual Meeting here: 

    https://www.mypublicinbox.com/chemaalonso/videocall 
 
If you want to propose a collaboration, a meeting, or any professional opportunity, you can reach me there. I hope you may understand my daily time to answer messages is limited and I need to protect it. 

Thanks!

Al final, es una manera directa para contactar conmigo, pero claro, está protegido por Tempos, que es lo que defiende mi tiempo. Una barrera insalvable para quien realmente no tiene tanto interés en mi tiempo como para no contactarme, así que me ayuda mucho. 

Figura 3: En las opciones del correo de Office365 sólo se puede
bloquear a nivel de e-mail address y no a nivel de dominio.

Además de la respuesta, la regla de Office365 me envía el mensaje a una carpeta donde puedo revisarlos antes de bloquearlos, y es aquí donde comienza lo que os quería contar, ya que el bloqueo, como podéis ver en la imagen anterior es a nivel de e-mail address ni a nivel de domino. Claro, esto los spammers profesionales se lo saben y utilizan diferentes e-mail addresses con el mismo dominio para ir cambiando y evitando los bloqueos. 

Bloqueando dominios de correo en Office365

Queriendo evitar esto, después de haberme dado cuenta de que varios tipos de correo los había bloqueado, decidí revisar si era mi imaginación, o estaban haciéndome este truco, así que para saber si esto te ha pasado, es tan sencillo como irse a las Opciones de Configuración de Office 365 e ir a la parte de "Junk e-mail" para buscar por el dominio que crees que has bloqueado varias veces, y buscar ese dominio a ver si es cierto que está haciendo el cambio de e-mail address para cada nuevo envío.

Figura 4: Ahí está, cada envío al mes, un nombre nuevo.

Pues nada, desde esa misma pantalla de configuración, puedes bloquear directamente un dominio, así que cuando te pase esto, al zurrón y todos a la playa para próximos envíos, que esto es algo muy común de los más "heavy spammers".

Figura 5: Bloquear un dominio de correo en Officer365

Para hacerlo basta con poner el nombre del dominio y luego darle al botón de +Add y listo. Ya te has zapado todos los remitentes de ese dominio. 

Revisando la Cuarentena con Defender

Claro, puede pasar que en una de estas se te haya ido la mano y hayas bloqueado algo gordo que quieras revisar. Para ello, además de irte a ver las direcciones de correo electrónico y los dominios que has bloqueado en las opciones del Mail en Office 365 (la ruta de la Figura 5), puedes irte a Microsoft 365 Defender a ver la carpeta de Cuarentena y revisar qué no te ha entregado el sistema de seguridad.

Ahí en la cuarentena puedes ver todos los correos que el sistema de seguridad de Microsoft 365 Defender junto con tus reglas de bloqueo han puesto en cuarentena durante 30 días, y buscar, si quieres, a ver si algo se te ha ido de madre por exceso de restricción.

Figura 7: Mi Cuarentena en Office 365

La verdad es que no me ha pasado nunca que haya algo en la Cuarentena que haya bloqueado por exceso de protección de mi tiempo, pero sí que es cierto que una vez al mes me paso a verlo por curiosidad, a ver si aprendo algo o puedo mejorar el sistema.  

Figura 8: Un mensaje de promoción en mi cuarentena

Ahí puedes revisar el correo, mirar el mensaje original, las cabeceras, revisar los resultados de las pruebas de SPF, el DKIM, el DMARC, y ver el valor SCL (Spam Confidence Level) que ha recibido cada mensaje para acabar en esa carpeta, como podéis ver en este caso.

Figura 9: SCL 9. Todo un sobresaliente como Spam

Por supuesto, lo puedes liberar de la cuarentena, bloquear o desbloquear ese remitente (si no lo tenías bloqueado antes), etcétera, pero ya os digo que suele funcionar todo bastante fino.

Figura 10: Acciones con los mensajes en la cuarentena

Al final, lo que me sucedía es lo que probablemente os pasa a muchos de vosotros. Habéis interiorizado la tarea de hacer esto manualmente, y os pasáis el día borrando mensajes de correo, leyendo mensajes de gente que os roba tiempo por el e-mail, de una manera tan rutinaria que ya no sois conscientes de la cantidad de tiempo que perdéis en ello. Yo decidí trabajar en proteger mi e-mail y para mí es gestionar el buzón no es algo que me quite casi tiempo, donde además yo tengo un montón de reglas para evitar la burocracia personal. Leeros este artículo de hace tiempo.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


sábado, julio 29, 2023

DeFi (Decentralized Finance): Qué es Staking y por qué se generan Tokens.

En el mundo Web3, los modelos de Tokenomics, permiten aportar valor a una Dao o en Dapp realizando determinadas acciones necesarias para mejorar el negocio. Así como tú aportas valor y formas parte de la red que hace que funcione la empresa, servicio, compañía o entidad autónoma distribuida, parte de ese valor es compartido contigo. Esa es la esencia del Tokenomics en el mundo Web3. Tú generas valor, tú recibes valor, y hoy, después del anuncio de nuestro acuerdo entre Celo y Telefónica, quería explicaros cómo funciona el Staking.

Qué es Staking y por qué se generan Tokens.

En el ejemplo que uso yo para explicar esto, lo hago con una red de talleres, donde los que dan el servicio de reparación de talleres, los que hacen "referals" en Internet para promocionar los servicios de la red, o los que invitan a nuevos miembros de la red de talleres, también generan valor, y también reciben su valor en forma de Tokens de la empresa.

Pero el ejemplo más claro de esa compartición de valor es la propia infraestructura de BlockChain, donde existe un ciclo de valor muy claro en forma de Tokens. Escribir en la cadena de bloques cuesta Tokens, y los que ayudan a calcular los bloques y mantener su seguridad, son premiados por su trabajo en forma de Tokens
Así, para que una cadena de Blockchain tenga bloques que vender en forma de transacciones que se van a grabar en él, debe existir una serie de roles que deben trabajar para la generación de esos bloques, y para hacerlo de forma distribuida garantizando los principios de integridad, disponibilidad y transparencia que definen a estas infraestructuras de bloques.

Modelos Proof-of-Work y Proof-of-Stake

El incentivo en forma de Tokens de la cadena de bloques como forma de premiar a individuos a trabajar en la generación y validación de bloques hace que la demanda por ser uno de los elegidos para validar el bloque sea alta. Es decir, que haya muchos individuos esperando a ser el que valide el siguiente bloque de la cadena y gane Tokens

Pero para garantizar que los bloques no los genera siempre el mismo, y garantizar que la cadena de Blockchain no cae en un problema de seguridad al tener a un individuo validando más del 51% de los bloques, lo que podría ser un riesgo para la integridad de los datos de  infraestructura, se necesita tener un algoritmo de selección del siguiente nodo o grupo de nodo que va a validar el siguiente bloque. Y ahí nacen diferentes estrategias.

La estrategia utilizada en la cadena de bloques de BitCoin es el famoso Proof-of-Work, donde la competencia se salda por medio de la demostración de haber realizado muchos cálculos para ser el elegido. Este algoritmo - y perdonadme por la metáfora -, es como tener a todos los candidatos a ser elegidos haciendo flexiones, y el que más flexiones haga o las haga en menos tiempo, es el elegido. La ventaja es que sirve para descubrir y tener un mapa de los equipos más potentes para cálculos, y que sea ese el que realice los cálculos y validaciones que necesita la cadena. 

Además, el algoritmo de BitCoin resuelve correctamente por primera vez el problema de los Generales Bizantinos. Si queréis conocerlo en detalle, os recomiendo encarecidamente el libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo que fue uno de los que me inició a mí en este mundo, y que además se entrega en el Web3MBA de Bit2Me.
Este algoritmo genera mucha controversia por el alto consumo energético innecesario que fomenta, lo que no es bueno para nuestro deseo de cuidar el medioambiente, así que estos algoritmos de PoW se han ido reemplazando por otro tipos de algoritmos más acorde con el objetivo de la cadena, y más cuidadosos con el consumo de energía, como son los algoritmos de Proof-of-Stake o PoS.

En este caso, demostrar el compromiso con la cadena se demuestra no trabajando mucho, sino teniendo inversiones en la criptomoneda o el Token de la propia cadena. Es decir, el algoritmo, buscando siempre garantizar la seguridad, integridad, disponibilidad y transparencia de la cadena, tiene un algoritmo para seleccionar al próximo nodo o grupo de nodos que va a ser elegido para resolver y validar el bloque de entre los que demuestran que tiene más compromiso con la cadena teniendo posesión de muchos tokens de esa cadena. 

Así, si quieres ser un validador de bloques de la BlockChainA que tiene el TokenA como forma de pagar cuando se escribe en el BloqueA, entonces, el nodo que quiere ser elegido tiene que tener un Wallet con TokensA. Y así, podrá ser parte de los "elegibles" para validar el siguiente bloque, y poder ganar TokensA cuando haga su trabajo. Esto, hace que no tengas que estar haciendo flexiones y gastando energía, sino sentado en una silla enseñando tu cartera con tus tokens al algoritmo de consenso que va a seleccionar al siguiente que va a hacer el trabajo y ganar sus tokens por ello.

Para que sea mayor el compromiso, todos los que quieren ser elegidos deben tener sus Tokens de A bloqueados, y es a este proceso al que se llama Staking. Es decir, tus Tokens de A no podrán utilizarse en transacciones mientras que estén en un nodo validador elegible de la BlockChainA. Estarán bloqueados.

Tipos de algoritmos de Proof-of-Statking

Las cadenas más importantes hoy en día, tipo Ethereum, Solana, o Celo (que es en la que hemos decidido participar desde Telefónica como nodos validadores), tienen algoritmos PoS, por su respeto con el medio ambiente, pero existen diferencias entre los algoritmos de PoS que se utilizan, y esto es importante también para entender el modelo de generación de tokens en cada una de esas cadenas. 
Por ejemplo, existen los algoritmos de PoS que premian las candidatos más ricos en tokens de la cadena. Es decir, si tienes la billetera con más tokens de la cadena a la que eres candidato a ser elegido para validar bloques, entonces tienes más probabilidades de ser el siguiente elegido. Esto ha generado que algunas empresas hayan generado, para esas cadenas grupos de Staking, uniendo tokens de muchos pequeños poseedores de tokens, para generar un nodo validador conjunto con todos los tokens juntos para que sea un buen candidato. Cuando más tokens se acumulen, más probabilidad de ser elegido, más bloques se validarán, más tokens se generarán, y más valor se reparte entre todos los que hacen "staking" conjuntamente.

Ese no es el único modelo PoS, como ya he dicho, y hay otros que hacen modelos mixtos. Por ejemplo, en algunas cadenas como Celo, tines que tener un número concreto de Tokens en Staking, y a partir de ahí se elegirá en un proceso cíclico. Esto hace que cuanto más rápido se consuman los bloques de la cadena, más veces te tocará validar nodos, y más tokens obtendrás, haciendo que todos los nodos validadores sean socios estratégicos que tienen un interés de uso de la cadena. Es una forma de participar no solo de los casos de uso que se creen sobre la cadena de Blockchain, sino del éxito de la misma.
Y por supuesto, hay algoritmos de PoS mixtos donde se exige un mínimo de staking, se premia tener más Tokens, pero se garantiza un ciclo entre todos los miembros, para incentivar el consumo de bloques mediante la creación de casos de uso de todos los nodos validadores participantes. Una estrategia de repartir el valor entre todos, tan común en el mundo Web3.

Por último, hay que agregar varias ideas. La primera es que cuando se hace Staking, se puede hacer incluso con Wallets desconectados de la red que se conectan físicamente a los nodos validadores, a lo que se conoce como Cold Staking. La segunda idea es que ser un nodo validador que hace Staking obliga a responsabilidades, y si tu nodo no está funcionando cuando le toca, puede haber penalizaciones, por lo qu la infraestructura elegida exige responsabilidades y SLAs. La tercera idea que te tienes que quedar es que hacer Staking de nodos de una organización (sea o no una cadena de bloques) también se utiliza para toma de decisiones de gobernanza de una DAO, así que puede ser que haya momentos en los que se pueda ganar tokens solo por cederlos a alguien con intereses en decisiones de gobernanza, pero de eso ya hablaré en otro artículo.

DeFi: Staking

Visto todo lo anterior, es más fácil entender cuando a un usuario se le ofrece en una entidad de Finanzas Descentralizadas o DeFi (Decentralized Finance), como es el caso de Bit2Me, participar en modelo de "inversión" en Staking. En estos casos, tienes que tener en cuenta que tus Tokens van a ser cedidos a la compañía que crea el nodo validador para generar más tokens, y que estos van a ser repartidos entre todos los miembros que participen.
En esos caso, lo que hacen estas compañías es justo lo explicado en el caso anterior. Si tienes en tu Wallet Tokens de Solana, Ethereum, Cardano, o cualquier otra cadena de bloques Proof-of-Stake, puedes ceder tus tokens a un nodo validador que se vaya a crear en una entidad DeFi. Aquí tienes los tokens soportados para Staking en Bit2Me.

(hay muchos más en la lista)

Por supuesto, solo valen los tokens que sean de cadenas de Blockchain, porque si tienes tokens de una Dapp o Dao que los usa como Tokenomics de sus servicios, no hay necesidad de validar ningún bloque ahí, aunque existen otros modelos DeFi con ellos que os contaré en otro artículo. Así que solo valen para hacer Staking aquellos que sean necesarios en los algoritmos de Proof-of-Stake. Si quieres, puedes aprender más sobre esto en los cursos gratuitos de Bit2Me Academy.

Si vas a ceder tus Tokens de estas cadenas, la recomendación es que no lo hagas con cualquiera, y que lo hagas con entidades legales de garantías, y que te den mucha confianza. Si quieres probar a hacer Staking, mi recomendación es que pruebes Earn de Bit2Me que tienen este servicio en su plataforma, y tienen un estricto control de en qué cadenas participan para hacer PoS, y controlan los nodos validadores directamente. 

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


viernes, julio 28, 2023

Level_Up!: El WriteUp del reto "Origin" y un nuevo reto "Guess my number"

En el equipo de IdeasLocas seguimos con el objetivo de publicar un nuevo reto en nuestra plataforma de retos de Web3 llamada Level_Up!. Por esta razón, hoy traemos dos cosas, un nuevo WriteUp para el reto número 5, el reto Origin, y un nuevo reto, el cual será el 14 denominado "Guess my number". Es decir, hoy traemos dos cosas en un sólo artículo.

Figura 1: Level_Up!: El WriteUp del reto "Origin"
y un nuevo reto "Guess my number"

Comenzaremos hablando sobre el reto "Origin", el cual tiene una dificultad de 3 sobre 5. Aunque la dificultad, podemos decir que es media, veremos que hay que utilizar algunos conceptos para la solución que puede ser no tan sencillo de primeras, sobretodo si no hemos visto estos conceptos a priori.


El reto Origin, el cual trataremos en el writeup, permite al usuario trabajar el concepto de vulnerabilidades asociadas a phishing o engaños, así como vulnerabilidades que nos penalizan los controles de autorización incorrectos o utilizar mecanismos no recomendables. Ya hemos hablado sobre estos conceptos en este artículo del blog sobre tx.origin y ataques de phishing.

WriteUp del Reto "Origin"

El reto como siempre muestra una serie de pasos y tiene como objetivo trabajar sobre una vulnerabilidad que tiene el contrato. En uno de los pasos se nos dice que nos fijemos en la función transfer. Esta función recibe una dirección a la que se puede enviar fondos o se quiere enviar fondos y una cantidad de fondos a transferir.

Revisando la función de transfer podemos ver que el require solicita que el tx.origin sea igual al owner del contrato. Esto quiere decir que el que origina la transacción debe ser igual al owner. Si pasamos ese require la variable winner pasaría a valer el valor del msg.sender.

Figura 3: Función "transfer"

Aquí hay dos cosas, diferencia entre msg.sender y tx.origin y por qué importa colocarse cómo winner. Vamos a empezar viendo la variable winner. Si se revisa la función getFlag() se puede ver que el contrato del reto Origin debe tener el balance a 0 y el winner debe ser igual al que invoca la función.

Figura 4: Función getFlag()

Entonces, tenemos que dar solución a dos cosas: primero, comprobar que el balance del contrato Origin no es 0 y conseguir extraer los fondos, así como conseguir ser el winner. Si revisamos la función Transfer comentada anteriormente, nos damos cuenta de que se puede conseguir las dos cosas en la misma función. Si conseguimos que tx.origin sea igual al owner del contrato conseguiremos ser el winner y conseguiremos extraer los fondos del balance, enviándose estos al msg.sender. Antes de avanzar, vamos a analizar cómo funciona msg.sender:
  • Tenemos un usuario A, un contrato A y un contrato B. El usuario A invoca una función del contrato A y éste invoca una función del contrato B.
  • El msg.sender en el contrato A será el usuario A, mientras que el msg.sender en el contrato B será el contrato A.
Como se puede ver el msg.sender es justo quién te invoca cómo función de un contrato. No ocurre lo mismo con el tx.origin:
  • Tenemos un usuario A, un contrato A y un contrato B. El usuario A invoca una función del contrato A y éste invoca una función del contrato B.
  • El tx.origin en el contrato A será el usuario A. En el contrato B el tx.origin (cuando es invocado por el contrato A) seguirá siendo el usuario A.
La variable tx.origin almacena la dirección que origina la posible pila de llamadas que puedan surgir. Esto es un problema de seguridad como se trató en el artículo sobre tx.origin. Cuando desplegamos el reto, nos damos cuenta que en la propia página del reto nos aparece lo siguiente:

Figura 5: Formulario en la página del reto

Esto es un formulario para indicar la dirección de un contrato y una caja de texto dónde incluir el ABI del contrato ‘a pelo’. Esto ya es una pista de que necesitaremos un contrato para poder solucionar el reto. Se entiende que el botón Verify Contract hará que el backend de Level_Up! se conecte contra la dirección del contrato e invoque una función denominada attack. Al invocar esa función la dirección pública del backend de Level_Up! lo está haciendo el owner del contrato Origin (que es quién desplegó el reto). Entonces ocurriría lo siguiente:
  • Backend level_up! (dirección pública) invoca contrato ataque (función attack). En este punto el tx.origin es la dirección pública de level_up!
  • El contrato ataque invoca la función transfer del contrato Origin. En el contrato Origin el valor tx.origin sería la dirección pública de level_up! por lo que se bypassea el valor del require que comprueba si tx.origin es igual al owner.
  • Se actualiza el valor de winner por la dirección del contrato de ataque.
  • Se envían los fondos del contrato Origin al contrato de ataque.
  • El usuario puede conseguir la flag a través de una función getFlag() que se dispone en el contrato de ataque, ya que el owner es el contrato de ataque y no el usuario.
Parece un poco enrevesado, pero entendiendo bien el concepto de tx.origin se puede ver el peligro de utilizarlo en procesos de autorización. A continuación, se dejan las funciones del contrato de ataque desplegado sobre la blockchain de Level_Up!
    function attack() public{
        scontract.transfer(owner,scontract.balanceTotal());
    }

    function getFlag() public view returns(string memory){
        return scontract.getFlag();
    }
El despliegue del contrato se puede hacer con Remix para este reto. Solo tenemos que sacar la dirección del contrato Origin, eso se puede hacer a través de las ‘dev tools’ en la página del reto con contract.address.

Figura 6: Despliegue del reto con Remix

Ahora, hay que quedarse con la dirección del contrato de ataque y el ABI. Son valores que se pueden obtener en Remix y pasárselo al formulario en la página del reto.

Figura 7: Verificando la dirección del contrato del ataque

Tras verificar que todo va bien, fijaros el mensaje que nos devuelve el reto.

Figura 8: Transacción hecha

Ahora, podemos intentar recoger la flag desde el propio Remix o conectándonos al contrato de ataque desde la consola de Javascript

Figura 9: Recogemos el flag

Recogemos el flag y lo podemos validar en la plataforma a través de la instrucción base.validateFlag(contract.address).

Nuevo reto: Guess my number

Tenemos nuevo reto. El reto "Guess my number" nos trae una nueva experiencia Web3 en el que el usuario debe trabajar con datos a bajo nivel en temas de transacciones. Poder entenderlas mejor y quizá usar un poco de fuerza bruta para poder ayudarse en algún momento. Este reto es una evolución de snippet_delegated, el cual será resuelto, en principio en un par de meses.

Figura 10: Disponible el reto "Guess_my_number"

Ya tenemos un total de 14 retos y esperemos seguir publicando un reto mensualmente para que podáis seguir avanzando en conocimientos en la Web3 y en la parte de seguridad. 
Os animo a que probéis Level_UP! y os forméis en estas tecnologías, que van a ser parte de nuestro ecosistema tecnológico durante mucho tiempo, y hay que entender bien su funcionamiento, la piezas tecnológicas, la infraestructura y los riesgos de seguridad.


Recuerda que si quieres aprender de estas tecnologías, tienes Bit2Me Academy, que es una plataforma online para aprender de Web3, BitCoin, Tokenomics o Ethereum con cursos gratuitos además del libro dedicado a "Bitcoin: La tecnología Blockchain y su investigación" de Yaiza Rubio y Félix Brezo que seguro que te ayudan a ponerte las pilas.

Más artículos de Web3, Blockchain & SmartContracts
Saludos,

Autor: Pablo González Pérezescritor 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

jueves, julio 27, 2023

Humanos Sintéticos con Inteligencia Artificial

Me enviaron una invitación para ser ponente en Exponential Day #5 a mi buzón de MyPublicInbox, y al final acabé haciendo un hueco en mi agenda para poder estar en Barcelona el pasado 20 de Julio hablando del uso de Inteligencia Artificial para la creación de Humanos Digitales
Esta es una charla que se mantiene muy viva, ya que comenzamos esta andadura en el año 2018 con los primeros ejemplos de FaceSwapping en vídeos, y hemos visto como ha ido evolucionando la tecnología para conseguir los resultados que tenemos hoy en día de calidad tanto en las DeepFakes de personas que existen como en la construcción de Humanos Sintéticos que no existen. 


El vídeo de arriba es de la presentación de MetaHuman 2023, y es impresionante el nivel de calidad. ¿Te imaginas lo que vendrá en 2025? Y eso nos lleva a todo el trabajo que estamos haciendo con las técnicas de Detección de DeepFakes creando nuestro test de Voight-Kampff. Y de todo esto hablé en la charla que podéis ver ahora que lo he subido a mi canal de Youtube donde guardo todas mis charlas.


Figura 3: Humanos Sintéticos con Inteligencia Artificial

La verdad es que no tengo agenda para dar muchas charlas, pero cuando lo hago, disfruto como en pocos momentos en mi vida. Si alguna vez quieres invitarme a alguna charla, ya sabes que puedes contactar conmigo en mi buzón de MyPublicInbox para ello, que es por donde las proceso.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, julio 26, 2023

Las CodeTalks by IdeasLocas de este año 2023

En el pasado mes de abril continuamos con la segunda parte de la T06 de nuestros CodeTalks4Devs by  Ideas Locas. Ya llevamos varios años con estos pequeños vídeos de unos 20 a 25 minutos de duración donde contamos tanto nuevas tendencias en tecnología y ciberseguridad como nuestros proyectos que desarrollamos en el equipo de Ideas Locas.
Este año ya hemos publicado los cuatro capítulos que teníamos programados, cada uno hablando de un tema de actualidad distinto y mostrando, como siempre, su punto de vista más técnico para animarte a hacer tus propios proyectos.


Tienes todos los CodeTalks en esta web, desde los últimos publicados hasta el acceso a las cinco temporadas anteriores, pero vamos a comentar uno a uno los que tenemos publicados para que sepas un poco mejor el contenido de estos:

Episodio T06x04: Deep Fake Detector, detectando deepfakes

En este primer capítulo de la temporada, Fran Ramírez habla en profundidad de nuestra aplicación Deep Fake Detector o DFD. Este programa creado en Python y en Windows, está diseñado para integrar modelos que puedan detectar deepfakes pero siempre enfocado al a detección en tiempo real. 

Es decir, puedes abrir cualquier ventana que contenga un vídeo o una llamada de vídeoconferencia y con DFD es posible detectar si es una deepfake o no. Una aplicación que estamos desarrollando y ampliando todos los días y cada vez tiene más y mejores motores de detección.

Episodio T06x05: Web3 Evolution

El segundo capítulo de esta temporada habla de la Web3. En él, Chema Garabito hace una introducción desde cero a la Web3, pasando por su evolución hasta el día de hoy. También nos cuenta los requisitos y herramientas más utilizadas dentro del mundo del Web3 para que puedas iniciarte en caso de no estar familiarizado con esta tecnología.

Figura 5: Vídeo de Web3 Evolution

Un vídeo perfecto para una primera introducción y entender la Web3 además de sus componentes como DAO, Blockchain, SmartContract, etcétera.

Episodio T06x06: LevelUp. Juega y descubre las vulnerabilidades.

Pablo González nos habla de nuevo de Web3 pero esta vez con un enfoque distinto. Pablo nos cuenta en este CodeTalk una plataforma desarrollada por Ideas Locas llamada LevelUp! La cual nos ofrece un reto muy interesante, un “captura la bandera” o “capture the flag” (CFP) para aprender practicando, sobre la seguridad de la Web3 y en concreto de los SmartContracts


Figura 6: Vídeo Codetalk sobre Level_Up!

La plataforma tiene varios niveles con diferentes retos a superar que a su vez nos ayudan a obtener buenas prácticas a la hora de programar SmartContracts. Un vídeo que no te puedes perder si te interesa la seguridad de la Web3 o para aprender desde la base, a programar de modo seguro.

Episodio T06x07: Tkinter a PySide: Explorando Interfaces Gráficas en Python

Python es sin duda el lenguaje de programación de moda a día de hoy, principalmente por el auge de la Inteligencia Artificial, donde tiene una posición dominante. Pero en este CodeTalk, Álvaro Núñez-Romero nos habla de un tema muy interesante: cómo crear interfaces gráficas en Python. Esto es importante a la hora de hacer llegar a más gente nuestra aplicación, creando un entorno amigable, efectivo y visualmente atractivo para utilizar nuestro programa.


Figura 7: Vídeo de Tkinter a PySide, Explorando Interfaces Gráficas en Python

Pero además hace un repaso desde Tkinter, pasando por PyQT para centrarse en otro que quizás no es tan conocido como los anteriores, PySide. No te pierdas este vídeo si quieres aprender cómo hacer una interfaz gráfica para tu programa en Python.

Temas y Proyectos de Ideas Locas

Pues estos son los CodeTalks que tenemos publicados hechos en 2023. Cada mes seguiremos publicando un episodio de estos CodeTalks para mantenerte al día en estos temas tan importantes dentro de la tecnología, y encantados de que nos propongáis ideas locas, proyectos o temas que tocar.


Así que no te los pierdas, y nos veremos en el próximo episodio, y recuerda que tienes todas las Codetalks4devs en una sola lista de Youtube, para que las puedas ver seguidas una tras otra... 

Figura 9: Sección Apps, Educación y Cultura

Y si quieres verlas en la tele, recuerda que en la Sección APPS -> Educación y Cultura, tienes la Living App de las CodeTalks by Ideas Locas de tu Movistar+

Figura 10: Living App Codetalks by Ideas Locas

Solo debes entrar en ella y tendrás acceso a todos los Webinars que vamos realizando.

 
Happy Hacking Hackers!!! 

Autor: Fran Ramírez, es investigador de seguridad y miembro del equipo de Ideas Locas en CDO en Telefónica, co-autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps", también de "Machine Learning aplicado a la Ciberseguridad” además del blog CyberHades. Puedes contactar con Fran Ramirez en MyPublicInbox.

 Contactar con Fran Ramírez en MyPublicInbox

Entrada destacada

Tu Latch "Hack Your Innovation Contest": Haz un PoC & Hack por 1.000 €

El pasado Telefónica Innovation Day 2024 lanzamos oficialmente el " Tu Latch Hack Your Innovation Contest " en el que repartimos ...

Entradas populares