Гид по технологиям

Как найти и удалить скрытые LaunchDaemons и LaunchAgents на Mac

8 min read Mac безопасность Обновлено 15 Apr 2026
Найти и удалить скрытые LaunchDaemons и LaunchAgents
Найти и удалить скрытые LaunchDaemons и LaunchAgents

Важно: не удаляйте элементы из /System/Library — они нужны macOS. Всегда делайте резервную копию .plist-файла на Рабочем столе перед удалением и перепроверяйте подпись и источник файла.

Зачем это нужно

Скрытые элементы автозапуска могут вызывать перенаправления в браузере, появление рекламы, повышенное потребление ресурсов, проблемы с безопасностью и приватностью. Удаление приложения из «Login Items» не всегда решает проблему — многие вредоносные и «настойчивые» приложения используют LaunchDaemons и LaunchAgents, которые управляются через launchd и описываются в .plist-файлах.

Ключевые термины в одну строку

  • launchd — системный менеджер процессов macOS, родитель процессов PID 1.
  • LaunchDaemon — служба, работает как root, до входа пользователя и для всей системы.
  • LaunchAgent — агент, запускается при входе конкретного пользователя и может взаимодействовать с UI.

Человек сидит за MacBook на столе

Как macOS запускает процессы при старте

При включении Mac запускается launchd, который отвечает за старт и управление всеми остальными процессами. Вы можете убедиться в этом через «Мониторинг системы» (Activity Monitor): включите View → All Processes и найдёте kernel_task и launchd с PID 0 и 1.

Мониторинг активности macOS с выделенным launchd

launchd подгружает конфигурации из .plist-файлов, расположенных в системных и публичных папках LaunchDaemons и LaunchAgents. Файлы следуют обратной доменной нотации — company.app.identifier.plist.

Где находятся файлы автозапуска

Основные каталоги, которые нужно проверять:

  • /System/Library/LaunchDaemons — системные демоны (не трогать)
  • /Library/LaunchDaemons — демоны, установленные сторонними приложениями
  • /System/Library/LaunchAgents — системные агенты (не трогать)
  • /Library/LaunchAgents — агенты для всех пользователей
  • ~/Library/LaunchAgents — агенты только для текущего пользователя

Папка LaunchDaemons в macOS

Папка LaunchAgents в macOS

Как автоматически заметить изменения в этих папках (Folder Actions)

Если вы хотите получать уведомления при добавлении новых файлов в эти папки, macOS позволяет привязать «Folder Actions» через AppleScript. Это удобно для раннего обнаружения нежелательных добавлений.

Шаги:

  1. Откройте приложение AppleScript Editor (Script Editor). Выберите Preferences → General → Show Script menu in menu bar.
  2. Нажмите иконку Script Menu в строке меню → Folder Actions → Enable Folder Actions.
  3. В Script Menu выберите Attach Script to Folder и в появившемся списке добавьте скрипт new item alert (add - new item alert).
  4. Выберите по очереди каждую из публичных папок LaunchDaemons/LaunchAgents и привяжите к ним скрипт.
  5. Для ~/Library/LaunchAgents используйте Finder → Go → Go to Folder → ~/Library/LaunchAgents, затем правый клик → Services → Folder Actions Setup и добавьте скрипт.

Показываем меню скриптов в строке меню macOS

Включение Folder Actions в меню скриптов macOS

Выбор скрипта new item alert

Выбор папки LaunchDaemons через File Open

Навигация к ~/Library/LaunchAgents через Go to Folder

Настройка Folder Actions для папки LaunchAgents

Выбор скрипта для привязки к папке

После этого система будет показывать стандартный диалог при добавлении нового файла в одну из контролируемых папок.

Важно: Folder Actions хороши для обнаружения новых файлов, но не заменяют полноценного анализа содержимого. Некоторые вредоносные механизмы помещают исполняемые файлы в другие места и маскируют метаданные.

Использование сторонних утилит для мониторинга и диагностики

Ниже — краткое сравнение полезных инструментов, их возможности и сценарии применения.

УтилитаЧто делаетКогда полезнаЦена (на момент описания)
EtreCheckДиагностика системы, отчёт о третьих сторонах LaunchDaemons/AgentsКогда нужен удобный отчет для анализа проблембесплатно 5 отчётов, затем покупка внутри приложения $17.99
Lingon XГрафическая редакция и управление запусками, мониторинг измененийЕсли нужно управлять и планировать заданияпробная, полная лицензия $14.99
KnockKnockПоиск постоянных компонентов (persistence)Быстро найти потенциально вредоносные автозагрузкибесплатно
BlockBlockПостоянный мониторинг мест автозапуска и уведомленияДля непрерывного наблюдения и оповещенийбесплатно
MalwarebytesОчистка и удаление adware/PUPПри подтверждённой инфекции или трудноубираемом adwareбесплатная версия, платная подписка доступна

