Руткит

редактировать

A Руткит - это набор компьютерного программного обеспечения, обычно вредоносного, предназначенного для разрешить доступ к компьютеру или части его программного обеспечения, который не разрешен иным образом (например, неавторизованному пользователю), и часто скрывает свое существование или существование другого программного обеспечения. Термин «руткит» - это составное из «root » (традиционное имя привилегированной учетной записи в Unix-подобных операционных системах) и слова «комплект» ( который относится к программным компонентам, реализующим инструмент). Термин «руткит» имеет отрицательную коннотацию из-за его связи с вредоносным ПО..

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

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

Содержание
  • 1 История
    • 1.1 Скандал с руткитами Sony BMG
    • 1.2 Греческий случай прослушивания телефонных разговоров 2004–05
  • 2 Использует
  • 3 типа
    • 3.1 Пользовательский режим
    • 3.2 Ядро режим
      • 3.2.1 Bootkits
    • 3.3 Уровень гипервизора
    • 3.4 Прошивка и оборудование
  • 4 Установка и маскировка
  • 5 Обнаружение
    • 5.1 Альтернативный доверенный носитель
    • 5.2 На основе поведения
    • 5.3 На основе подписи
    • 5.4 На основе различий
    • 5.5 Проверка целостности
    • 5.6 Дампы памяти
  • 6 Удаление
  • 7 Защиты
  • 8 См. Также
  • 9 Примечания
  • 10 Ссылки
  • 11 Дополнительная литература
  • 12 Внешние ссылки
История

Термин руткит или корневой комплект первоначально относился к злонамеренно измененному набору административных инструментов для Unix-подобного операционная система, предоставившая доступ "root ". Если бы злоумышленник мог заменить стандартные административные инструменты в системе руткитом, он мог бы получить root-доступ в системе, одновременно скрывая эти действия от законного системного администратора. Эти руткиты первого поколения было тривиально обнаружить с помощью таких инструментов, как Tripwire, которые не были скомпрометированы для доступа к той же информации. Лейн Дэвис и Стивен Дэйк написали самый ранний известный руткит в 1990 году для операционной системы Sun Microsystems 'SunOS UNIX. В лекции, которую он прочитал после получения премии Тьюринга в 1983 году, Кен Томпсон из Bell Labs, один из создателей Unix, теоретизировал о подрыве компилятора C в дистрибутиве Unix и обсудил эксплойт. Модифицированный компилятор обнаружит попытки скомпилировать команду Unix loginи сгенерирует измененный код, который будет принимать не только правильный пароль пользователя, но и дополнительный пароль «backdoor », известный злоумышленнику. Кроме того, компилятор обнаружит попытки скомпилировать новую версию компилятора и вставит те же эксплойты в новый компилятор. Обзор исходного кода для команды loginили обновленного компилятора не выявит вредоносного кода. Этот эксплойт был эквивалентом руткита.

Первый задокументированный компьютерный вирус , нацеленный на персональный компьютер, обнаруженный в 1986 году, использовал методы маскировки, чтобы скрыть себя: Brain virus перехватил попытки чтения загрузочного сектора и перенаправил их в другое место на диске, где хранилась копия исходного загрузочного сектора. Со временем методы маскировки вирусов DOS стали более изощренными, с расширенными технологиями, включая перехват низкоуровневого диска INT 13H BIOS прерывание призывает скрыть несанкционированные изменения файлов.

Первый вредоносный руткит для операционной системы Windows NT появился в 1999 году: троян под названием NTRootkit, созданный Грегом Хоглундом. За ним последовал HackerDefender в 2003 году. Первый руткит, нацеленный на Mac OS X, появился в 2009 году, а червь Stuxnet был первым, нацеленным на программируемые логические контроллеры ( PLC).

Скандал с руткитом Sony BMG с защитой от копирования

Снимок экрана RootkitRevealer, на котором показаны файлы, скрытые с помощью Extended Copy Protection rootkit

