Resumen y cronología de seguridad

Todas las protecciones de Bromure corren en el anfitrión, dentro del proxy y del conmutador de red virtual: el cambio de credenciales, el cortafuegos de salida, las salvaguardas, las comprobaciones de la cadena de suministro, la detección de inyección de prompts y la protección de datos personales. Cada vez que una de ellas toma una decisión — cambia una credencial, bloquea una conexión, comprueba un paquete, retiene un mensaje — la registra. La ventana Cronología de seguridad muestra esas decisiones: un Resumen de las últimas 24 horas, y una Cronología de cada evento.

Responde a una pregunta distinta del trazado. Una traza registra el tráfico en sí — "¿qué envió el agente?" — y solo cuando activas el trazado. La Cronología de seguridad registra lo que los motores de seguridad decidieron sobre ese tráfico, y está siempre activa: en cada máquina, inscrita o no, en modo privado o no, sin nada que configurar.

Abrir la ventana

Elige Ventana → Cronología de seguridad…, o pulsa ⌘K y elige Cronología de seguridad. La ventana se abre en la pestaña Resumen; el control segmentado de arriba a la izquierda alterna entre Resumen y Cronología. Hay una sola ventana para toda la app; volver a elegir el elemento del menú la trae al frente.

La pestaña Resumen

La ventana Cronología de seguridad en su pestaña Resumen: «Últimas 24 horas» con cinco baldosas (4 Bloqueada, 5 Permitidos, 2 Credenciales intermediadas, 2 Paquetes comprobados, 0 Datos personales sustituidos), una tabla Protecciones con una fila para cada una de Payments API, Web app y Data pipeline y las columnas Cortafuegos, Cadena de suministro, Salvaguardas, Inyección de prompts, Protección de datos personales e Intermediación de credenciales, y una lista Últimos bloqueos con un bloqueo del cortafuegos, un bloqueo de salvaguardas y un bloqueo de inyección de prompts

El Resumen se titula Últimas 24 horas — "Lo que los motores de seguridad de Bromure decidieron para tus agentes." Tiene tres partes.

Baldosas

Cinco baldosas cuentan los eventos de las últimas 24 horas:

BaldosaCuenta
BloqueadaTodo evento cuya decisión fue un bloqueo (rojo en la Cronología), desde cualquier motor.
PermitidosTodo evento cuya decisión fue dejar pasar algo (verde en la Cronología), desde cualquier motor.
Credenciales intermediadasEventos de Intermediación de credenciales: cambios de credenciales, intentos de exfiltración bloqueados, y anfitriones que permitiste desde la alerta de compromiso.
Paquetes comprobadosEventos de Cadena de suministro: cada obtención de paquete que vio el proxy.
Datos personales sustituidosEl número de valores de datos personales que la protección de datos personales sustituyó por suplentes — valores, no peticiones.

Haz clic en una baldosa para saltar a la pestaña Cronología. Credenciales intermediadas, Paquetes comprobados y Datos personales sustituidos la abren filtrada por su motor; Bloqueada y Permitidos la abren con todos los motores, filtrada por ese resultado.

Protecciones

La tabla Protecciones lista cada máquina de este Mac, con su color, y muestra qué protecciones tiene activadas — una marca verde para activada, un guion gris para desactivada:

ColumnaMarcada cuando
CortafuegosLa máquina tiene reglas de conexión saliente en su panel de Salvaguardas, o deniega el tráfico sin coincidencia.
Cadena de suministroAl menos una capa de la cadena de suministro está activa (la barrera de edad, OSV, socket.dev, el despojado de scripts o el aviso de lockfile).
SalvaguardasLas salvaguardas restringen algo de verdad: un servicio con una política de escritura distinta de Desactivada, una salvaguarda de base de datos, una regla de conexión saliente, o alguna credencial puesta en Preguntar antes de usar. La derivación insegura por petición (X-bromure-insecure) no cuenta, ya que relaja en lugar de restringir.
Inyección de promptsAl menos un detector de inyección de prompts está activo.
Protección de datos personalesEl interruptor principal de la protección de datos personales está activo con al menos una categoría.
Intermediación de credencialesSiempre: el cambio de credenciales no se puede desactivar.

Úsala para detectar una máquina que corre con menos protecciones que las demás. Para cambiar alguna, abre los ajustes de esa máquina (ver Referencia de ajustes).

Últimos bloqueos

Últimos bloqueos lista los bloqueos más recientes de las últimas 24 horas, los más recientes primero, hasta ocho: qué se bloqueó, el motor y la decisión, y cuánto hace. La lista se oculta cuando no se bloqueó nada.

La pestaña Cronología

La ventana Cronología de seguridad en su pestaña Cronología: un campo Filtrar eventos…, el menú Todos los motores, «8 eventos», los botones Exportar… y Borrar, y una tabla con las columnas Hora, Espacio de trabajo, Motor, Condición y Decisión que lista filas de Protección de datos personales, Inyección de prompts, Cadena de suministro, Cortafuegos e Intermediación de credenciales, con código de color azul, rojo y verde

La Cronología es una única tabla de todos los eventos, los más recientes primero:

ColumnaMuestra
HoraFecha y hora de la decisión.
Espacio de trabajoLa máquina donde ocurrió. Cuando reflejas Macs remotos, dice Mac · máquina.
MotorQué motor decidió, con su icono.
CondiciónQué vio el motor: el anfitrión, el paquete, el fragmento, la clave… Pasa el cursor para el texto completo; el texto se puede seleccionar y copiar.
DecisiónQué decidió, con código de color.
(última columna)En las filas del cortafuegos, un botón de acción rápida: Permitir…, Bloquear… o Regla… — ver Acciones rápidas del cortafuegos. Para un paquete que OSV o socket.dev bloquearon, Permitir… → Permitir siempre … en este espacio de trabajo lo añade a los paquetes de confianza del espacio de trabajo (Permitido ahora una vez hecho) — ver Confiar en un paquete bloqueado.

Los colores se leen igual en toda la ventana:

  • Verde — permitido: dejado pasar, aprobado, firmado.
  • Rojo — bloqueado: denegado, rechazado, retenido.
  • Azul — informativo: una transformación que no es ni un paso ni un bloqueo, como un cambio de credencial, una lista de versiones filtrada por edad o scripts de instalación despojados.

La barra de herramientas sobre la tabla la filtra:

  • Filtrar eventos… coincide con texto del motor, la condición, la decisión y los nombres de máquina y de Mac.
  • El menú de motores (Todos los motores por omisión) lista los motores que tienen eventos.
  • El menú de resultados (Todos los resultados por omisión) estrecha la tabla a eventos Bloqueada o Permitidos.
  • Cuando reflejas al menos un Mac remoto, aparece un menú de máquinas: Todas las máquinas, Este Mac, o un Mac remoto.
  • El recuento de eventos ("8 eventos") refleja los filtros.

Borrar vacía la ventana. Solo oculta los eventos: siguen en el disco, pero los eventos borrados no vuelven cuando la app reinicia. Exportar… se describe más abajo.

Los motores

MotorQué registran sus filasDecisiones de ejemplo
Intermediación de credencialesCambios de credenciales en el cable (Credenciales), intentos de exfiltración, y anfitriones permitidos desde la alerta de compromiso."sustituido por sk-a…9f" (azul); "bloqueado: intento de exfiltración, VM en pausa" (rojo), o "bloqueado: intento de exfiltración (alertas desactivadas, VM no puesta en pausa)" cuando la máquina tiene las alertas de exfiltración desactivadas; "permitido por el usuario para esta sesión" (verde)
Credencial usadaFirmas SSH y firmados AWS SigV4 que el anfitrión hizo por el agente."firmado" (verde)
CortafuegosVeredictos del cortafuegos de salida, por anfitrión, puerto y protocolo, con la regla que decidió —o "política predeterminada" cuando ninguna regla coincidió—, tanto para conexiones directas como para las hechas a través de los ajustes de proxy. El anfitrión es el nombre que pidió el programa (www.wikipedia.org), no el nombre de CDN al que resuelve. Un destino solo se vuelve a informar cuando ha pasado un minuto desde el último informe, o enseguida tras un cambio de reglas; las conexiones permitidas solo se listan cuando la máquina las registra, y sus repeticiones se pliegan en una fila con un contador. Una conexión abierta cortada porque cambiaron las reglas tiene su propia fila."permitir — allow tcp github.com:443" (verde); "denegar — política predeterminada" (rojo); "conexión cerrada — «allow tcp github.com:443» ya no la permite" (rojo); "denegar" (rojo) para conexiones descartadas al margen de las reglas (IPv6, QUIC, fragmentos IP)
SalvaguardasBloqueos de política de escritura (Salvaguardas), con el método y la ruta."bloqueado: …" (rojo)
Cadena de suministroCada obtención de paquete, incluidas las descargas .deb de apt (Protección de la cadena de suministro)."comprobado", "descargado" (verde); "comprobado: versiones más nuevas que el periodo de espera ocultas", "scripts de instalación despojados" (azul); "bloqueado: …" (rojo)
Inyección de promptsDetecciones, con el detector, el origen y un fragmento corto (Detección de inyección de prompts)."registrar", "permitido" (verde); "bloqueado" (rojo)
Protección de datos personalesPeticiones en las que se sustituyeron datos personales, con recuentos por tipo y el anfitrión — nunca los valores (Protección de datos personales) — y peticiones cuyo análisis agotó el presupuesto de modelo."sustituido por suplentes" (azul); "parcial: presupuesto de modelo alcanzado; solo reglas de patrón" (azul)
Delegación entre agentesCada mensaje que un agente envió a otro por delegación."retransmitido" (azul); "retenido: inyección de prompt" (rojo)
TLS ascendenteCertificados ascendentes en los que el anfitrión se negó a confiar, y usos de la derivación insegura por petición."bloqueado: …" (rojo); "permitido: validación de certificado omitida (X-bromure-insecure); ninguna credencial inyectada" (verde)

Acciones rápidas del cortafuegos

Las filas del cortafuegos pueden cambiar en el acto las reglas de conexiones salientes de la máquina. Usa el botón de la última columna de la fila, o haz clic derecho en la fila. El cambio se guarda en la máquina y se aplica de inmediato si está en marcha, sin reiniciar.

  • Una conexión bloqueada: Permitir host:puerto añade una regla de permiso para exactamente ese host, protocolo y puerto, colocada la primera para que gane a la regla que la bloqueó. Cuando el host es un subdominio, también se ofrece Permitir todo dominio:puerto (por ejemplo github.com para api.github.com), que cubre todos los subdominios, salvo en los dominios de CDN y de alojamiento compartido (cloudflare.net, cloudfront.net, amazonaws.com, github.io, herokuapp.com…), donde «todo» significaría todos los clientes de ese proveedor. Los otros nombres por los que se resolvió el host (sus alias de CDN) se ofrecen después como hosts exactos. Cada uno ofrece Siempre, Durante 15 minutos, Durante 1 hora o Hasta que se detenga el espacio de trabajo; una regla temporizada se desactiva sola cuando se acaba el tiempo. Si ya existe la misma regla, el menú dice primero cómo está (desactivada, o activa hasta cuándo), para que volver a permitirla nunca la acorte en silencio. Si la bloqueó una regla de denegación, esa regla también se puede desactivar o eliminar.
  • Una conexión permitida por una regla: Desactivar la regla conserva la regla pero hace que deje de coincidir (vuelve a marcarla en el editor para recuperarla); Eliminar la regla la borra. Las conexiones que el cambio ahora deniega se cortan.
  • Una conexión permitida porque ninguna regla coincidió: Bloquear host (o Bloquear todo dominio) añade una regla de denegación hacia él para todos los protocolos y puertos.

Las reglas creadas aquí usan el nombre que pidió el programa, el mismo que comprueba el proxy, así que se mantienen se conecte como se conecte el programa.

Cuando las reglas han cambiado desde que se registró la fila —un host bloqueado que se ha permitido desde entonces, o al revés—, el botón dice Permitido ahora o Bloqueado ahora y su menú nombra la regla (o la política predeterminada) que decide ahora, en lugar de ofrecer otra vez el mismo cambio.

Las acciones rápidas solo aparecen en las filas a las que puede afectar un cambio de reglas: no en los descartes de IPv6, QUIC o fragmentos, ni en los bloqueos de métodos HTTP de reglas web. En las filas de un Mac remoto el botón aparece atenuado: cambia las reglas de esa máquina en sus ajustes, en el Mac que la ejecuta.

Nota: si los ajustes de la máquina están abiertos, la tabla de reglas recoge el cambio. Las ediciones sin guardar se conservan: el cambio se fusiona con ellas regla a regla, y una nota encima de la tabla lo indica. Si tus ediciones no se pueden fusionar (una regla que todavía no se puede analizar), la nota ofrece Recargar (tomar las reglas guardadas) o Conservar mis ediciones.

La Cronología registra solo decisiones de seguridad. Las lecturas de archivos, los comandos, las llamadas de herramientas y el uso de modelos no están en ella; pertenecen al trazado.

Exportar eventos

Exportar… (en la barra de herramientas de ambas pestañas) guarda los eventos como un archivo CSV, llamado bromure-security-<fecha>.csv por omisión. Desde la pestaña Cronología guarda exactamente lo que muestra la tabla, con los filtros aplicados; desde la pestaña Resumen guarda todos los eventos de la ventana. Las filas van de más antigua a más nueva, con las columnas time (ISO 8601), machine ("This Mac" o el nombre del Mac remoto), workspace, engine, condition, decision y outcome (allowed, blocked o info).

Almacenamiento y retención

  • Cada evento se añade a un archivo diario en ~/Library/Application Support/BromureAC/security-timeline/, una línea JSON por evento, llamado <yyyy-MM-dd>.jsonl (fechas UTC).
  • Los archivos de más de 90 días se eliminan.
  • Al arrancar, la ventana recarga los 5000 eventos más recientes, y mantiene 5000 como máximo en memoria; los más antiguos se quedan en los archivos.
  • Los eventos solo contienen vistas previas: vistas previas de token como sk-a…f9q3, vistas previas de fragmentos, recuentos de datos personales. No se escribe ningún valor secreto o personal.

Macs remotos

Los motores corren en el Mac que aloja las máquinas. Cuando un cliente remoto refleja otro Mac, recibe los eventos más recientes de ese Mac y los muestra en su propia ventana Cronología de seguridad, junto a los locales. Los eventos de cada Mac reflejado se mantienen aparte de los de este Mac, para que el menú de máquinas pueda separarlos y la columna Espacio de trabajo nombre el Mac.

Relación con la telemetría empresarial

En un Mac inscrito en bromure.io, los mismos eventos de motor se envían también a la organización como eventos en la nube (credential.token_swap, egress.firewall, supply_chain.fetch, prompt_injection.detection, privacy.pii_swap y otros), salvo que la máquina esté en Modo privado. La Cronología de seguridad local es independiente de eso: registra todos los eventos, esté el Mac inscrito o no y esté el modo privado activo o no. Ver Trazado y auditoría y Empresa.