EtreCheck выполняет сканирование macOS

Lingon X — графический интерфейс для планирования задач

KnockKnock — поиск persistency компонентов

BlockBlock — уведомления о новых автозапусках

Malwarebytes сканирует Mac

Альтернативный подход: использовать терминал и launchctl

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

  • Просмотр загруженных задач launchd:
launchctl list | less
  • Найти конкретную метку (label) по ключевому слову:
launchctl list | grep -i suspiciouskeyword
  • Получить список .plist-файлов в публичных папках:
ls -la /Library/LaunchAgents /Library/LaunchDaemons ~/Library/LaunchAgents
  • Попытаться выгрузить агент/демон по пути (современные macOS):
sudo launchctl bootout system /Library/LaunchDaemons/com.example.bad.plist
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.example.bad.plist
  • Или удалить задачу по метке (label):
sudo launchctl remove com.example.bad

Обратите внимание: синтаксис launchctl и набор команд изменялся между версиями macOS. Перед выполнением обязательно ознакомьтесь с man launchctl и сделайте резервную копию файлов. Если вы не уверены в назначении .plist-файла — временно переместите его на Рабочий стол и перезагрузите систему для проверки эффекта.

Пошаговая методика расследования (минимальный SOP)

  1. Фиксация симптомов: опишите проблему (перенаправления в браузере, спай нажатий, всплывающие окна, нагрузка CPU, неизвестные процессы).
  2. Сбор первичных данных: запустите Activity Monitor, EtreCheck и KnockKnock; сохраните отчёты.
  3. Локализация: проверьте /Library/LaunchAgents, /Library/LaunchDaemons и ~/Library/LaunchAgents на новые/подозрительные .plist.
  4. Сбор дополнительной информации: проверьте подпись (codesign), проверьте цифровые подписи и владельцев файлов (ls -lOe).
  5. Контейнинг: переместите подозрительный .plist и связанные исполняемые файлы на Рабочий стол (или в карантинную папку) и выгрузите задачу через launchctl.
  6. Тестирование: перезагрузите или выйдите/войдите в систему, проверьте, повторяется ли проблема.
  7. Очистка: если поведение исчезло, удалите файлы окончательно; если нет — восстановите с карантина и продолжите анализ.
  8. Финальная проверка: запустите Malwarebytes, KnockKnock и BlockBlock; поменяйте пароли, если были признаки компрометации.

Критерии приёмки

  • Проблема воспроизвести нельзя после удаления/выгрузки подозрительных элементов.
  • Нет повторного появления одинаковых файлов в папках LaunchDaemons/Agents через 48 часов.
  • Сканеры не обнаруживают оставшихся угроз.

Ролевые чек-листы

Для администратора:

  • Провести EtreCheck и сохранить отчёт.
  • Просмотреть /Library/LaunchDaemons и /Library/LaunchAgents на неизвестные записи.
  • Проверить подписи файлов (codesign -dv –verbose=4 /path/to/binary).
  • Отключить/выгрузить службы через launchctl и переместить файлы в карантин.
  • Проанализировать сеть (lsof -i, netstat) на необычные соединения.

Для обычного пользователя:

  • Включить Folder Actions для папок автозапуска.
  • Установить KnockKnock и BlockBlock для пассивного контроля.
  • Запустить Malwarebytes и при необходимости запросить помощь специалиста.
  • Не устанавливать сомнительные приложения и внимательно читать запросы на предоставление доступа.

Матрица рисков и смягчение последствий

  • Низкий риск: устаревшие .plist от удалённых приложений. Смягчение — безопасное удаление/архивирование.
  • Средний риск: PUPs и adware, создающие нежелательные перенаправления. Смягчение — запуск Malwarebytes, удаление .plist и файлов, сброс браузера.
  • Высокий риск: неизвестные демоны, прослушивающие сеть или собирающие данные. Смягчение — изоляция системы, анализ логов, смена паролей, при необходимости переустановка macOS.

Когда автоматические способы не сработают — примеры и обходные пути

  • Если вредоносный код переписывает себя при удалении, используйте безопасный режим (Safe Mode) для удаления.
  • Если infekция затрагивает сетевые расширения или kernel extensions, потребуется дополнительный анализ и, возможно, удаление расширения вручную с перезагрузкой в режиме восстановления.
  • В случае сомнений о целостности системы — восстановите из надёжной резервной копии или переустановите macOS.

