CENTINELA y el Ring 0: Seguridad a nivel Kernel en Rust

Las arquitecturas tradicionales de seguridad empresarial (los mal llamados EDR y antivirus) operan en el User Space (Ring 3 de las arquitecturas x86), supervisando archivos y usando hooks básicos de APIs estandarizadas del sistema operativo. Sin embargo, para nosotros en Orzatty, un sistema no es soberano si su perímetro de defensa puede ser falseado desde adentro.

El Problema de las Firmas Heurísticas en Ring 3

Cualquier suite ofensiva seria hoy en día interactúa de forma directa o elude los ganchos de User Space usando Direct Syscalls. Al llamar directamente al Kernel sin pasar por la capa de la API nativa, el EDR queda totalmente ciego. Para corregir este hueco monumental, creamos CENTINELA.

CENTINELA opera directamente como un módulo en el Ring 0 (Kernel Space) del sistema operativo, permitiéndonos interceptar y validar absolutamente cada transición de estado cruda que ocurre en los hilos de ejecución de la máquina host de OrzattyCloud.

Por qué Rust en el Kernel

El estándar del Kernel de Linux es C. Pero C en el Ring 0, sujeto a condiciones de concurrencia extremadamente complejas, suele provocar desbordamientos de buffer (buffer overflows) o Use-After-Free, que es una ironía terrible: introducir módulos de seguridad que añaden superficies de vulnerabilidades nuevas. Con el soporte de RustForLinux, CENTINELA fue reescrito completamente.

El verificador de préstamos (Borrow Checker) de Rust garantiza en tiempo de compilación que CENTINELA no sufrirá de accesos a memoria no permitidos o data races al interceptar miles de llamadas al sistema (syscalls) por segundo de contenedores concurrentes. El modelo de memoria de Rust permite a CENTINELA defender el SO bloqueando, alertando y cortando a la fuerza inyecciones DLL o memoria dinámicamente inflada, previniendo Ransomwares sofisticados antes de que siquiera puedan encriptar el primer byte de disco.