Урок 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. Каковы две главные задачи руткита?
- Шифровать файлы и требовать оплату
- Сохранять привилегированный доступ (закрепление) и скрывать активность злоумышленника (сокрытие) — Верно.
- Рассылать спам и майнить криптовалюту
- Показывать рекламу и менять домашнюю страницу
NIST определяет руткиты как инструменты, которые скрывают активность злоумышленника и тайно сохраняют привилегированный доступ.
2. Почему руткиты уровня ядра так трудно обнаружить?
- Это очень маленькие файлы
- Они работают в ядре операционной системы и могут заставить систему выдавать ложную информацию любой программе — Верно.
- Они работают только ночью
- Они удаляются после каждой перезагрузки
Код на более привилегированном уровне может обманывать программы выше, включая инструменты, которыми вы стали бы его искать.
3. Какая функция macOS не даёт даже администратору изменять защищённые системные файлы?
- FileVault
- Защита целостности системы (SIP) — Верно.
- AirDrop
- Time Machine
SIP защищает системные папки и процессы от изменений даже со стороны администратора, что перекрывает классический приём руткитов.
Примените на практике в FireAI
Примените этот урок на своём Mac.
- Правила: приложение, сайт, домен, IP или диапазон, навсегда или до перезагрузки — Напишите правило, точное как один адрес, или широкое как целый домен.
- Карта мира — Видьте, куда на самом деле уходят ваши данные, а не просто имя хоста, которое пришлось бы искать самостоятельно.
- Списки угроз (по желанию) — Сверяйте свой трафик с открытыми данными об угрозах, никуда его не отправляя.
- Исследовать подключение — Принимайте решение, опираясь на факты перед глазами, а не на смутное предупреждение.
- Режимы безопасности: Дом, Кофейня, Параноидальный, Под атакой — Подстройте строгость FireAI под реальное местоположение вашего Mac одним касанием.
- USB Network Protection: nothing from a USB drive goes online unasked — Plug in a drive someone handed you without letting what’s on it phone home.
Источники
- NIST Computer Security Resource Center Glossary: rootkit
- MITRE ATT&CK T1014: Rootkit
- MITRE ATT&CK T1543.001: Create or Modify System Process: Launch Agent
- Apple Support: About System Integrity Protection on your Mac
- Apple Platform Security: System security overview
- Apple Support: About Lockdown Mode
Примените это на своём Mac
Все функции бесплатно на 17 дней, без банковской карты.