Как найти и удалить скрытые LaunchDaemons и LaunchAgents на Mac
Важно: не удаляйте элементы из /System/Library — они нужны macOS. Всегда делайте резервную копию .plist-файла на Рабочем столе перед удалением и перепроверяйте подпись и источник файла.
Зачем это нужно
Скрытые элементы автозапуска могут вызывать перенаправления в браузере, появление рекламы, повышенное потребление ресурсов, проблемы с безопасностью и приватностью. Удаление приложения из «Login Items» не всегда решает проблему — многие вредоносные и «настойчивые» приложения используют LaunchDaemons и LaunchAgents, которые управляются через launchd и описываются в .plist-файлах.
Ключевые термины в одну строку
- launchd — системный менеджер процессов macOS, родитель процессов PID 1.
- LaunchDaemon — служба, работает как root, до входа пользователя и для всей системы.
- LaunchAgent — агент, запускается при входе конкретного пользователя и может взаимодействовать с UI.

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

launchd подгружает конфигурации из .plist-файлов, расположенных в системных и публичных папках LaunchDaemons и LaunchAgents. Файлы следуют обратной доменной нотации — company.app.identifier.plist.
Где находятся файлы автозапуска
Основные каталоги, которые нужно проверять:
- /System/Library/LaunchDaemons — системные демоны (не трогать)
- /Library/LaunchDaemons — демоны, установленные сторонними приложениями
- /System/Library/LaunchAgents — системные агенты (не трогать)
- /Library/LaunchAgents — агенты для всех пользователей
- ~/Library/LaunchAgents — агенты только для текущего пользователя


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







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





Альтернативный подход: использовать терминал и 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)
- Фиксация симптомов: опишите проблему (перенаправления в браузере, спай нажатий, всплывающие окна, нагрузка CPU, неизвестные процессы).
- Сбор первичных данных: запустите Activity Monitor, EtreCheck и KnockKnock; сохраните отчёты.
- Локализация: проверьте /Library/LaunchAgents, /Library/LaunchDaemons и ~/Library/LaunchAgents на новые/подозрительные .plist.
- Сбор дополнительной информации: проверьте подпись (codesign), проверьте цифровые подписи и владельцев файлов (ls -lOe).
- Контейнинг: переместите подозрительный .plist и связанные исполняемые файлы на Рабочий стол (или в карантинную папку) и выгрузите задачу через launchctl.
- Тестирование: перезагрузите или выйдите/войдите в систему, проверьте, повторяется ли проблема.
- Очистка: если поведение исчезло, удалите файлы окончательно; если нет — восстановите с карантина и продолжите анализ.
- Финальная проверка: запустите 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 — это может сделать систему нестабильной.
- Немедленно удалять файл без проверки подписи и происхождения — иногда это ломает легитимные приложения.
- Игнорировать повторяющееся появление одного и того же файла — это признак автозагрузки со стороны внешнего компонента.
Краткие инструкции по безопасному удалению (чек-лист действий)
- Сохраните резервную копию .plist и связанных файлов на Рабочем столе.
- Выгрузите задачу через launchctl (bootout/remove) или воспользуйтесь графическим инструментом.
- Перезагрузите систему.
- Проверьте, исчезла ли проблема.
- Если нет — восстановите из карантина и продолжите анализ.
1‑строчный глоссарий
- .plist — XML-файл настроек, который описывает, как и когда launchd должен запускать процесс.
Заключение
Следите за папками LaunchDaemons и LaunchAgents, используйте сочетание автоматического мониторинга, проверенных утилит и безопасных терминальных команд. При сомнениях сохраняйте файлы в карантине, исследуйте подпись и источник и используйте проверенные антивирусные инструменты. Регулярные бэкапы и внимательность при установке ПО — лучшая профилактика проблем.
Короткое резюме:
- LaunchDaemons работают на уровне системы, LaunchAgents — на уровне пользователя.
- Папки /Library и ~/Library являются уязвимыми для сторонних программ.
- Folder Actions, EtreCheck, KnockKnock и BlockBlock помогают обнаруживать изменения.
- Всегда делайте резервную копию .plist перед удалением и проверяйте подпись.
Похожие материалы
Подготовка к техническому собеседованию разработчика
Запуск мастера устранения неполадок в Windows
Как создать мем: полное руководство
Как устранить BSOD 0x0000003B в Windows
Clone Stamp в Photoshop — подробное руководство