Instalar y configurar SentinelOne Agent en macOS

SentinelOne Agent es una plataforma de ciberseguridad avanzada impulsada por inteligencia artificial (IA), diseñada para ofrecer protección autónoma de endpoints en entornos Windows, macOS y Linux. Aprovechando una arquitectura de agente único, SentinelOne unifica las capacidades de prevención, detección, respuesta y análisis de amenazas en tiempo real, sin depender de la conectividad a la nube ni de la intervención constante de los usuarios.

Pensada para equipos de seguridad modernos, SentinelOne proporciona una protección sólida frente a malware, ransomware, ataques sin archivos (fileless) y amenazas de día cero, combinando IA conductual, aprendizaje automático (machine learning) y remediación automatizada. Su potente funcionalidad de EDR (Endpoint Detection and Response) permite a las organizaciones detectar y responder rápidamente a las amenazas, además de obtener una visibilidad profunda del ciclo completo del ataque.

Ya sea que gestiones una flota de manera remota o una infraestructura empresarial, SentinelOne ofrece una seguridad de endpoints escalable, resiliente y fácil de administrar, adaptada al panorama actual de amenazas en constante evolución.

Actualizaciones importantes #

Cambios en macOS Sequoia 15 #

macOS Sequoia 15 introduce una nueva interfaz que permite a los usuarios ver y gestionar todas las extensiones del sistema instaladas, incluidas las extensiones de red. Esta actualización otorga a los usuarios mayor control sobre estos componentes.

network-extensions

Como administrador, puede que desees evitar que los usuarios desactiven ciertas extensiones del sistema desde la Configuración del Sistema. Para facilitar esto, macOS Sequoia 15 incluye una nueva clave NonRemovableFromUISystemExtensions dentro del payload com.apple.system-extension-policy.

Al especificar la extensión de monitoreo de red de SentinelOne en este payload, los usuarios podrán ver los detalles de la extensión, pero no podrán modificarla ni desactivarla.

Requisitos #

Para desplegar SentinelOne en macOS a través de Applivery, asegúrate de tener:

  • Paquete del agente SentinelOne (.pkg).

  • Token de SentinelOne.

  • Script de activación (para licenciar el agente).

  • Política de Full Disk Access (mediante perfil de configuración).

  • Perfil .mobileconfig personalizado.

  • Extensiones del sistema.

  • 1 licencia de Applivery para la Distribución de Apps.

Preparar SentinelOne #

Para desplegar SentinelOne con Applivery, deberás subir el paquete comprimido de la app (.zip) a la sección App Distribution y configurarlo con un script de activación posterior a la instalación.

Primero, descarga el instalador .pkg de SentinelOne desde tu panel de control de SentinelOne y asegúrate de copiar el token de tu organización, ya que lo necesitarás más adelante para el script de activación.

Una vez descargado, comprime el archivo .pkg haciendo clic derecho sobre él y seleccionando Comprimir, lo que generará el archivo .zip necesario para Applivery.

A continuación, inicia sesión en el panel de Applivery y navega hasta la sección de Distribución de Apps. Desde allí, sigue los pasos descritos en nuestra documentación:

  1. Crear tu primera app.
  2. Cargar tu primera build.
app-distribution

Configurar la política de SentinelOne #

Una vez en el panel de control de Applivery, dirígete a la sección Gestión de Dispositivos y selecciona Políticas (1). Selecciona la política donde desees desplegar la app. Desde el menú lateral izquierdo, accede a la sección Apps (2) y haz clic en el botón + Añadir App (3).

En el modal que se abrirá, selecciona la pestaña Applivery (4) para continuar con la configuración.

Configura la plataforma como macOS (5), selecciona Tu Workspace (6) como origen de la app y busca la app de SentinelOne que creaste previamente en el desplegable de aplicaciones (7). Para la selección de la versión, elige Last (8) para asegurarte de que siempre se despliegue la versión más reciente.

sentinelone

Continúa al siguiente paso y elige el modo de instalación según tu estrategia: Instalación forzosa, Requerido para la inscripción o Disponible.

En la sección de Configuración, selecciona Pre-instalación (9) y pega tu script de activación, asegurándote de reemplazar los valores de ejemplo con el token de tu organización.