В 2005 г. Sony BMG опубликовала компакт-диски с защитой от копирования и программным обеспечением для управления цифровыми правами под названием Extended Copy Protection, созданным с помощью программного обеспечения Компания First 4 Internet. Программное обеспечение включало музыкальный проигрыватель, но автоматически устанавливало руткит, который ограничивал возможность доступа пользователя к компакт-диску. Инженер-программист Марк Руссинович, создавший средство обнаружения руткитов RootkitRevealer, обнаружил руткит на одном из своих компьютеров. Последовавший за этим скандал повысил осведомленность общественности о руткитах. Чтобы скрыть себя, руткит скрывал от пользователя все файлы, начинающиеся с «$ sys $». Вскоре после доклада Руссиновича появилось вредоносное ПО, которое воспользовалось этой уязвимостью пораженных систем. Один аналитик BBC назвал это «пиар кошмаром». Sony BMG выпустила патчи для удаления руткита, но это подвергло пользователей еще более серьезной уязвимости. В конце концов компания отозвала компакт-диски. В Соединенных Штатах коллективный иск был подан против Sony BMG.

Греческое дело о прослушивании телефонных разговоров 2004–05

Греческое дело о прослушивании телефонных разговоров 2004–05, также упоминаемый как Greek Watergate, был связан с незаконным прослушиванием телефонных разговоров более чем 100 мобильных телефонов в сети Vodafone Greece, принадлежащей в основном членам греческой государственные и высокопоставленные государственные служащие. Установки начались где-то в начале августа 2004 г. и были сняты в марте 2005 г. без установления личности преступников. Злоумышленники установили руткит на телефонную станцию ​​Ericsson AX. Согласно IEEE Spectrum, это был «первый раз, когда руткит был обнаружен в системе специального назначения, в данном случае на телефонном коммутаторе Ericsson». Руткит был разработан для исправления памяти обмена во время его работы, включения прослушки при отключении журналов аудита, исправления команд, которые перечисляют активные процессы и активные блоки данных, и изменения контрольной суммы блока данных команда проверки. «Бэкдор» позволял оператору со статусом sysadmin деактивировать журнал транзакций биржи, сигналы тревоги и команды доступа, связанные с возможностью наблюдения. Руткит был обнаружен после того, как злоумышленники установили ошибочное обновление, из-за которого тексты SMS не были доставлены, что привело к созданию автоматического отчета об ошибке. Инженеры Эрикссон были вызваны для расследования неисправности и обнаружили скрытые блоки данных, содержащие список отслеживаемых телефонных номеров, а также руткит и незаконное программное обеспечение для мониторинга.

Использование

Современные руткиты не повышают уровень доступа, а скорее используются для того, чтобы сделать другую полезную нагрузку программного обеспечения необнаружимой путем добавления скрытых возможностей. Большинство руткитов классифицируются как вредоносное ПО, поскольку полезная нагрузка, с которой они связаны, является вредоносной. Например, полезная нагрузка может скрыто украсть пользовательские пароли, информацию, вычислительные ресурсы или провести другие несанкционированные действия. Небольшое количество руткитов могут рассматриваться их пользователями как служебные приложения: например, руткит может скрывать драйвер эмуляции CD-ROM, позволяя пользователям видеоигр победить меры по борьбе с пиратством, требующие вставки исходного установочного носителя в физический оптический привод для проверки законности приобретения программного обеспечения.

Руткиты и их полезная нагрузка имеют множество применений:

В некоторых случаях руткиты обеспечивают желаемую функциональность и могут быть установлены намеренно от имени пользователь компьютера:

  • Обеспечение управления цифровыми правами (DRM).
  • Обнаружение и предотвращение мошенничества в онлайн-играх с помощью программного обеспечения, такого как Warden и GameGuard.
  • Обнаружение атак, например, в honeypot.
  • Enhance для эмуляции программного обеспечения и программного обеспечения безопасности. Alcohol 120% и Daemon Tools являются коммерческие примеры не враждебных руткитов, используемых для выхода из строя механизмов защиты от копирования, таких как SafeDisc и SecuROM. Антивирус Касперского также использует методы, похожие на руткиты, для защиты от вредоносных действий. Он загружает свои собственные драйверы для перехвата активности системы, а затем предотвращает нанесение другим процессами вреда себе. Его процессы не скрыты, но не могут быть остановлены стандартными методами.
  • Защита от кражи: на ноутбуках может быть установлено программное обеспечение руткитов на основе BIOS, которое будет периодически отчитываться перед центральным органом, позволяя контролировать и отключать ноутбук. или стереть информацию в случае ее кражи.
  • Обход активации продукта Microsoft
