Ir al contenido

Agente en las máquinas

El agente es un componente opcional que se instala en las máquinas a las que llega Ironchip PAM. Lo usa quien administra el acceso privilegiado para controlar qué se ejecuta dentro de la sesión, no solo quién entra.

El agente tiene dos partes, que se dan de alta con el mismo secreto:

  • osquery informa de lo que ocurre en la máquina. Es el osquery estándar, sin modificar: solo cambia su configuración. Funciona en Linux, Windows y macOS.
    • Los procesos que inician las cuentas de las personas, para la línea de tiempo de cada sesión.
    • Las cuentas, quién administra la máquina, las claves SSH, quién tiene sesión iniciada y qué escucha conexiones remotas, para el inventario de cuentas y la exposición.
    • El sistema, los paquetes instalados, las actualizaciones de Windows y el cifrado de los discos, en la pestaña Machine del recurso.
  • Enforcer aplica en la máquina lo que Ironchip decide, con los mecanismos que ya tiene cada sistema. Funciona en Linux y Windows.
    • Linux: sudo le pregunta, mediante un plugin de aprobación, si un comando puede ejecutarse. Cualquier respuesta que no sea un permiso explícito es un rechazo.
    • Windows: cada pocos segundos pregunta qué programas puede ejecutar cada cuenta con la que entra el broker y lo aplica con AppLocker, antes de que nadie se conecte y mientras hay alguien conectado.
    • Rotación de cuentas: cambia las contraseñas de las cuentas locales que gestiona Ironchip. Solo las de las cuentas que nombres en -rotate-accounts: las demás nunca se cambian, aunque Ironchip lo pida.

El agente solo abre conexiones salientes por HTTPS hacia Ironchip: nada entra en la máquina.

Sistema Paquete del enforcer
Debian y Ubuntu .deb (amd64, arm64, armhf, i386 y otras)
RHEL, Rocky, Alma, Fedora y SUSE .rpm (x86_64, aarch64 y otras)
Alpine .apk
Arch Linux .pkg.tar.zst
Cualquier Linux (glibc o musl) Archivo .tar con install.sh
Windows ironchip-enforcer.exe (amd64 y arm64)
  • Linux: sudo 1.9 o posterior, que admite plugins de aprobación (RHEL 8, Debian 11, Ubuntu 22.04 o posteriores). Acceso de administrador.
  • Windows: un símbolo del sistema con permisos elevados.
  • osquery 5.23 o posterior, de https://osquery.io/downloads.
  • Salida HTTPS desde la máquina hacia Ironchip.
  • El secreto de alta del recurso: en PAM > Hosts > Targets, abre Options > Install agent en el recurso. El secreto da de alta una máquina, una vez para osquery y otra para el enforcer, y caduca a la hora. No se vuelve a mostrar.

Ventana Install the agent con las pestañas Linux, Windows y macOS y los pasos para osquery

La ventana Install agent muestra los pasos para Linux, Windows y macOS con los valores de tu compañía ya puestos:

  1. Instala osquery 5.23 o posterior.
  2. Guarda el secreto de alta en el fichero de tu sistema, con permisos 600.
  3. Copia las opciones de la consola en el fichero de flags.
  4. Arranca el servicio (sudo systemctl enable --now osqueryd, Restart-Service osqueryd o sudo osqueryctl start).
Sistema Secreto Fichero de flags
Linux /etc/osquery/ironchip.secret /etc/osquery/osquery.flags
macOS /var/osquery/ironchip.secret /var/osquery/osquery.flags
Windows C:\Program Files\osquery\ironchip.secret C:\Program Files\osquery\osquery.flags

Para ver cada proceso, y no solo los que encuentra al consultar la lista cada pocos segundos, añade la fuente de eventos del sistema:

  • Linux: --disable_events=false --disable_audit=false --audit_allow_config=true --audit_persist=true --audit_allow_process_events=true. auditd no debe estar en marcha.
  • macOS: --disable_events=false --disable_endpointsecurity=false, y acceso total al disco para osqueryd.
  • Windows: --disable_events=false --enable_process_etw_events=true. Sin estas opciones, en Windows no se ve ningún proceso.

