Публикации

Легальные буткиты

Предисловие

Ни для кого не секрет, что в некоторых легальных продуктах используются руткит-технологии.

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

Многим известны программы для шифрования данных, например, TrueCrypt. Подобные программы умеют шифровать, в том числе, целые разделы или диски. Для того чтобы появилась возможность шифрования системного раздела, разработчикам данного вида защитного ПО необходимо реализовать свой собственный загрузчик, а также модифицировать MBR. Подобные технологии используются в современных буткитах, однако, данному классу защитного ПО, в отличие от буткита, нет нужды скрывать свой собственный загрузчик

Аналогично программам шифрования технологию модификации MBR используют некоторые сторонние загрузчики операционных систем (LILO, GRUB).

Руткит-технологии, основанные на перехватах системных функций, используются и в различных коммерческих (в частности, игровых) защитах, причем многие защиты довольно агрессивны.

Надо понимать, что использование руткит-технологий в легальных продуктах требует большой осторожности, ибо эти технологии могут быть использованы не только во благо, но и со злонамеренной целью. Я имею в виду, что грань между безопасной и опасной реализацией технологии довольно тонкая, и переступить ее можно легко. Если продукт реализован неаккуратно, злоумышленники могут этим воспользоваться.

Многие, думаю, помнят громкий скандал в 2005 году, связанный с компанией Sony и ее системой защиты от копирования аудио-CD. В этой защите применялись руткит-технологии, причем вредоносные программы могли использовать данную систему защиты для сокрытия собственных вредоносных компонентов. То есть компонент, который обеспечивал данный функционал, был написан небрежно и открывал такую возможность его эксплуатации, которая не была предусмотрена разработчиками.

Насколько вообще оправдано использование руткит-технологий в легальном программном обеспечении? Насколько при использовании таких технологий в легальных продуктах велик риск компрометации операционной системы и пользовательских данных? Насколько тонка грань между легальными и киберкриминальными методами?

Теоретические возможности

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

Говоря о потенциальных угрозах, я буду упоминать легальные подписи и подписанные драйверы. Очевидно, что большинство компаний предпочитают подписывать свое ПО, а под x64 подпись у драйвера режима ядра является необходимым атрибутом, без нее он просто не запустится в системе. При этом в антивирусных продуктах проверка по спискам разрешенных является одним из факторов определения принадлежности к той или иной группе ПО. Предположим, что легальный драйвер, снабженный цифровой подписью, используют злоумышленники. Такой драйвер при проверке будет пропущен по списку доверенных подписей — даже если он используется в злонамеренных целях. Поэтому легальный драйвер с цифровой подписью, несомненно, может быть опасен, — если в нем используются руткит-технологии и небрежно реализован или полностью отсутствует механизм аутентификации.

Случай 1. Чтение и запись памяти

Представьте себе сложный протектор или криптор, который использует в своем алгоритме чтение и запись памяти, но данные функции выполняются в режиме ядра. Для этого необходимо иметь в своем арсенале драйвер режима ядра, который будет предоставлять данный функционал. Чтобы успешно работать под Windows x64, это должен быть подписанный драйвер, причем с официально купленной подписью — т.е. легальное программное обеспечение. Соответственно, у антивирусных продуктов не будет никаких претензий к этому драйверу, и при проверке он, скорее всего, будет пропущен по списку доверенных подписей.

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

Случай 2. Загрузка неподписанных драйверов

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

Случай 3. Классические анти-руткиты

Классические анти-руткиты, такие как GMER, RKU, RootRepeal и другие, могут предоставлять не только функционал поиска аномалий, но и упомянутые выше процедуры чтения/записи памяти ядра. Зачастую они содержат и функционал уничтожения процессов и потоков, выгрузки динамических модулей и т.п. Драйвер, который предоставляет такой функционал, может быть подписан легальной подписью. Если он небрежно написан, ничто не помешает злоумышленникам использовать его в неправомерных целях.

Случай 4. Сокрытие MBR

Представьте себе защитное ПО, которое создает снимки файловой системы по запросу или в определенные промежутки времени. Основная цель такого продукта — это возможность откатиться на любой снимок в случае повреждения данных или заражения вредоносной программой. Однако, может возникнуть такое повреждение системных файлов, при котором нет возможности загрузиться в операционную систему. Для восстановления к определенной точке можно использовать механизм загрузки с внешнего носителя или механизм модификации MBR. Реализовав собственный загрузчик, можно восстановить данные до загрузки ОС.

