Académico
Detector de cifrado masivo | Contención sin firmas
Contiene un cifrado masivo sin haber visto antes el binario y sin intervención humana. Tres señales del sistema forman una puntuación, y solo ella decide.
- Seguridad
- Infraestructura
- Organización
- Universidad Técnica Nacional
- Rol
- Detección y contención
- Periodo
- 2026-07 — 2026-08
Stack
- Python
- Linux
- Terraform
- AWS
Contexto
Proyecto final individual de Seguridad de TI I. La consigna pedía una herramienta de detección y contención autónoma, y un banco de pruebas donde ejercitarla.
El ejercicio corre sobre una instancia efímera de AWS levantada para eso. Nada de lo que se ejecuta ahí toca un sistema en uso.
Problema
La consigna pedía detectar y contener sin intervención humana, y sin conocer el binario de antemano.
Una lista de firmas solo reconoce lo que ya se vio antes, así que la pregunta pasa a ser otra: qué observa el sistema operativo cuando algo cifra archivos en masa, y cuánto de eso se puede medir sin identificar al programa.
Decisiones técnicas
Tres señales independientes, ninguna concluyente por sí sola.
Los eventos del sistema de archivos indican que hay actividad. La entropía de lo que se escribe indica que el contenido dejó de parecerse a un documento. El muestreo de write_bytes por proceso, cada 500 ms, indica quién está escribiendo.
Un componente aparte combina las tres en una puntuación, y solo esa puntuación decide contener.
Arquitectura
Un observador del sistema de archivos deposita eventos en un búfer con bloqueo. Un hilo de muestreo mantiene la foto más reciente de escritura por proceso. El hilo principal consulta la puntuación cada segundo y decide si actúa.
Un observador registra creaciones, escrituras y renombrados en un búfer con bloqueo. Dice que hay actividad, no quién la produce.
Se mide la entropía de lo que se escribe. Un contenido cercano al azar indica que el archivo dejó de parecerse a un documento, sin necesidad de abrirlo ni de identificarlo.
Un muestreo de write_bytes por proceso cada 500 ms atribuye el volumen escrito a un proceso concreto. Es la única de las tres señales que identifica al responsable.
Ninguna señal contiene por sí sola. El componente que las combina es el único que puede ordenar la contención, así que los umbrales se ajustan sin tocar los sensores.
La contención mata el árbol de procesos y mueve el binario a un directorio de cuarentena sin permisos de ejecución.
La infraestructura del banco de pruebas está descrita en Terraform, así que el laboratorio se levanta y se destruye con un comando y cada corrida parte de la misma máquina. El estado de Terraform y el fichero de variables quedan fuera del control de versiones, porque un fichero de estado guarda valores sensibles en claro.
Resultado
El detector contiene un cifrado masivo sin haber visto antes el binario. Reacciona a lo que el proceso hace, que era el objetivo del ejercicio.
Lo que aprendí
El umbral fue la parte difícil. Una copia de seguridad legítima produce un patrón muy parecido al de un cifrado masivo: muchos archivos escritos rápido, con contenido de entropía alta.
Con las tres señales disponibles no encontré un valor que separara los dos casos. La versión entregada prioriza no perder un caso real y acepta falsos positivos, y el umbral quedó documentado con esa justificación.