Типы

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

Пользовательский режим

Кольца безопасности компьютера (обратите внимание, что Кольцо -1 не показано)

Руткиты пользовательского режима выполняются в кольце 3 вместе с другими приложениями как пользовательские, а не низкоуровневые системные процессы. У них есть несколько возможных векторов установки для перехвата и изменения стандартного поведения интерфейсов прикладного программирования (API). Некоторые внедряют динамически подключаемую библиотеку (например, файл .DLL в Windows или файл.dylib в Mac OS X ) в другие процессы и тем самым может выполняться внутри любого целевого процесса для его подмены; другие с достаточными привилегиями просто перезаписывают память целевого приложения. Механизмы внедрения включают:

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

... поскольку все приложения пользовательского режима работают в собственном пространстве памяти, руткиту необходимо выполнить это исправление в памяти каждого запущенного приложения. Кроме того, руткит должен отслеживать в системе любые новые приложения, которые запускаются, и исправлять память этих программ до их полного выполнения.

— Обзор руткитов Windows, Symantec

Режим ядра

Режим ядра руткиты запускаются с наивысшими привилегиями операционной системы (кольцо 0 ) путем добавления кода или замены частей основной операционной системы, включая как ядро ​​, так и связанные с ним драйверы устройств. Большинство операционных систем поддерживают драйверы устройств режима ядра, которые выполняются с теми же привилегиями, что и сама операционная система. Таким образом, многие руткиты режима ядра разрабатываются как драйверы устройств или загружаемые модули, такие как загружаемые модули ядра в Linux или драйверы устройств в Microsoft. Окна. Этот класс руткитов имеет неограниченный безопасный доступ, но его сложнее написать. Сложность делает ошибки обычными, и любые ошибки в коде, работающем на уровне ядра, могут серьезно повлиять на стабильность системы, что приведет к обнаружению руткита. Один из первых широко известных руткитов ядра был разработан для Windows NT 4.0 и выпущен в журнале Phrack в 1999 году Грегом Хоглундом. Руткиты ядра могут быть особенно трудными для обнаружения и удаления, поскольку они работают на том же уровне безопасности, что и сама операционная система, и, таким образом, способны перехватывать или нарушать наиболее надежные операции операционной системы. Любое программное обеспечение, такое как антивирусное программное обеспечение, запущенное в скомпрометированной системе, одинаково уязвимо. В этой ситуации нельзя доверять ни одной части системы.

Руткит может изменять структуры данных в ядре Windows, используя метод, известный как прямое манипулирование объектами ядра (DKOM). Этот метод можно использовать, чтобы скрыть процессы. Руткит режима ядра также может подключать таблицу дескрипторов системных служб (SSDT) ​​или изменять шлюз между пользовательским режимом и режимом ядра, чтобы скрыть себя. Аналогично для операционной системы Linux руткит может изменять таблицу системных вызовов, чтобы подорвать функциональность ядра. Часто руткит создает скрытую зашифрованную файловую систему, в которой он может скрывать другие вредоносные программы или оригинальные копии файлов, которые он заразил. Операционные системы развиваются, чтобы противостоять угрозе руткитов режима ядра. Например, в 64-битных выпусках Microsoft Windows теперь реализована обязательная подпись всех драйверов уровня ядра, чтобы затруднить выполнение ненадежного кода с наивысшими привилегиями в системе.

Bootkits

Вариант руткита режима ядра, называемый буткит, может заразить код запуска, например Master Boot Record (MBR), Volume Boot Record (VBR), или загрузочный сектор, и таким образом может использоваться для атаки на системы полного шифрования диска.

