Руткит

Материал из wikixw
Перейти к навигации Перейти к поиску

Руткит - это набор компьютерных программ, обычно вредоносных, предназначенных для обеспечения доступа к компьютеру или области его программного обеспечения, который иным образом не разрешен (например, неавторизованному пользователю) и часто маскирует его существование или существование другого программного обеспечения. Термин руткит представляет собой соединение "root" (традиционное название привилегированной учетной записи в Unix-подобных операционных системах) и слова "kit" (которое относится к программным компонентам, реализующим инструмент).[2] Термин "руткит" имеет негативные коннотации из-за его ассоциации с вредоносными программами.

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

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

История[править]

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

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

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

Sony BMG copy protection rootkit scandal[править]

Основная статья: Sony BMG copy protection rootkit scandal

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

Греческое дело о прослушке 2004-05[править]

Основная статья: Греческое дело о прослушке 2004-05

Греческое дело о прослушке 2004-05, также известное как греческий Уотергейт, включало незаконное прослушивание более 100 мобильных телефонов в сети Vodafone Greece, принадлежащих в основном членам греческого правительства и высокопоставленным государственным служащим. Краны начались где-то в начале августа 2004 года и были удалены в марте 2005 года, не обнаружив личности преступников. Злоумышленники установили руткит, нацеленный на телефонную станцию AXE компании Ericsson. Согласно IEEE Spectrum, это был "первый раз, когда руткит наблюдался в системе специального назначения, в данном случае в телефонном коммутаторе Ericsson".[18] Руткит был разработан для исправления памяти обмена во время его работы, включения прослушки при отключении журналов аудита, исправлениякоманды, которые перечисляют активные процессы и активные блоки данных, а также изменяют команду проверки контрольной суммы блока данных. "Бэкдор" позволял оператору со статусом сисадмина деактивировать журнал транзакций биржи, сигналы тревоги и команды доступа, связанные с возможностью наблюдения. Руткит был обнаружен после того, как злоумышленники установили неисправное обновление, которое вызвалоSMS-сообщения, которые не будут доставлены, что приведет к созданию автоматического отчета о сбое. Инженеры Ericsson были вызваны для расследования неисправности и обнаружили скрытые блоки данных, содержащие список отслеживаемых телефонных номеров, а также руткит и незаконное программное обеспечение для мониторинга.

Использование[править]

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

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

  • Предоставить злоумышленнику полный доступ через бэкдор, разрешив несанкционированный доступ, например, для кражи или фальсификации документов. Один из способов осуществить это - подорвать механизм входа в систему, такой как программа /bin/login в Unix-подобных системах или GINA в Windows. Замена, похоже, работает нормально, но также принимает секретную комбинацию входа, которая позволяет злоумышленнику прямой доступ к системе с правами администратора, минуя стандартные механизмы аутентификации и авторизации.
  • Скрывает другие вредоносные программы, в частности крадущие пароли регистраторы ключей и компьютерные вирусы.
  • Используйте скомпрометированную машину как компьютер-зомби для атак на другие компьютеры. (Атака происходит из скомпрометированной системы или сети, а не из системы злоумышленника.) "Зомби" компьютеры обычно являются членами крупных ботнетов, которые могут, среди прочего, запускать атаки типа "отказ в обслуживании", распространять спам по электронной почте и совершать мошенничество с кликами.

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

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

Типы[править]

Дополнительная информация: Ring (computer security)

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

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

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

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

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

Режим ядра[править]

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

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

Буткиты[править]

Вариант руткита в режиме ядра, называемый буткитом, может заражать код запуска, такой как главная загрузочная запись (MBR), загрузочная запись тома (VBR) или загрузочный сектор, и таким образом может использоваться для атаки систем полного шифрования диска. Примером такой атаки на шифрование диска является"атака злой горничной", при которой злоумышленник устанавливает буткит на необслуживаемый компьютер. Предполагаемый сценарий - это горничная, пробирающаяся в гостиничный номер, где жертвы оставили свое оборудование. Буткит заменяет законный загрузчик на тот, который находится под их контролем. Обычно загрузчик вредоносных программ сохраняется при переходе в защищенный режим после загрузки ядра и, таким образом, может разрушить ядро. Например, "Забитый камнями буткит" подрывает систему, используя скомпрометированный загрузчик для перехвата ключей шифрования и паролей.][самиздат?] В 2010 году руткит Alureon успешно подорвал требование к 64-битной подписи драйверов режима ядра в Windows 7, изменив основную загрузочную запись. Хотя это и не вредоносное ПО в смысле выполнения чего-то, чего пользователь не хочет, некоторые программы "Vista Loader" или "Windows Loader" работают аналогичным образом, вводя таблицу ACPI SLIC (System Licensed Internal Code) в кэшированную версию BIOS во время загрузки, чтобы победить вредоносное ПО.Процесс активации Windows Vista и Windows 7. Этот вектор атаки был бесполезен в (не серверных) версиях Windows 8, которые используют уникальный, специфичный для машины ключ для каждой системы, который может использоваться только этой машиной. Многие антивирусные компании предоставляют бесплатные утилиты и программы для удаления буткитов.

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

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

