WordSec – Malware Scanner & Removal, Web Application Firewall (WAF), and 2FA
WordSec es un plugin de seguridad completo para WordPress. Ocho módulos cubren el cortafuegos, el escáner de malware, la seguridad de acceso, el tráfico en vivo, el bloqueo por IP y país, la inteligencia de cadena de suministro, el registro de auditoría y las alertas, para que puedas bloquear ataques y endurecer tu sitio desde un único escritorio en lugar de instalar ocho plugins.
Si tu sitio es hackeado, no solo pierdes el sitio. Pierdes la confianza de los clientes, tu posicionamiento en los buscadores y días de trabajo restaurando copias de seguridad. WordSec está diseñado para evitarlo antes de que ocurra y para ayudarte a recuperarte si ya ha ocurrido: el escáner encuentra el malware, la cuarentena lo aparta, y los archivos modificados del núcleo, los plugins y los temas se reparan a partir de sus copias originales.
Gratuito y sin necesidad de introducir clave de licencia. Las reglas del cortafuegos WAF, el escaneo de malware e integridad de archivos, la protección contra fuerza bruta, la autenticación de dos factores, el bloqueo por IP y país, el registro de auditoría y el endurecimiento con un clic se ejecutan localmente en tu propio servidor.
Cortafuegos de aplicaciones web (WAF)
- Constructor de reglas personalizadas con coincidencias regex y comodines
- Reglas integradas para inyección SQL, XSS, path traversal, inyección de PHP y comandos
- Modos de aprendizaje y activo, bloqueo de bots, cabeceras de seguridad, limitación de velocidad
- Más de 25 conmutadores de endurecimiento para el acceso a wp-config, enumeración de autores y API REST
- Protección extendida opcional: inspección de solicitudes antes de WordPress (opcional, totalmente reversible)
Escáner de malware y eliminación
- Reglas de detección de malware en archivos, la base de datos y tareas programadas
- Verificación de integridad de archivos del núcleo, plugins y temas a través de la API de WordPress.org
- Escaneos programados, cuarentena y restauración con un clic
- Eliminación de malware en un sitio hackeado: poner en cuarentena un hallazgo o reparar un archivo modificado del núcleo, plugin o tema a partir de su copia original
Seguridad de acceso, autenticación de dos factores (2FA) y protección contra fuerza bruta
- Autenticación de dos factores basada en perfiles (RFC 6238 TOTP)
- reCAPTCHA, hCaptcha y Cloudflare Turnstile, además de un CAPTCHA matemático integrado
- Protección contra fuerza bruta con bloqueo progresivo, honeypot y cambio de nombre de la URL de acceso
- Comprobación de contraseñas filtradas, gestión de sesiones, página de acceso personalizada
Tráfico en vivo
- Registro de solicitudes en tiempo real con detección de bots y exportación a CSV
- Filtrado de exclusión por perfil, IP, país o URI
Bloqueo por IP y país
- Listas de permitidos o de bloqueo de países y continentes
- Bloqueo de IP individuales y rangos CIDR, temporal o permanente, con soporte de lista de permitidos
Inteligencia de amenazas y cadena de suministro
- Puntuación de reputación y detección de plugins abandonados
- Alertas de vulnerabilidades conocidas para el núcleo, plugins, temas y PHP
- Verificación de integridad de actualizaciones con copias de seguridad y un inventario SBOM
Registro de auditoría
- Seguimiento completo de la actividad en 11 tipos de objetos y 14 acciones
Alarmas
- 36 tipos de eventos de alerta enviados por correo electrónico, Telegram o Slack
Todas las funciones se ejecutan localmente sin necesidad de clave de licencia. Opcionalmente, el servicio de WordSec en wordsec.net proporciona datos de inteligencia de amenazas que no se pueden generar localmente: conjuntos de reglas WAF gestionados, el feed de firmas de malware, listas de reputación de IP, la base de datos GeoIP y registros de vulnerabilidades. La conexión es opcional y cada servicio externo está documentado en «Servicios externos» más abajo.
Servicios externos
WordSec está diseñado para ejecutarse localmente y, sin clave de licencia, no realiza ninguna petición saliente al servicio de WordSec. El filtrado principal de peticiones y el análisis de archivos se ejecutan en tu servidor. Los servicios enumerados a continuación se contactan únicamente para las funciones específicas descritas, y la mayoría de ellos solo cuando activas explícitamente esa función (o, en el caso de la API de WordSec, solo después de que actives una clave de licencia). Esta sección documenta todos los servicios de terceros a los que el plugin puede conectarse y los datos que recibe cada uno.
API de WordSec (api.wordsec.net)
WordSec funciona de forma gratuita sin licencia, en cuyo caso no contacta en absoluto con este servicio. Hay una licencia gratuita disponible para todo el mundo; una vez que activas una clave, el plugin se comunica con el servicio de WordSec con dos propósitos distintos:
- Llamadas de servicio requeridas (solo mientras haya una clave de licencia activa): activación y validación de la licencia, y actualizaciones de datos de amenazas (reglas del firewall, firmas de malware, listas de reputación de IP, datos GeoIP, la lista de dominios de correo desechable y datos de vulnerabilidades conocidas). Estas habilitan las funciones respaldadas en la nube y no pueden realizarse localmente; sin clave, no se realiza ninguna de estas llamadas. El código local de aplicación de estas funciones (el motor del WAF, el escáner de malware, los filtros de bloqueo de IP y el filtro de restricción de registro) está siempre presente y activo; sin un feed actualizado, simplemente no tiene datos de inteligencia de amenazas con los que contrastar las peticiones.
* Cuándo: en la activación/validación y en las comprobaciones programadas de actualización de datos de amenazas. * Datos enviados: la URL de tu sitio y la clave de licencia (utilizadas para autenticarte y vincular la licencia a este sitio) y, para las comprobaciones de actualización, las versiones actuales de los feeds de datos de amenazas que tengas instalados.
- Telemetría opcional de uso/entorno (OPT-IN, DESACTIVADA de forma predeterminada): una instantánea anónima una vez al día utilizada para mejorar WordSec. Solo se envía después de que actives explícitamente «Compartir datos de uso y del entorno» (al activar la licencia o en Ajustes → Avanzado → Datos de uso) y se puede volver a desactivar en cualquier momento.
* Cuándo: una vez al día, solo mientras la opción esté activada. * Datos enviados: una instantánea no personal del entorno del sitio (versiones del servidor, WordPress, PHP y base de datos, la lista de plugins y temas activos) y estadísticas agregadas de uso de funciones y de seguridad de WordSec. Nunca se envían contraseñas, credenciales de la base de datos, claves secretas ni direcciones de correo electrónico.
- Términos del servicio: https://wordsec.net/terms
- Política de privacidad: https://wordsec.net/privacy
Have I Been Pwned (api.pwnedpasswords.com)
Utilizado por la comprobación opcional de contraseñas filtradas para detectar si una contraseña aparece en filtraciones de datos conocidas, mediante k-anonymity. * Cuándo: cuando un usuario establece o envía una contraseña y la comprobación de contraseñas filtradas está activada. * Datos enviados: solo los primeros 5 caracteres del hash SHA-1 de la contraseña. La contraseña en sí y su hash completo nunca salen de tu sitio. * Términos & privacidad: https://haveibeenpwned.com/Privacy
API de WordPress.org (api.wordpress.org, downloads.wordpress.org, wordpress.org, core.svn.wordpress.org, plugins.svn.wordpress.org, themes.svn.wordpress.org)
Se utiliza para verificar la integridad de los archivos del núcleo, plugins y temas de WordPress, para consultar información pública de plugins/temas (plugins_api/themes_api) para las puntuaciones de reputación de la cadena de suministro y las comprobaciones de integridad de actualizaciones, para descargar el paquete de idioma de la propia traducción de WordSec desde translate.wordpress.org cuando eliges un idioma de la interfaz que aún no está instalado (el mismo mecanismo que usa el propio WordPress cuando cambia el idioma del sitio) y, solo cuando haces clic en «Reparar» en un hallazgo del escáner, para descargar la copia original de un archivo modificado del núcleo/plugin/tema y poder restaurarlo. Las descargas de reparación obtienen archivos originales individuales de plugins.svn.wordpress.org / themes.svn.wordpress.org / core.svn.wordpress.org, recurriendo como alternativa a los paquetes completos de downloads.wordpress.org (zips de plugins/temas) y wordpress.org (zips de versiones del núcleo). * Cuándo: durante los análisis de malware/integridad y las comprobaciones de reputación de la cadena de suministro, en una acción de reparación explícita y cuando guardas un idioma de la interfaz cuya traducción aún no está instalada. * Datos enviados: la versión del núcleo de WordPress, el idioma del sitio y los slugs/versiones de los plugins/temas comprobados; para una descarga de idioma, el slug/versión del plugin y el idioma elegido. * Términos y privacidad: https://wordpress.org/about/privacy/
RDAP (rdap.org)
Utilizado por la herramienta de búsqueda WHOIS/RDAP de la página Herramientas para mostrar información de titularidad de una dirección IP o dominio que inspecciones. * Cuándo: solo cuando ejecutas la herramienta de búsqueda WHOIS/RDAP. * Datos enviados: la dirección IP o el dominio que hayas elegido consultar. * Términos & privacidad: https://about.rdap.org/
ipify (api.ipify.org)
Utilizado por el comprobador de listas negras y la herramienta de información del servidor de la página Herramientas para determinar la dirección IP pública propia de tu servidor. * Cuándo: solo cuando ejecutas la herramienta «Comprobación de listas negras» o «IP del servidor». * Datos enviados: una solicitud simple desde tu servidor; no se incluye ningún dato del sitio (el servicio simplemente devuelve la IP que hace la solicitud). * Términos y privacidad: https://www.ipify.org/
Proveedores de listas de bloqueo DNS (herramienta Comprobación de listas negras)
La «Comprobación de listas negras» de la página Herramientas consulta listas de bloqueo basadas en DNS (DNSBL) para indicarte si la dirección IPv4 pública de tu servidor está incluida. Cada proveedor recibe una consulta DNS estándar que contiene la dirección IP de tu servidor en forma invertida. Se consultan cinco proveedores: * Spamhaus ZEN (zen.spamhaus.org): https://www.spamhaus.org/privacy-notice/ * SpamCop (bl.spamcop.net), operado por Cisco: https://www.cisco.com/c/en/us/about/legal/privacy-full.html * Barracuda Reputation Block List (b.barracudacentral.org): https://www.barracuda.com/company/legal/privacy-policy * UCEPROTECT Level 1 (dnsbl-1.uceprotect.net): https://www.uceprotect.net/en/index.php * PSBL (psbl.surriel.com): https://psbl.org/ Detalles: * Cuándo: solo cuando haces clic en «Comprobación de listas negras» en la página Herramientas. * Datos enviados: la dirección IPv4 pública de tu servidor, incrustada en cada consulta a las listas de bloqueo DNS.
Telegram Bot API (api.telegram.org)
Canal opcional de envío de alarmas. Activo solo cuando configuras tu propio token de bot e ID de chat de Telegram. * Cuándo: cuando se dispara una alarma de seguridad que has activado y el envío por Telegram está configurado. * Datos enviados: el texto del mensaje de la alarma (tipo de evento, nombre del sitio, contexto relevante de IP/usuario) al bot/chat que hayas configurado. * Términos del servicio: https://telegram.org/tos * Política de privacidad: https://telegram.org/privacy
Webhooks entrantes de Slack (hooks.slack.com)
Canal opcional de envío de alarmas. Activo solo cuando configuras tu propia URL de webhook entrante de Slack. * Cuándo: cuando se dispara una alarma de seguridad que has activado y el envío por Slack está configurado. * Datos enviados: el texto del mensaje de la alarma (tipo de evento, nombre del sitio, contexto relevante de IP/usuario) al webhook que hayas configurado. * Términos del servicio: https://slack.com/terms-of-service * Política de privacidad: https://slack.com/privacy-policy
Google reCAPTCHA (www.google.com, www.gstatic.com)
CAPTCHA opcional de inicio de sesión/registro. Activo solo cuando seleccionas reCAPTCHA y proporcionas tus propias claves. * Cuándo: en los formularios de inicio de sesión y registro mientras esté activado. * Cargado de forma remota: reCAPTCHA requiere que su script de widget (www.google.com/recaptcha/api.js, servido con recursos desde www.gstatic.com) se cargue desde Google en el navegador del visitante; se encola únicamente en esos formularios y solo mientras reCAPTCHA sea el proveedor seleccionado. La verificación del token es una llamada del lado del servidor desde tu sitio a www.google.com. * Datos enviados: el token de respuesta del CAPTCHA, tu clave pública del sitio y la dirección IP del visitante. * Términos del servicio: https://policies.google.com/terms * Política de privacidad: https://policies.google.com/privacy
hCaptcha (hcaptcha.com, js.hcaptcha.com)
CAPTCHA opcional de inicio de sesión/registro. Activo solo cuando seleccionas hCaptcha y proporcionas tus propias claves. * Cuándo: en los formularios de inicio de sesión y registro mientras esté activado. * Cargado de forma remota: hCaptcha requiere que su script de widget (js.hcaptcha.com/1/api.js) se cargue desde hCaptcha en el navegador del visitante; se encola únicamente en esos formularios y solo mientras hCaptcha sea el proveedor seleccionado. La verificación del token es una llamada del lado del servidor desde tu sitio a hcaptcha.com. * Datos enviados: el token de respuesta del CAPTCHA, tu clave pública del sitio y la dirección IP del visitante. * Términos del servicio: https://www.hcaptcha.com/terms * Política de privacidad: https://www.hcaptcha.com/privacy
Cloudflare Turnstile (challenges.cloudflare.com)
CAPTCHA opcional de inicio de sesión/registro. Activo solo cuando seleccionas Turnstile y proporcionas tus propias claves. * Cuándo: en los formularios de inicio de sesión y registro mientras esté activado. * Cargado de forma remota: Turnstile requiere que su script de widget (challenges.cloudflare.com/turnstile/v0/api.js) se cargue desde Cloudflare en el navegador del visitante; se encola únicamente en esos formularios y solo mientras Turnstile sea el proveedor seleccionado. La verificación del token es una llamada del lado del servidor desde tu sitio a challenges.cloudflare.com. * Datos enviados: el token de respuesta del CAPTCHA, tu clave pública del sitio y la dirección IP del visitante. * Términos del servicio: https://www.cloudflare.com/website-terms/ * Política de privacidad: https://www.cloudflare.com/privacypolicy/
ipwhois.io (ipwho.is)
Servicio opcional de detalles de IP, desactivado por defecto. Todas las solicitudes se realizan a través de HTTPS con verificación de certificado, y no se realiza ninguna hasta que actives el «Servicio de búsqueda externa de IP» en los ajustes de WordSec (sección de gestión de IP del visitante). Se utiliza para una única cosa: la búsqueda de «detalles de IP» en el tráfico en vivo (país, región, ciudad, ISP, organización, ASN). El registro de tráfico nunca contacta con este servicio; la resolución de país durante el registro utiliza solo la base de datos GeoIP local. * Cuándo: solo mientras la opción de servicio de búsqueda externa de IP está activada, y solo al hacer clic en la búsqueda de detalles de IP. * Datos enviados: la dirección IP que has elegido inspeccionar. * Términos de servicio: https://ipwhois.io/terms * Política de privacidad: https://ipwhois.io/privacy
VirusTotal (virustotal.com)
No se contacta automáticamente. El escáner muestra un enlace «Comprobar en VirusTotal» en el que puedes hacer clic para abrir VirusTotal en tu navegador para un archivo determinado. * Cuándo: solo cuando haces clic en el enlace. * Datos enviados: el hash del archivo contenido en la URL del enlace. * Términos y privacidad: https://docs.virustotal.com/docs/privacy-policy
Qualys SSL Labs (ssllabs.com)
No se contacta automáticamente. La prueba «Comprobar salud SSL» de la página Herramientas se ejecuta por completo en tu propio servidor (abre una conexión TLS con tu propio dominio y lee el certificado). Junto a ella, un enlace «Análisis profundo (SSL Labs)» abre la prueba de Qualys SSL Labs en una nueva pestaña del navegador; a continuación, SSL Labs conecta con tu sitio desde el exterior y califica su configuración TLS. El enlace lleva el indicador «hide results», por lo que el informe no se publica en el tablón público de SSL Labs. * Cuándo: solo cuando haces clic en el enlace «Análisis profundo (SSL Labs)». * Datos enviados: el nombre de dominio de tu sitio, contenido en la URL del enlace. * Términos: https://www.ssllabs.com/about/terms.html * Privacidad: https://www.qualys.com/company/privacy/
Créditos
WordSec incluye las bibliotecas de terceros que se enumeran a continuación. Todas las bibliotecas se distribuyen bajo una licencia compatible con la propia licencia «GPLv2 or later» de WordSec. Cada biblioteca incluida conserva su aviso de licencia dentro del archivo o su archivo de licencia original, y el código fuente original completo (sin minificar) de cada una está disponible en el proyecto y la versión enlazados.
Bibliotecas PHP (`vendor/`)
TCPDF 6.11.3
* Licencia: LGPL-3.0-or-later
* Copyright: Nicola Asuni, Tecnick.com LTD
* Fuente: https://github.com/tecnickcom/TCPDF
* Archivo de licencia: vendor/tecnickcom/tcpdf/LICENSE.TXT
* Utilizado para: generación de informes/exportaciones en PDF
SimpleXLSXGen 1.5.x
* Licencia: MIT
* Copyright: (c) 2020-2022 Sergey Shuchkin
* Fuente: https://github.com/shuchkin/simplexlsxgen
* Archivo de licencia: vendor/shuchkin/simplexlsxgen/LICENSE
* Utilizado para: exportación a XLSX (Excel)
Bibliotecas JavaScript / CSS (`assets/*/vendor/`)
Select2 4.1.0-rc.0
* Licencia: MIT
* Copyright: Kevin Brown, Igor Vaynberg y los colaboradores de Select2
* Fuente: https://github.com/select2/select2
* Texto de la licencia: https://github.com/select2/select2/blob/master/LICENSE.md
* Archivos incluidos: assets/js/vendor/select2.min.js, assets/css/vendor/select2.min.css
ApexCharts 5.16.0
* Licencia: MIT
* Copyright: (c) 2018-2026 ApexCharts
* Fuente: https://github.com/apexcharts/apexcharts.js
* Texto de la licencia: https://github.com/apexcharts/apexcharts.js/blob/main/LICENSE
* Archivos incluidos: assets/js/vendor/apexcharts.min.js
jsVectorMap 1.7.0
* Licencia: MIT
* Copyright: (c) Mustafa Omar y los colaboradores de jsVectorMap
* Fuente: https://github.com/themustafaomar/jsvectormap
* Texto de la licencia: https://github.com/themustafaomar/jsvectormap/blob/master/LICENSE
* Archivos incluidos: assets/js/vendor/jsvectormap.min.js, assets/css/vendor/jsvectormap.min.css
* Utilizado para: visualizaciones del mapa mundial (Tráfico en vivo / Bloqueo / Firewall)
Datos del mapa mundial (world_mill), registrados como el mapa «world» de jsVectorMap
* Licencia: MIT
* Copyright: colaboradores de jvectormap-content; geometría del mapa derivada de Natural Earth (public domain)
* Fuente: https://www.npmjs.com/package/jvectormap-content
* Archivos incluidos: assets/js/vendor/world.js
* Utilizado para: la geometría de países representada por las visualizaciones del mapa mundial anteriores
qrcode-generator 1.4.4
* Licencia: MIT
* Copyright: Kazuhiko Arase
* Fuente: https://github.com/kazuhikoarase/qrcode-generator
* Texto de la licencia: https://github.com/kazuhikoarase/qrcode-generator/blob/master/LICENSE
* Archivos incluidos: assets/js/vendor/qrcode.min.js
Iconos / recursos
flag-icons (SVG de banderas de países)
* Licencia: MIT (marcado SVG); los diseños de las banderas en sí son de public domain
* Copyright: (c) 2013 Panayiotis Lipiridis
* Fuente: https://github.com/lipis/flag-icons
* Texto de la licencia: https://github.com/lipis/flag-icons/blob/main/LICENSE
* Archivos incluidos: assets/images/flags/*.svg (banderas de países, 4×3 viewBox="0 0 640 480")