Примером такой атаки на шифрование диска является «атака злой горничной », при которой злоумышленник устанавливает буткит на необслуживаемый компьютер. Предполагаемый сценарий - горничная пробирается в номер отеля, где жертвы оставили свое оборудование. Буткит заменяет законный загрузчик загрузчика на тот, который находится под их контролем. Обычно загрузчик вредоносных программ сохраняется при переходе в защищенный режим после загрузки ядра и, таким образом, способен разрушить ядро. Например, «Stoned Bootkit» разрушает систему, используя скомпрометированный загрузчик для перехвата ключей шифрования и паролей. Совсем недавно руткит Alureon успешно устранил требование подписи 64-разрядного драйвера режима ядра в Windows 7, изменив главную загрузочную запись. Хотя это и не вредоносное ПО в смысле выполнения чего-то, чего пользователь не хочет, определенное программное обеспечение "Vista Loader" или "Windows Loader" работает аналогичным образом, внедряя таблицу ACPI SLIC (системный лицензионный внутренний код). в версии BIOS, кэшированной в ОЗУ, во время загрузки, чтобы предотвратить процесс активации Windows Vista и Windows 7. Этот вектор атаки оказался бесполезным в (не серверных) версиях Windows 8, которые используют уникальный машинно-зависимый ключ для каждой системы, который может использоваться только на этой машине. Многие антивирусные компании предоставляют бесплатные утилиты и программы для удаления буткитов.

Уровень гипервизора

Руткиты были созданы в академических кругах как гипервизоры типа II в качестве доказательства концепции. Используя функции аппаратной виртуализации, такие как Intel VT или AMD-V, этот тип руткита работает в кольце -1 и размещает целевую операционную систему как виртуальную машину , тем самым позволяя руткиту перехватывать аппаратные вызовы исходной операционной системы. В отличие от обычных гипервизоров, они не должны загружаться перед операционной системой, но могут загружаться в операционную систему перед ее продвижением в виртуальную машину. Руткит гипервизора не должен вносить никаких изменений в ядро ​​целевой машины, чтобы подорвать его; однако это не означает, что гостевая операционная система не может его обнаружить. Например, в инструкциях CPU можно обнаружить разницу во времени. Лабораторный руткит SubVirt, разработанный совместно исследователями Microsoft и Мичиганского университета, является академическим примером руткита на основе виртуальной машины (VMBR), а Blue Pill программное обеспечение - другое. В 2009 году исследователи из Microsoft и Государственного университета Северной Каролины продемонстрировали антируткит уровня гипервизора под названием Hooksafe, который обеспечивает общую защиту от руткитов режима ядра. Windows 10 представила новую функцию под названием «Device Guard», которая использует преимущества виртуализации для обеспечения независимой внешней защиты операционной системы от вредоносных программ типа руткитов.

Прошивка и оборудование

A прошивка использует руткит микропрограммное обеспечение устройства или платформы для создания постоянного образа вредоносной программы на оборудовании, таком как маршрутизатор, сетевая карта, жесткий диск или система BIOS. Руткит скрывается в прошивке, потому что прошивка обычно не проверяется на предмет целостности кода. Джон Хисман продемонстрировал жизнеспособность руткитов встроенного ПО как в подпрограммах встроенного ПО ACPI, так и в плате расширения PCI ROM. В октябре 2008 года преступники взломали европейские читающие машины до того, как они были установлены. Устройства перехватывали и передавали данные кредитной карты через сеть мобильной связи. В марте 2009 года исследователи Альфредо Ортега опубликовали подробные сведения о рутките для Windows уровня BIOS, который выдержал замену диска и переустановку операционной системы. Несколько месяцев спустя они узнали, что некоторые ноутбуки продаются с легальным руткитом, известным как Absolute CompuTrace или Absolute LoJack для ноутбуков, предустановленным во многих образах BIOS. Это технологическая система для защиты от кражи, которую, как показали исследователи, можно использовать в злонамеренных целях.