pre-install-sentinel

Script de activación #

				
					#!/bin/bash

# Get the currently logged-in user (macOS)
currentUser=$(/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }')

# Ensure we have a valid username
if [ -z "$currentUser" ]; then
    echo "Error: Unable to determine the current user."
    exit 1
fi

# Define the registration token <<<<---- MODIFY BY YOUR ORGANIZATION'S TOKEN
token="TOKEN"

# Define the folder and file path
folderPath="/Users/$currentUser/Library/Application Support/auditApps"
filePath="$folderPath/com.sentinelone.registration-token"

# Ensure the auditApps folder exists and set proper permissions
if ! sudo mkdir -p "$folderPath"; then
    echo "Error: Failed to create directory $folderPath"
    exit 1
fi

if ! sudo chown "$currentUser" "$folderPath"; then
    echo "Error: Failed to change ownership of $folderPath"
    exit 1
fi

if ! sudo chmod 700 "$folderPath"; then
    echo "Error: Failed to set permissions on $folderPath"
    exit 1
fi

# Write the token to the file and set proper permissions
if ! echo "$token" | sudo tee "$filePath" > /dev/null; then
    echo "Error: Failed to write the token to $filePath"
    exit 1
fi

if ! sudo chown "$currentUser" "$filePath"; then
    echo "Error: Failed to change ownership of $filePath"
    exit 1
fi

if ! sudo chmod 600 "$filePath"; then
    echo "Error: Failed to set permissions on $filePath"
    exit 1
fi

# Open the token file with nano for manual editing as the regular user
if ! sudo -u "$currentUser" nano "$filePath"; then
    echo "Error: Failed to open $filePath in nano"
    exit 1
fi

# Check if sentinelctl exists before executing
if ! command -v /usr/local/bin/sentinelctl &> /dev/null; then
    echo "Error: sentinelctl command not found."
    exit 1
fi

# Register the token with SentinelOne
if ! sudo -u "$currentUser" /usr/local/bin/sentinelctl set registration-token -- "$token"; then
    echo "Error: Failed to register the token with SentinelOne."
    exit 1
fi

# Exit successfully
echo "Registration token successfully written and applied."
exit 0
				
			

Política de Full Disk Access #

Para garantizar el correcto funcionamiento del agente tras la instalación, es necesario otorgarle permisos de Acceso Total al Disco. Esto se realiza editando la misma política en la que se desplegó el agente.

Dentro de la política, comienza seleccionando + Añadir configuración (10) desde el menú lateral izquierdo, y luego elige la configuración Preferencias de privacidad Control de políticas (11).

privacy-preferences-policy-control

A continuación, tendrás que añadir algunas entradas relacionadas con Política del sistema Archivos de administración del sistema. Para cada elemento incluido en esta configuración, establece el acceso en Permitido.

La primera configuración debe incluir los siguientes parámetros:

  • Requisito de código:

anchor apple generic and identifier "com.sentinelone.sentineld" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "4AYE5J54KN")

  • Identificador: com.sentinelone.sentineld.
  • Tipo de identificador: Bundle ID.
  • Código estático: Deshabilitado.

Para la segunda configuración:

  • Requisito de código:
anchor apple generic and identifier "com.sentinelone.sentineld-shell" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "4AYE5J54KN")
  • Identificador: com.sentinelone.sentineld-helper.
  • Tipo de identificador: Bundle ID.
  • Código estático: Deshabilitado.

Para la tercera configuración:

  • Requisito de código:
anchor apple generic and identifier "com.sentinelone.sentineld-helper" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists / or certificate 1[field.1.2.840.113635.100.6.2.6] / exists / and certificate leaf[field.1.2.840.113635.100.6.1.13] / exists */ and certificate leaf[subject.OU] = "4AYE5J54KN")
  • Identificador: com.sentinelone.sentineld-shell.
  • Tipo de identificador: Bundle ID.
  • Código estático: Deshabilitado.

Para la última configuración:

  • Requisito de código:
