Santa — это система авторизации доступа к двоичным файлам и файлам для macOS. Он состоит из системного расширения, отслеживающего выполнение, демона, принимающего решения о выполнении на основе содержимого локальной базы данных, агента с графическим интерфейсом, уведомляющего пользователя в случае принятия решения о блокировке, и утилиты командной строки для управления системой и синхронизация базы данных с сервером.
Его назвали Санта, потому что он отслеживает непослушные и приятные двоичные файлы.
Документы Санта хранятся в каталоге Docs и публикуются по адресу https://santa.dev.
Документы включают варианты развертывания, подробную информацию о том, как работают части Santa, и инструкции по разработке самого Santa.
Если у вас есть вопросы или вам нужна помощь в начале работы, группа santa-dev — отличное место.
Если вы считаете, что у вас есть ошибка, не стесняйтесь сообщить о проблеме, и мы ответим, как только сможем.
Если вы считаете, что обнаружили уязвимость, ознакомьтесь с политикой безопасности для сообщений о раскрытии информации.
Несколько режимов: в режиме МОНИТОРА по умолчанию все двоичные файлы, кроме помеченных как заблокированные, будут разрешены к запуску, при этом они будут регистрироваться и записываться в базу данных событий. В режиме LOCKDOWN разрешен запуск только перечисленных двоичных файлов.
Регистрация событий: при загрузке системного расширения регистрируются все двоичные запуски. В любом из этих режимов все неизвестные или запрещенные двоичные файлы сохраняются в базе данных для возможности последующего агрегирования.
Правила на основе сертификатов с уровнями переопределения: вместо того, чтобы полагаться на хэш двоичного файла (или «отпечаток пальца»), исполняемые файлы могут быть разрешены/блокированы с помощью их сертификата подписи. Таким образом, вы можете разрешить/заблокировать все двоичные файлы данного издателя, подписанные этим сертификатом, в обновлениях версий. Бинарный файл может быть разрешен его сертификатом только в том случае, если его подпись проверена правильно, но правило для отпечатка двоичного файла будет иметь приоритет над решением для сертификата; т. е. вы можете внести сертификат в список разрешенных, блокируя при этом двоичный файл, подписанный этим сертификатом, или наоборот.
Правила на основе пути (через NSRegularExpression/ICU): это обеспечивает функцию, аналогичную той, что есть в управляемом клиенте (предшественнике профилей конфигурации, в которых использовался тот же механизм реализации), ограничения запуска приложений через двоичный файл mcxalr. Эта реализация имеет дополнительное преимущество: ее можно настраивать с помощью регулярных выражений, а не полагаться на LaunchServices. Как подробно описано в вики, при оценке правил это имеет самый низкий приоритет.
Правила отказоустойчивого сертификата: вы не можете установить правило запрета, которое блокировало бы сертификат, используемый для подписи launchd, также известный как pid 1, и, следовательно, все компоненты, используемые в macOS. Поэтому двоичные файлы в каждом обновлении ОС (а в некоторых случаях и целые новые версии) автоматически разрешаются. Это не касается двоичных файлов из Apple App Store, которые используют различные сертификаты, которые регулярно меняются для распространенных приложений. Аналогично, вы не можете заблокировать самого Санта, и Санта использует отдельный сертификат, чем другие приложения Google.
Компоненты пользовательского пространства проверяют друг друга: каждый из компонентов пользовательского пространства (демон, агент графического интерфейса и утилита командной строки) взаимодействуют друг с другом с помощью XPC и проверяют идентичность своих сертификатов подписи, прежде чем какой-либо обмен будет принят.
Кэширование: разрешенные двоичные файлы кэшируются, поэтому обработка, необходимая для выполнения запроса, выполняется только в том случае, если двоичный файл еще не кэширован.
Ни одна система или процесс не остановит все атаки и не обеспечит 100% безопасности. Санта написан с целью помочь защитить пользователей от самих себя. Люди часто загружают вредоносное ПО и доверяют ему, сообщая учетные данные вредоносного ПО или позволяя неизвестному программному обеспечению украсть больше данных о вашей системе. Будучи компонентом с централизованным управлением, Santa может помочь остановить распространение вредоносного ПО среди большого парка машин. Независимо от этого Санта может помочь проанализировать, что работает на вашем компьютере.
Санта является частью стратегии глубокоэшелонированной защиты, и вам следует продолжать защищать хосты любыми другими способами, которые вы считаете подходящими.
Santa только блокирует выполнение (execve и варианты), он не защищает от динамических библиотек, загруженных с помощью dlopen, библиотек на диске, которые были заменены, или библиотек, загруженных с помощью DYLD_INSERT_LIBRARIES
.
Скрипты: Санта в настоящее время написан так, чтобы игнорировать любое выполнение, кроме двоичного. Это связано с тем, что, взвесив затраты на администрирование и выгоду, мы пришли к выводу, что это нецелесообразно. Кроме того, ряд приложений используют временные созданные сценарии, которые мы не можем внести в список разрешенных, и если этого не сделать, это может вызвать проблемы. Мы будем рады вернуться к этому (или, по крайней мере, сделать его возможным), если это будет полезно другим.
Клиент командной строки santactl
включает флаг синхронизации с сервером управления, который загружает события, произошедшие на компьютере, и загружает новые правила. Существует несколько серверов с открытым исходным кодом, с которыми вы можете синхронизироваться:
Альтернативно, santactl
может настраивать правила локально (без сервера синхронизации).
Такой инструмент, как Санта, на самом деле не подходит для создания снимков экрана, поэтому вместо этого вот видео.
Патчи к этому проекту очень приветствуются. Пожалуйста, ознакомьтесь с документом, подтверждающим участие.
Это не официальный продукт Google.