Технология Intel Active Management, часть Intel vPro, реализует внеполосное управление, предоставляющее администраторам удаленное администрирование, удаленное управление и удаленное управление ПК без участия процессора хоста или BIOS, даже когда система выключена. Удаленное администрирование включает в себя удаленное включение и выключение питания, удаленный сброс, перенаправленную загрузку, перенаправление консоли, доступ к настройкам BIOS перед загрузкой, программируемую фильтрацию входящего и исходящего сетевого трафика, проверку присутствия агента, внеполосное управление на основе политик оповещение, доступ к системной информации, такой как информация об аппаратных активах, постоянные журналы событий и другая информация, которая хранится в выделенной памяти (не на жестком диске), где она доступна, даже если ОС не работает или ПК выключен. Для некоторых из этих функций требуется руткит самого глубокого уровня, второй несъемный шпионский компьютер, построенный вокруг основного компьютера. Sandy Bridge и будущие чипсеты обладают «способностью удаленно уничтожать и восстанавливать утерянные или украденные ПК через 3G». Аппаратные руткиты, встроенные в набор микросхем, могут помочь восстановить украденные компьютеры, удалить данные или сделать их бесполезными, но они также представляют проблемы конфиденциальности и безопасности, связанные с необнаружимым шпионажем и перенаправлением со стороны руководства или хакеров, которые могут получить контроль.

Установка и маскировка

Руткиты используют различные методы для получения контроля над системой; тип руткита влияет на выбор вектора атаки. Наиболее распространенный метод использует уязвимости безопасности для тайного повышения привилегий. Другой подход - использование троянского коня, обманывающего пользователя компьютера, заставляя его доверять программе установки руткита как безвредной - в этом случае социальная инженерия убеждает пользователя в полезности руткита. Задача установки упрощается, если не применяется принцип минимальных прав, поскольку руткит не должен явно запрашивать повышенные (уровень администратора) привилегии. Другие классы руткитов могут быть установлены только лицом, имеющим физический доступ к целевой системе. Некоторые руткиты также могут быть намеренно установлены владельцем системы или кем-либо, уполномоченным владельцем, например в целях мониторинга сотрудников, что делает ненужными такие подрывные методы. Некоторые вредоносные установки руткитов производятся коммерчески, с методом компенсации с оплатой за установку (PPI), типичным для распространения.

После установки руткит принимает активные меры, чтобы скрыть свое присутствие в системе. хост-систему путем взлома или обхода стандартных инструментов безопасности операционной системы и интерфейса прикладного программирования (API), используемых для диагностики, сканирования и мониторинга. Руткиты достигают этого, изменяя поведение основных частей операционной системы посредством загрузки кода в другие процессы, установки или модификации драйверов или модулей ядра. Методы обфускации включают в себя сокрытие запущенных процессов от механизмов мониторинга системы и сокрытие системных файлов и других данных конфигурации. Нередко руткит отключает возможность регистрации событий операционной системы, пытаясь скрыть доказательства атаки. Теоретически руткиты могут нарушить работу любой операционной системы. «Идеальный руткит» можно рассматривать как «совершенное преступление »: преступление, о котором никто не подозревает. Руткиты также принимают ряд мер для защиты от обнаружения и «очистки» антивирусным программным обеспечением в дополнение к обычной установке в Ring 0 (режим ядра), где они имеют полный доступ к системе. К ним относятся полиморфизм (изменение так, что их "подпись" трудно обнаружить), методы скрытности, регенерацию, отключение или отключение антивирусного программного обеспечения, а также отказ от установки на виртуальных машинах, где оно исследователям может быть легче их обнаружить и проанализировать.

Обнаружение

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

