Técnicas de pivote para el Equipo Rojo

  • March 26, 2017
  • tuxotron
  • Pivoting

    El equipo rojo es el encargado de atacar la infraestructura objetivo. Aparte de la parte de recogida de información y demás, el primer reto es el penetrar en la red de alguna forma, ya sea aprovechando alguna vulnerabilidad en una aplicación web o algún otro sistema, a través de técnicas de ingeniería social, etc. Una vez dentro el objetivo es comprometer la red llegando a los servidores que controlan la misma. Para ello, el atacante primero debe conocer y tener una buena visibilidad de la red en sí. La forma en que esto se lleva a cabo es “pivotando” o “moviéndose lateralmente”. Esto es, desde el sistema o sistemas que tenemos comprometidos, empezar a explorar la red e ir saltando y mapeando su infraestructura. Esta tarea puede ser más o menos fácil dependiendo de la arquitectura de dicha red: segmentación, cortafuegos, etc.

    En esta entrada, su autor Artem Kondratenko, nos explica varias técnicas usadas por él mismo, muy útiles para pivotar, salvando algunos de los posibles obstáculos que nos podemos encontrar.

Laboratorios de prácticas con Docker

Diseño de sistemas

  • March 24, 2017
  • tuxotron
  • Diseño de sistemas

    Cuando alguien me pregunta en que consiste la programación, respondo que consiste, 80% es pensar y el 20% es escribir código. Desde mi punto de vista y experiencia, los errores de programación en comparación con los errores de diseño son ínfimos. Cambiar algunas líneas de código o re-escribir una función es mucho más fácil que un cambio en el diseño.

    El primer paso a la hora de diseñar un sistema es conocer el dominio del mismo, quién lo va a usar, cuántos usuarios va a tener, qué cantidad de datos vamos a manejar, tiene que ser escalable, qué tipo de persistencia necesitamos, etc. Una vez tenemos esos datos o al menos los sufuciente, es hora de crear algunos esquemas, identificar y diseñar los componentes principales del mismo. Luego, cada componente tiene sus problemas específicos, por ejemplo, si estamos hablando con una base de datos relacional, nos debemos preguntar cosas como: replicación, sharding, denormalización, etc. Si hablemos de bases de datos no relacionales, necesitamos bases de datos de documentos, pares de valores, en memoria, necesitamos mayor rendimiento en operaciones de lectura o escritura, etc. Lo mismo con el resto de componentes que podamos necesitar: cachés, colas de mensajes, seguridad, etc.

    Todo esto y más puedes encontrar en este proyecto llamado The System Design Primer alojado en Gtihub. En él se recogen todo tipo de información relacionada con el tema del diseño de sistemas. La información está muy bien organizado y es plena. El contenido está en forma de vídeos, esquemas gráficos, ejmplos reales de diseños comunes, etc. Dicha documentación es perfecta para el diseñador o arquitecto de sistemas y para aquellos que aspiron a ello. De hecho, parte de las motivaciones del autor del proyecto es el de la preparación para entrevistas de trabajo, sobre este tema obviamente.