A System Service Descriptor Table (SSDT) é uma tabela de despacho interna do Microsoft Windows.
Função A SSDT mapeia chamadas de sistema para endereços de funções do kernel. Quando uma chamada de sistema é feita por um aplicativo do espaço de usuário, a chamada de sistema contém o índice do serviço como parâmetro para indicar qual chamada de sistema foi feita. A SSDT é, então, usada para obter o endereço da função correspondente no ntoskrnl.exe.
Em kernels modernos do Windows, duas SSDTs são usadas: uma para rotinas genéricas (KeServiceDescriptorTable) e uma segunda (KeServiceDescriptorTableShadow) para rotinas gráficas. Um parâmetro passado pelo aplicativo de espaço de usuário determina qual SSDT deve ser usada.
Hooking A modificação da SSDT permite redirecionar chamadas de sistema para rotinas fora do kernel. Essas rotinas podem ser usadas para esconder a presença do software ou agir como um backdoor para permitir a execução de código com privilégios de kernel. Pelas duas razões, fazer hooking das chamadas da SSDT é geralmente usado como uma técnica tanto nos rootkits de Windows como nos softwares antivírus.
Em 2010, muitos produtos de segurança de computador que dependiam de fazer hooking de chamadas da SSDT mostraram-se vulneráveis a exploits usando condições de corrida para atacar as verificações de segurança dos produtos.
Categoria:Microsoft Categoria:Windows Categoria:Tecnologia da informação