Пакеты rootkit в коммерческом ПО

К нынешнему времени многим из вас уже известно о том, что в прошедший вторник компания Symantec выпустила советы по безопасности, сообщив о применении в продукте SystemWorks технологии маскировки, реализованной по принципу пакетов rootkit. То обстоятельство, что Symantec не брезгует такими технологиями, заставляет задуматься о том, что же такое «пакеты rootkit» и допустимо ли применение методик маскировки вообще под какими бы то ни было предлогами. Сначала я расскажу о методике маскировки, которую избрала компания Symantec, а далее отвечу на оба поставленных вопроса.

В продукте SystemWorks имеется функция под названием «защищенная корзина Norton» (Norton Protected Recycle Bin). Она является расширением стандартной корзины Windows и в ней сохраняются удаленные файлы, которые не попадают в стандартную корзину – в частности, файлы, удаленные приложениями. Эти сохраненные файлы находятся в каталоге NPROTECT, который приложение SystemWorks создает в каждом томе в качестве подкаталога стандартной корзины, RECYCLER. Специалисты компании Symantec в какой-то момент представили ситуацию, при которой пользователь натыкается на такой каталог и, не разобравшись в его назначении, удаляет резервные копии ранее удаленных файлов. Чтобы исключить такую возможность, была реализована маскировка посредством драйвера фильтра файловой системы, позволяющая скрыть присутствие каталогов NPROTECT от API-интерфейсов перечисления папок ОС Windows.

Об этой ситуации я узнал несколько месяцев назад, когда группа пользователей нашей программы обнаружения пакетов rootkit, RootkitRevealer, поделились с нами журналами и поинтересовались, нет ли в них свидетельств присутствия вредоносных программ (ряд других пользователей опубликовали свои журналы на форуме Sysinternals). Изучение вопроса показало, что практика создания приложением SystemWorks каталогов NPROTECT, которые провоцируют «ложное срабатывание» программы RootkitRevealer, была в целом известна.

После того как скандал с употреблением пакетов rootkit корпорацией Sony поутих, я переключил свое внимание на применение таких пакетов в коммерческих продуктах. В связи с этим я приобрел копию приложения SystemWorks и установил его. Удалив несколько файлов, я запустил программу RootkitRevealer и удостоверился в том, что каталог NPROTECT действительно подвержен маскировке.

clip_image001

Из любопытства мене захотелось сравнить методику маскировки Symantec и пакет rootkit Sony XCP. В случае Sony пакет rootkit маскировал каталог от API-интерфейсов перечисления папок, но разрешал доступ к ней по явно указанному имени. Методика Symantec оказалась аналогичной – ввод полного пути к каталогу NPROTECT в проводнике или исполнение команды смены каталога в командной строке позволяет перейти к этому каталогу. Я скопировал несколько файлов в каталог NPROTECT и обнаружил, что в интерфейсе приложения SystemWorks, в котором указывается содержимое подобных каталогов, эти файлы не перечислены. Следовательно, как Sony, так и Symantec создают уязвимости. Связавшись с представителями Symantec, я разъяснил им ситуацию, и они без лишних препирательств согласились отказаться от маскировки.

Можно ли методику маскировки, примененную специалистами компании Symantec, отнести к числу пакетов rootkit? Несколько лет назад я сформулировал рабочее определение пакета rootkit, которое звучит следующим образом:

Программное обеспечение, которое скрывает присутствие самого себя или других объектов, в том числе файлов, процессов и разделов реестра, от стандартных диагностических, административных и защитных приложений.

Это определение основано на практике применения термина разработчиками технологий маскировки, в том числе на веб-узле https://www.rootkit.com/ – основном сообществе создателей маскировочных и антимаскировочных методик. В единственной работе на эту тему, которая называется “Rootkits: Subverting the Windows Kernel” (Пакеты rootkit: как обмануть ядро Windows), а написана Хогландом (основателем веб-узла Rootkit.com) и Батлером, приводится похожее определение:

