Microsoft CyberBattleSim ya es software libre
Microsoft ha decidido liberar el código de su herramienta de simulación de entornos empresariales para ciberseguridad: CyberBattleSim. Es una herramienta basada en Python que nos permite realizar ejercicios en redes simuladas, mediante el aprovechamiento de ciertas vulnerabilidades por parte de los atacantes.
El proyecto se describe de la siguiente manera:
CyberBattleSim es una plataforma de experimentación para investigar la interacción de agentes automatizados que operan en una red empresarial abstracta y simulada. La simulación proporciona un alto nivel de abstracción de redes de ordenadores y conceptos de ciberseguridad.
Github
Está basada en Python y OpenAI Gym, lo que permite entrenar a los agentes automatizados utilizando algoritmos de aprendizaje mediante refuerzo.
El entorno de simulación es parametrizado mediante una topología de red determinada y un conjunto de vulnerabilidades que los agentes pueden utilizar para moverse por la red lateralmente. El objetivo del atacante es hacerse con el control de una porción de la red, explotando las vulnerabilidades colocadas.
Simulador de ciberdefensa y ciberataque
CyberBattleSim se encarga de construir una simulación compleja de sistemas informáticos, los defensores pueden elaborar sus propios desafíos y utilizar entrenamiento para que los agentes evolucionen, enfrentándose a situaciones donde deben tomar decisiones.
Esta herramienta se basa en el concepto de agentes. Los agentes se utilizan para emular el comportamiento de los atacantes y de los defensores, y para analizar como evolucionan durante su contacto con el entorno.
Concretamente, este simulador de «ciber batalla» se enfoca en la fase de movimiento lateral, simulando una red existente con sus vulnerabilidades definidas (que podrían ser utilizadas por los agentes atacantes), mientras que se coloca una serie de agentes defensores que intentan detectar las actividades maliciosas y mitigar el compromiso.
Una de las ventajas que tiene es que resulta relativamente simple emular amenazas avanzadas o comunicación con servidores de control, a pesar de no ser muy complejos dichos conceptos. Al mismo tiempo, esto previene usos más perversos de esta herramienta.
Primeros pasos
Para instalarlo existen varias formas, de las cuales quizá la más recomendable es utilizar Docker. También se integra con WSL (Windows Subsystem for Linux), algo que ya comenté en mi post Instalar Bash en Windows 10.
Lo primero que nos recomiendan es trabajar con una entorno de desarrollo, bien directo o mediante WSL en Windows. El primer paso sería, entonces:
git clone https://github.com/microsoft/CyberBattleSim.git
Aquí el siguiente paso difiere según método, para Linux entraremos en la carpeta clonada y lanzaremos el script que lo prepara e instala Python 3.8 si fuera necesario.
./init.sh
Si quieres utilizar Docker o WSL, sigue las instrucciones del repositorio.
Ahora, para saber si nuestro entorno de pruebas lanzaremos un comando como este:
python cyberbattle/agents/baseline/run.py --training_episode_count 1 --eval_episode_count 1 --iteration_count 10 --rewardplot_with 80 --chain_size=20 --ownership_goal 1.0
Aparecerá una simulación y veremos estadísticas al final.
Para configurar las pruebas y aprender sobre el proyecto podemso revisar los libros Jupyter que nos permitirán jugar con los entornos Gym.
jupyter notebook
Es posible modificar los ajustes y tipo de ataque para CyberBattleChain-v0, cuales son los objetivos de los atacantes y defensores, etc.
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.