«Sin embargo, Microsoft no ha renunciado a asegurar el límite entre el administrador y el kernel», explican los investigadores de Avast. «Todo lo contrario. Ha logrado grandes avances para hacer que esta frontera sea más difícil de cruzar. Las protecciones de defensa en profundidad, como DSE (Driver Signature Enforcement) o HVCI (Hypervisor-Protected Code Integrity), han hecho que a los atacantes les resulte cada vez más difícil ejecutar código personalizado en el kernel, lo que ha obligado a la mayoría a recurrir a ataques de solo datos ( donde logran sus objetivos maliciosos únicamente leyendo y escribiendo la memoria del núcleo). Otras defensas, como las listas de bloqueo de controladores, están empujando a los atacantes a explotar controladores vulnerables menos conocidos, lo que resulta en un aumento de la complejidad del ataque. Aunque estas defensas aún no han llegado al punto en el que podamos llamar oficialmente al administrador al kernel un límite de seguridad (los ataques BYOVD todavía son factibles, por lo que llamarlos así sólo induciría a los usuarios a una falsa sensación de seguridad), representan claramente pasos en la dirección correcta.»
El nueva vulnerabilidad CVE-2024-21338 explotado por Lazarus se encuentra en appid.sys, que es el controlador central detrás de AppLocker, la tecnología de lista blanca de aplicaciones integrada en Windows, lo que lo hace un poco irónico. Microsoft le dio a esta vulnerabilidad una puntuación de 7,8 sobre 10 en la escala CVSS y, según Avast, eso podría deberse a que también se puede explotar desde la cuenta de servicio local, que tiene privilegios aún más reducidos en comparación con los administradores.
«Aunque es posible que la vulnerabilidad apenas cumpla con los criterios de servicio de seguridad de Microsoft, creemos que aplicar parches fue la elección correcta y nos gustaría agradecer a Microsoft por finalmente abordar este problema», dijeron los investigadores de Avast. «Sin duda, el parche interrumpirá las operaciones ofensivas de Lazarus, obligándolos a buscar un nuevo día cero de administrador al kernel o volver a utilizar técnicas BYOVD».
Las técnicas mejoradas de rootkit de Lazarus
El rootkit FudModule aprovecha su acceso de lectura/escritura del kernel para desactivar algunas funciones importantes en las que se basan los productos de seguridad para detectar comportamientos sospechosos: registrar devoluciones de llamadas, que se utilizan para detectar modificaciones del registro del sistema; devoluciones de llamada de objetos, que se utilizan para ejecutar código personalizado en respuesta a operaciones de subprocesos, procesos y identificadores de escritorio; y devoluciones de llamadas del kernel de procesos, subprocesos e imágenes, que permiten que los productos de seguridad de terminales realicen comprobaciones cada vez que se crean nuevos procesos o se cargan archivos DLL.
El rootkit FudModule eliminará todos estos tipos de devoluciones de llamada registradas por los productos de seguridad en el kernel para afectar sus capacidades de detección de malware. La nueva variante sólo realiza modificaciones menores a las devoluciones de llamada que elimina. El rootkit también elimina los minifiltros del sistema de archivos que registran los programas antivirus para monitorear las operaciones de los archivos.
Una nueva característica del rootkit es deshabilitar las devoluciones de llamada de verificación de imágenes que se invocan cuando se carga una nueva imagen del controlador en la memoria del kernel. Algunos programas antimalware aprovechan esta funcionalidad para detectar y bloquear controladores maliciosos o vulnerables.