Bots de SWPanel

SWPanelBot-Security

Mira la web desde fuera, como la vería un atacante: el certificado y el cifrado, las cabeceras de seguridad y si hay ficheros que nunca deberían ser públicos. También confirma que una corrección de seguridad ha quedado aplicada.

User-Agent Mozilla/5.0 (compatible; SWPanelBot-Security/1.1; +https://www.swpanel.com/bots/security)

Función: Seguridad 360 Operador: DeepThink Software SLU Contacto: [email protected] Versión: 1.1 Revisado el: 17 de octubre de 2026

Ficha técnica

Todo lo que hace SWPanelBot-Security

Sacado del código del módulo. Si el bot cambia lo que hace, cambia esta ficha y su versión.

Identidad

Nombre
SWPanelBot-Security. También es su nombre para robots.txt.
Familia
SWPanelBot: el nombre común de todos los bots de SWPanel.
Versión
1.1, la que va en el User-Agent. Los cambios de cada versión están más abajo.
Tipo
Directo: lo ejecuta y lo controla SWPanel, siempre por encargo del propietario del servicio.
Categoría
Pruebas de seguridad
Operador
DeepThink Software SLU, titular de SWPanel. Información legal.
Contacto
[email protected]
Nombres anteriores
SWPanel-SOC/1.0 sin nombre (cliente HTTP por defecto)

Cuándo y cuánto

Cuándo entra
En los análisis del SOC de Seguridad 360 y del análisis de código, y al aplicar o deshacer una corrección.
Frecuencia
Una vez por análisis, programado o a mano, y una por cada corrección que se aplica o se deshace.
Por análisis
Una conexión TLS al puerto 443, un GET a la portada y un GET a cada una de las 8 rutas sensibles: una decena de peticiones.
En paralelo
Nunca. Una petición detrás de otra.

Cómo pide

Rutas que prueba
/.git/config, /.git/HEAD, /.env, /wp-config.php.bak, /phpinfo.php, /server-status, /.svn/entries y /adminer.php.
Cómo decide
Busca en la respuesta una firma concreta de cada fichero, como «[core]» en .git/config. Un 200 sin esa firma no cuenta como expuesto.
Verificar una corrección
Pide la portada con ?swsoc= y el número de la corrección, sin caché, para comprobar que ha quedado aplicada.
Métodos
GET. Para el certificado, solo el saludo TLS, sin pedir ninguna página.
Redirecciones
Las sigue para leer las cabeceras de la portada. En las rutas sensibles no: solo cuenta lo que responde esa ruta.
Certificado
Lo lee para el informe: protocolo, cifrado, emisor y caducidad. No corta la visita si está mal.
Cookies y JavaScript
No.
Esperas
5 segundos para el saludo TLS, 4 y 6 para la portada, 3 y 5 para cada ruta, y hasta 20 para verificar una corrección.
Origen
En preparación Desde los servidores de SWPanel. Estamos reservando unas IP de salida solo para los bots; cuando estén, las publicaremos aquí en un fichero JSON.
DNS inverso
En preparación Cada IP tendrá un nombre bajo bots.swpanel.com que vuelva a la misma IP.

Normas que aplica

robots.txt
Exento, con motivo No lo consulta. Son comprobaciones puntuales que encarga el propietario, y las rutas son justo las que no deberían poder leerse.
A qué webs va
Cumple Solo visita webs de servicios activos de SWPanel y deja de pasar en cuanto el servicio se da de baja: lo comprueba antes de cada petición.
Si la web pide frenar
Cumple Con 429 o 503 espera lo que diga Retry-After si son 60 segundos o menos (10 si no lo dice). Si pide más, deja la web hasta el próximo análisis. Tras 3 errores 5xx seguidos, también la deja.
Caché HTTP
No aplica Necesita la respuesta de ahora. La verificación de una corrección pide sin caché a propósito.
Firma
Cumple Firma cada petición con Web Bot Auth (RFC 9421, Ed25519): cabeceras Signature, Signature-Input y Signature-Agent. La clave pública está en https://www.swpanel.com/.well-known/http-message-signatures-directory.
Contacto en la petición
Cumple Lleva From: [email protected], como pide RFC 9110 a los clientes automáticos.

Qué hace con los datos

Qué lee
Las cabeceras de la portada, los datos del certificado y, de cada ruta, el código de respuesta y si aparece la firma.
Qué guarda
Solo el resultado: qué ruta respondió y con qué firma. Si encuentra un fichero expuesto, no guarda su contenido.
Cuánto tiempo
Con el historial de análisis del servicio, en el SWPanel del propietario.
Para qué
Para avisar al propietario y proponerle la corrección.
Privacidad
Política general de privacidad de SWPanel.

Para el informe también consulta fuentes públicas que no tocan tu web: los registros de certificados de crt.sh y el DNS de Google.

Cómo funciona

Una pasada, paso a paso

  1. Mira el certificado

    Abre una conexión TLS al puerto 443 y lee el protocolo, el cifrado, el emisor y la caducidad.

  2. Lee las cabeceras

    Pide la portada y revisa HSTS, CSP, X-Frame-Options y el resto de cabeceras de seguridad.

  3. Prueba las rutas

    Pide, sin seguir redirecciones, cada una de las 8 rutas que nunca deberían ser públicas.

  4. Busca la firma

    En cada respuesta busca la firma del fichero. Si no está, no hay aviso, aunque la ruta conteste 200.

  5. Avisa

    Si encuentra algo, lo deja en Seguridad 360 con la corrección que propone.

  6. Comprueba la corrección

    Al aplicarla o deshacerla, pide la portada sin caché para confirmar que ha quedado así.

En tus logs

Así se ve SWPanelBot-Security

Un ejemplo en formato combinado de Apache y Nginx. La IP y el dominio son de documentación: los tuyos serán otros.

203.0.113.30 - - [17/Oct/2026:11:20:01 +0200] "GET / HTTP/1.1" 200 48211 "-" "Mozilla/5.0 (compatible; SWPanelBot-Security/1.1; +https://www.swpanel.com/bots/security)" 203.0.113.30 - - [17/Oct/2026:11:20:02 +0200] "GET /.git/config HTTP/1.1" 404 196 "-" "Mozilla/5.0 (compatible; SWPanelBot-Security/1.1; +https://www.swpanel.com/bots/security)" 203.0.113.30 - - [17/Oct/2026:11:20:02 +0200] "GET /.env HTTP/1.1" 404 196 "-" "Mozilla/5.0 (compatible; SWPanelBot-Security/1.1; +https://www.swpanel.com/bots/security)" 203.0.113.30 - - [17/Oct/2026:11:20:03 +0200] "GET /phpinfo.php HTTP/1.1" 404 196 "-" "Mozilla/5.0 (compatible; SWPanelBot-Security/1.1; +https://www.swpanel.com/bots/security)" 203.0.113.30 - - [17/Oct/2026:11:42:17 +0200] "GET /?swsoc=48213 HTTP/1.1" 200 48211 "-" "Mozilla/5.0 (compatible; SWPanelBot-Security/1.1; +https://www.swpanel.com/bots/security)"

Parece un escaneo, pero son solo estas rutas, con este nombre y una detrás de otra. La última línea es la verificación de una corrección.

Comprobar

¿Es de verdad SWPanelBot-Security?

Un User-Agent se puede copiar. Por eso hay que mirarlo junto con lo demás. Los ejemplos usan una IP de documentación.

DNS inverso En preparación

$ host 203.0.113.10 10.113.0.203.in-addr.arpa domain name pointer crawl-203-0-113-10.bots.swpanel.com. $ host crawl-203-0-113-10.bots.swpanel.com crawl-203-0-113-10.bots.swpanel.com has address 203.0.113.10

La IP tiene que resolver a un nombre de bots.swpanel.com, y ese nombre a la misma IP. Si solo se cumple la primera parte, no es nuestro.

Lista de IP En preparación

$ curl -s https://www.swpanel.com/bots/ips.asp {"formatVersion": "1.0", "creationTime": "…", "prefixes": [{"ipv4Prefix": "203.0.113.0/28", "service": "SWPanelBot"}]}

Un fichero JSON con el formato JAFAR que propone el IETF, enlazado desde esta página.

Firma de la petición Disponible

Signature-Agent: "https://www.swpanel.com" Signature-Input: sig1=("@authority" "signature-agent"); created=1792224000;expires=1792224300; keyid="…";alg="ed25519";tag="web-bot-auth" Signature: sig1=:…:

Cabeceras de Web Bot Auth. La clave pública está en /.well-known/http-message-signatures-directory de www.swpanel.com: con ella, cualquier cortafuegos que entienda Web Bot Auth comprueba que la petición es nuestra.

Lo que pide Disponible

Compara lo que ves con la ficha: las rutas, la frecuencia y el volumen. Un bot que se llama SWPanelBot-Security y hace otra cosa no es nuestro.

Si dudas de una visita, escríbenos a [email protected] con el dominio, la hora con su zona horaria, la IP y la línea del log, y lo comprobamos.

Pararlo

Lo pide el propietario. Él lo apaga.

Nuestros bots solo visitan webs de servicios activos de SWPanel, solo para las funciones que su propietario tiene activas, y dejan de pasar en cuanto el servicio se da de baja.

Si eres el propietario

Desactiva los análisis de Seguridad 360 del servicio en tu SWPanel.

Si no lo eres

Si el dominio ya no está en SWPanel no debería llegarte ninguna visita programada. Si te llega, escríbenos a [email protected] y lo paramos.

En el cortafuegos

Para dejarlo pasar, usa el nombre junto con la IP o la firma, no solo el nombre. Cuidado con las reglas genéricas: un patrón como «bot» también alcanza a SWPanelBot.

Si lo bloqueas

Seguridad 360 no podrá confirmar nada ni verificar sus correcciones.

robots.txt no lo para: lo explicamos en Normas. Lo para su propietario, desde SWPanel.

Normas

Lo que piden los estándares, y cómo está SWPanelBot-Security

Nuestra situación en cada punto, sin adornos.

Lo que piden los estándares, y cómo está SWPanelBot-Security
Un nombre propio en el User-Agent, con la dirección de su página RFC 9110, 10.1.5, y borrador IETF «Crawler best practices», 2.2 Cumple
Un nombre válido para robots.txt: letras, guiones y guion bajo RFC 9309, 2.2.1 Cumple
Visitar solo webs de servicios activos de SWPanel, y dejar de hacerlo en cuanto el servicio se da de baja Compromiso propio de SWPanel Cumple
Leer y respetar robots.txt RFC 9309 y «Crawler best practices», 2.1. El borrador permite la exención documentada de los rastreadores que trabajan por encargo. Lo pide el propietario y es una comprobación puntual. Exento, con motivo
No entorpecer la web: una petición cada vez, límites de páginas y de tiempo, y esperas cortas «Crawler best practices», 2.3 Cumple
Frenar si la web contesta 429 o 503 «Crawler best practices», 2.3, y RFC 9110, 15.6 Cumple
Respetar la caché HTTP «Crawler best practices», 2.4, y RFC 9111. Necesita la respuesta de ahora. No aplica
Un contacto en la petición: cabecera From RFC 9110, 10.1.2 Cumple
Publicar las IP de salida en JSON, enlazadas desde esta página «Crawler best practices», 2.5, con el formato JAFAR En preparación
DNS inverso que se pueda confirmar Práctica de Google, Bing y Cloudflare para verificar bots En preparación
Firmar las peticiones (Web Bot Auth) Borrador IETF «HTTP Message Signatures for Bots», septiembre de 2026 Cumple
Página pública con qué hace, qué guarda, contacto, cómo pararlo y las exenciones «Crawler best practices», 2.6 Cumple

En parte: cumple con una salvedad, que se explica en la fila. En preparación: depende de la red, como las IP propias y su DNS inverso. Pendiente: aún sin fecha.

Versiones

Qué ha cambiado

La versión va en el User-Agent. Cuando el bot cambia lo que hace, cambian la versión y esta ficha.

Qué ha cambiado
1.0 12-10-2026 Nombre nuevo, SWPanelBot-Security, con el enlace a la página de los bots. Sustituye a SWPanel-SOC y a las comprobaciones que salían sin nombre.
1.1 17-10-2026 Enlaza a esta ficha. Frena con 429 y 503, firma las peticiones, lleva la cabecera From y solo visita servicios activos.

Preguntas frecuentes

Dudas sobre SWPanelBot-Security

No. Es una revisión que pide el propietario del servicio: unas diez peticiones a rutas conocidas, una detrás de otra, con este nombre. Si tú no eres el propietario y no la esperabas, escríbenos.

Para comprobar que no se pueden leer desde Internet. Si los encuentra, avisa al propietario; no guarda su contenido.

Porque muchas webs devuelven la portada o una página de error con código 200. Solo cuenta como expuesto si en la respuesta aparece la firma del fichero.

No lo consulta: las rutas que prueba son justo las que no deberían poder leerse, y es una revisión que pide el propietario. Para pararlo, el propietario desactiva los análisis.