Ir para o conteúdo

System Service Descriptor Table

Origem: Wikipédia, a enciclopédia livre.

A System Service Descriptor Table (SSDT) é uma tabela de despacho interna do Microsoft Windows.

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.

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.[1]

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.[2]

Referências