anchor apple generic and identifier "com.sentinelone.sentinel-shell" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "4AYE5J54KN")
  • Identificador: com.sentinelone.sentinel-shell.
  • Tipo de identificador: Bundle ID.
  • Código estático: Deshabilitado.

Perfil .mobileconfig personalizado de SentinelOne #

Para aplicar la configuración personalizada, navega hasta la política deseada y haz clic en + Añadir configuración (12) desde el menú lateral izquierdo.

Luego, selecciona el botón + Importar (13) y pega el contenido .xml proporcionado en el editor.

Una vez completado este paso, asegúrate de hacer clic en Guardar cambios para aplicar la configuración.

sentinel-xml
				
					<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>PayloadContent</key>
	<array>
		<dict>
			<key>NotificationSettings</key>
			<array>
				<dict>
					<key>BundleIdentifier</key>
					<string>com.sentinelone.SentinelAgent</string>
					<key>CriticalAlertEnabled</key>
					<true/>
				</dict>
			</array>
			<key>PayloadDescription</key>
			<string>Configures notifications settings for apps</string>
			<key>PayloadDisplayName</key>
			<string>Notifications</string>
			<key>PayloadIdentifier</key>
			<string>com.apple.notificationsettings.26E82306-CDA4-4AF0-9714-0B8363D2A26F</string>
			<key>PayloadType</key>
			<string>com.apple.notificationsettings</string>
			<key>PayloadUUID</key>
			<string>26E82306-CDA4-4AF0-9714-0B8363D2A26F</string>
			<key>PayloadVersion</key>
			<integer>1</integer>
		</dict>
		<dict>
			<key>PayloadDescription</key>
			<string>Configures Conference Room Display mode</string>
			<key>PayloadDisplayName</key>
			<string>Conference Room Display</string>
			<key>PayloadIdentifier</key>
			<string>com.apple.conferenceroomdisplay.B64EF9CA-0B32-43F9-82D7-5ABB51D1422B</string>
			<key>PayloadType</key>
			<string>com.apple.conferenceroomdisplay</string>
			<key>PayloadUUID</key>
			<string>B64EF9CA-0B32-43F9-82D7-5ABB51D1422B</string>
			<key>PayloadVersion</key>
			<integer>1</integer>
		</dict>
		<dict>
			<key>FilterBrowsers</key>
			<false/>
			<key>FilterSockets</key>
			<true/>
			<key>FilterType</key>
			<string>Plugin</string>
			<key>Organization</key>
			<string>Applivery Inc</string>
			<key>PayloadDescription</key>
			<string>Configures content filtering settings</string>
			<key>PayloadDisplayName</key>
			<string>SentinelOne</string>
			<key>PayloadIdentifier</key>
			<string>com.apple.webcontent-filter.B456B4A3-5794-4C8E-99FA-9148C6458AEE</string>
			<key>PayloadType</key>
			<string>com.apple.webcontent-filter</string>
			<key>PayloadUUID</key>
			<string>B456B4A3-5794-4C8E-99FA-9148C6458AEE</string>
			<key>PayloadVersion</key>
			<integer>1</integer>
			<key>PluginBundleID</key>
			<string>com.sentinelone.extensions-wrapper</string>
			<key>UserDefinedName</key>
			<string>SentinelOne</string>
		</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>SentinelOne Config</string>
	<key>PayloadIdentifier</key>
	<string>com.applivery.sentinelone</string>
	<key>PayloadOrganization</key>
	<string>Applivery</string>
	<key>PayloadRemovalDisallowed</key>
	<false/>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>9B3EA38F-D1C7-4045-A745-AE3AA25ACCEE</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>
				
			

Configurar extensiones del sistema #

Ahora agregaremos una nueva configuración seleccionando nuevamente + Añadir configuración desde el menú lateral izquierdo.

Selecciona la configuración de Extensiones del sistema (14). Ahora, tan solo tendrás que habilitar la opción Permitir anulaciones de usuario (15) y copiar las siguientes Extensiones del sistema permitidas (16):

system-extensions
				
					{
  "4AYE5J54KN": [
    "com.sentinelone.network-monitoring"
  ]
}
				
			
Updated on mayo 8, 2025
¿Te ha sido útil este artículo?

En esta página