La tabla de descriptores de servicios del sistema ( SSDT ) es una tabla de distribución interna dentro de Microsoft Windows .
Función
El SSDT asigna syscalls a direcciones de funciones del kernel. Cuando una syscall es emitida por una aplicación de espacio de usuario , contiene el índice de servicio como parámetro para indicar a qué syscall se llama. Luego, el SSDT se usa para resolver la dirección de la función correspondiente dentro de ntoskrnl.exe.
En los kernels modernos de Windows, se utilizan dos SSDT: uno para rutinas genéricas ( KeServiceDescriptorTable ) y un segundo ( KeServiceDescriptorTableShadow ) para rutinas gráficas. Un parámetro pasado por la aplicación de espacio de usuario llamante determina qué SSDT se utilizará.
Enganche
La modificación del SSDT permite redirigir las llamadas al sistema a rutinas fuera del kernel. Estas rutinas se pueden utilizar para ocultar la presencia de software o para actuar como una puerta trasera para permitir a los atacantes la ejecución permanente del código con privilegios del kernel. Por ambas razones, el enganche de llamadas SSDT se usa a menudo como una técnica tanto en los rootkits del modo kernel de Windows como en el software antivirus . [1] [2]
En 2010, muchos productos de seguridad informática que dependían de conectar llamadas SSDT demostraron ser vulnerables a los exploits que utilizan las condiciones de carrera para atacar a los controles de seguridad de los productos. [2]
Ver también
Referencias
- ^ "Rootkits de Windows de 2005, parte uno" . Symantec . 2005.
- ^ a b "El ataque derrota a la mayoría de los programas antivirus" . ZD Net Reino Unido . 2010.