Для руткитов режима ядра обнаружение значительно сложнее, требуя тщательного изучения таблицы системных вызовов для поиска перехваченных функций, где вредоносная программа может нарушать поведение системы, а также криминалистическое сканирование памяти на наличие шаблонов, указывающих на скрытые процессы. Предложения по обнаружению руткитов Unix включают Zeppoo, chkrootkit, rkhunter и OSSEC. Для Windows средства обнаружения включают Microsoft Sysinternals RootkitRevealer, Avast Antivirus, Sophos Anti-Rootkit, F-Secure, Radix, <54.>GMER и WindowsSCOPE. Любые обнаружители руткитов, которые доказали свою эффективность, в конечном итоге способствуют их собственной неэффективности, поскольку авторы вредоносных программ адаптируют и тестируют свой код, чтобы избежать обнаружения хорошо используемыми инструментами. Обнаружение путем проверки хранилища, когда подозрительная операционная система не работает, может пропустить руткиты, не распознаваемые программным обеспечением для проверки, поскольку руткит не активен и подозрительное поведение подавляется; обычное антивирусное программное обеспечение, работающее с работающим руткитом, может выйти из строя, если руткит эффективно скрывается.

Альтернативный надежный носитель

Лучший и самый надежный метод обнаружения руткитов на уровне операционной системы - выключить компьютер, подозреваемый в заражении, и затем проверить его хранилище путем загрузки с альтернативного надежного носителя (например, «аварийного» CD-ROM или USB-накопителя ). Этот метод эффективен, потому что руткит не может активно скрывать свое присутствие, если он не запущен.

Поведенческий подход

Поведенческий подход к обнаружению руткитов пытается определить наличие руткита, ища поведение, подобное руткиту. Например, с помощью профилирования системы различия во времени и частоте вызовов API или в общей загрузке ЦП можно отнести к руткиту. Метод сложен, и ему мешает высокая частота ложных срабатываний. Неисправные руткиты иногда могут вносить очень очевидные изменения в систему: руткит Alureon приводил к сбою систем Windows после того, как обновление безопасности выявило конструктивный недостаток в его коде. Журналы из анализатора пакетов, межсетевого экрана или системы предотвращения вторжений могут содержать свидетельства поведения руткитов в сетевой среде.

На основе сигнатур.

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

На основе различий

Другой метод, который может обнаруживать руткиты, сравнивает "доверенные «необработанные данные с« испорченным »содержимым, возвращаемые API. Например, двоичные файлы, имеющиеся на диске, можно сравнить с их копиями внутри (в некоторых операционных системах образ в памяти должен быть идентичен образу на диске) или результаты, возвращенные из файловая система или Реестр Windows API-интерфейсы могут быть проверены по необработанным структурам на базовых физических дисках, однако в первом случае некоторые допустимые различия могут быть внесены с помощью механизмов операционной системы, таких как перемещение памяти или регулировочная прокладка. Руткит может обнаруживать наличие такого сканера на основе различий или виртуальной машины (последняя обычно используется для выполнения криминалистического анализа) и корректировать его поведение так, чтобы не было возможности обнаружить различия. Инструмент RootkitRevealer Руссиновича использовал обнаружение различий для поиска руткита Sony DRM.

Проверка целостности

Утилита rkhunter использует SHA -1 хэши для проверки целостности системных файлов.

Подпись кода использует инфраструктуру открытого ключа, чтобы проверить, был ли файл изменен с момента цифровой подписи его издателем. В качестве альтернативы, владелец или администратор системы может использовать криптографическую хэш-функцию для вычисления «отпечатка пальца» во время установки, который может помочь обнаружить последующие несанкционированные изменения в библиотеках кода на диске. Однако простейшие схемы проверяют только, был ли код изменен с момента установки; подрывная деятельность до этого времени не обнаруживается. Отпечаток пальца необходимо восстанавливать каждый раз при внесении изменений в систему: например, после установки обновлений безопасности или пакета обновления. Хеш-функция создает дайджест сообщения, относительно короткий код, вычисляемый из каждого бита в файле с использованием алгоритма, который создает большие изменения в дайджесте сообщения с еще меньшими изменениями в исходном файле. Регулярно пересчитывая и сравнивая дайджест сообщений установленных файлов с доверенным списком дайджестов сообщений, можно обнаруживать и отслеживать изменения в системе - при условии, что исходный базовый уровень был создан до добавления вредоносной программы.

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