Прошивка и оборудование[править]

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

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

Установка и маскировка[править]

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

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

Обнаружение[править]

Основная проблема с обнаружением руткитов заключается в том, что если операционная система была нарушена, особенно руткитом уровня ядра, ей нельзя доверять, чтобы найти несанкционированные изменения в себе или своих компонентах.[62] Нельзя доверять ожидаемому поведению таких действий, как запрос списка запущенных процессов или списка файлов в каталоге. Другими словами, детекторы руткитов, которые работают во время работы в зараженных системах, эффективны только против руткитов, которые имеют некоторый дефект в их камуфляже или которые работают с более низкими привилегиями пользовательского режима, чем программное обеспечение для обнаружения в ядре. Как и в случае компьютерных вирусов, обнаружение и устранение руткитов является постоянной задачей.борьба между обеими сторонами этого конфликта. Обнаружение может принимать ряд различных подходов, включая поиск вирусных "сигнатур" (например, антивирусное программное обеспечение), проверку целостности (например, цифровые подписи), обнаружение на основе различий (сравнение ожидаемых и фактических результатов) и поведенческое обнаружение (например, мониторингИспользование процессора или сетевого трафика).

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

Альтернативная доверенная среда[править]

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

Поведенческий[править]

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

Подпись на основе[править]

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

Основанный на различиях[править]

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

Проверка целостности[править]

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

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

Дампы памяти[править]

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

Удаление[править]

Ручное удаление руткита часто чрезвычайно сложно для обычного пользователя компьютера, но ряд поставщиков программного обеспечения безопасности предлагают инструменты для автоматического обнаружения и удаления некоторых руткитов, как правило, как часть антивирусного пакета. Начиная с 2005 , ежемесячный инструмент Microsoft для удаления вредоносных программ Windows способен обнаруживать и удалять некоторые классы руткитов. Кроме того, Windows Defender Offline может удалять руткиты, так как он запускается из доверенной среды до запуска операционной системы. Некоторые антивирусные сканеры могут обходить API файловой системы, которые уязвимы для манипуляций со стороны руткита. Вместо этого они получают прямой доступ к необработанным структурам файловой системы и используют эту информацию для проверки результатов системных API для выявления любых различий, которые могут быть вызваны руткитом. 2] Есть специалисты, которые считают, что единственный надежный способудалить их - значит переустановить операционную систему с доверенных носителей. Это связано с тем, что антивирусные и вредоносные средства удаления, работающие в ненадежной системе, могут быть неэффективны против хорошо написанных руткитов в режиме ядра. Загрузка альтернативной операционной системы с доверенного носителя может позволить смонтировать зараженный системный том и потенциально безопасно очистить его, а также скопировать критические данные — или, в качестве альтернативы, провести судебную экспертизу.[26] Легкие операционные системы, такие как Windows PE, Windows Recovery Console, Windows Recovery Environment, BartPE илиДля этой цели можно использовать живые дистрибутивы, позволяющие "чистить" систему. Даже если тип и природа руткита известны, ручное восстановление может быть непрактичным, в то время как переустановка операционной системы и приложений безопаснее, проще и быстрее[89].

Защита[править]

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

См. Также[править]

Читать далее[править]

  • Бланден, Билл (2009). Арсенал руткитов: Побег и уклонение в темных уголках Системы. Wordware.
  • Хоглунд, Грег; Батлер, Джеймс (2005). Руткиты: подрыв ядра Windows. Эддисон-Уэсли Профессионал.
  • Grampp, F. T.; Morris, Robert H., Sr. (октябрь 1984). "Система UNIX: безопасность операционной системы UNIX". Технический журнал AT&T Bell Laboratories.
  • Конг, Джозеф (2007). Разработка руткитов BSD. Нет крахмального пресса.

Veiler, Ric (2007). Профессиональные руткиты. Wrox

Пруф[править]

[[]]