En menos de un minuto, el recurso muestra el agente online, con el nombre y el sistema de la máquina.

  1. Instala el paquete:

    Ventana de terminal
    sudo apt install ./ironchip-pam-agent_<version>-1_amd64.deb # Debian, Ubuntu
    sudo dnf install ./ironchip-pam-agent-<version>-1.x86_64.rpm # RHEL, Rocky, Alma, Fedora (SUSE: zypper install)
    sudo apk add --allow-untrusted ./ironchip-pam-agent_<version>-r1_x86_64.apk # Alpine
    sudo pacman -U ./ironchip-pam-agent-<version>-1-x86_64.pkg.tar.zst # Arch Linux

    En cualquier otro Linux, descomprime el archivo .tar fuera de / y ejecuta su install.sh como root.

  2. Da de alta el enforcer con el secreto del recurso y borra el fichero. Sustituye <SECRET> por el secreto de alta y <API_HOST> por la dirección de la API de Ironchip:

    Ventana de terminal
    echo '<SECRET>' | sudo tee /etc/ironchip/secret >/dev/null && sudo chmod 600 /etc/ironchip/secret
    sudo ironchip-enforcer enroll -server <API_HOST>:443 -secret-file /etc/ironchip/secret
    sudo rm /etc/ironchip/secret
  3. En /etc/ironchip/enforcer.env, indica la dirección de Ironchip (IRONCHIP_SERVER) y, si quieres que rote cuentas, añade -rotate-accounts con las cuentas separadas por comas en IRONCHIP_ENFORCER_ARGS. Después arranca el servicio:

    Ventana de terminal
    sudoedit /etc/ironchip/enforcer.env
    sudo systemctl enable --now ironchip-enforcer

    En Alpine, usa rc-update add ironchip-enforcer default y rc-service ironchip-enforcer start.

  4. Activa el plugin de aprobación de sudo. En /etc/sudo.conf, después del plugin de política:

    /etc/sudo.conf
    Plugin sudoers_policy sudoers.so
    Plugin ironchip_approval /usr/libexec/sudo/ironchip_approval.so socket=/run/ironchip/enforcer.sock timeout=30

Las actualizaciones del paquete reinician el enforcer si estaba en marcha y conservan enforcer.env y su alta. Los paquetes .deb y .rpm se niegan a desinstalarse mientras sudo.conf cargue el plugin: quita antes la línea. Los de Alpine y Arch desactivan la línea al desinstalarse y guardan una copia en /etc/sudo.conf.ironchip-removed.

Guarda el secreto de alta en secret.txt y, desde un símbolo del sistema con permisos elevados, ejecuta:

Ventana de terminal
ironchip-enforcer.exe enroll -server <API_HOST>:443 -secret-file secret.txt
ironchip-enforcer.exe install -server <API_HOST>:443 -rotate-accounts ironchip

-rotate-accounts es opcional e indica las cuentas locales que el enforcer puede rotar (en el ejemplo, ironchip). install lo instala como servicio, con sus ficheros en C:\ProgramData\Ironchip. uninstall lo elimina.

El enforcer arranca el servicio Identidad de aplicación (AppIDSvc) si hace falta. Si la colección de ejecutables de AppLocker está en modo de auditoría, las reglas de Ironchip se registran pero no bloquean nada. En una máquina sin reglas de AppLocker propias, el enforcer añade una regla que permite todo a todos, para que las demás cuentas no se vean afectadas: Ironchip solo restringe las cuentas con las que entra el broker.

Opción Qué hace
-server host:puerto Dirección de Ironchip. Obligatoria.
-secret-file fichero El secreto de alta, para enroll.
-rotate-accounts cuentas Cuentas, separadas por comas, cuya contraseña puede cambiar Ironchip: las que usa el broker.
-ca fichero Certificados de CA en los que confiar en lugar de los del sistema.
-key fichero Dónde guarda su clave. Por defecto /etc/ironchip/enforcer.key o C:\ProgramData\Ironchip\enforcer.key.

La pestaña Agent de la página del recurso muestra el estado de osquery (Status, System, Processes, Last seen y los últimos avisos) y del enforcer (Last heard from). En Linux, el enforcer se oye cuando alguien usa sudo y cada 30 segundos si rota contraseñas; en Windows, cada pocos segundos.

  • Para cambiar la clave del enforcer, abre Options > Remove enforcer y vuelve a darlo de alta con un secreto nuevo de Install agent. Mientras no esté dado de alta, sudo rechaza todo en esa máquina.
  • Options > Remove agent hace lo mismo con osquery. Desinstalar osquery de la máquina corre de tu cuenta.
Síntoma Qué hacer
sudo rechaza todos los comandos El enforcer está parado o no responde. Arráncalo con sudo systemctl start ironchip-enforcer o, si hace falta, quita la línea del plugin en /etc/sudo.conf desde una consola de root.
El alta falla El secreto vale una vez para cada parte del agente y caduca a la hora. Genera otro con Install agent en el recurso correcto.
No aparecen procesos en la sesión Revisa que osquery tenga activada la fuente de eventos de tu sistema. En Windows es imprescindible.
La contraseña de una cuenta no cambia Añade la cuenta a -rotate-accounts y reinicia el enforcer. Consulta Rotación de contraseñas.