Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sinter — Un sistema de autorización de aplicaciones en modo de usuario para MacOS escrito en Swift. | Kitploit
Herramientas/GitHubGitHub/trailofbits/sinter
Herramientas DefensivasAuditoría de ConfiguraciónRespuesta a IncidentesArchived
GitHubtrailofbits/sinter

sinter

Un sistema de autorización de aplicaciones en modo de usuario para MacOS escrito en Swift.

Ver RepositorioSitio web
29915hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Sinter

Build Status

Sinter es un agente de seguridad de endpoints 100% en modo usuario para macOS 10.15 y superior, escrito en Swift.

Sinter utiliza la API EndpointSecurity en modo usuario para suscribirse y recibir devoluciones de llamada de autorización del kernel de macOS para un conjunto de tipos de eventos relevantes para la seguridad. La versión actual de Sinter permite permitir/denegar ejecuciones de procesos; en versiones futuras tenemos la intención de admitir otros tipos de eventos, como eventos de archivos, sockets y kernel.

Sinter es un trabajo en progreso. Se agradecen los comentarios. Si estás interesado en contribuir o patrocinarnos para ayudar a alcanzar su potencial, pongámonos en contacto.

Características

  • Permitir o denegar la ejecución de procesos mediante el hash del directorio de código (también conocido como "CD hash")
    • opción para denegar todos los programas desconocidos (cualquier programa que no esté explícitamente permitido)
    • opción para denegar todos los programas sin firma
    • opción para denegar todos los programas con firmas no válidas
  • Modo de "monitoreo" para rastrear y registrar (pero permitir) todos los eventos de ejecución de procesos
  • Acepta reglas de permitir/denegar desde un servidor de sincronización de Santa
  • Configurar reglas de denegación en JSON, proporcionadas localmente o por un servidor de sincronización
  • Registrar en el sistema de archivos local en un formato JSON estructurado

Funciones planificadas próximamente:

  • Denegar ejecución de procesos por ruta de archivo ejecutable
  • Denegar ejecución de procesos por ID de equipo de certificado

Anti-Características

  • No utiliza extensiones del kernel (que serán oficialmente obsoletas en macOS 11 Big Sur)
  • No es compatible con macOS heredado (10.14 o anterior)
  • No utiliza código inseguro en memoria
  • Limita las dependencias de bibliotecas de terceros
  • No es un antimalware ni antivirus. No tiene base de datos de firmas. Solo deniega lo que le indiques que deniegue, utilizando reglas.

Antecedentes

La primera solución macOS de código abierto para permitir/denegar procesos fue Google Santa. Somos fanáticos de Santa y hemos contribuido a su base de código en el pasado. Sin embargo, durante mucho tiempo, muchos en la comunidad macOS han solicitado una solución de código abierto para rastrear y gestionar más que solo eventos de procesos.

Vimos la plataforma ideal para construir dicha capacidad con la API EndpointSecurity en macOS 10.15. Empezar desde cero alrededor de una API estrictamente en modo usuario significaba que podíamos intentar un diseño más simple y usar un lenguaje de programación moderno con manejo de memoria más seguro y mejor rendimiento. Así, nos propusimos desarrollar Sinter, abreviatura de "Sinter Klausen", otro nombre para Santa Claus.

Primeros pasos

Descarga e instala la última versión de Sinter usando el enlace del instalador pkg desde la página de Lanzamientos.

Después de instalar Sinter, debes habilitar el permiso "Acceso completo al disco" para Sinter.app. Hazlo abriendo Preferencias del Sistema, pestaña Seguridad y Privacidad, luego Acceso completo al disco. Marca el elemento para Sinter.app. Si usas MDM, puedes habilitar automáticamente este permiso en tus endpoints y no se requerirá interacción del usuario.

Configuración

Sinter requiere un archivo de configuración presente en /etc/sinter/config.json. Se proporciona un ejemplo en el árbol fuente en ./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",
  }
}

El complemento del administrador de decisiones se puede seleccionar cambiando el valor decision_manager. El complemento local habilitará la sección de configuración LocalDecisionManager, indicando a Sinter que use la base de datos de reglas local presente en la ruta dada. Es posible usar un servidor de sincronización compatible con Santa, usando en su lugar el complemento sync-server. Esto habilita la sección de configuración RemoteDecisionManager, donde se pueden configurar la URL del servidor y el identificador de la máquina.

Actualmente hay dos complementos de registro implementados:

  1. filesystem: Los mensajes se escriben en un archivo, usando la ruta especificada en FilesystemLogger.log_file_path
  2. unifiedlogging: Los registros se emiten usando el Registro Unificado, con com.trailofbits.sinter como subsistema.

Directorios de aplicaciones permitidos

Es posible configurar Sinter para registrar y opcionalmente denegar aplicaciones que no se hayan iniciado desde una carpeta permitida.

  • allow_misplaced_applications: Si se establece en true, las aplicaciones mal ubicadas solo generarán una advertencia. Si se establece en false, cualquier ejecución que no comience desde una ruta válida es denegada.
  • allowed_application_directories: Si no está vacío, se usará para determinar si las aplicaciones están colocadas en la carpeta incorrecta.

Habilitar notificaciones de la interfaz de usuario

  1. Instala el servidor de notificaciones (el instalador PKG lo hará automáticamente): sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. Inicia el agente: /Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

Configurar Sinter en modo MONITOR

Los modos no están implementados en Sinter, ya que todo se basa en reglas. Es posible implementar la funcionalidad de monitoreo ajustando las siguientes configuraciones:

  • allow_unsigned_programs: permite aplicaciones que no están firmadas
  • allow_invalid_programs: permite aplicaciones que fallan en la verificación de firma
  • allow_unknown_programs: permite automáticamente aplicaciones que no están cubiertas por la base de datos de reglas activa
  • allow_expired_auth_requests: la API EndpointSecurity requiere que Sinter responda a una solicitud de autorización dentro de un marco de tiempo no especificado (normalmente menos de un minuto). Las aplicaciones grandes, como Xcode, tardarán un tiempo considerable en verificarse. Esas ejecuciones se deniegan por defecto, y se espera que el usuario intente de nuevo una vez que la aplicación haya sido verificada. Establecer esta configuración en true cambia este comportamiento para que esas solicitudes siempre se permitan.

Formato de reglas

Las bases de datos de reglas están escritas en formato JSON. Aquí hay un ejemplo de base de datos que permite el paquete de aplicación CMake de cmake.org:

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

Sinter solo admite reglas BINARY por ahora, usando políticas ALLOWLIST o DENYLIST. El valor del hash del directorio de código se puede tomar de la salida de la herramienta codesign (ejemplo: codesign -dvvv /Applications/CMake.app). Ten en cuenta que aunque las herramientas CLI pueden obtener el hash SHA256 completo, el Kernel/API EndpointSecurity está limitado a los primeros 20 bytes.

Compilar desde el código fuente

Compilar Sinter requiere ciertos certificados de firma de código y derechos que Apple debe otorgar a tu organización. Sin embargo, Sinter aún se puede compilar desde el código fuente y ejecutar localmente en un sistema de prueba con SIP desactivado. Para obtener instrucciones, consulta la wiki de Sinter.

Licencia

Sinter está licenciado y distribuido bajo la licencia AGPLv3. Contáctanos si estás buscando una excepción a los términos.

Descargar herramienta