Перейти к содержимому
← Вредоносные программы и скрытый интернет

Урок 4 из 7 · 8 мин

Руткиты: вредоносные программы, которые прячутся от вас

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

Большинство вредоносных программ хотят что-то сделать: украсть, зашифровать, подсмотреть. Руткит хочет, чтобы этого никто не увидел. NIST определяет руткит как набор инструментов, которые злоумышленник использует после получения прав уровня root на машине, чтобы скрыть свою активность и тайно сохранить привилегированный доступ. Название пришло из Unix, где root — всемогущая учётная запись администратора, а «кит» (kit) — набор изменённых инструментов, который взломщик оставлял, чтобы тихо удерживать эту власть.

Две задачи: закрепление и сокрытие

Руткит обычно сочетает два умения. Закрепление — это способность переживать перезагрузки и обновления, чтобы злоумышленник не потерял доступ. Сокрытие — это умение прятать файлы, процессы и сетевые соединения от тех самых инструментов, которыми вы стали бы их искать. MITRE ATT&CK прямо описывает второй приём: руткиты скрывают присутствие программ, файлов, сетевых соединений и служб, перехватывая и изменяя системные вызовы, которые о них сообщают. Если часть системы, которую вы спрашиваете «что запущено?», подделана, она может просто не включить в ответ лишнее.

Чем глубже, тем труднее найти

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

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

Как защищается macOS

Современная macOS устроена так, чтобы лишить руткиты мест, где они раньше прятались. Apple описывает несколько уровней в своём руководстве по безопасности платформ:

  • Защита целостности системы (SIP) не даёт даже учётной записи администратора изменять защищённые части системы, например системные папки и процессы. Apple рекомендует держать её включённой.
  • Системный том запечатан и подписан: при запуске macOS проверяет, что системные файлы в точности такие, какими их выпустила Apple, и отказывается использовать изменённую систему.
  • Безопасная загрузка на Apple silicon (и на Mac с чипом T2) проверяет каждый этап загрузки перед его запуском, так что код не может проскользнуть раньше операционной системы.
  • Сторонние расширения ядра ограничены и требуют явного разрешения; большую часть их задач Apple перенесла в системные расширения, которые работают вне ядра.

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

Закрепление, которое можно проверить самому

Раз глубокие руткиты трудно установить, большую часть закрепления на Mac сегодня видно, если знать, где смотреть. macOS показывает объекты входа и фоновые объекты в Системных настройках: «Основные», затем «Объекты входа и расширения», и уведомляет, когда добавляется новый фоновый объект. Всё незнакомое там заслуживает внимания. MITRE ATT&CK именно поэтому относит агенты и демоны запуска (launch agents и launch daemons) к распространённым техникам закрепления на macOS.

Почему сеть по-прежнему говорит правду

Руткит может лгать программам на той же машине, но ему всё равно обычно нужно общаться со своим оператором. Этот трафик должен пройти через сеть. Межсетевой экран для приложений, встроенный в собственный слой фильтрации операционной системы, видит соединения так, как их обрабатывает система, а маршрутизатор или другое устройство в сети видит их снаружи, где у руткита нет власти. Сетевой фильтр FireAI — системное расширение Apple; он показывает, какое приложение стоит за каждым соединением, и спрашивает, прежде чем новые приложения подключатся. Это не детектор руткитов, и он не видит сквозь скомпрометированное ядро, но необъяснимый трафик от процесса, происхождение которого вы не можете объяснить, — один из классических признаков того, что что-то прячется.

Не только компьютеры: маршрутизаторы и другие устройства

Закладки в духе руткитов встречаются не только на ноутбуках. Домашние маршрутизаторы, сетевые хранилища и другие постоянно включённые устройства работают на собственных небольших операционных системах, которые обновляются редко или никогда. Злоумышленники снова и снова атакуют их, потому что через них проходит каждое соединение, а проверяет их мало кто. Обновлённая прошивка маршрутизатора, сменённый пароль администратора по умолчанию и отключённое неиспользуемое удалённое администрирование закрывают самые распространённые двери. Это же объясняет, почему полезно смотреть на трафик из нескольких мест: проблема, живущая на маршрутизаторе, не обнаружится ни при какой проверке Mac.

Если вы подозреваете руткит

  • Исходите из того, что собственные инструменты системы могут лгать; по возможности изучайте её снаружи.
  • Убедитесь, что защита целостности системы включена (Apple описывает, как это проверить), и обновляйте macOS.
  • Просмотрите «Объекты входа и расширения» на незнакомые записи.
  • При серьёзных подозрениях надёжное решение — сохранить документы (не приложения и не системные файлы), стереть Mac, переустановить macOS от Apple и восстановить только свои данные.
  • Если угроза целенаправленная, например против журналиста или активиста, обратитесь к специалистам и подумайте о режиме блокировки (Lockdown Mode).

Главное

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

Проверьте себя

  1. 1. Каковы две главные задачи руткита?

    • Шифровать файлы и требовать оплату
    • Сохранять привилегированный доступ (закрепление) и скрывать активность злоумышленника (сокрытие) — Верно.
    • Рассылать спам и майнить криптовалюту
    • Показывать рекламу и менять домашнюю страницу

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

  2. 2. Почему руткиты уровня ядра так трудно обнаружить?

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

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

  3. 3. Какая функция macOS не даёт даже администратору изменять защищённые системные файлы?

    • FileVault
    • Защита целостности системы (SIP) — Верно.
    • AirDrop
    • Time Machine

    SIP защищает системные папки и процессы от изменений даже со стороны администратора, что перекрывает классический приём руткитов.

Примените на практике в FireAI

Примените этот урок на своём Mac.

Источники

Примените это на своём Mac

Все функции бесплатно на 17 дней, без банковской карты.

Скачать для Mac Документация