Для защиты от повреждения MBR и загрузчика может использоваться драйвер режима ядра, который скрывает факт модификации главной загрузочной записи, выдавая поддельное содержимое при чтении, а запись перенаправляет в другой сектор. Существуют несколько неприятных сценариев в случае небрежной реализации такого драйвера. Первый — изучив алгоритм работы драйвера, его можно использовать как руткит-компонент во вредоносной программе. Второй — заразив MBR в обход перехвата, при установленном защитном ПО можно не затруднять себя его сокрытием.

В данном случае, увы, теория оказалась совсем недалека от практики.

От теории к практике

В наших продуктах реализован мощный анти-руткит, который позволяет обнаруживать такие скрытые объекты, как секторы диска, файлы, ветки реестра и другие объекты в обход перехватчиков, реализованных во вредоносных программах. Используя облачный сервис KSN, мы собираем статистику о различных аномалиях, обнаруженных на компьютерах пользователей.

Анализируя полученные данные, мы выявили несколько легальных программ, которые используют руткит-технологии.

Сводная таблица: легальное ПО, использующее руткит-технологии

Название программы Производитель Объект Метод сокрытия Наличие подписи
COMODO Time Machine Comodo MBR Фильтр-драйвер +
Norton GoBack Symantec MBR Фильтр-драйвер
PC Back Pro Digicore Technologies MBR Фильтр-драйвер +
Rollback Rx Horizon DataSys MBR Фильтр-драйвер +
RestoreIT Farstone MBR Фильтр-драйвер +

 

Рассмотрим каждую из обнаруженных программ.

Comodo Time Machine

Полное название программы: COMODO Time Machine v.2.8.155286.178

Ссылка на дистрибутив www.comodo.com/home/download/download.php?prod=time-machine

(развитие продукта приостановлено)

Распределение пользователей COMODO Time Machine по странам (TOP 10)

Данные получены с помощью KSN

Comodo Time Machine

Краткое описание

Программа для отката системы, которая позволяет пользователю быстро вернуть компьютер к состоянию в предыдущий момент времени. Снимок системы Comodo Time Machine представляет собой полную копию системы, включая системные файлы, реестр и пользовательские данные (Wikipedia).

Компоненты режима ядра
CTMFLT.sys, CTMMOUNT.sys, CTMSHD.sys (драйверы подписаны)

Рисунок 1. Главное окно CTM

CTM реализует возможность запуска специальной консоли восстановления до загрузки операционной системы. Для реализации данной возможности используется механизм модификации MBR. Чтобы войти в консоль, необходимо при загрузке нажать клавишу Home.

Рисунок 2. Консоль восстановления CTM

Однако нами была обнаружена аномалия — подмена MBR при чтении. Подмена реализуется фильтр-драйвером дискового стека.

Рисунок 3. Дисковый стек и информация о фильтр-драйвере

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

Norton GoBack

Полное название программы
Norton GoBack Deluxe Edition v.3.21.106

Ссылка на дистрибутив ftp.symantec.com/public/english_us_canada/products/goback/3.2.x/updates (поддержка продукта прекращена, продукт заменен Norton Ghost)

Распределение пользователей Norton GoBack по странам (TOP 10)
Данные получены с помощью KSN

GoBack

Краткое описание

Norton GoBack (ранее известна как WildFile GoBack, Adaptec GoBack Roxio и GoBack) — утилита восстановления данных из пакета Norton SystemWorks от Symantec, предназначенная для ОС Microsoft Windows. Когда файловая система бездействует в течение несколько секунд, GoBack создает точку восстановления. Утилита позволяет вернуть систему к любой доступной точке (Wikipedia).

Компоненты режима ядра

GoBack2K.sys (драйвер не подписан)

Рисунок 4. Главное окно GoBack

Аналогично Comodo Time Machine, в GoBack реализована консоль восстановления, которую можно активировать нажатием клавиши Space до загрузки ОС. Для реализации этой возможности также был выбран механизм модификации MBR. Для восстановления снимка файловой системы до загрузки ОС в Norton Ghost был выбран механизм создания загрузочного диска.

Рисунок 5. Консоль восстановления GoBack

