
santa v2026.8
Система авторизации доступа к бинарным и обычным файлам для macOS.
Santa
Santa — это система авторизации запуска бинарных файлов и доступа к файлам для macOS. Она состоит из системного расширения, которое отслеживает запуски и доступ к файлам и принимает решения на основе содержимого локальной базы данных, GUI-агента, уведомляющего пользователя в случае блокировки, фонового сервиса для синхронизации конфигурации с удалённым сервером и утилиты командной строки для управления системой.
Она названа Santa, потому что отслеживает бинарные файлы, которые ведут себя непослушно или хорошо.
Документация
Документация Santa хранится в каталоге Docs и публикуется на https://northpole.dev.
Документация включает варианты развёртывания, подробности о том, как работают части Santa, и инструкции по разработке самого Santa.
Получить помощь
Если у вас есть вопросы или вам нужна помощь с началом работы, канал #santa в Slack сообщества macadmins — отличное место для старта.
Если вы считаете, что нашли ошибку, смело сообщайте о проблеме, и мы ответим, как только сможем.
Если вы считаете, что нашли уязвимость, пожалуйста, прочитайте политику безопасности для порядка раскрытия информации.
Возможности
-
Несколько режимов: В режиме MONITOR по умолчанию всем бинарным файлам, кроме помеченных как заблокированные, разрешён запуск, при этом они регистрируются и записываются в базу данных событий. В режиме LOCKDOWN разрешён запуск только перечисленных бинарных файлов.
-
Журналирование событий: Когда системное расширение загружено, все запуски бинарных файлов регистрируются. В любом из режимов все неизвестные или запрещённые бинарные файлы сохраняются в базе данных для последующей агрегации.
-
Правила на основе подписи кода с уровнями переопределения: Вместо того чтобы полагаться на хеш (или «отпечаток») бинарного файла, исполняемые файлы можно разрешать/блокировать по их подписи кода (через правила CDHash, Certificate, TeamID или SigningID). Вы можете разрешать/блокировать все бинарные файлы, подписанные издателем, или все версии подписанного бинарного файла. Правила применяются в порядке от наиболее конкретного к наименее конкретному, что позволяет вам разрешать все бинарные файлы данного издателя, блокируя при этом один конкретный signing ID или бинарный файл (или наоборот).
-
Правила на основе путей (через NSRegularExpression/ICU): Это предоставляет функцию, аналогичную той, что есть в Managed Client (предшественнике профилей конфигурации, который использовал тот же механизм реализации), — ограничения запуска приложений через бинарный файл mcxalr. Эта реализация имеет дополнительное преимущество: она настраивается через regex и не полагается на LaunchServices. Как подробно описано в вики, при оценке правил этот тип имеет самый низкий приоритет.
-
Отказоустойчивые правила сертификатов: Нельзя добавить запрещающее правило, которое заблокирует сертификат, используемый для подписи launchd (также известного как pid 1), и, следовательно, всех компонентов, используемых в macOS. Бинарные файлы из каждого обновления ОС (а в некоторых случаях и целые новые версии) автоматически разрешаются. Это не затрагивает бинарные файлы из App Store от Apple, которые используют различные сертификаты, регулярно меняющиеся для обычных приложений. Также нельзя заблокировать сам Santa.
-
Компоненты пользовательского пространства проверяют друг друга: каждый из компонентов пользовательского пространства (демон, GUI-агент и утилита командной строки) взаимодействует друг с другом через XPC и проверяет, что их сертификаты подписи идентичны, прежде чем какое-либо взаимодействие будет принято.
-
Кэширование: разрешённые бинарные файлы кэшируются, поэтому обработка, необходимая для выполнения запроса, выполняется только в том случае, если бинарный файл ещё не кэширован.
Намерения и ожидания
Ни одна отдельная система или процесс не остановит все атаки и не обеспечит 100% безопасности. Santa написан с целью помочь защитить пользователей от самих себя. Люди часто загружают вредоносное ПО и доверяют ему, передавая вредоносу учётные данные или позволяя неизвестному программному обеспечению выводить больше данных о вашей системе. Как централизованно управляемый компонент, Santa может помочь остановить распространение вредоносного ПО среди большого парка машин. Независимо, Santa может помочь в анализе того, что запущено на вашем компьютере.
Santa является частью стратегии многоуровневой защиты (defense-in-depth), и вам следует продолжать защищать хосты любыми другими способами, которые вы считаете подходящими.
Известные проблемы
-
Santa блокирует только выполнение (execve и варианты), он не защищает от динамических библиотек, загружаемых через dlopen, библиотек на диске, которые были заменены, или библиотек, загружаемых с помощью
DYLD_INSERT_LIBRARIES. Другие части macOS обычно защищают от этих путей, если включена SIP. -
Скрипты: Santa в настоящее время написан так, чтобы игнорировать любое выполнение, которое не является бинарным файлом. Это связано с тем, что после взвешивания стоимости администрирования и выгоды мы пришли к выводу, что это не стоит того. Кроме того, ряд приложений использует временные генерируемые скрипты, которые мы не можем включить в белый список, а если не сделать этого, могут возникнуть проблемы. Мы готовы вернуться к этому вопросу (или по крайней мере сделать это опцией), если это будет полезно другим.
Серверы синхронизации
-
Santa может синхронизировать свои настройки и политики с сервером управления, что позволяет очень быстро менять конфигурацию.
Доступно несколько коммерческих серверов и серверов с открытым исходным кодом:
- Workshop — Workshop — это официальный сервер синхронизации, предлагаемый North Pole Security. Он полнофункционален, быстр, масштабируем и готов к корпоративному использованию.
- Moroz — простой сервер на Go, который отдаёт жёстко заданные правила из простых файлов конфигурации.
- Rudolph — серверless-сервис синхронизации на базе AWS, построенный в основном на компонентах API GW, DynamoDB и Lambda для снижения операционной нагрузки. Rudolph спроектирован как быстрый, простой в использовании и экономичный.
- Zentral — централизованный сервис, который получает данные из нескольких источников и разворачивает конфигурации в нескольких сервисах.
-
В качестве альтернативы правила можно настраивать локально, используя либо ключ конфигурации StaticRules, либо команду
santactl rule.
Скриншоты
Такой инструмент, как Santa, не очень-то подходит для скриншотов, поэтому вместо них вот видео.
Участие в разработке
Патчи к этому проекту очень приветствуются. Пожалуйста, ознакомьтесь с документом CONTRIBUTING.
Отказ от ответственности
North Pole Security и North Pole Security Santa не связаны с Google.