TECNOLOGÍA

Cómo funciona Axis

Qué mira, cuándo actúa y qué guarda. Las cifras de esta página son los valores por defecto del código que está en marcha; cada servidor puede ajustarlos desde el panel.

axis · valores por defecto
Subsistemas
8
Capas en la verificación
15
Corte del anti-nuke
4 acciones en 10 s
Nuke lento
24 acciones en 15 min
Freno de raids
8 entradas en 10 s
Registro
SHA-256 encadenado
Firma pública
Ed25519
IPs
scrypt · 16 MB por cálculo
Copias de seguridad
AES-256-GCM
ARQUITECTURA

De un evento de Discord a una respuesta

Axis escucha el gateway de Discord: cada entrada del registro de auditoría, cada miembro que entra, cada mensaje y cada interacción. ONYX reparte el evento entre ocho subsistemas, que deciden si hay que actuar. Lo que se decide queda escrito en el registro.

DISCORDONYXRESPUESTARegistro de auditoríaEntradasMensajesInteraccionesQuitar rolesBanear o expulsarCerrar la entradaBorrar mensajesAvisar al staffGATEPuertaSHIELDEscudoSURGEOleadaFILTERFiltroLEDGERRegistroRECALLRestauraciónTRACERastroRELAYEnlaceTodo queda en el registro: encadenado con SHA-256 y firmado con Ed25519
DISCORDRegistro de auditoríaEntradasMensajesInteracciones
ONYXGATESHIELDSURGEFILTERLEDGERRECALLTRACERELAY
RESPUESTAQuitar rolesBanear o expulsarCerrar la entradaBorrar mensajesAvisar al staff
GATEPuertaVerifica a quien entra y reconoce a quien vuelve con otra cuenta.
SHIELDEscudoCorta a quien borra, banea o reparte permisos en masa, aunque sea administrador.
SURGEOleadaDetecta cuentas que entran a la vez y cierra la entrada.
FILTERFiltroSpam, enlaces, menciones masivas y estafas en los mensajes.
LEDGERRegistroCada acción, encadenada con hashes y con copia de lo borrado.
RECALLRestauraciónCopias cifradas de canales, roles y permisos, y su restauración.
TRACERastroEl expediente de un miembro: invitador, multicuentas, nombres y sanciones.
RELAYEnlaceInventario y purga de webhooks, y vigilancia de los que se crean.
ANTI-NUKE · SHIELD

Cuánto pesa cada acción

Un nuke es una ráfaga de acciones destructivas. Axis suma el peso de lo que hace cada cuenta en una ventana de 10 segundos y la corta al llegar a 4. Borrar pesa más que crear y editar pesa poco, para que reorganizar el servidor no dispare nada.

Ilustración
Una cuenta con permisos de administrador
  1. Borra #general+1
  2. Crea un webhook+0,75
  3. Borra el rol @Moderación+1
  4. Renombra #reglas+0,25
  5. Borra #anuncios+1
0umbral 4
Corte: pierde sus roles con permisos
AcciónPeso
Borrar un canal, un rol, un emoji o un sticker; banear, expulsar o purgar; cambiar los roles de un miembro1
Crear un webhook0,75
Crear un canal o un rol; borrar un webhook0,5
Editar canales, roles, permisos o el servidor; crear emojis o stickers; desbanear0,25
Poner slowmode o cerrar permisos, que es lo que hace un bloqueo durante un raid0
Nuke lento24 acciones con peso en 15 minutos también cortan, para quien borra despacio y espera entre medias.
Un techo para todosNi el staff de confianza pasa de 20 acciones en 10 segundos.
Bots que atacanSe banean; si Discord no lo permite, se expulsan; si tampoco, se vacían los permisos de su rol.
Deshacer dañosRecrea canales y roles con sus permisos, y devuelve cada rol a quien lo tenía.
Las primeras 48 horasLas reglas de modificaciones solo avisan mientras Axis aprende cómo trabaja el servidor. Las destructivas actúan desde el primer minuto.
RAIDS · SURGE

Un raid se reconoce por el ritmo de entrada

8 cuentas que entran en 10 segundos cierran la entrada: el servidor sube su nivel de verificación y las cuentas nuevas esperan. Una ventana lenta de 2 horas recoge los raids que entran poco a poco, y un canal trampa recoge a los bots que escriben donde ninguna persona escribiría.

Ilustración
Entrada cerrada
8 / 10 s · 2 en espera
VERIFICACIÓN · GATE

15 capas para reconocer a quien vuelve

Un baneado vuelve con otra cuenta, otra IP y a veces otro navegador. Cada capa mira una cosa distinta. Ninguna basta sola, y las señales débiles solo cuentan cuando coinciden varias.

