Что такое руткиты в касперском и чем они опасны
Что такое руткиты и борьба с ними в «Касперском»
Как известно, существует несколько основных типов вредоносных программ. Многие пользователи не делают различий между ними, объединяя общим названием «вирусы». В итоге необходимый софт для защиты не устанавливается или используется неправильно. Естественно, такой подход может поставить под угрозу безопасность системы.
Понятие и история руткитов
Около 20 лет назад руткиты создавались как своеобразное дополнение к другим типам вредоносных программ — «шпионам» и вирусам. Их главной целью было лишь скрыть такое ПО от пользователя и его защиты.
Первые подобные программы появились в эпоху Unix. Сегодня их деятельность связана в основном с Windows. С течением времени руткиты изменились и сегодня включают полноценный набор функций, присущий вредоносным программам. С их помощью возможно осуществить на устройстве жертвы практически любые действия:
То есть, по сути, они позволяют управлять компьютером жертвы на расстоянии. Сейчас руткиты представляют собой уже самостоятельный тип вредоносного софта.
Одна из основных особенностей и одновременно угроз, заключается в том, что такие программы-вредители обычно не распознаются стандартными антивирусами или файерволами. Поиск часто ничего не дает. Поэтому однажды проникнув в системные файлы или память, они могут оставаться незамеченными долгие годы, нанося вред устройству и его хозяину.
Подобные приложения специально созданы таким образом, чтобы скрываться при поиске, проводимом программами-защитниками. Мало того, некоторые из них способны отключать антивирусы и другие средства безопасности. В арсенале могут находиться различные инструменты:
Управлять чужим компьютером позволяет функция бэкдор. С ее помощью происходит подключение и установка необходимых модулей. Далее хакер может делать с устройством практически все что угодно.
Виды руткитов
Руткиты условно можно разделить на две основные категории:
Примеры распространенных приложений:
Кроме основных, существуют более редкие формы — буткиты. Они преобразуют загрузчик и перехватывают управление не дожидаясь запуска операционной системы. В связи с возрастающим значением смартфонов, в последние несколько лет можно встретить руткиты, работающие на Android.
Методы заражения
Способы проникновения ничем не отличаются от других классов: вирусов, червей, троянов:
Как правило, для заражения достаточно одного маленького файла, который «спрячется» внутри операционной системы. Затем он находит ее уязвимые места и получает права администратора. Дальше загружается остальное программное обеспечение, необходимое для паразитических целей.
Обнаружение и борьба
Напрашивается вопрос о том, как удалить руткиты. Сложности в борьбе присутствуют начиная с обнаружения. Поиск обычным средством не даст результата. В арсенале руткитов есть различные методы маскировки: сокрытие файлов, ключей реестра и пр. Как правило, для поиска вредителей необходимы специальные программы. Некоторые из них предназначены для обнаружения и удаления только одного определенного вида руткитов, другие — многих, в том числе — неизвестных. К первым относится, например, TDSSkiller («Касперский»). Поиск обычно производится с помощью:
Удалять их также непросто. Нередко процесс включает несколько этапов. В результате, как правило, удаление затрагивает множество файлов. Если системные ресурсы повреждены слишком сильно, иногда приходится переустанавливать операционную систему. Для более простых случаев вполне подойдет, например, стандартная процедура лечения в Kaspersky Internet Security. Для отключения регулярного поиска руткитов в продуктах «Лаборатории Касперского» обычно достаточно открыть настройки и снять соответствующую галочку в пункте меню «Производительность». Хотя делать это не рекомендуется.
Применение TDSSKiller
Одной из программ, способных отыскать руткиты, является утилита TDSSKiller. Выпускается известной «Лабораторией Касперского», поэтому в ее качестве сомневаться не приходится. Как видно из названия, проверка направлена на поиск одного из распространенных видов руткитов — TDSS. Проверить свой компьютер с ее помощью можно бесплатно. Для этого достаточно найти ее на официальном сайте.
Программа не требует установки, после загрузки можно сразу запускать проверку. Перед работой придется принять условия использования. После этого есть возможность изменить параметры проверки соответствующей командой. Если дополнительных пожеланий нет, следует оставить все по умолчанию и нажать кнопку для начала проверки в том же окне.
Дальше потребуется немного подождать, пока программа будет осуществлять проверку заданных элементов системы. При обнаружении опасные приложения отключаются, предусмотрена возможность лечения. Для того чтобы они удалились, перезагружать компьютер необязательно.
Существуют и другие эффективные антируткиты. Главное, не забыть ими воспользоваться. При выборе антивируса желательно сразу обращать внимание на возможность борьбы с таким типом приложений. К сожалению, большинство стандартных программ-защитников не имеют подобной функции либо она недостаточно эффективна. В этом случае желательно заменить антивирус или воспользоваться специализированной программой для удаления. Только так можно обезопасить себя от нежелательных последствий, вызываемых руткитами.
Поиск руткитов в Касперском — что это, как отключить
Антивирус специально создан для того, чтобы у всех пользователей ПК появилась возможность бороться с вредоносными программами, распространяющимися через интернет. Но у некоторых владельцев одного из самых популярных дистрибутивов часто возникает вопрос: поиск руткитов Касперский — что это и как использовать данный компонент? Указанная опция особенно интересует тех, кто часто использует вспомогательное ПО для лечения системы после активного серфинга в Сети.
Знакомство с функцией
Если запустить указанную опцию и включить выслеживание вирусов на компьютере, то процедура сканирования займет несколько больше времени, чем при стандартном поиске. Это в свою очередь ведет к повышенному потреблению ресурсов системы: сильно грузится диск, процессор и оперативная память.
Для того чтобы сканер не пропускал важные компоненты ОС во время полной проверки устройства, функция внедрена в Kaspersky по умолчанию. Таким образом, разработчики частично обезопасили себя от негативных отзывов. Перед отключением опции следует для начала узнать подробности о данном процессе.
Основные характеристики руткитов
Это хакерский софт, предназначенный скрывать действия вирусных утилит в операционной системе. Использование компонента приобрело популярность в конце 90-х, когда злоумышленники впервые столкнулись с активным противодействием со стороны спецслужб и IT-компаний. С тех пор код сильно изменился, и сегодня руткит способен не только сопровождать вирусную активность, но и сам участвовать во взломе ПК.
Несколько факторов его влияния:
На компьютеры пользователей попадает после активации сокрытой функции майнинга в браузере, во время фишинга (кража личной информации), при организации DDOS-атаки (массовая облава на мощности сервера).
Углубленная проверка руткитов позволяет обнаружить данный код независимо от места его расположения. Главное — это наличие актуальных баз, так как хакеры регулярно обновляют свой софт с целью улучшения его эффективности. Но данная процедура весьма требовательна к ресурсам ПК, и часто после ее запуска работа в системе останавливается ввиду выделения всей свободной мощности под процесс сканирования.
Процедура отключения опции
В целях безопасности использование нижеизложенного алгоритма не рекомендуется. Но все-таки множество пользователей желают знать, как отключить функцию хотя бы на время. Иногда обычного режима сканирования вирусов вполне достаточно для нахождения источников заражения (трояны, черви и прочее). Но стоит помнить, что самые опасные программы прячутся очень глубоко, а руткит помогает скрыть все следы.
Чтобы вручную вырубить опцию, нужно:
В этом же окне есть пункт «Приостановить работу файлового антивируса», который позволяет на определенное время снять защиту. Данная опция присутствует в последних версиях приложения, включая Kaspersky 2019 и 2020.
Выводы
Если компьютер часто подвергается атакам со стороны злоумышленников или пользователь много времени проводит в интернете, то опция удаления руткитов обязательно должна быть включена. Иначе система может быть уязвима перед такими серьезными угрозами, как майнер или вирус-вымогатель. Достаточно запускать «полную проверку» хотя бы каждую неделю, чтобы обезопасить себя от подобных неприятностей.
Руткиты: проблемы безопасности и тенденции развития
В настоящее время очевидно смещение вектора компьютерных атак от массового заражения к целевым, точечным атакам. Как сказал Е. Касперский: «Девяностые были десятилетием киберхулиганов, двухтысячные были десятилетием киберпреступников, сейчас наступила эра кибервойн и кибертеррора». Иллюстрацией этому являются всем известные примеры: Stuxnet, Duqu, Flamer, Gauss, которые многие антивирусные компании причисляют к кибероружию.
Основные тенденции в компьютерной безопасности
Одним из ярких примеров использования кибероружия может служить шпионская сеть «Красный октябрь», которая пять лет активно добывала информацию из правительственных организаций, различных исследовательских институтов, крупных международных компаний. Серьезная защищенность этих объектов не остановила работу вредоносной системы. Она была раскрыта всего несколько месяцев назад, что свидетельствует о возрастающей угрозе вмешательства в работу любой компьютерной системы.
Для обеспечения устойчивого и неопределяемого присутствия в компьютерной системе вредоносное программное обеспечение (ВПО) использует специальные механизмы, называемые руткит-механизмами. В результате ВПО работает незаметно как для пользователя, так и для средств защиты.
Казалось бы, разработчики ОС должны всеми силами противостоять сокрытию нелигитимного ПО, однако появление новой версии Windows не изменило ситуацию в лучшую сторону. Восьмерка переняла от своих предшественников часть уже знакомых механизмов защиты (UAC, ASLR, DEP, PatchGuard, цифровые подписи для драйверов), для которых существует возможность обхода. И представила несколько новых — Secure Boot, SMEP и ELAM, которые, однако, не сильно повысили уровень защищенности. О чем свидетельствуют демообразец буткита Stoned Lite Питера Кляйсснера и UEFI bootkit Андреа Аллиеви. А о возможности обхода технологии SMEP на Windows 8 уже писал А. Шишкин из компании Positive Technologies.
Согласно недавнему отчету британской Национальной аудиторской службы (NAO), наблюдается рост числа киберпреступлений, которые одной Великобритании обходятся в 18–27 миллиардов фунтов стерлингов ежегодно (bit.ly/14O9xy5).
Исходя из сказанного, можно сделать вывод, что в последней версии Windows для борьбы с ВПО ничего революционно нового не было внедрено, и достойных механизмов, способных сильно осложнить жизнь разработчикам руткитов, на сегодняшний момент нет.
Механизмы сокрытия в системе
Для сокрытия ВПО могут применяться различные методы. Впервые классификация механизмов сокрытия была выполнена Йоанной Рутковской в работе Introducing Stealth Malware Taxonomy. Предложенная ей классификация может быть расширена следующим образом (см. рис. 1).
Стеганографические механизмы скрывают истинное предназначение внедренных объектов маскировкой их под легитимные, например схожестью их имен с именами системных файлов. В результате вредоносные файлы видны пользователю, но не вызывают у него подозрения. Пример стеганографического сокрытия — использование сертификатов доверенных компаний для подписи вредоносных драйверов. Благодаря действительным сертификатам компаний Realtek и JMicron червь Stuxnet долгое время оставался незамеченным, а компоненты червя Flame имели цифровую подпись самой компании Microsoft.
Для работы стеганографических механизмов не требуется повышенных привилегий, также они переносятся на различные версии ОС Windows. Однако из-за отсутствия технических механизмов сокрытия такое ВПО может быть легко обнаружено и удалено. Большую опасность представляют комбинации стеганографических с другими механизмами сокрытия.
Ко второй группе относятся технические механизмы сокрытия, в результате работы которых информация о скрываемом объекте становится недоступной средству обнаружения («не виден объект, значит, его и нет»). Эти механизмы можно разделить на руткит-механизмы, работающие «внутри» и «вне» ОС.
В случае руткит-механизма «внутри ОС» объектом может выступать процесс, драйвер, файл на диске, сетевой порт, ключ в реестре. Для своей работы руткит-механизмы могут изменять как пути выполнения, так и структуры памяти, как в пользовательском, так и в системном адресных пространствах.
Для изменения пути выполнения ВПО перехватывает функции штатного обработчика и передает управление вредоносному обработчику, который вносит целенаправленные изменения в возвращаемый результат. Способы обнаружения описанного механизма сокрытия уже освещались на страницах журнала.
Вторая подгруппа руткит-механизмов, работающих «внутри» ОС, не добавляет новых обработчиков в систему, а особым образом изменяет структуры памяти, хранящие информацию о скрываемом объекте. Примеры таких структур, расположенных в системном адресном пространстве и представляющих интерес для руткитов: KRPCB, ETHREAD, EPROCESS, MODULE_ENTRY, _DRIVER_OBJECT, плюс БД зарегистрированных драйверов и служб, расположенная в пользовательском пространстве процесса SERVIСES.EXE.
Руткит-механизмы «вне ОС» основаны на установке собственного или модификации существующего обработчика событий в том или ином режиме работы процессора либо дополнительного аппаратного обеспечения. Для работы этих механизмов зачастую необходимо наличие набора микросхем с поддержкой требуемой технологии. Можно выделить руткит-механизмы, построенные на основе режима аппаратной виртуализации, режима системного управления и кода, использующего технологии Active Management Technology и V-PRO. Широко известный в узких кругах автор R_T_T в своих работах «Кремневый беспредел» описывает возможности и угрозы информационной безопасности не только от указанных технологий, но и от механизма обновления микрокода процессора (bit.ly/VRQD6O и bit.ly/104EsRB).
Интересная техника сокрытия руткитов
На конференции ZeroNight в 2012 году была представлена работа Д. Олексюка (aka Cr4sh) в которой описывался интересный способ размещения руткита не в файлах, а в реестре с помощью Differentiated System Description Table (DSDT). Преимущество данного способа в том, что ни одно средство для обнаружения руткитов не учитывает такую возможность.
Антируткиты
Большинство вредоносных средств, о которых шла речь ранее, использовали для своей работы драйверы. В связи с этим давай рассмотрим наиболее распространенные антируткит-средства, способные обнаруживать наличие скрытых драйверов.
Из популярных внештатных средств, поддерживающих работу с Windows 8, можно выделить следующие: Gmer, XueTr, PowerTool, TDSSKiller (Kaspersky Labs).
С позиции обнаружения скрытых драйверов средства Gmer, XueTr и PowerTool имеют схожие алгоритмы работы, использующие для обнаружения побайтовый поиск в памяти фрагментов структур драйверов. Средство TDSSKiller для обнаружения драйверов использует несколько иной список, информация в который заносится при загрузке драйверов через штатные средства Windows.
Изменение полей в необходимых структурах и удаление из соответствующих списков обеспечит сокрытие драйвера от этих средств, без нарушения работы системы и самого ВПО. Это позволяет констатировать отсутствие в открытом доступе антируткитных средств, стойких к противодействию.
Программно-аппаратные руткиты
Программно-аппаратные руткиты функционируют «вне ОС». Наиболее интересны экземпляры, построенные на основе технологии аппаратной виртуализации. Почему? Во-первых, их можно установить с помощью драйверов — штатного механизма различных ОС. Во-вторых, такие руткиты могут перехватывать события более высокого уровня, чем другие. В-третьих, они лучше документированы. Поэтому с ними мы познакомимся поближе.
С 2006 года компании Intel и AMD начали выпускать процессоры с поддержкой технологии аппаратной виртуализации. ПО, использующее технологию аппаратной виртуализации (или просто гипервизор), работает в новом режиме, более привилегированном, чем ОС. Технология аппаратной виртуализации позволяет запускать во вложенном виде несколько различных гипервизоров.
Исходные коды гипервизоров — драйверов для ОС Windows x86
С одной стороны, гипервизор, выполняющий функции монитора виртуальных машин, повышает сервисные возможности компьютера и снижает его эксплуатационные расходы. Благодаря ему на одном компьютере может быть одновременно запущено несколько ОС в разных виртуальных машинах (рис. 2).
Но, с другой стороны, можно негласно внедрить гипервизор — программную закладку, которая обладает бесконтрольными возможностями и несет угрозу информационной безопасности.
В открытом доступе имеются два программных средства — BluePill и Vitriol, реализованные в виде драйверов, которые устанавливают гипервизор прозрачно для пользователя.
Обнаружением гипервизоров занимались как целые компании (Komoku, North Security Labs и другие), так и отдельные специалисты. Даже сама компания Microsoft опубликовала интерфейс для обнаружения гипервизоров, согласно которому необходимо выполнить инструкцию CPUID, предварительно записав в регистр EAX единицу. Далее необходимо проверить значение 31 бита регистра ECX; если он выставлен, то в системе присутствует гипервизор, а информация о его возможностях передается в структуре HV_CPUID_RESULT. Однако такой способ не защищен от компрометации.
Несмотря на широкую распространенность гипервизоров, штатные средства для их обнаружения отсутствуют, а опубликованные имеют существенные недостатки: невозможность выявить гипервизор в случае его противодействия обнаружению, а также неудобство использования и тиражирования ряда средств. Под удобством тиражирования понимается отсутствие в средстве обнаружения внешнего аппаратного компонента, необходимого на протяжении всего времени работы.
Средства отладки гипервизоров
Специфика работы гипервизора не всегда позволяет использовать популярные средства отладки, такие как vBox (VMware) вместе с WinDbg, вместо этого можно использовать эмуляторы Bochs или AMD SimNow, однако они достаточно сложны в настройке.
Что же можно использовать:
В связи с широким распространением различного ПО, использующего технологию аппаратной виртуализации, особую опасность представляет нелегальный гипервизор, который для своего сокрытия использует легитимный с помощью вложенной виртуализации. В открытых источниках сведения о способах обнаружения нескольких вложенных гипервизоров отсутствуют.
Обзор и классификация способов обнаружения гипервизоров
Вопрос обнаружения гипервизоров уже неоднократно обсуждался. На рис. 3 представлена классификация способов обнаружения гипервизоров, согласно которой все способы делятся на проактивные и сигнатурные.
Временны́е способы обнаружения основаны на том, что статистики времени обработки заданных событий гостевой ОС существенно зависят от того, загружен гипервизор или нет: в присутствии гипервизора длительность обработки событий значительно больше. Данная особенность была использована товарищем R_T_T при обнаружении китайского гипервизора (xakep.ru/post/58104). Она позволяет сравнительно просто выявлять гипервизоры только в тех случаях, если нарушитель не предпринял меры для их сокрытия. В ситуациях, когда осуществляется целенаправленная компрометация счетчика либо временная выгрузка гипервизора из памяти (так называемая технология BlueChicken, которая использовалась в BluePill), известные временны́е способы не позволяют обнаружить гипервизор.
Детальное описание и сравнительный анализ указанных способов обнаружения представлен в работе bit.ly/ik_volume. Мы же уделим внимание временному способу обнаружения с использованием списка демаскирующих событий.
Для выбранного способа таким событием гостевой ОС будет выполнение инструкции, при котором управление всегда передается из ОС гипервизору. Одной из таких инструкций является CPUID. Система обнаружения гипервизоров, которая будет описана далее, использует именно этот способ.
Чтобы оценить каждый из методов, были проанализированы средства обнаружения гипервизоров, результаты сравнения которых представлены в табл. 1. Под не скрытым гипервизором подразумевается отсутствие в этом образце компонента, обеспечивающего противодействие обнаружению. Под скрытым образцом подразумевается наличие в этом образце такого компонента. В табл. 1 знаки «+» и «–» показывают наличие (отсутствие) указанной характеристики соответственно.
По результатам проведенного анализа видно, что существующие способы обнаружения гипервизоров обладают рядом недостатков:
Далее представлена авторская методика обнаружения нелегитимного гипервизора, которая лишена указанных недостатков. Будет рассматриваться гипервизор, который может быть внедрен с помощью:
При этом учитывается, что реализованный нарушителем гипервизор может противодействовать обнаружению посредством компрометации процессорного счетчика тактов, вре́менной деинсталляции из памяти, а также предотвращать получение копии дампа памяти, содержащей структуры гипервизора.
Предпосылки для обнаружения
Чтобы выявить факторы, которые могут быть использованы для обнаружения гипервизора, был проведен сравнительный анализ работы процессора с поддержкой аппаратной виртуализации при выполнении набора безусловно перехватываемых гипервизором инструкций в случаях его отсутствия и присутствия (рис. 4, а и 4, б).
В случае присутствия гипервизора возрастает не только абсолютное время выполнения трассы, но и значения статистических характеристик длительности выполнения, например дисперсии. Эта отличительная особенность и легла в основу предлагаемой методики обнаружения (подробный анализ схем переключения между режимами работы процессора и математическое обоснование можно посмотреть тут bit.ly/10nPPlY.
Методика обнаружения и ее анализ
Суть методики обнаружения состоит в расчете и сравнении статистических характеристик длительности выполнения трассы с пороговыми величинами.
Измерение длительности выполнения трассы проводилось для десяти инструкций CPUID с помощью процессорного счетчика тактов TSC на повышенном 31-м уровне приоритета IRQL. Результатами опытов являлись матрицы размером 1000 х 10, содержащие данные измерений длительности выполнения трассы, по которым рассчитывались различные статистические характеристики.
Для иллюстрации в табл. 2 приведены пороговые значения последовательной комбинации таких показателей, как дисперсии D ̅f и момента 4-го порядка M ̅f, полученных на различных ПК, для случаев отсутствия (ОТ) и присутствия (ПР) гипервизоров.
В первом столбце табл. 2 номерами обозначены модели процессоров обследованных ПК:
В первых двух ПК использовался разработанный автором гипервизор (исходный код которого ты можешь найти на диске), реализованный в виде драйвера ОС, в третьем случае — специализированный гипервизор, получающий управление при загрузке ПК из BIOS.
Предлагаемая методика обнаружения нелегитимного гипервизора состоит из двух этапов: предварительного и оперативного, как представлено в табл. 3 (детальное описание методики: bit.ly/ik_volume).
Для противодействия этой методике скрываемый гипервизор должен компрометировать показания счетчика тактов не на постоянную величину, а на случайную, так, чтобы, с одной стороны, уравнять средние длительности выполнения трассы, а с другой — стабилизировать разброс длительностей выполнения трассы. Однако вопрос подбора закона распределения такой случайной величины остается открытым.
Правда, данная методика не лишена и недостатков (табл. 4).
Взгляд в будущее
Все, о чем мы до этого говорили, все эти методики сокрытия и обнаружения относятся к сегодняшнему дню. А что нам ждать от дня завтрашнего? По какому пути развития пойдут технологии создания руткитов? Можно дать волю воображению и с большой вероятностью предположить, что развиваться они будут по следующим направлениям:
Не могу снова не упомянуть работу R_T_T, посвященную закладкам в военных ноутбуках Getac (bit.ly/Sf23yP). Там программные закладки были выполнены в виде софта от компании Compuware, именно той, которая выпускала мощный отладчик SoftICE. В настоящее время аналогичные закладки этой компании можно встретить в планшетах. К примеру, новые ThinkPad 2 с продвинутым уровнем защиты продаются уже с предустановленным ПО — «Enterprise-level security, with Trusted Platform Module and Computrace Mobile».
Интересную работу, посвященную EFI-руткитам, но под OS Х, выполнил Loukas K: bit.ly/Pe1Dkl.
Итоги
Об авторе
Игорь Коркин (igor.korkin@gmail.com) — кандидат технических наук по специальности 05.13.19 «Методы и системы защиты информации, информационная безопасность». Работает в МИФИ, руководит научной работой студентов, готовит аспирантов. Занимается обнаружением программных закладок более шести лет, автор более десяти научных работ, победитель конкурса «Хакеры против форензики» на форуме Positive Hack Days 2012.
Впервые опубликовано в журнале «Хакер» от 05/2013.