Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sinter — Система авторизации приложений в пользовательском режиме для MacOS, написанная на Swift. | Kitploit
Инструменты/GitHubGitHub/trailofbits/sinter
Оборонительные ИнструментыАудит конфигурацииРеагирование на ИнцидентыArchived
GitHubtrailofbits/sinter

sinter

Система авторизации приложений в пользовательском режиме для MacOS, написанная на Swift.

РепозиторийСайт
299155 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Sinter

Build Status

Sinter — это 100% пользовательский агент безопасности конечных точек для macOS 10.15 и выше, написанный на Swift.

Sinter использует пользовательский API EndpointSecurity для подписки и получения обратных вызовов авторизации от ядра macOS для набора типов событий, связанных с безопасностью. Текущая версия Sinter поддерживает разрешение/запрет выполнения процессов; в будущих версиях мы планируем поддержку других типов событий, таких как файловые, сокетные и события ядра.

Sinter находится в разработке. Мы приветствуем отзывы. Если вы заинтересованы в участии или спонсировании нас, чтобы помочь реализовать его потенциал, свяжитесь с нами.

Возможности

  • Разрешать или запрещать выполнение процесса по хешу каталога кода (также известному как "CD hash")
    • возможность запретить все неизвестные программы (любые программы, которые явно не разрешены)
    • возможность запретить все неподписанные программы
    • возможность запретить все программы с недействительными подписями
  • режим "мониторинга" для отслеживания и логирования (но разрешения) всех событий выполнения процессов
  • Принимает правила разрешения/запрета от синхронизирующего сервера Santa
  • Настройка правил запрета в JSON, предоставляемых локально или через синхронизирующий сервер
  • Ведение журнала в локальную файловую систему в структурированном формате JSON

Планируемые будущие возможности:

  • Запрет выполнения процесса по пути исполняемого файла
  • Запрет выполнения процесса по идентификатору команды сертификата

Анти-функции

  • Не использует расширения ядра (которые будут официально устаревшими в macOS 11 Big Sur)
  • Не поддерживает устаревшие macOS (10.14 и старше)
  • Не использует небезопасный для памяти код
  • Ограничивает зависимости от сторонних библиотек
  • Не является антивирусом или анти-вредоносным ПО. Нет базы сигнатур. Запрещает только то, что вы укажете, используя правила.

Предыстория

Первым решением с открытым исходным кодом для macOS для разрешения/запрета процессов был Google Santa. Мы фанаты Santa и вносили свой вклад в его код в прошлом. Однако в течение долгого времени многие в сообществе macOS просили решение с открытым исходным кодом для отслеживания и управления большим, чем просто события процессов.

Мы увидели идеальную платформу для создания такой возможности с API EndpointSecurity в macOS 10.15. Создание с нуля на основе строго пользовательского API означало, что мы могли попробовать более простую конструкцию и использовать современный язык программирования с более безопасной работой с памятью и лучшей производительностью. Таким образом, мы приступили к разработке Sinter, сокращение от "Sinter Klausen", другого имени Санта-Клауса.

Начало работы

Загрузите и установите последнюю версию Sinter, используя ссылку установщика pkg на странице Releases.

После установки Sinter необходимо включить разрешение "Полный доступ к диску" для Sinter.app. Для этого откройте Системные настройки, вкладка Безопасность, Конфиденциальность, Полный доступ к диску. Отметьте элемент для Sinter.app. Если используется MDM, вы можете автоматически включить это разрешение на своих конечных точках, и взаимодействие с пользователем не потребуется.

Конфигурация

Sinter требует наличия файла конфигурации по пути /etc/sinter/config.json. Пример приведен в дереве исходного кода в ./config/config.json:

root@kitploit:~
{
  "Sinter": {
    "decision_manager": "local",
    "logger": "filesystem",

    "allow_unsigned_programs": "true",
    "allow_invalid_programs": "true",
    "allow_unknown_programs": "true",
    "allow_expired_auth_requests": "true",
    "allow_misplaced_applications": "true",

    "config_update_interval": 600,

    "allowed_application_directories": [
      "/bin",
      "/usr/bin",
      "/usr/local/bin",
      "/Applications",
      "/System",
      "/usr/sbin",
      "/usr/libexec",
    ],
  },
  
  "FilesystemLogger": {
    "log_file_path": "/var/log/sinter.log",
  },

  "RemoteDecisionManager": {
    "server_url": "https://server_address:port",
    "machine_identifier": "identifier",
  },

  "LocalDecisionManager": {
    "rule_database_path": "/etc/sinter/rules.json",
  }
}

Плагин диспетчера решений можно выбрать, изменив значение decision_manager. Плагин local включит раздел конфигурации LocalDecisionManager, указывая Sinter использовать локальную базу правил, находящуюся по указанному пути. Можно использовать синхронизирующий сервер, совместимый с Santa, используя вместо этого плагин sync-server. Это включает раздел конфигурации RemoteDecisionManager, где можно установить URL сервера и идентификатор машины.

В настоящее время реализованы два плагина журналирования:

  1. filesystem: Сообщения записываются в файл, используя путь, указанный в FilesystemLogger.log_file_path
  2. unifiedlogging: Журналы выводятся с использованием Unified Logging, используя com.trailofbits.sinter в качестве подсистемы.

Разрешенные каталоги приложений

Можно настроить Sinter на журналирование и, при необходимости, запрет приложений, которые не были запущены из разрешенной папки.

  • allow_misplaced_applications: Если установлено значение true, неправильно размещенные приложения будут только генерировать предупреждение. Если установлено значение false, любое выполнение, которое не запускается из допустимого пути, будет запрещено.
  • allowed_application_directories: Если не пусто, будет использоваться для определения, находятся ли приложения в неправильной папке.

Включение уведомлений UI

  1. Установите сервер уведомлений (установщик PKG сделает это автоматически): sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. Запустите агент: /Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

Настройка Sinter в режиме MONITOR

Режимы не реализованы в Sinter, так как все основано на правилах. Можно реализовать функцию мониторинга, настроив следующие параметры:

  • allow_unsigned_programs: разрешать приложения, которые не подписаны
  • allow_invalid_programs: разрешать приложения, не прошедшие проверку подписи
  • allow_unknown_programs: автоматически разрешать приложения, не охваченные активной базой правил
  • allow_expired_auth_requests: API EndpointSecurity требует, чтобы Sinter отвечал на запросы авторизации в течение неуказанного временного интервала (обычно менее минуты). Большие приложения, такие как Xcode, будут тратить значительное время на проверку. Такие выполнения запрещены по умолчанию, и ожидается, что пользователь попробует снова после проверки приложения. Установка этой конфигурации в true изменяет это поведение, так что эти запросы всегда разрешаются.

Формат правил

Базы правил записываются в формате JSON. Вот пример базы данных, которая разрешает пакет приложения CMake от cmake.org:

root@kitploit:~
{
  "rules": [
    {
      "rule_type": "BINARY",
      "policy": "ALLOWLIST",
      "sha256": "BDD0AF132D89EA4810566B3E1E0D1E48BAC6CF18D0C787054BB62A4938683039",
      "custom_msg": "CMake"
    }
  ]
}

Sinter пока поддерживает только правила BINARY, используя политики ALLOWLIST или DENYLIST. Значение хеша каталога кода можно взять из вывода инструмента codesign (пример: codesign -dvvv /Applications/CMake.app). Обратите внимание, что хотя инструменты CLI могут получить полный хеш SHA256, API Kernel/EndpointSecurity ограничен первыми 20 байтами.

Сборка из исходников

Сборка Sinter требует определенных сертификатов кода и разрешений, которые Apple должна предоставить вашей организации. Однако Sinter все еще можно собрать из исходников и запустить локально на тестовой системе с отключенным SIP. Инструкции см. в Sinter wiki.

Лицензия

Sinter лицензирован и распространяется под лицензией AGPLv3. Свяжитесь с нами, если вы ищете исключение из условий.

Скачать инструмент