дампы памяти

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

Удаление

Ручное удаление руткита часто бывает чрезвычайно трудным для обычного пользователя компьютера, но ряд поставщиков программного обеспечения безопасности предлагают инструменты для автоматического обнаружения и удаления некоторых руткитов, обычно как часть антивирусный пакет . По состоянию на 2005 год ежемесячное средство Windows Malicious Software Removal Tool от Microsoft может обнаруживать и удалять некоторые классы руткитов. Кроме того, автономный Защитник Windows может удалять руткиты, поскольку он запускается из доверенной среды до запуска операционной системы. Некоторые антивирусные сканеры могут обходить файловую систему API, которые уязвимы для манипуляций со стороны руткита. Вместо этого они напрямую обращаются к необработанным структурам файловой системы и используют эту информацию для проверки результатов системных API для выявления любых различий, которые могут быть вызваны руткитом. Есть эксперты, которые считают, что единственный надежный способ их удалить - это переустановить операционную систему с доверенного носителя. Это связано с тем, что инструменты удаления вирусов и вредоносных программ, запущенные в ненадежной системе, могут быть неэффективными против хорошо написанных руткитов режима ядра. Загрузка альтернативной операционной системы с доверенного носителя может позволить смонтировать зараженный системный том и потенциально безопасно очистить его и скопировать важные данные или, в качестве альтернативы, провести судебно-медицинскую экспертизу. Облегченные операционные системы, например Windows PE, Консоль восстановления Windows, Среда восстановления Windows, BartPE или Live Distros может использоваться для этой цели, позволяя «очистить» систему. Даже если тип и природа руткита известны, ручное восстановление может оказаться непрактичным, в то время как переустановка операционной системы и приложений безопаснее, проще и быстрее.

Защита

Система упрочнение представляет собой один из первых уровней защиты от руткита, предотвращающий его установку. Применение исправлений безопасности, реализация принципа наименьших привилегий, уменьшение поверхности атаки и установка антивирусного программного обеспечения - вот некоторые стандартные передовые методы безопасности, которые эффективны против всех классов вредоносных программ. Новые спецификации безопасной загрузки, такие как Unified Extensible Firmware Interface, были разработаны для устранения угрозы буткитов, но даже они уязвимы, если предлагаемые ими функции безопасности не используются. Для серверных систем удаленная аттестация серверов с использованием таких технологий, как Intel Trusted Execution Technology (TXT), обеспечивает способ проверки того, что серверы остаются в заведомо исправном состоянии. Например, шифрование неактивных данных Microsoft Bitlocker проверяет, находятся ли серверы в заведомо «хорошем состоянии» при загрузке. PrivateCore vCage - это программное обеспечение, которое защищает используемые данные (память), чтобы избежать буткитов и руткитов, путем проверки того, что серверы находятся в заведомо «хорошем» состоянии при загрузке. Реализация PrivateCore работает совместно с Intel TXT и блокирует интерфейсы серверной системы, чтобы избежать потенциальных буткитов и руткитов.

См. Также
Примечания
Ссылки
Дополнительная литература
  • Бланден, Билл (2009). Арсенал руткитов: побег и уклонение в темных углах системы. Wordware. ISBN 978-1-59822-061-2.
  • Хоглунд, Грег; Батлер, Джеймс (2005). Руткиты: подрыв ядра Windows. Эддисон-Уэсли Профессионал. ISBN 978-0-321-29431-9.
  • Grampp, F. T.; Morris, Robert H., Sr. (October 1984). "The UNIX System: UNIX Operating System Security". ATT Bell Laboratories Technical Journal. 62(8): 1649–1672. doi :10.1002/j.1538-7305.1984.tb00058.x.
  • Kong, Joseph (2007). Designing BSD Rootkits. No Starch Press. ISBN 978-1-59327-142-8.
  • Veiler, Ric (2007). Professional Rootkits. Wrox. ISBN 978-0-470-10154-4.
External links
  • Media related to Rootkits at Wikimedia Commons
Последняя правка сделана 2021-06-04 10:10:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте