Руткиты это вредоносные программы

Руткит (англ. rootkit, т.е. «набор root’а») — программа или набор программ для скрытия следов присутствия злоумышленника или вредоносной программы в системе.

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

Классификация руткитов

По уровню привилегий

  • Уровня пользователя (user-mode)
  • Уровня ядра (kernel-mode)

По принципу действия

  • изменяющие алгоритмы выполнения системных функций (Modify execution path)
  • изменяющие системные структуры данных (Direct kernel object manupulation)

Основные методы реализации

Поймай меня, если сможешь. Руткиты: эволюция и способы обнаружения

В Microsoft Windows

В Windows из-за Windows File Protection переписывание системных файлов затруднено (хотя и его можно обойти!), поэтому основные способы внедрения в систему:

  • модификация памяти.
  • перехват системных функций Windows API (API hooking) на уровне пользователя;
  • то же на уровне ядра (перехват Native API);
  • изменение системных структур данных;
  • модификация MBR и загрузка до ядра операционной системы — буткиты (известный представитель BackDoor.MaosBoot).

UEFI уязвимость видишь? А она есть

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

UEFI и/или BIOS

Для начала, разберемся с понятиями: что такое BIOS, и что такое UEFI. BIOS (Basic Input-Output system) — программа низкого уровня, хранящаяся на чипе материнской платы компьютера. Основная функция — корректно инициализировать оборудование при включении системы и передать управление загрузчику или непосредственно ядру ОС.

Basic Input-Output system

Таким образом, при включении компьютера, вначале загружается BIOS, иницализирует аппаратные компоненты, убеждается в правильности их работы и далее запускает программу-загрузчик, загружающую операционную систему. До загрузки ОС, BIOS выполняет самотестирование после включения — POST (Power-On Self Test), необходимое для проверки аппаратных настроек. В случае неисправности, вылетают системные ошибки.

Руткиты. Внедрение в операционную систему.

Вход в BIOS осуществляется нажатием клавиши в начале загрузки ПК. Стандартные кнопки: Esc, F2, F8, F10, Delete. Через BIOS можно настраивать параметры системы: от простой установки времени, до выбора загрузочного устройства и изменения частоты процессора. Сохраняются настройки на самой материнской плате.

Пример ошибки BIOS в случае неправильного «разгона» комплектующих

При успешном прохождении тестов BIOS передаёт управление Master Boot Record (MBR), главную загрузочную запись, хранящуюся на жестком диске и используемую для дальнейшей загрузки ОС.

С BIOS’ом разобрались, что такое UEFI? Справедливо назвать UEFI (Unified Extensible Firmware Interface) современной итерацией BIOS, массивным обновлением, если хотите. На всех современных ПК с завода идёт именно UEFI, но часто называется BIOS/EFI BIOS, чтобы не путать пользователя, привыкшего к традиционному BIOS. Причин перейти на UEFI достаточно: работает быстрее, поддерживает жёсткие диски большего объёма (в теории — до 9.4 зеттабайт), загрузка быстрее, выше уровень безопасности, а также есть графический интерфейс с поддержкой мыши.

Читайте также:
Как установить программу на Андроид с компьютера apk

Пример UEFI материнской платы ASUS

С более технической стороны, UEFI может работать в 32-битном или 64-битном режимах, адресное пространство больше, есть безопасный запуск Secure Boot (о нём позже подробнее). Функции настройки системы остались, но стали выглядеть лучше: удобнее выбирать порядок загрузки, настраивать предустановки работы комплектующих, выбирать частоту работы процессора, оперативной памяти, добавлены метрики температуры, скорости вертушек, напряжения и прочие плюшки обновленной системы. Одно из основных отличий — BIOS прекращает работу после выполнения POST тестирования, а UEFI продолжает работу. Также UEFI поддерживает более широкий спектр устройств.

UEFI/BIOS является программным обеспечением, хоть и «посаженым» глубокого в материнскую плату. Поскольку это ПО, то как и любое ПО, оно подвержено угрозам, одна из таких угроз — rootkit.

Что такое rootkit?

Rootkit (root — «суперпользователь» из Unix, kit — комплект) — исходя из названия, набор инструментов с правами администратора. Сегодня руткиты чаще относятся к ОС Windows, нежели Unix. Руткит — программа, скрывающая от антивирусов собственные вредоносные действия, либо прячущая работу другой вредоносной программы. Они делятся на 2 вида по правам доступа: уровня пользователя и уровня ядра.

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

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

«Blue Pill» — руткит через виртуализацию

Та самая синяя таблетка

В 2006 году Йоанна Рутковская на конференции Black Hat Briefings 3 августа продемонстрировала руткит, основанный на виртуализации х86. Основной посыл: в архитектуре х86 существуют 4 кольца защиты: ring0 — ring3, от наиболее привилегированного, до менее привилегированного уровня. И 3 типа ресурсов, в отношении которых действуют механизмы защиты процессора: память, порты ввода и вывода, а также возможность выполнения некоторых инструкций. В любой момент x86 процессор работает на определенном уровне привилегий, и от этого зависит, что может и чего не может сделать код. Большинство современных ядер для архитектуры x86 используют всего 2 уровня: ring0 и ring3.

Выполнение части инструкций (команд) процессора возможно только в ring0. Попытки выполнения инструкций за пределами нулевого кольца вызовут исключение #GP. #GP (general‑protection exception) — означает, что процессор обнаружил один из классов нарушения защиты, называемых «general protection violations».

Аналогичные исключения происходят при попытке обращения к неопределённым адресам памяти и портам ввода/вывода. Таким образом, пользовательский код из ring3 никогда не прорвётся в ring2, не говоря уже о ring0. С ростом популярности виртуализации на x86 архитектуре Intel и AMD добавили для неё аппаратную поддержку.

Для этого гипервизору требовалось запустить Virtual Machine Control Structure (VMCS), ключевую структуру для реализации виртуализации процессора, определяющую виртуальную машину и вызывающую VMenter/VMexit, то есть, условия, которые нужны виртуальной машине от гипервизора. Подобная работа гипервизора называется ring-1, хотя такого уровня привилегий нет. Но из‑за того, что могут хоститься несколько ядер уровня ring0, обозначение ring-1 имеет смысл. Именно работу гипервизора в ring-1 и эксплуатирует BluePill.

Кольца привилегий х86

Изначально Blue Pill требовала поддержки виртуализации AMD‑V (Pacifica), поскольку виртуализация от AMD была спроектирована как целостная система и виртуализируемый гость не может определить, гость он или нет. Вредоносный код, попадая в целевую систему, незаметно виртуализирует хостовую систему, превращая её в гостевую. При этом не требуется перезагрузка ОС. Предыдущая ОС сохраняла существующие ссылки на все устройства и файлы, но почти всё, включая запросы данных и аппаратные прерывания может быть перехвачено гипервизором с последующей отправкой поддельного ответа. Для противодействия Blue Pill Рутковская создала Red Pill, таблетку, которая обнаруживает присутствие гипервизора через таблицу регистров IDTR.

Читайте также:
Как скрыть открытую программу

LoJack или LoJax?

В 2018 году исследователи из ESET обнаружили применение троянизированной версии программы для защиты устройств от краж — LoJack. Хакеры из Sednit привлекли внимание ИБ‑специалистов из‑за использования модуля UEFI/BIOS в качестве механизма обеспечения персистентности. Добиться устойчивости к переустановке ОС и смене жесткого диска (LoJax живет в модуле на материнской плате) получилось благодаря использованию приложения для отслеживания устройства и защиты от краж — LoJack/Computrace.

Интерфейс включения/выключения Computrace

Computrace работает следующим образом: при включении компьютера и перед запуском Windows выполняется файл autochk.exe, с которого начинается проверка логической целостности файловой системы. Создается бэкап autochk.exe, а оригинальный файл, в свою очередь, заменятся на модифицированный.

При запуске модифицированного autochk.exe внедряется мини‑агент rpcnetp.exe и восстанавливается оригинальная версия autochk.exe. Задача мини‑агента rpcnetp.exe — обеспечение работы основного агента. В случаях, когда основной агент не работает, rpcnetp.exe пытается подключиться к Command and Control серверу издателя приложения Absolute Software для его скачивания и исполнения.

Мини‑агент сначала дублируется, затем преобразуется в динамическую библиотеку DLL. Библиотека загружается в память, инициализирует службу работы с библиотеками svchost.exe и подгружается в него. Следующим запускается процесс работы с Internet Explorer и в него инжектируется DLL для связи через интернет. Готово, Computrace работает.

Описание процесса работы Computrace и сетевого протокола было опубликовано в 2014, и светлые, но не очень доброжелательные умы взялись за работу. Из‑за отсутствия механизма аутентификации злоумышленники получали доступ к серверу, могли заставить мини‑агента скачать произвольный код. Найденные троянизиванные образцы rpcnetp.exe устанавливали связь с Command and Control сервером злоумышленников, вместо легитимного сервера Absolute Software. При этом, легитимная и троянизированная версии почти не отличаются, у них идентичные временные метки компиляции и лишь несколько десятков байтов и переменных таймера отличаются от оригинальных. Специалисты ESET обнаружили мини‑агенты LoJax в атаках на организации на Балканах, в Центральной и Восточной Европе. Определить причастность группы Sednit помогло найденное во всех атаках ПО, используемое ими:

  • SedUploader, бэкдор.
  • XAgent, флагманский бэкдор Sednit.
  • Xtunnel, сетевой прокси для передачи трафика между Chttps://habr.com/ru/companies/pm/articles/719270/» target=»_blank»]habr.com[/mask_link]

    Руткиты (Rootkits)

    Руткит (rootkit) — набор утилит для скрытия следов пребывания киберпреступников на зараженной машине, активности вредоносных программ и нежелательных либо потенциально опасных приложений: снифферов, кейлоггеров, средств удаленного администрирования и т.д.

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

    Руткиты (Rootkits)

    Хакер устанавливает руткит в систему после получения привилегий администратора. Руткит (rootkit) может маскировать вредоносные программы под стандартные системные утилиты, собирать информацию о системе и управлять процессами в ней.

    Способы внедрения и функционирования руткита зависят от целевой платформы. Например, проникая в систему Windows, руткит может подменить одну из DLL, хранящихся в файловой системе, своей библиотекой.

    Классификация руткитов

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

    В операционных системах Windows руткиты могут работать следующими способами:

    1. Захват таблиц вызовов

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

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

    2. Модификация кода функции

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

    Перехватчик работает по следующему алгоритму:

    1. Выполняет действия, которые задумал злоумышленник.
    2. Восстанавливает первые байты перехваченной функции.
    3. Анализирует выходные данные функции.
    4. Возвращает управление функцией системе.

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

    Обнаружение руткита

    Для UNIX-подобных операционных систем руткиты могут реализовываться следующими способами:

    1. Заменой системных утилит.
    2. В виде модуля ядра.
    3. С помощью патчинга VFS.
    4. Перехватом таблиц системных вызовов.
    5. Изменением физической памяти ядра.

    Объект воздействия

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

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

    Источник угрозы

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

    Анализ риска

    Многие действия руткита в системе можно обнаружить. Так, подмена системных утилит легко выявляется средствами вроде SELinux. Также существуют специализированные программы-антируткиты, которые имеют усовершенствованные методы обнаружения и удаления таких вредоносных объектов из системы. Ряд антивирусов для рабочих станций имеет в своем составе полноценный антируткит-модуль.

    Руткитом может быть заражен и сервер крупной компании, и частный компьютер. Многие руткиты имеют возможности, сопоставимые с функциональностью средств удаленного администрирования (RAT). Сейчас в свободном доступе есть программы-конструкторы, с помощью которых даже неопытный хулиган может «построить» свой руткит и заразить им информационную систему или чей-то компьютер. Уязвимости в браузерах позволяют запустить процесс внедрения руткита на компьютере жертвы, даже если она не скачивала никаких файлов, а просто зашла на зараженный сайт.

    Источник: www.anti-malware.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru