Limitaciones del filtro EVE
EVE es un comparador de patrones. Decide si el texto de un mensaje coincide con una regla. Es bueno en esto, y la capa de símbolos y evasión lo hace tolerante con una amplia gama de trucos. Pero un comparador de patrones tiene límites duros y estructurales, y es importante ser honesto sobre ellos antes de que confíes en el filtro.
Esta página es deliberadamente directa. Un filtro que se vende de más es un filtro en el que se confía en situaciones que no puede gestionar.
EVE coincide con el texto superficial, no con el significado
Lo más importante de entender: EVE no tiene ninguna comprensión de lo que una persona quiso decir. Compara los caracteres de un mensaje contra patrones. No sabe quién habla, de qué trata la conversación, si una palabra se está citando, reapropiando, condenando o usando en serio. Ve texto, y decide si ese texto coincide con una regla.
Todo lo de abajo se deriva de este único hecho.
Una coincidencia es un bloqueo duro
Cuando un mensaje coincide con una regla, el resultado es binario. El filtro reporta uno de un pequeño conjunto de resultados, y cualquier resultado que no sea CLEAN bloquea el mensaje. No hay puntuación, ni "probablemente", ni crédito parcial que un sistema posterior pueda sopesar. Un mensaje activa una regla o no.
Esto es un diseño deliberado. Un filtro de chat tiene que tomar una decisión instantánea y automática sobre cada mensaje, y un bloqueo duro es predecible y rápido. Pero también significa que el filtro no tiene margen para los matices en el momento de la decisión. No puede dejar pasar un mensaje límite con una advertencia, ni retenerlo para revisión, por su cuenta. Bloquea, o no lo hace.
No hay término medio en la coincidencia en sí
Una coincidencia de regla es de todo o nada. El filtro no puede distinguir un ataque genuino de un mensaje inocente que resulta contener las mismas letras. Ambos activan la regla, y ambos se bloquean. Cualquier matiz tiene que venir de cómo responde tu servidor a un bloqueo, no de la coincidencia.
Las dos consecuencias de un bloqueo duro y ciego al significado son los falsos positivos y la evasión. Son dos caras de la misma moneda: el filtro traza una línea en el texto, y cualquier línea trazada solo en el texto capturará mensajes inocentes de un lado y pasará por alto los culpables del otro.
Falsos positivos: el problema de Scunthorpe
Como EVE coincide con letras y no con la intención, un mensaje inocente que resulta contener una secuencia de letras prohibida se bloquea exactamente como si fuera un ataque.
El ejemplo clásico da nombre al problema. El pueblo inglés de Scunthorpe contiene una secuencia grosera de cuatro letras en su medio. Un filtro ingenuo que busca esa secuencia bloquea el nombre del pueblo, y por extensión cada lugar, apellido o palabra que resulte contenerla. La palabra es inocente; las letras no lo son; el filtro no puede notar la diferencia, porque solo ve las letras.
Esto no es un error que pueda corregirse por completo. Es el resultado directo de coincidir con el texto superficial. Cada patrón prohibido es una afirmación de que una serie de caracteres siempre es mala, y para casi cualquier serie de ese tipo existe alguna palabra, nombre o frase inocente que la contiene.
EVE reduce los falsos positivos con herramientas específicas:
- Las listas never permiten que un patrón excluya palabras inocentes concretas que de otro modo lo activarían. Una regla para un insulto puede enumerar las palabras inofensivas que comparten sus letras y negarse a coincidir con ellas.
- La regulación mantiene inerte un patrón agresivo a menos que una frase desencadenante esté presente cerca, o la palabra en sí coincida claramente, así que el patrón solo se dispara en un contexto donde es probable un acierto verdadero.
- Los vetos permiten que un patrón se retire cuando una frase que señala un uso inocente está presente en la línea.
Estos ayudan, y se usan mucho en los filtros que vienen de fábrica. Pero son parches sobre patrones individuales, escritos a mano, un caso inocente cada vez. No pueden anticipar cada mensaje inocente, y una lista never solo puede excluir las palabras que su autor pensó. Los falsos positivos se reducen, no se eliminan.
Los falsos positivos son inevitables
Cualquier filtro que bloquee texto a veces bloqueará texto inocente. Las pasadas de evasión agresivas empeoran esto, no lo mejoran: cuantas más grafías esté dispuesto a aceptar un patrón, más palabras inocentes caen dentro de su red. El ajuste intercambia falsos positivos por evasión, y no hay ningún ajuste que elimine ambos.
Evasión: grafías y símbolos novedosos
La otra cara de la moneda. Las pasadas de evasión deshacen familias conocidas de ofuscación: caracteres parecidos, entidades HTML, grafías estiradas y con puntuación, transposiciones y palabras divididas o unidas. Dentro de esas familias funcionan bien.
Pero solo pueden deshacer trucos que las tablas y reglas ya conocen. No pueden inferir la intención, así que una evasión genuinamente novedosa pasa directamente:
- Una nueva grafía que ningún patrón cubre. El lenguaje, y la jerga en particular, inventa nuevas grafías constantemente. Un patrón escrito hoy no conoce el neologismo de mañana.
- Un parecido o símbolo que no está en la tabla de plegado. La tabla de confundibles es grande pero finita. Un carácter que no enumera no se pliega, y un emoji codificado que no está en un tablero de símbolos no se captura.
- Una sustitución que los patrones no anticipan. La evasión es adversaria. Una vez que un truco se conoce y se añade, los usuarios pasan al siguiente, y el filtro siempre está respondiendo a la última técnica en lugar de a la próxima.
Esto es una carrera armamentística permanente, no un problema resuelto. La capa de evasión eleva el esfuerzo necesario para burlar el filtro. No cierra, ni puede cerrar, cada brecha, porque cerrar una brecha requiere conocer el truco específico de antemano, y la coincidencia de texto sin intención no puede saber eso.
El filtro puede ser evadido
Un usuario decidido que inventa una grafía o símbolo que los patrones no cubren conseguirá colar un mensaje. Las pasadas de evasión reducen la evasión casual; no detienen un intento novedoso y deliberado. No trates un resultado limpio como prueba de que un mensaje es seguro.
Qué significa esto para tu servidor
Usa el filtro para lo que es: una primera línea rápida y automática que captura lo común y lo obvio, y buena parte de lo ofuscado. No lo trates como un juez de la intención ni como una garantía completa.
- Un bloqueo no es prueba de malicia. Un mensaje inocente puede activar una regla. Considera cómo responde tu servidor a un bloqueo en lugar de asumir que cada bloqueo es una infracción sancionable.
- Un resultado limpio no es prueba de seguridad. Un mensaje dañino puede usar una grafía o símbolo que el filtro no cubre. La moderación humana sigue importando.
- Algunas categorías merecen cuidado, no castigo. El filtro separa los resultados que pueden indicar a un usuario en crisis o siendo dañado de las infracciones normales de las reglas, precisamente para que un servidor no castigue automáticamente a una persona que puede necesitar ayuda. Respeta esa separación.
El filtro es una herramienta. Gestiona el volumen para que la gente no tenga que leer cada mensaje, y elimina los casos fáciles. Los casos difíciles, los que dependen de lo que una persona realmente quiso decir, siguen siendo un trabajo para humanos, porque juzgar la intención es exactamente lo que un comparador de texto no puede hacer.