В данном случае также была зафиксирована подмена MBR при чтении. Подмена реализуется фильтр-драйвером дискового стека.

Рисунок 6. Дисковый стек и информация о фильтр-драйвере

В случае чтения MBR возвращается поддельное содержимое, а операция записи в охраняемые сектора просто запрещена.

PC Back Pro и Rollback Rx

Полное название программ

PC Back Pro v.2694412298 и Rollback Rx Professional v9.1

Ссылка на дистрибутивы

http://www.digicore.com.br/downloads.php?TID=TRI и http://horizon-datasys.com/309198.ihtml
(http://www.rollbacksoftware.com — отдельный сайт Rollback Rx)

Распределение пользователей PC Back Pro и Rollback Rx по странам (TOP 10)

Данные получены с помощью KSN

PCBackPro & Rollback Rx

Краткое описание

Программы предназначены для создания снимков системы, которые при необходимости могут использоваться для отката системы и восстановления утерянных данных в случае поражения компьютера вирусом, изменений, которые внесли в систему недавно установленные программы и т. д. Восстанавливаются файлы и настройки системы — в том числе параметры реестра, рабочего стола, безопасности, управления пользователями. Снимки системы могут создаваться по требованию пользователя или же автоматически, по заранее заданному расписанию.

Компоненты режима ядра

Shield.sys, Shieldf.sys, Shieldm.sys (драйверы подписаны)

Для начала хотелось бы объяснить, почему речь идет сразу о двух программах. Все очень просто — на самом деле это одна и та же программа. Скорее всего, компания Digicore лицензирует ПО компании Horizon-Datasys или является ее реселлером в Латинской Америке. Достаточно взглянуть на скриншоты главного окна обеих программ.

Рисунок 7. Главное окно PC Back Pro

Рисунок 8. Главное окно RollBack Rx

В дальнейшем я буду приводить только скриншоты окон, появляющихся в ходе работы RollBack Rx.

Как и во всех вышеперечисленных продуктах, в этих двух программах реализована консоль восстановления, активируемая нажатием на клавишу Home при загрузке компьютера. Метод, используемый для реализации этой возможности, не изменился — модификация MBR.

Рисунок 9. Консоль восстановления RollBack Rx

Как и во всех предыдущих случаях, при чтении MBR была зафиксирована подмена MBR фильтр-драйвером.

Рисунок 10. Дисковый стек и информация о фильтр-драйвере

В случае чтения MBR возвращаемое содержимое является поддельным, а в случае записи алгоритм работы такой же, как и у CTM: фильтр-драйвер перенаправляет запрос, и запись происходит в другое место.

RestoreIT

Полное название программы

FarStone RestoreIT v.7.1.3

Ссылка на дистрибутив http://www.farstone.com/software/restore-it.php

Распределение пользователей RestoreIT по странам (TOP 10)

Данные получены с помощью KSN

RestoreIT

Краткое описание

Программное обеспечение FarStone RestoreIT 7 — мощная и удобная в работе утилита послеаварийного восстановления персональных данных, автоматически восстанавливает все файлы персонального компьютера. RestoreIT 7 возвращает систему в состояние нормальной работоспособности до момента ее сбоя вследствие вирусных или хакерских атак, нарушения работы Windows, ошибок инсталляции или некорректной работы пользователя.

Компоненты режима ядра

VvBackd5.sys (драйвер подписан)

Рисунок 11. Главное окно RestoreIT

Консоль восстановления присутствует и в данном продукте, вызвать ее можно, нажав на клавишу F4 во время загрузки компьютера. Как и в описанных выше программах, для реализации этой возможности используется метод модификации MBR.

Рисунок 12. Консоль восстановления RestoreIT

К сожалению, на виртуальной машине под управлением Windows XP SP3 мне так и не удалось вызвать данную консоль, пришлось ставить продукт на Windows Vista, где консоль работает.

Как и во всех вышеперечисленных продуктах, при чтении MBR выдается поддельное содержимое, а при записи происходит перенаправление в другое место.

Рисунок 13. Дисковый стек и информация о фильтр-драйвере

Синдром сокрытия

Факт сокрытия MBR меня удивил, и я решил проверить, как же себя ведут продукты, о которых шла речь в предыдущей главе, если модифицировать загрузочную запись в обход фильтр-драйвера. Запись в MBR велась на компьютере, где была установлена одна из описанных выше программ, алгоритм использовался следующий:

  1. записать в MBR последовательность 0xAA размером 512 байт в обход фильтра;
  2. сбросить MBR на диск с помощью анти-руткита RootRepeal;
  3. убедиться, что в MBR находится записанная последовательность;
  4. с помощью Hiew открыть диск на чтение («hiew32 .physicaldrive0»);
  5. убедиться, что при чтении MBR по-прежнему отдается поддельное содержимое.

Все описанные выше продукты после процедуры перезаписи MBR продолжают выдавать при чтении MBR поддельное содержимое, вводя пользователя в заблуждение. Компьютер после перезагрузки, понятное дело, не загружается, т.к. я записал в MBR «мусор», и нет никакой возможности вызвать ту самую хваленую консоль восстановления, которая и должна спасти пользователя. Это первый момент.

Второй момент заключается в том, что если какой-либо буткит (или буткит winlocker, например) заразит MBR в обход фильтр-драйвера на системе с одним из рассматриваемых продуктов, то получит в пользование бесплатный руткит-драйвер, т.к. при чтении MBR легальный драйвер режима ядра с легальной цифровой подписью по-прежнему будет выдавать поддельное содержимое. Консоль восстановления также может перестать работать.

Третий момент заключается в том, что есть потенциальная опасность «убить» систему, если одновременно с вышеуказанными продуктами использовать инструменты для редактирования разделов, т.к. эти инструменты могут получить заведомо ложную информацию. И будет хорошо, если эти инструменты просто не будут работать, как нужно.

Таким образом, используя данное ПО, пользователь может оказаться в ситуации, когда:

  • у него не будет возможности узнать о заражении MBR;
  • вредоносные программы на компьютере будут скрываться с помощью легальной утилиты;
  • при возникновении серьезных проблем ПО для отката системы не сработает;
  • использование инструментов редактирования разделов приведет к потере работоспособности системы.

Заключение

Несмотря на то, что некоторые из перечисленных программ уже неактуальны, наверняка существуют подобные им продукты, которые нам пока неизвестны. И они могут использовать аналогичный и довольно сомнительный функционал. Существует также теоретическая возможность использования вышеуказанных драйверов режима ядра в неправомерных целях, т.е. для сокрытия факта заражения MBR, а наличие цифровой подписи в таком случае лишь усугубит дело. При должных знаниях и инструментах не составит труда разобрать алгоритм работы драйверов.

Во всех современных антивирусных продуктах существует модуль самозащиты. Данный модуль служит одной цели — защищать собственные критичные объекты, такие как файлы, ветки реестра, процессы антивируса и так далее, от угроз со стороны вредоносных программ. Представьте себе, что вместо защиты модуль начнет скрывать файлы или секторы на диске, ветки реестра. Процессы антивируса нельзя будет увидеть в менеджере задач. Вас не смущал бы такой продукт? А вдруг он скрывает еще что-нибудь? Кому может понравиться тот факт, что на его компьютере что-то происходит без его же ведома?

Хотелось бы дать некоторые рекомендации производителям рассмотренных выше продуктов и их аналогов:

  1. Механизм модификации MBR вполне легален, но необходимо полностью отказаться от руткит-технологий в своих продуктах — существуют и другие алгоритмы. Не надо ничего скрывать от пользователей.
  2. Консоль восстановления можно реализовать в виде загрузочного диска или сменного носителя.
  3. В драйверах необходим функционал аутентификации вызывающего, если его там нет.

Грань между легальным и нелегальным использованием руткит-технологий перейти довольно просто, реализовать качественный продукт — намного сложнее. В мире защитного программного обеспечения простые решения не обязательно самые лучшие.

Легальные буткиты

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

  1. Николай

    Есть такой постулат: Виртуализация многолика. Руткит-технологии плохо уживаются с себе подобными руткит-технологиями, мнообразие решений побольше, чем в BIOSах и найти подход к этим программам в промышленном масштабе написания зловредов малореально, реальные программы перехватывают обработчик 13 прерывания BIOS одновремено с MBR довольно жёстко, сами эти программы виртуализации модифицируют MBR и различные GMER, TDSSkiller принимают эту модификацию за руткит и можно недобросовестно говорить о «компрометации».

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике