ACCESSSCOPE 0.3.7 · Última actualización 2026-10-17

Manual de uso de AccessScope

Esta guía explica cómo usar una herramienta de diagnóstico que encuentra intentos de ataque en los registros de acceso de un servidor, y muestra la línea de registro que los respalda. Primero se explica el diagnóstico desde la ventana, y el uso desde la línea de comandos está reunido en el capítulo 8.

1. Qué es AccessScope

AccessScope es una herramienta de diagnóstico que lee los registros que ya dejan los servidores web y SSH y busca intentos de ataque. Cada hallazgo se muestra con la línea de registro que lo respalda. Es útil para quien administra su propio servidor y quiere comprobar si en los registros quedó algún acceso sospechoso.

Los registros solo se leen. No se modifican ni se borran, no se bloquea ninguna comunicación y no se elevan privilegios. El diagnóstico en sí no usa ningún LLM ni la red.

EntornoQué se puede usar
Mac (macOS 12 o posterior)App con ventanas y comandos
Versión cliente de LinuxApp con ventanas y comandos
Paquete Server Edition de LinuxSolo comandos

En Mac viene dentro del DMG de RoamSwitch, y en Linux dentro de los paquetes deb, rpm y tarball de RoamSwitch. Es una herramienta independiente de RoamSwitch y su licencia es Apache License 2.0. Para abrirla, en Mac se elige el icono de la app, y en Linux se elige «AccessScope» en la lista de aplicaciones.

Archivos que se guardan

AccessScope guarda automáticamente los ajustes, la lista de registros encontrados, las reglas de exclusión y el registro de la comparación con la vez anterior. Todo se coloca bajo ~/.config/accessscope/ con permisos de lectura y escritura solo para el propio usuario.

Actualizaciones

En Mac, solo se conecta a lafine.net cuando se pulsa «Buscar actualizaciones» en «Actualizaciones» de los ajustes. No se envía información de este equipo ni de los registros, y el archivo descargado se instala después de comprobar su firma. En Linux no hay actualización dentro de la app, así que se actualiza con la actualización de los paquetes.

2. Su primer diagnóstico

  1. Elija los registros. Lo más sencillo es «Buscar registros en este equipo». Busca automáticamente los registros de nginx, Apache, SSH y otros, y los coloca en «Registros encontrados en este equipo». Si ya sabe dónde están, use «Elegir archivos» o «Elegir una carpeta», o arrastre archivos o carpetas sobre la ventana.
  2. Elija el «Periodo». El valor inicial es «Últimos 7 días», y también se puede cambiar a «Últimas 24 horas», «Últimos 30 días» o «Todo». El periodo se cuenta desde ahora, así que para diagnosticar registros antiguos elija «Todo».
  3. Pulse «Diagnosticar». Aparece el avance con «Leyendo registros» y «Analizando», y al terminar se abre el resultado.
Solo lectura
Los archivos de registro no se modifican. Si un registro no se puede leer por falta de permisos, no se elevan privilegios para leerlo, sino que se indica que no se pudo leer.

3. Registros que se pueden leer y dónde buscarlos

El tipo de registro se reconoce automáticamente mirando su contenido. También se leen tal cual los registros rotados y comprimidos con gzip. Si se elige una carpeta, se leen de una vez los archivos que parecen registros.

TipoQué se puede leer
Servidor webApache, nginx, Caddy, Traefik, HAProxy, AWS ALB y CloudFront (se descargan los registros y se eligen con «Elegir archivos»)
SSH y autenticaciónsshd, sudo, su y PAM. En Linux se leen auth.log y secure, y también journald. En Mac se lee el registro unificado de macOS
Otrosfail2ban, correo (Postfix, Dovecot), bases de datos (MySQL, MariaDB, PostgreSQL) y registros de contenedores de Docker

«Buscar registros en este equipo» revisa las ubicaciones estándar y las ubicaciones de registros a las que apuntan los archivos de configuración del servidor web. En la lista solo aparece lo que se ha comprobado que se puede leer como registro.

Contenedores de Docker

Si se marca «Comprobar también los contenedores de Docker», también se pueden incluir los registros de Docker de este equipo. Antes del diagnóstico, la pantalla de confirmación muestra los comandos que se ejecutarán y los contenedores afectados, y solo se leen cuando se pulsa «Aceptar y diagnosticar». Es solo lectura y no se elevan privilegios.

Buscar registros con un LLM (opcional)

Si no se encuentra nada, con «Buscar también con un LLM» se puede pedir a un LLM que busque las ubicaciones. Solo se le pasan datos del entorno, como el nombre de los servidores en marcha y los nombres de archivo en /var/log y similares, y nunca el contenido de los archivos. Las sugerencias aparecen con la casilla sin marcar, después de comprobar que se pueden leer. Para los ajustes, consulte el capítulo 7.

4. Cómo leer los resultados

Cuando termina el diagnóstico, el resultado se puede revisar en cuatro pestañas.

PestañaQué se ve
PanelRiesgo global (Ninguno, Bajo, Medio, Alto), número de detecciones por gravedad y por categoría, evolución en el tiempo, y las IP y rutas con más solicitudes
DeteccionesLista de las detecciones encontradas. Se puede filtrar por gravedad y buscar por título
Registros de entradaQué registros se leyeron y cuántas líneas. Los registros que no se pudieron leer y el motivo
Analizar con LLMHace que un LLM redacte el texto del informe (capítulo 7)

Cómo leer una detección

Las detecciones se muestran con un nombre, como «Intentos de inyección SQL», y llevan una gravedad (Alta, Media, Baja) y una confianza. La confianza indica hasta dónde se puede afirmar algo solo con el registro.

Al abrir «Líneas de evidencia» se ven tal cual las líneas de registro en las que se basa esa detección. Normalmente están cerradas, así que primero lea el nombre y el motivo, y abra solo las que le llamen la atención.

Un 200 de HTTP no es señal de que el ataque haya tenido éxito
Un servidor expuesto a Internet es escaneado todo el día, y los sitios estáticos devuelven 200 incluso a solicitudes que parecen ataques. AccessScope compara el tamaño de las respuestas 2xx a solicitudes que parecen ataques con el de las respuestas normales de la misma ruta. Si son iguales, muestra «el payload probablemente se ignoró» y no sube la gravedad. Solo trata como «se sospecha un efecto» las respuestas distintas de lo normal, y aun así deja la confianza en «Hipótesis».

El riesgo global (de 0 a 100) es una referencia ponderada por gravedad y confianza. No crece solo porque haya muchas detecciones, y si no hay ninguna detección de gravedad alta, no llega a «Alto». No es una probabilidad, así que tómelo solo como orientación.

5. Reducir lo que se ve

Reglas de exclusión

Las detecciones que ya se sabe que aparecerán, como la IP de la propia oficina, la monitorización de disponibilidad o los análisis de vulnerabilidades propios, se pueden quitar del informe. Las detecciones quitadas no se descartan, sino que se conserva su número junto con el motivo.

  1. En la pestaña «Detecciones», pulse «Excluir esta IP…» junto a la IP de la detección.
  2. Escriba el motivo y pulse «Añadir a las reglas de exclusión». El motivo queda en el informe.
  3. Compruebe el contenido en el cuadro de diálogo de confirmación y apruébelo. Surte efecto desde el siguiente diagnóstico.

En «Reglas de exclusión» de los ajustes aparece la lista de las reglas activas. Es solo para ver y aquí no se puede editar. Las reglas con condiciones detalladas se escriben en un archivo (suppress.toml) que se coloca en la carpeta de ajustes. La forma de escribirlo está en el capítulo 8. Las detecciones de gravedad «Alta» no se quitan aunque se excluyan y permanecen en el informe.

Comparación con la vez anterior

Si se diagnostica varias veces seguidas la misma combinación de registros, se compara con el registro anterior y las detecciones que aparecen por primera vez llevan la marca «Nueva». Si se marca «Solo nuevas» en la pestaña «Detecciones», se filtran solo las nuevas. La primera vez, todas se tratan como nuevas. En el registro solo entran la huella (hash) de la detección, el tipo, la gravedad, el número y la hora, y nunca el texto del registro.

6. Exportar los resultados

Con los botones de la parte superior de la pantalla de resultados se pueden sacar los resultados.

BotónQué hace
Guardar informe (Markdown)Guarda el informe del diagnóstico en un archivo Markdown
Copiar resumenCopia el resumen al portapapeles
Exportar…Exporta una lista de bloqueo (lista de IP) o la lista de detecciones

En «Exportar…» se puede elegir como formato de la lista de bloqueo fail2ban-ip, nftables, ipset, nginx-deny, apache-require o csv. La lista de detecciones se puede exportar en CSV, SARIF o JSON.

En la lista de bloqueo se puede elegir «Qué incluir» entre «predeterminado», «más estricto» y «más amplio», y el número de IP que se exportarán se muestra antes de guardar. Las IP de los rastreadores oficiales y las IP afectadas por las reglas de exclusión nunca se incluyen.

Solo se exporta, no se aplica nada
AccessScope solo exporta archivos. No cambia la configuración del cortafuegos ni bloquea comunicaciones. La lista de IP se basa únicamente en los registros. Detrás de un NAT o de una CDN, muchas personas comparten una misma IP, y las IP también se pueden falsificar. Compruebe siempre el contenido antes de aplicarla.

7. Análisis con un LLM (opcional)

Es una función que hace que un LLM resuma en texto el resultado del diagnóstico. Está desactivada de forma predeterminada. Para usarla, en «Integración con LLM» de los ajustes marque «Activar el análisis con un LLM», elija el «LLM que se usará» y pulse «Guardar». Se puede elegir entre claude, opencode, codex y agy, los que tengan su comando instalado en el equipo.

Qué se envía

Al pulsar «Mostrar exactamente lo que se enviará» en la pestaña «Analizar con LLM» se ve el texto completo que se enviará. Con esta acción no se envía nada. Solo se envía por primera vez cuando se pulsa «Analizar con LLM».

Queda fuera de «Zero Telemetry»
Si se activa y se ejecuta el análisis, el resumen y las líneas de registro como evidencia se envían a un servicio externo a través del comando del LLM elegido. El destino lo determina la propia configuración de ese comando. La explicación de «Zero Telemetry» de RoamSwitch no incluye esta función. Si se deja desactivada, el contenido de los registros leídos en el diagnóstico no sale del equipo.

8. Uso desde la línea de comandos

En entornos solo de comandos, como Server Edition, o cuando se quiere ejecutar periódicamente con cron, se usa el comando accessscope. Es el mismo motor que la ventana, así que las detecciones que encuentra son las mismas.

accessscope discover
accessscope scan --auto --since 7d --report report.md
accessscope scan /var/log/nginx/access.log /var/log/auth.log
OpciónQué hace
--autoBusca registros en las ubicaciones estándar y otras, y los diagnostica. Con --since 7d se puede acotar el periodo
--report FILEEscribe un informe en Markdown
--format json|csv|sarifCambia el formato de la salida estándar
--export-blocklist FORMAT[:FILE]Exporta una lista de bloqueo
--fail-on high|medium|lowSi hay detecciones de esa gravedad o superior, termina con el código de salida 3
--since-last、--new-onlyCompara con la vez anterior y muestra solo las detecciones nuevas
--llm NAME、--show-promptHace que un LLM analice. --show-prompt muestra el texto completo que se enviaría y termina (no se envía nada)

Ejecutarlo cada día con cron

accessscope scan --auto --since 24h --since-last --new-only --fail-on medium

Muestra solo las detecciones que no estaban en la ejecución anterior, y termina con el código de salida 3 únicamente cuando las detecciones nuevas son de gravedad media o superior. El diagnóstico sin --llm también funciona como root.

Cómo se escribe suppress.toml

Las reglas de exclusión se escriben en ~/.config/accessscope/suppress.toml. Si el archivo existe, se lee automáticamente.

[[rule]]
reason  = "office"
ip      = ["203.0.113.0/28"]
expires = 2027-03-31

[[rule]]
reason      = "uptime monitor"
ua_prefix   = ["Mozilla/5.0 (compatible; UptimeRobot"]
path_prefix = ["/healthz"]

9. Lo que no puede hacer

Sobre las cifras de precisión
En mediciones con datos de prueba propios, la tasa de detección de ataques fue de aproximadamente un 99 %, y las detecciones de gravedad media o superior en comunicaciones normales fueron de aproximadamente un 2 %. Los datos de prueba no son una muestra del tráfico de servidores reales, así que estas cifras no garantizan la precisión en un servidor real.

10. Si algo no funciona

Aparece en «Registros que ahora no se pueden leer»

Es lo que se muestra cuando faltan permisos. AccessScope no eleva privilegios para leer. Resuélvalo con una de las siguientes opciones.

Aparece «No se encontraron registros que se puedan diagnosticar»

El motivo se muestra en una frase. Por ejemplo, aparece «No hay registros de servidor web (Apache, nginx, etc.)». En Mac, cuando no hay registros de SSH, aparece «Es posible que el inicio de sesión remoto (SSH) esté desactivado». Con «Elegir archivos», «Buscar con un LLM» e «Indicar otra ubicación», que aparecen en pantalla, se puede probar el siguiente paso. Para saber dónde se buscó, abra «Resultado detallado de la búsqueda», que está cerrado.

Aparece «No se pudieron leer los registros de Docker»

Puede ser por una de estas causas. Docker no se está ejecutando, no se encuentra Docker, no hay permisos o Docker devolvió un error. Si faltan permisos, inicie AccessScope con un usuario que pueda usar Docker. AccessScope no vuelve a leer elevando privilegios, ni pide ni recomienda unirse al grupo docker, porque los permisos del grupo docker equivalen a los de root en el host.

Aparece «No se pudo leer como registro»

Es lo que se muestra cuando no se pudo analizar ni una sola línea del archivo elegido. Ese archivo no se incluye en el diagnóstico y no se envía a ningún sitio. Compruebe si es un tipo de registro compatible y vuelva a elegirlo.

No se puede pulsar «Analizar con LLM»

Junto al botón aparece el motivo. Si aparece «La integración con LLM está desactivada», actívela en los ajustes. Si aparece «No hay ningún LLM seleccionado», elíjalo en los ajustes. Tampoco se puede usar si se inició como root o si el comando del LLM que se va a usar no está instalado en el equipo.

El origen de los accesos es siempre la IP del proxy

En registros que están detrás de un proxy inverso o de una CDN, el origen del acceso puede ser la IP del proxy. Con el valor inicial «Automático», la IP del cliente se decide a partir de X-Forwarded-For solo para las líneas cuyo origen registrado es una dirección interna, como un proxy inverso o una pasarela de Docker. Las líneas que llegaron directamente desde fuera conservan el origen registrado. Como la cabecera se puede falsificar, una IP decidida así nunca se trata como un rastreador verificado. Para desactivarlo, elija «No usar» en «Análisis» de los ajustes. También se puede elegir usar la primera dirección desde la derecha que no sea un proxy de confianza, o la dirección situada más a la izquierda; como el cliente puede reescribir este valor, úselas solo detrás de un intermediario de confianza que usted administre. Surte efecto desde el siguiente diagnóstico.

← Página del producto AccessScope Ir al manual de RoamSwitch para Mac →