ConexiónIP · IPv6 /64Misma IP o mismo bloque de red. En IPv6 se compara el /64 entero, porque rotar dentro de él no cuesta nada.
Redes anónimasTor · VPN · proxySalidas de Tor, VPN y proxies de centros de datos.
Huella del dispositivocanvas · WebGL · GPUReconoce el aparato aunque cambie la conexión.
Cookie de seguridadmarca persistenteUna marca en el navegador que sobrevive a un cambio de IP y de huella.
Cuentas vinculadasSteam · SpotifyLa misma cuenta de Steam o Spotify conectada a dos cuentas de Discord. Solo si el servidor lo activa.
Prueba de trabajodificultad adaptativaUn cálculo en el navegador que se endurece cuando hay señales de riesgo. Encarece las granjas de bots.
Quién invitóconfianza del invitadorUna cuenta invitada por alguien que ya trajo un grupo de cuentas recientes.
Invitacionesritmo · vanityPicos de invitaciones y cambios de URL personalizada antes de un raid.
Redes compartidasCGNAT · colegios · empresasDatos móviles o la wifi de un colegio: ahí la IP no basta para relacionar cuentas, y Axis lo tiene en cuenta.
Rol de verificadosolo lo da AxisSi alguien da el rol a mano para saltarse la puerta, no cuenta.
ComportamientopuntuaciónLo que hace la cuenta al entrar: a quién escribe, qué enlaces manda y a qué ritmo.
Edad de la cuentacuentas recientesSola no prueba nada. Sumada a otras señales, sí pesa.
Huella por piezasparecido parcialSe compara pieza a pieza: cambiar de navegador o de pantalla no basta para parecer otra persona.
Coherenciaconexión frente a navegadorUna IP de Ámsterdam con el reloj, el idioma y el teclado de Madrid indica una VPN instalada en el propio equipo.
Teléfonoverificación de DiscordExigir un teléfono verificado en Discord. Un número cuesta dinero; una IP, no.

Las coincidencias fuertes, como la cookie o el mismo dispositivo en una red que no es compartida, retienen la cuenta. Las débiles abren una revisión para el staff. Los datos móviles, el mismo modelo de móvil o la wifi de un colegio nunca bastan solos.

REGISTRO · LEDGER

Un registro que no se puede reescribir sin que se note

Cada acción se encadena con el hash SHA-256 de la anterior: cambiar una fila rompe todo lo que viene detrás. La raíz de un árbol de Merkle (RFC 6962) se firma con Ed25519 y se publica, así que reescribir la historia completa tampoco pasa desapercibido.

Ilustración
evento #1041ChannelDelete #generalprev 0000000000…hash 1e7d0ebe3f…
evento #1042MemberRoleUpdate -Adminprev 1e7d0ebe3f…hash 65c26df9b3…
evento #1043ChannelCreate #generalprev 65c26df9b3…hash b32d4c6672…
evento #1044MemberBanAdd 8xx…prev b32d4c6672…hash d3e850978c…
Raíz de MerkleFirmada · Ed25519753d48f7f30d3f9cecaa7c…
RecibosQuien recibe una sanción puede comprobar que la decisión estaba en el registro en esa fecha, con una prueba de inclusión y sin ver el resto.
Copia de lo borradoLos mensajes borrados y sus archivos quedan en el registro del servidor.
Acceso del operadorSi el equipo de Axis entra a los datos de un servidor, queda escrito en el registro de ese servidor y se avisa a su staff.
DATOS

Qué guarda Axis y qué no

Guarda

  • La IP, solo como hash scrypt (16 MB de memoria por cálculo) con una clave que no está en la base de datos.
  • La huella del navegador, solo como HMAC-SHA256.
  • Los registros de verificación, durante 90 días; los de cuentas sancionadas, mientras dure la sanción.
  • Las copias del servidor, cifradas con AES-256-GCM y una clave derivada con scrypt para cada copia.
  • Los informes de incidentes, durante 180 días.

No guarda

  • La IP en claro.
  • Mensajes privados entre miembros: un bot no puede leerlos.
  • El texto de los mensajes que el automod revisa y deja pasar.
  • Datos de pago: los procesa Lemon Squeezy.
  • Lo que analiza la IA: solo se guarda el veredicto, nunca quién lo publicó.
INFRAESTRUCTURA

Dos nodos y ningún puerto abierto

Axis corre en un nodo principal y en otro de reserva, en un proveedor distinto. Si el principal deja de responder, el de reserva toma el mando con la configuración replicada. El servidor web solo escucha en 127.0.0.1: se llega a él por un túnel de Cloudflare, con su cortafuegos delante.

NavegadorCloudflare · WAFTúnelNodo principal127.0.0.1Nodo de reservalatido
Navegador
Cloudflare · WAF
Túnel
Nodo principal · 127.0.0.1Nodo de reservalatido
CSP por peticiónCada página pública lleva una política de seguridad de contenido con un nonce nuevo en cada visita.
Límites de ritmoPor IP en todas las rutas, y más estrictos en el portal de verificación y en la API.
Estado públicoDisponibilidad en tiempo real e historial de 90 días en /status.
LÍMITES

Lo que Axis no puede hacer

Quitarle poder al dueño del servidorDiscord no lo permite. Si roban esa cuenta, Axis avisa, pero no puede pararla. Lo mismo pasa con cualquier rol que esté por encima del de Axis: por eso su rol va arriba del todo y el panel avisa si no lo está.
Garantizar que ninguna multicuenta paseUna cuenta comprada, un móvil nuevo y datos móviles pueden pasar la puerta. La verificación por teléfono de Discord es lo que lo encarece de verdad.
Recuperar lo que pasó antesSolo puede restaurar lo que guardó. Los mensajes borrados antes de añadir Axis no vuelven.
Leer mensajes privadosNi los lee ni puede leerlos.

Añade Axis y revísalo tú

La documentación explica cada ajuste. El estado del servicio es público.

Estado del servicio →