Побочные замечания по безопасности и приватности

  • ПРИВАТНОСТЬ: некоторые агенты собирают телеметрию и могут передавать данные на серверы третьих сторон. Проверяйте домены в .plist или связанных бинарниках.
  • GDPR/законодательство: если на устройстве хранились пользовательские данные, и вы подозреваете утечку — действуйте согласно корпоративной политике уведомления и юрисдикции.
  • Подпись: отсутствие цифровой подписи не всегда значит злонамеренность, но это серьёзный индикатор для дальнейшего анализа.

Безопасные практики и hardening

  • Включите FileVault и используйте сильный пароль/Touch ID.
  • Включите обновления macOS и приложений.
  • Устанавливайте приложения только из App Store или доверенных поставщиков.
  • Ведите список установленных приложений и проверяйте их автозапуск.
  • Регулярно делайте бэкапы (Time Machine или альтернативы).
  • Ограничьте права обычных пользователей; для рут-операций используйте sudo и регистрируйте их.

Сравнение подходов: ручная проверка vs утилиты

  • Ручная проверка через Finder и launchctl — даёт полный контроль и понимание, требует знаний и осторожности.
  • Утилиты (EtreCheck, KnockKnock, BlockBlock) — удобные, экономят время, но не заменяют человеческого анализа в сложных случаях.

Решающее дерево для действий (Mermaid)

flowchart TD
  A[Пользователь замечает проблему] --> B{Поведение повторяется?}
  B -- Да --> C[Запустить Activity Monitor и EtreCheck]
  B -- Нет --> D[Наблюдать: включить Folder Actions]
  C --> E{Найдены подозрительные .plist?}
  E -- Нет --> F[Проверить сетевые соединения и расширения]
  E -- Да --> G[Переместить .plist в карантин]
  G --> H[Выгрузить через launchctl и перезагрузить]
  H --> I{Проблема решена?}
  I -- Да --> J[Окончательно удалить и мониторить 48ч]
  I -- Нет --> K[Запустить Malwarebytes и обратиться к специалисту]
  F --> K
  D --> L[Продолжать мониторинг и собирать логи]

Частые ошибки и когда не стоит торопиться

  • Удалять .plist из /System/Library — это может сделать систему нестабильной.
  • Немедленно удалять файл без проверки подписи и происхождения — иногда это ломает легитимные приложения.
  • Игнорировать повторяющееся появление одного и того же файла — это признак автозагрузки со стороны внешнего компонента.

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

  1. Сохраните резервную копию .plist и связанных файлов на Рабочем столе.
  2. Выгрузите задачу через launchctl (bootout/remove) или воспользуйтесь графическим инструментом.
  3. Перезагрузите систему.
  4. Проверьте, исчезла ли проблема.
  5. Если нет — восстановите из карантина и продолжите анализ.

1‑строчный глоссарий

  • .plist — XML-файл настроек, который описывает, как и когда launchd должен запускать процесс.

Заключение

Следите за папками LaunchDaemons и LaunchAgents, используйте сочетание автоматического мониторинга, проверенных утилит и безопасных терминальных команд. При сомнениях сохраняйте файлы в карантине, исследуйте подпись и источник и используйте проверенные антивирусные инструменты. Регулярные бэкапы и внимательность при установке ПО — лучшая профилактика проблем.

Короткое резюме:

  • LaunchDaemons работают на уровне системы, LaunchAgents — на уровне пользователя.
  • Папки /Library и ~/Library являются уязвимыми для сторонних программ.
  • Folder Actions, EtreCheck, KnockKnock и BlockBlock помогают обнаруживать изменения.
  • Всегда делайте резервную копию .plist перед удалением и проверяйте подпись.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Подготовка к техническому собеседованию разработчика
Карьера

Подготовка к техническому собеседованию разработчика

Запуск мастера устранения неполадок в Windows
Windows

Запуск мастера устранения неполадок в Windows

Как создать мем: полное руководство
Социальные сети

Как создать мем: полное руководство

Как устранить BSOD 0x0000003B в Windows
Windows

Как устранить BSOD 0x0000003B в Windows

Clone Stamp в Photoshop — подробное руководство
Графика

Clone Stamp в Photoshop — подробное руководство

Синхронизация звука и видео в After Effects
Видео монтаж

Синхронизация звука и видео в After Effects