Fundamentos y configuración del laboratorio
Fundamentos de la ciberseguridad
Para poder hablar sobre la seguridad de los sistemas de información y PowerShell, es necesario introducir los conceptos fundamentales de la ciberseguridad. Estos conceptos serán esenciales en el resto del libro, con el fin de comprender mejor los desafíos y consecuencias de las acciones técnicas que se abordarán.
La primera parte de este capítulo servirá como recordatorio o visión general de los principales conceptos y actores de la seguridad de los sistemas de información. A continuación, nos centraremos en los desafíos para PowerShell y en la instalación de un entorno de prueba virtual que represente una infraestructura de una pequeña empresa, el cual se utilizará en los ejercicios a lo largo del libro.
1. El riesgo y los compromisos de seguridad a lo largo del tiempo
Para empezar, ¿qué es un sistema de información (SI)? Un SI es un objeto complejo por naturaleza, compuesto por una acumulación de componentes técnicos antiguos y modernos; por lo tanto, más o menos obsoletos y, en consecuencia, más o menos fáciles de atacar.
El sistema de información no se limita al entorno informático de oficina y a los equipos de trabajo de los usuarios, ni siquiera a los servidores de aplicaciones y la infraestructura, sino a todo lo que maneja (es decir, crear, transportar, leer, modificar...
Los diferentes actores de la ciberseguridad
Después de haber visto los conceptos, se deben presentar a los actores que se pueden encontrar en un sistema de información. En los grandes grupos, estos roles a menudo están bien diferenciados, con una o varias personas dedicadas en cada equipo. En las pymes, el sistema de información y todas estas responsabilidades suelen recaer en una o dos personas. Entre estos dos extremos, encontramos una amplia gama de variaciones de una organización a otra, según los contextos y necesidades de la empresa. Es necesario entender estos roles para tener una mejor comprensión de las acciones que debe emprender y los procesos que debe implementar en su entorno actual.
1. Los equipos de producción
Los administradores de sistemas y aplicaciones, el centro de servicio o la asistencia técnica a distancia son responsables del buen funcionamiento del SI. Desde la llegada de los métodos «ágiles», a veces están organizados a través de equipos de build y de run, encargados, respectivamente, de las evoluciones, por un lado, y del funcionamiento diario del SI, por otro.
Aunque esto tiende a mejorar, nuestra experiencia muestra que los equipos de producción a menudo se descuidan en cuanto a su papel en la seguridad del sistema de información, limitando a los administradores al objetivo de «entregar el servicio» y confiando en equipos especializados para evitar ataques. Sin embargo, las organizaciones deberían concentrarse más en tener administradores...
Los elementos clave de PowerShell para la seguridad
1. Para los administradores
Lo que es interesante destacar en los diferentes actores presentados en la sección anterior es que, hoy en día, todos ellos, sin excepción, cuentan con PowerShell (y lo usan con mayor o menor regularidad). De hecho, desde noviembre de 2006 y Windows XP SP2, la consola PowerShell (v1.0) está presente en los entornos Windows. Esta presencia no ha hecho más que reforzarse a medida que avanzan las versiones de Windows y el éxito del lenguaje.
PowerShell es ahora un componente fundamental del sistema operativo de Microsoft, utilizado por una gran cantidad de administradores y técnicos en todo el mundo. La matriz de compatibilidad que se muestra a continuación resume los entornos en los que se encuentra PowerShell:
Versión |
1.0 |
2.0 |
3.0 |
4.0 |
5.0 |
6 Core |
7 |
Windows XP |
SP2 |
SP3 |
|
|
|
|
|
Windows 2003 |
SP1/R2 |
SP2 |
|
|
|
|
|
Windows Vista |
SP1 |
|
|
|
|
|
|
Windows 2008 |
|
SP1 |
SP2 |
|
|
|
|
Windows 7 SP1 |
|
|
|
||||
Windows 2008 R1 SP1 |
|
|
|
||||
Windows 8 |
|
|
|
|
|||
Windows 2012 |
|
|
|
|
|
||
Windows 8.1 |
|
|
|
||||
Windows 2012 R2 |
|
|
|
||||
Windows 10 |
|
|
|
|
|
||
Windows 2016 |
|
|
|
|
|
||
Windows 2019 |
|
|
|
|
|
|
|
Linux |
|
|
|
|
|
Esta matriz es importante porque permite determinar con precisión las funciones disponibles en el entorno PowerShell según los sistemas que hay que administrar. Pero, en general, desde PowerShell V2, es posible desarrollar funciones avanzadas con el lenguaje, apoyándose directamente en las funciones del Framework .NET.
Para concluir, mostramos a continuación algunas ideas de scripts encontrados en entornos de producción que ilustran lo que es posible hacer con PowerShell:
-
Emisión (inscripción exactamente) y control de certificados de usuario al inicio de sesión.
-
Inventario de cuentas y grupos de Active Directory.
-
Gestión de archivos SMB compartidos.
-
Inventario y seguimiento de estrategias de grupo del dominio.
-
Migración de cuentas entre diferentes bosques de Active Directory.
-
Gestión de derechos de administración locales en el SI.
-
Gestión...
Configuración del entorno virtual de pruebas
A lo largo de este libro, vamos a ilustrar nuestros argumentos con ejemplos y programación. Para ello, necesitamos un laboratorio (llamado Lab en el resto del libro) que represente los sistemas de información que encontramos en el mundo real. Nuestro sistema, por lo tanto, mostrará algunos clientes y servidores Windows integrados en un dominio Active Directory, todo ello en una red plana (sin segmentación que controle las comunicaciones entre las máquinas) protegida por un cortafuegos (o firewall) perimetral (que separa el SI del resto del mundo).
Un atacante estará ubicado fuera de esta red, en una segunda subred, conectado al firewall, representando a un actor externo en Internet.
Para este Lab, la primera opción, que consiste en usar máquinas físicas dedicadas, resulta costosa; sin embargo, puede ser pertinente en ciertos entornos que tienen suficientes recursos (o, simplemente, viejas máquinas para reutilizar). En esta configuración, se pierde la capacidad de hacer snapshots de las máquinas.
Los sistemas Cloud Infrastructure as a Service (IaaS), como Azure, AWS u OVH, también pueden facilitar el despliegue del Lab para aquellos que lo deseen. Sin embargo, presentan el problema de exponer máquinas vulnerables en Internet, así como mecanismos de seguridad en el proveedor que podrían obstaculizar las prácticas ofensivas.
Por lo tanto, nuestra elección es la virtualización local frente a los métodos de contenerización (como Docker), que más bien simulan entornos en lugar de ejecutarlos realmente.
Para la virtualización, hay muchas opciones posibles según los recursos disponibles: VMware ESX y Workstation, Hyper-V, QEMU o VirtualBox son solo ejemplos entre muchas soluciones existentes. Aquí usaremos VirtualBox porque es ampliamente utilizado, gratuito, se instala en Windows, Mac y Linux, y permite implementar con facilidad la red descrita anteriormente en una computadora personal, sin necesidad de tener una supercomputadora en casa.
En términos de requisitos de hardware, alojaremos cinco máquinas virtuales. Como referencia, proporcionamos la siguiente configuración mínima para el host que ejecuta VirtualBox:
-
8 CPU (o 4 CPU hyperthreading).
-
16 GB de RAM.
-
100 GB de espacio en disco disponible para...
Conclusión
En este capítulo, hemos repasado rápidamente los fundamentos de la seguridad de los sistemas de información, así como los diferentes actores «teóricos» que podemos encontrar en este campo (los equipos de producción, seguridad, gobernanza, los usuarios y los atacantes).
Luego hemos explicado por qué PowerShell ha sido un elemento central de los sistemas de información durante la última década, ya sea para la defensa o el ataque de estos sistemas.
Finalmente, hemos dedicado la última parte del capítulo a establecer un entorno virtual representativo de una red de pequeñas empresas. En esta red, encontramos un firewall perimetral que separa una intranet del resto del mundo. En la parte interna, hemos desplegado un Active Directory monobosque y monodominio en un controlador de dominio Windows Server 2019 y hemos añadido dos estaciones de trabajo: un Windows 10 actualizado y un cliente obsoleto con Windows 7 (opcional). Estas estaciones están asociadas, respectivamente, a dos usuarios administradores locales en sus máquinas: Arnaldo y Federico.
Dentro de esta red, también nos hemos asegurado de dejar vulnerabilidades a través de errores de administración clásicos. Estas vulnerabilidades provienen de casos reales encontrados en auditorías. Una vez que esta red estaba operativa, hemos ubicado al otro lado...