Einschränkungen des EVE-Filters
EVE ist ein Muster-Matcher. Es entscheidet, ob der Text einer Nachricht eine Regel trifft. Darin ist es gut, und die Symbol- und Umgehungsebene macht es tolerant gegenüber einer breiten Palette von Tricks. Aber ein Muster-Matcher hat harte, strukturelle Grenzen, und es ist wichtig, ehrlich über sie zu sein, bevor du dich auf den Filter verlässt.
Diese Seite ist bewusst unverblümt. Ein überverkaufter Filter ist ein Filter, dem in Situationen vertraut wird, die er nicht bewältigen kann.
EVE matcht Oberflächentext, nicht Bedeutung
Das mit Abstand Wichtigste zu verstehen: EVE hat kein Verständnis davon, was eine Person meinte. Es vergleicht die Zeichen einer Nachricht mit Mustern. Es weiß nicht, wer spricht, worum es im Gespräch geht, ob ein Wort zitiert, zurückgefordert, verurteilt oder ernsthaft verwendet wird. Es sieht Text, und es entscheidet, ob dieser Text eine Regel trifft.
Alles Folgende ergibt sich aus dieser einen Tatsache.
Ein Treffer ist eine harte Blockierung
Wenn eine Nachricht eine Regel trifft, ist das Ergebnis binär. Der Filter meldet eines aus einem kleinen Satz von Ergebnissen, und jedes Ergebnis außer CLEAN blockiert die Nachricht. Es gibt keine Bewertung, kein "wahrscheinlich", keine Teilanrechnung, die ein nachgelagertes System abwägen könnte. Eine Nachricht löst eine Regel aus oder nicht.
Dies ist ein bewusstes Design. Ein Chatfilter muss auf jeder Nachricht eine sofortige, automatische Entscheidung treffen, und eine harte Blockierung ist vorhersehbar und schnell. Aber es bedeutet auch, dass der Filter im Moment der Entscheidung keinen Raum für Nuancen hat. Er kann eine Grenznachricht nicht von sich aus mit einer Warnung durchlassen oder zur Prüfung zurückhalten. Er blockiert, oder er blockiert nicht.
Es gibt keinen Mittelweg im Treffer selbst
Ein Regeltreffer ist Alles-oder-Nichts. Der Filter kann einen echten Angriff nicht von einer unschuldigen Nachricht unterscheiden, die zufällig dieselben Buchstaben enthält. Beide lösen die Regel aus, und beide werden blockiert. Jede Nuance muss daher kommen, wie dein Server auf eine Blockierung reagiert, nicht vom Treffer.
Die zwei Konsequenzen einer harten, bedeutungsblinden Blockierung sind Falschpositive und Umgehung. Sie sind zwei Seiten derselben Medaille: der Filter zieht eine Linie im Text, und jede allein im Text gezogene Linie wird sowohl unschuldige Nachrichten auf der einen Seite abfangen als auch schuldige auf der anderen verpassen.
Falschpositive: das Scunthorpe-Problem
Weil EVE Buchstaben und nicht Absicht matcht, wird eine unschuldige Nachricht, die zufällig eine verbotene Buchstabenfolge enthält, genau so blockiert, als wäre sie ein Angriff.
Das klassische Beispiel gibt dem Problem seinen Namen. Die englische Stadt Scunthorpe enthält in ihrer Mitte eine derbe Vier-Buchstaben-Folge. Ein naiver Filter, der nach dieser Folge sucht, blockiert den Namen der Stadt und damit jeden Ort, Nachnamen oder jedes Wort, das sie zufällig enthält. Das Wort ist unschuldig; die Buchstaben sind es nicht; der Filter kann den Unterschied nicht erkennen, weil er nur die Buchstaben sieht.
Dies ist kein Fehler, der vollständig behoben werden kann. Es ist das direkte Ergebnis des Matchings von Oberflächentext. Jedes verbotene Muster ist eine Behauptung, dass ein Zeichenlauf immer schlecht ist, und für nahezu jeden solchen Lauf gibt es irgendein unschuldiges Wort, einen Namen oder einen Ausdruck, der ihn enthält.
EVE reduziert Falschpositive mit gezielten Werkzeugen:
- Never-Listen lassen ein Muster bestimmte unschuldige Wörter ausschließen, die es andernfalls auslösen würden. Eine Regel für eine Beleidigung kann die harmlosen Wörter auflisten, die ihre Buchstaben teilen, und sich weigern, sie zu treffen.
- Gating hält ein aggressives Muster inaktiv, sofern nicht ein auslösender Ausdruck in der Nähe vorhanden ist oder das Wort selbst klar trifft, sodass das Muster nur in einem Kontext feuert, in dem ein echter Treffer wahrscheinlich ist.
- Vetos lassen ein Muster zurücktreten, wenn ein Ausdruck, der unschuldige Verwendung signalisiert, in der Zeile vorhanden ist.
Diese helfen, und sie werden in den ausgelieferten Filtern stark verwendet. Aber sie sind Flicken an einzelnen Mustern, von Hand geschrieben, ein unschuldiger Fall nach dem anderen. Sie können nicht jede unschuldige Nachricht vorhersehen, und eine Never-Liste kann nur Wörter ausschließen, an die ihr Autor gedacht hat. Falschpositive werden reduziert, nicht eliminiert.
Falschpositive sind unvermeidbar
Jeder Filter, der Text blockiert, wird manchmal unschuldigen Text blockieren. Die aggressiven Umgehungsdurchläufe machen dies schlimmer, nicht besser: je mehr Schreibweisen ein Muster zu akzeptieren bereit ist, desto mehr unschuldige Wörter fallen in sein Netz. Die Feinabstimmung tauscht Falschpositive gegen Umgehung, und es gibt keine Einstellung, die beide entfernt.
Umgehung: neuartige Schreibweisen und Symbole
Die andere Seite der Medaille. Die Umgehungsdurchläufe machen bekannte Familien von Verschleierung rückgängig: ähnlich aussehende Zeichen, HTML-Entities, gedehnte und mit Interpunktion versehene Schreibweisen, Transpositionen und aufgeteilte oder zusammengefügte Wörter. Innerhalb dieser Familien funktionieren sie gut.
Aber sie können nur Tricks rückgängig machen, die die Tabellen und Regeln bereits kennen. Sie können keine Absicht ableiten, sodass eine wirklich neuartige Umgehung geradewegs durchgeht:
- Eine neue Schreibweise, die kein Muster abdeckt. Sprache, und Slang im Besonderen, erfindet ständig neue Schreibweisen. Ein heute geschriebenes Muster kennt die Wortschöpfung von morgen nicht.
- Eine Ähnlichkeit oder ein Symbol, das nicht in der Falttabelle ist. Die Verwechselbarkeitstabelle ist groß, aber endlich. Ein Zeichen, das sie nicht auflistet, wird nicht gefaltet, und ein codiertes Emoji, das nicht auf einem Symbol-Board ist, wird nicht abgefangen.
- Eine Substitution, die die Muster nicht vorhersehen. Umgehung ist adversariell. Sobald ein Trick bekannt ist und hinzugefügt wird, gehen Nutzer zum nächsten über, und der Filter reagiert immer auf die letzte Technik statt auf die nächste.
Dies ist ein permanentes Wettrüsten, kein gelöstes Problem. Die Umgehungsebene erhöht den erforderlichen Aufwand, um am Filter vorbeizukommen. Sie schließt nicht, und kann nicht, jede Lücke schließen, weil das Schließen einer Lücke erfordert, den bestimmten Trick im Voraus zu kennen, und absichtsfreies Textmatching kann das nicht wissen.
Der Filter kann umgangen werden
Ein entschlossener Nutzer, der eine Schreibweise oder ein Symbol erfindet, das die Muster nicht abdecken, wird eine Nachricht durchbekommen. Die Umgehungsdurchläufe reduzieren beiläufige Umgehung; sie stoppen keinen neuartigen, absichtlichen Versuch. Behandle ein sauberes Ergebnis nicht als Beweis, dass eine Nachricht sicher ist.
Was das für deinen Server bedeutet
Verwende den Filter für das, was er ist: eine schnelle, automatische erste Linie, die das Häufige und das Offensichtliche abfängt, und vieles vom Verschleierten. Behandle ihn nicht als Richter über Absicht oder als vollständige Garantie.
- Eine Blockierung ist kein Beweis für Böswilligkeit. Eine unschuldige Nachricht kann eine Regel auslösen. Überlege, wie dein Server auf eine Blockierung reagiert, statt anzunehmen, dass jede Blockierung ein strafbarer Verstoß ist.
- Ein sauberes Ergebnis ist kein Beweis für Sicherheit. Eine schädliche Nachricht kann eine Schreibweise oder ein Symbol verwenden, das der Filter nicht abdeckt. Menschliche Moderation ist weiterhin wichtig.
- Einige Kategorien verdienen Fürsorge, keine Strafe. Der Filter trennt Ergebnisse, die auf einen Nutzer in einer Krise oder einen geschädigten Nutzer hinweisen könnten, von gewöhnlichen Regelverstößen, gerade damit ein Server eine Person, die möglicherweise Hilfe braucht, nicht automatisch bestraft. Ehre diese Trennung.
Der Filter ist ein Werkzeug. Er bewältigt das Volumen, sodass Menschen nicht jede Nachricht lesen müssen, und er entfernt die einfachen Fälle. Die schwierigen Fälle, die davon abhängen, was eine Person tatsächlich meinte, bleiben eine Aufgabe für Menschen, weil das Beurteilen von Absicht genau das ist, was ein Text-Matcher nicht kann.