Эта статья не содержит достаточного контекста для тех, кто не знаком с предметом . ( Август 2021 г. ) |
Таблица дескрипторов системных служб ( SSDT ) — это внутренняя таблица диспетчеризации в Microsoft Windows .
SSDT сопоставляет системные вызовы с адресами функций ядра. Когда системный вызов выдается приложением пользовательского пространства , он содержит индекс службы в качестве параметра, указывающего, какой системный вызов вызывается. Затем SSDT используется для разрешения адреса соответствующей функции в ntoskrnl.exe.
В современных ядрах Windows используются два SSDT: один для общих процедур ( KeServiceDescriptorTable ) и второй ( KeServiceDescriptorTableShadow ) для графических процедур. Параметр, переданный вызывающим приложением пользовательского пространства, определяет, какой SSDT будет использоваться.
Модификация SSDT позволяет перенаправлять системные вызовы в процедуры за пределами ядра. Эти процедуры могут использоваться либо для сокрытия наличия программного обеспечения, либо в качестве бэкдора, позволяющего злоумышленникам выполнять постоянный код с привилегиями ядра. По обеим причинам перехват вызовов SSDT часто используется как метод как в руткитах режима ядра Windows, так и в антивирусном программном обеспечении . [1] [2]
В 2010 году было показано, что многие продукты компьютерной безопасности, которые полагались на перехват вызовов SSDT, уязвимы к эксплойтам, использующим состояния гонки для атаки на проверки безопасности продуктов. [2]