Пакет rootkit – это набор программ и кода, которые могут на постоянной основе присутствовать в компьютерной системе незамеченными.

Компания Symantec выражает несогласие с приведенными определениями – ее представители считают, что практика употребления термина в прессе указывает на вредоносный характер пакетов rootkit, что наши определения не учитывают. На веб-узле Rootkit.com слово "rootkit" также употребляется без намека на злонамеренность. Более того, Хогланд в своей недавней статье, опубликованной на Rootkit.com, высказывает мнение о том, что применение пакета rootkit XCP компанией Sony было оправданным.

Несмотря на имеющиеся доводы, доказывающие правомерность моего определения, я готов признать (с особенности после случая с Sony), что термин “rootkit” действительно употребляется в негативном смысле. Официальное определение этого термина до сих пор не утвердилось, поэтому пока что для обозначения методик маскировки, разработанных во благо пользователя, а не производителя ПО (или, как в случае Sony, продюсерских компаний), я не возражаю против характеристики «rootkit-подобные».

Пример Symantec – это прекрасная возможность попытаться ответить на вопрос, может ли в принципе существовать оправдание применению пакетов rootkit. Я убежден, что такового быть не может. После бесед на эту тему с Дэйвом Катлером (Dave Cutler), ведущим техническим специалистом корпорации Майкрософт и архитектором ОС Windows NT, он со мной недвусмысленно согласился.

Употребление пакетов rootkit создает прекрасные возможности для маскировки вредоносного ПО, что убедительно доказывают примеры компаний Sony и Symantec. Даже если разработчик сделал все, чтобы исключить такую возможность, маскировка не позволяет администраторам проверять правильность настройки безопасности замаскированных объектов, а если они содержат исполняемый код, то и снабжать их новейшими исправлениями для системы безопасности.

Помимо прочего, маскировка способна изменить поведение ОС Windows. При этом как пользователям, так и системным администраторам будет крайне сложно, если вообще возможно, понять причины изменившегося поведения систем и диагностировать неполадки, возникшие в связи с такими изменениями. Маскировка может сделать невозможным решение таких задач, как сбор данных о потреблении ресурсов (дискового пространства, памяти и ЦП), получение всеобъемлющих сведений о системе, выяснение причин несовместимости ОС Windows и внешнего ПО и даже создание рабочих резервных копий. Как я уже говорил в контексте дела Sony, в случае сбоя компьютера, спровоцированного замаскированным драйвером, корректно диагностировать проблему чрезвычайно сложно, равно как и удалить или обновить такой драйвер.

Если разработчик ПО считает пакет rootkit неотъемлемой частью архитектуры своего продукта, такую архитектуру совершенно определенно стоит переработать. Корпорация Майкрософт, так же как и Symantec, столкнулась с затруднениями при работе над функцией восстановления системы в ОС Windows XP. Однако же вместо маскировки каталога, в котором хранятся точки восстановления, специалисты корпорации решили создавать в корне каждого тома каталоги System Volume Information и предоставлять права на доступ к ним только системной учетной записи. Даже опытные пользователи, установившие в параметрах проводника флажок Show hidden files and folders (Показывать скрытые файлы и папки) и снявшие Hide protected operating system files (Скрывать защищенные системные файлы), не могут входить в эти каталоги и удалять резервные копии. В распоряжении специалистов Symantec была масса методик, позволяющих обойтись без маскировки, но они их проигнорировали.

Надеюсь, что нелестные отзывы о компаниях Sony и Symantec в связи с их экспериментами в области пакетов rootkit заставят разработчиков ПО и представителей музыкальной индустрии последовать примеру, показанному в конечном итоге разработчиками Symantec, удалив и отказавшись в дальнейшем от применения в своих продуктах методик маскировки.

Исходная запись создана пользователем Mark Russinovich 15.01.2006 в 05:54:00
Запись перенесена из блога Sysinternals.com/Blog