|
Как сделать RootKit уровня ядра: загружаемые модули ядра27.02.2020В зависимости от типа системы атакующие выбирают различные подходы к модификации ядра. На нескольких UNIX-системах самый простой способ изменить ядро состоит в том, чтобы задействовать возможности самой операционной системы, связанные с загружаемыми модулями ядра (Loadable Kernel Module - LKM). В частности, на Linux и Solaris LKM весьма эффективны при законном расширении систем для поддержания новых функций. Предположим, что вам нужно добавить поддержку нового типа жесткого диска, нового сетевого интерфейса или иного причудливого инструмента, который вы установили на свою машину. Вы вправе перекомпилировать ядро для поддержки новых возможностей, но это требует большой работы. И напротив, вы можете воспользоваться LKM, чтобы динамически обновить ядро. Такие модули расширяют само ядро и имеют полный доступ к нему и ко всему, что используется этим ядром (которое, в конце концов, и является всем). Из-за перечисленных функций многие RootKit уровня ядра реализованы как LKM. Инсталляция RootKit уровня ядра, выполненного при помощи LKM, тривиальна. Например, для инсталляции Knark - RootKit для Linux, описанного ниже, - атакующий с привилегиями супервизора просто вводит с клавиатуры команду insmod knark. о - и модуль установлен, ждет команды. Перезагрузки не требуется. Любите азартные игры? Заходите в казино русский вулкан и играйте в увлекательные слоты в режиме нон-стоп. RootKit в виде LKM весьма распространены в системах UNIX, особенно Linux и Solaris. Имеются другие подходы к реализации RootKit уровня ядра, кроме LKM. RootKit для Windows NT, рассмотренный ниже, применяет патч к собственно выполняющемуся ядру Windows NT, без использования LKM.
|