viernes, julio 24, 2020

Bad Guys Never Sleep

El pasado martes impartí una charla en el evento de Synnex Westcon Comstor México junto con el equipo de seguridad de Cisco, y me pidieron que hablara un poco del mundo del cibercrimen y el hacking, así que me preparé un charla de cuarenta minutos que os dejo ahora subida a mi canal Youtube - donde tienes todas las que he sido capaz de recuperar de estos últimos veinte años dando conferencias -.

Figura 1: Bad Guys Never Sleep

Como hablar del mundo del cibercrimen y el hacking es un tema muy amplio, decidí centrarme en un ejemplo concreto, como es la estafa de los BitCoins usando famosos para enganchar a las víctimas haciéndolos creer que van a recibir el doble de lo que envíen a una wallet. Por supuesto, es una estafa ya antigua, y los cibercriminales la han ejecutado de diferentes formas:

- Atacanto a Twitter y robando las cuentas privilegiadas de los empleados.
 
 
- Robando cuentas verificadas y "pintándolas" como si fueran Elon Musk y otros famosos, como hacemos nosotros con nuestro Sappo para robar los tokens OAuth de Twitter y controlarlas totalmente. 

Al final, un mismo esquema de fraude lo han ido ejecutando de diferentes formas usando diferentes técnicas de hacking, así que me servía de hilo argumental perfecto para explicar cómo funciona el mundo del cibercirmen.


Figura 2: Bad Guys Never Sleep por Chema Alonso

Así que si quieres ver la charla, y tienes estos cuarenta minutos, te la dejo disponible por aquí. Lo más importante, si algún amigo, familiar o conocido te cuenta algo de BitCoins que le han dicho... dile que tenga cuidado con cómo gestiona su dinero.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

jueves, julio 23, 2020

Aplicaciones web escalables con el Patrón Arquitectónico "MicroFrontEnds"

La mayoría de las personas que estéis leyendo este artículo, habréis oído hablar o incluso trabajado con microservicios que llegaron para dividir la estructura de monolito en la parte BackEnd. Una división en partes más pequeñas que simplifican el despliegue, aumentan la escalabilidad de la aplicación y permiten la adopción de nuevas tecnologías dentro de un proyecto.

Figura 1: Aplicaciones web escalables con el Patrón Arquitectónico

Sabemos que es complejo realizar un desarrollo FrontEnd adecuado, y más aún cuando se trata de escalar un proyecto extenso y complejo donde trabajan varios equipos con una estructura frontal monolítica. Es en este punto donde ha llegado el patrón de tendencia este año, MicroFrontEnds, para dar solución a este tipo de problema. Este patrón arquitectónico bebe directamente de la filosofía de estructuración y tratamiento de los microservicios aunque está orientado al desarrollo FrontEnd

Figura 2: Evolución del patrón de arquitectura

MicroFrontEnds aparece en el radar de tecnología de ThoughtWorks en noviembre de 2016 como una técnica que surge de la necesidad de eliminar el monolito de la parte frontal de una aplicación web. En noviembre de 2017 se denomina esta técnica en estado de prueba. Por último, entre abril de 2019 y mayo de 2020 esta técnica termina por asentarse como un Patrón Arquitectónico.  

Figura 3: Libro de Hacking Web Technologies 2ª Edición en 0xWord de
Chema Alonso, Enrique Rando, Amador Aparicio, Pablo González y Ricardo Martín

Este patrón surge de la descomposición de un monolito frontal en partes más pequeñas y simples que pueden ser desarrolladas, probadas e implementadas de manera independiente. De tal forma, se observa una aplicación web como una composición de funcionalidades que se comunican entre sí. Dichas funcionalidades están desarrolladas por equipos independientes que conocen punto a punto la lógica de estas con las que están trabajando.

Figura 4: Organigrama de trabajo con MicroFrontEnds

Por lo tanto, los equipos tienen una base de código más pequeña que tratar y como resultado se obtiene una aplicación más sostenible y fácil de probar. Además de una mayor tolerancia a fallos y brechas de seguridad, ya que este patrón se desarrolla bajo la filosofía DevOps, aunque siempre se puede mejorar con prácticas de desarrollo de código seguro y seguir la corriente de las SecDevOps.

Figura 5: Libro de Docker:SecDevOps de 0xWord
escrito por Fran Ramírez, Rafael Troncoso y Elias Grande

Para entender mejor todo, estas sería las situaciones que resuelve este patrón:

- En determinados proyectos se requiere de la implementación de una aplicación web y puede que en el código de tu proyecto no encuentres el sitio adecuado para dicha implementación.

- Puede que quieras utilizar nuevas features de JavaScript en tu proyecto, pero estas no encajen con las herramientas utilizadas hasta el momento.

- Escalar tu desarrollo haciendo que varios equipos de trabajo puedan desarrollar en el mismo proyecto de forma simultánea.

Dada la independencia de estos MicroFrontEnds se obtienen resultados como mejores tiempos de carga, código con mayor accesibilidad, acotación de errores y, a mi parecer, la característica más interesante, despliegues independientes de las distintas funcionalidades. Lo que resulta una experiencia de usuario mejorada de cara a las actualizaciones en la aplicación web, ya que solo se actualizaría la funcionalidad en cuestión y no toda la aplicación. Este proceso, resultará transparente de cara al usuario final.

Técnicas de implementación.

Se utilizan varias formas de implementar este patrón a la hora de desarrollar una aplicación web, aunque existe un enfoque general entre todas las vías de implementación en el que un contenedor renderiza todos los elementos comunes de la página y orquesta aspectos como la autenticación y la navegación con los microfrontend. Estas son algunas de las implementaciones utilizadas con mayor frecuencia:

Iframes:

Dentro del contenedor principal cada microfrontend se alojará dentro de un iframe que puede residir en otro servidor. Aunque, puede resultar complejo realizar un diseño adaptativo al utilizar este tipo de elementos.

Figura 6: Implementación de MicroFrontEnds con iframes

Múltiples SPA alojadas en distintas URL:

La idea es alojar distintas SPA en las páginas de nuestra aplicación, esto hará que podamos introducir de forma sencilla esta arquitectura en proyectos ya iniciados, aunque la implementación de este patrón requerirá módulos externos para compartir las distintas funcionalidades de la aplicación.
 
Figura 7: Implementación de MicroFrontEnds con múltiples SPA en distintas URL

Single-SPA “Meta framework”:

Consiste en implementar varios frameworks trabajando en la misma página. Esto requiere de un constructor global para transpilar y orquestar las distintas funcionalidades.

Figura 8: Implementación de MicroFrontEnds con Single-SPA "Meta framework"

Aunque es una tecnología bastante reciente, el patrón de arquitectura basado en MicroFrontEnds es una solución que aporta muchas ventajas al ciclo SecDevOps y beneficios en aspectos como la escalabilidad, sostenibilidad, seguridad y despliegue de una aplicación de gran tamaño. 


Figura 9: Implementación del patrón de diseño MicroFrontEnds

Seguramente en un futuro próximo escuchemos hablar más acerca de este tipo de arquitecturas.  Aquí os dejamos un vídeo de cómo utilizar este patrón.

Referencias:


Autor: Luis E. Álvarez (@luisedev) es desarrollador y miembro del equipo Ideas Locas CDCO de Telefónica. 

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares