
Система авторизации доступа к бинарным и обычным файлам для macOS.
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 может синхронизировать свои настройки и политики с сервером управления, что позволяет очень быстро менять конфигурацию.
Доступно несколько коммерческих серверов и серверов с открытым исходным кодом:
В качестве альтернативы правила можно настраивать локально, используя либо
ключ конфигурации StaticRules,
либо команду santactl rule.
Такой инструмент, как Santa, не очень-то подходит для скриншотов, поэтому вместо них вот видео.
Патчи к этому проекту очень приветствуются. Пожалуйста, ознакомьтесь с документом CONTRIBUTING.
North Pole Security и North Pole Security Santa не связаны с Google.