La tabla descriptora de servicios del sistema ( SSDT ) es una tabla de despacho interna dentro de Microsoft Windows .
Función
La SSDT asigna las llamadas al sistema a las direcciones de las funciones del kernel. Cuando una aplicación de espacio de usuario realiza una llamada al sistema , esta contiene el índice del servicio como parámetro para indicar qué llamada se está invocando. Posteriormente, la SSDT se utiliza para resolver la dirección de la función correspondiente dentro de ntoskrnl.exe.
En los núcleos modernos de Windows, se utilizan dos SSDT: uno para rutinas genéricas ( KeServiceDescriptorTable ) y otro ( KeServiceDescriptorTableShadow ) para rutinas gráficas. Un parámetro pasado por la aplicación de espacio de usuario que realiza la llamada determina qué SSDT se debe utilizar.
Enganche
La modificación de la SSDT permite redirigir las llamadas al sistema a rutinas fuera del núcleo. Estas rutinas pueden utilizarse para ocultar la presencia de software o para actuar como puerta trasera, permitiendo a los atacantes la ejecución permanente de código con privilegios de núcleo. Por ambas razones, la interceptación de llamadas a la SSDT se utiliza frecuentemente como técnica tanto en rootkits en modo núcleo de Windows como en software antivirus . [ 1 ] [ 2 ]
En 2010, se demostró que muchos productos de seguridad informática que dependían de la interceptación de llamadas SSDT eran vulnerables a exploits que utilizaban condiciones de carrera para atacar las comprobaciones de seguridad de los productos. [ 2 ]
Véase también
Referencias
- stubs de Microsoft Windows
- Tecnología Windows
- Seguridad informática
- núcleo de Windows NT
- Técnicas de rootkit de Windows