НЕГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
Институт Управления и Информатики
Knark - характерный RootKit на базе LKM для Linux, написан Creed и сейчас доступен на packetstormsecurity.org/UNIX/penetration/rootkits. Knark использует идеи, которые были первоначально встроены в инструмент itf.c, созданный Plaguez.
Knark имеет множество стандартных возможностей RootKit уровня ядра, в том числе переадресацию выполнения и сокрытие файлов, процессов и сетей. Кроме того, он включает такие изящные свойства, как:
дистанционное выполнение: атакующий может посылать одну команду через сеть, выполняющую Knark. Исходный адрес подменяется, и команда посылается в UDP-порт 53, что делает ее похожей на трафик DNS. Атакующие применяют эту особенность, чтобы обновить Knark, стереть файловую систему или произвести любое другое действие на машине, где стоит Knark;
сокрытие «неразборчивого»режима: как и в случае с традиционными RootKit, атакующий обычно запускает сниффер на машине жертвы. Он без труда замаскирует программу-сниффер и ее процесс, используя сокрытие процессов и файлов. Несмотря на это интерфейс Ethernet будет переключен в «неразборчивый» режим, что может обнаружить администратор. Knark изменяет ядро так, чтобы оно всегда обманывало относительно «неразборчивого» режима, помогая делать сниффер еще более скрытным; Устали от безденежья? Играйте в казино русский вулкан на деньги и вы сможете хорошо зарботать.
хакинг задач: когда в системе запускается процесс, он выполняется с разрешениями, связанными с его именем пользователя (UID) и действительным именем пользователя (EUID). Кроме того, этот процесс выполняется с именем пользователя файловой системы (FSUID), связанным с разрешениями на доступ к файлам и каталогам. Свойство хакинга задач (taskhack) в Knark изменяет UID, EUID и FSUID любого выполняющегося процесса в реальном масштабе времени. Процесс не прекращается, он просто внезапно получает новый набор разрешений;
сокрытие процесса в реальном масштабе времени'. Knark может брать выполняющийся процесс и скрывать его. При посылке сигнала 31 процессу, выполняющемуся на машине, где стоит Knark, этот процесс исчезнет, но продолжит работу. Команда kill -31 process_id заставит ядро подавить всю информацию о данном процессе. Хотя процесс активен, команды ps или lsof не покажут его. Описанное свойство напоминает мне ромулан- цев из научно-фантастического сериала «Звездный путь» (Star Trek): когда они готовятся напасть, то включают устройство сокрытия своего корабля. Все следы их космического корабля сверхъестественно исчезают, в то время как корабль продолжает атаковать. Однако, если вы помните сериал, ромуланцы в режиме невидимости не могут использовать свои фотонные торпеды. У Knark этого ограничения нет;
сокрытие модуля ядра: команда lsmod в Linux выводит список LKM, в настоящее время установленных на машине. Атакующий не хочет, чтобы системный администратор видел модуль Knark. Пакет Knark включает отдельный модуль modhide, который маскирует присутствие Knark и свое. Поэтому, когда атакующий инсталлирует Knark, он сначала выполняет insmod для knark. о, а затем — insmod для modhide . о. Теперь, когда кто-либо введет команду lsmod, вредоносные модули не будут показаны.