Tabela deskryptorów usług systemowych
Tabela deskryptorów usług systemowych ( SSDT ) jest wewnętrzną tabelą dyspozytorską w systemie Microsoft Windows .
Funkcjonować
SSDT odwzorowuje wywołania systemowe na adresy funkcji jądra. Gdy wywołanie systemowe jest wysyłane przez w przestrzeni użytkownika , zawiera ono indeks usługi jako parametr wskazujący, które wywołanie systemowe jest wywoływane. Narzędzie SSDT jest następnie używane do rozpoznawania adresu odpowiedniej funkcji w pliku ntoskrnl.exe.
W nowoczesnych jądrach systemu Windows używane są dwa dyski SSDT: jeden dla procedur ogólnych ( KeServiceDescriptorTable ) i drugi ( KeServiceDescriptorTableShadow ) dla procedur graficznych. Parametr przekazany przez wywołującą aplikację przestrzeni użytkownika określa, który SSDT ma być używany.
Zahaczanie
Modyfikacja SSDT pozwala na przekierowanie wywołań systemowych do procedur poza jądrem. Procedury te mogą być używane do ukrywania obecności oprogramowania lub do działania jako backdoor, aby umożliwić atakującym trwałe wykonanie kodu z uprawnieniami jądra. Z obu powodów przechwytywanie wywołań SSDT jest często stosowane jako technika zarówno w rootkitach działających w trybie jądra systemu Windows , jak iw oprogramowaniu antywirusowym .
W 2010 roku wykazano, że wiele produktów bezpieczeństwa komputerowego, które polegały na przechwytywaniu wywołań SSDT, było podatnych na exploity wykorzystujące warunki wyścigu do atakowania kontroli bezpieczeństwa produktów.