Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
claude-awm — Umgeht LLM-Textwasserzeichen durch Einfügen von Unicode-Variationsselektoren; enthält den SynthID-Generator, den mean-g-Detektor, Normalisierungsabwehrmaßnahmen und Entropie-Experimente. | Kitploit
Tools/GitHubGitHub/aloshdenny/claude-awm
SteganografiePrivatsphäreMaschinelles LernenKI-SicherheitAdversarial-Angriff
GitHubaloshdenny/claude-awm

claude-awm

Umgeht LLM-Textwasserzeichen durch Einfügen von Unicode-Variationsselektoren; enthält den SynthID-Generator, den mean-g-Detektor, Normalisierungsabwehrmaßnahmen und Entropie-Experimente.

Repository anzeigen
89980vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

claude-awm: Kann man ein SynthID-Textwasserzeichen durch Bearbeiten des Textes entfernen?

der Traum, angeblich

Ja, aber nur eine Angriffsfamilie funktioniert, und es ist nicht die, die alle annehmen.

Unicode-Variationsselektoren (Kategorie Mn, U+FE00 bis U+FE0F und U+E0100 bis U+E01EF) treiben den Detektor unter die Schwelle und bleiben dort. Jeder andere Angriff mit unsichtbaren Zeichen, den ich ausprobiert habe, wird durch eine einzige Zeile der Eingabenormalisierung vollständig rückgängig gemacht. Variationsselektoren nicht, weil sie bedeutungstragende Codepoints sind (Emoji-Präsentation, CJK-Varianten), die NFKC nicht und auch nicht wegfalten sollte.

Über Modelle und Domänen hinweg repliziert:

ModellDomäneBaseline-znach vs16_30Änderungsrate
gpt-oss-20bProsa45,030,7257%
gpt-oss-20bCode37,240,6858%
Qwen3.8-27BProsa35,50-0,6757%

Die Schwelle liegt bei z = 2,33. Alle drei landen nach dem Angriff darunter und bleiben auch nach der Normalisierung darunter (0,09, 0,45, -0,78). Der Text wird für einen menschlichen Leser identisch dargestellt.

Der zweite echte Befund braucht überhaupt keinen Angriff: Text mit geringer Entropie wird von vornherein kaum mit einem Wasserzeichen versehen. Mit deaktiviertem Thinking erreicht die reine Code-Ausgabe von Qwen3.8-27B ohne Angriff z = 4,31, nahe an der Schwelle von 2,33, ohne dass irgendetwas damit gemacht wurde. Schaltet man Thinking wieder ein, erreicht dasselbe Modell, dieselbe Domäne, dieselbe Länge z = 25,53, weil die Reasoning-Präambel gewöhnliche Prosa ist und die Markierung normal trägt.

getestete Modelle

Alles in diesem Repo wurde an diesen Modellen gemessen, an nichts anderem:

ModellParameterWoWas ausgeführt wurde
Qwen3.5-0.8B0,8BMac (MPS)vollständige Angriffsleiter, 1k-8k
Qwen3.5-4B4BMac / 4090vollständige Angriffsleiter + das Entropie-Experiment + Stego roh/normalisiert
DeepSeek-R1-Distill-Qwen-14B14BMac (MLX, 4-Bit)Wasserzeichen + Erkennung, Reasoning-Traces
gpt-oss-20b20B3090 / 4090 / RunPodvollständige Angriffsleiter bis 32k, Prosa + Code, Variationsselektoren, Skalierungsgesetz der Einfügerate bis 131k
Qwen3.8-27B27BRunPod H100 / Modal H100Prosa + Code, Variationsselektoren, Thinking-Modus-Kontrast
gpt-oss-120b120BModal H100 (MXFP4) / RunPod H100Prosa + Code + Reasoning bei 2k / 8k / 32k, partielle Skalierung der Einfügerate bis 65k
DeepSeek-V4-Flash284B MoERunPod 2x H200 (FP8)Prosa + Code bei 2k / 8k

Nicht jedes Experiment lief auf jedem Modell, und die Tabellen unten geben an, was wo lief. Größere Modelle wurden hinzugefügt, als sich die interessanten Fragen eingrenzten, sodass die Angriffsleiter bei den kleinen Modellen breit ist und die Arbeit zu Länge und Domäne sich auf die großen konzentriert.

worum es hier geht

Anthropic (und vor ihnen Google DeepMind, das SynthID-Text-Paper) versieht generierten Text mit einem Wasserzeichen, indem die Token-Sampling mit einem schlüsselbasierten Turnier verzerrt wird. Das Signal liegt darin, welche Token ausgewählt wurden, nicht in irgendeinem versteckten Zeichen. Ich wollte wissen, wie fragil das für eine motivierte Person mit Suchen-und-Ersetzen ist, also habe ich den Generator plus einen untrainierten Mean-g-Detektor gebaut und Angriffe darauf geworfen.

Die Detektor-Schwelle liegt bei z = 2,33 (1% Falsch-Positiv-Rate). Darüber = Wasserzeichen erkannt. Ich habe mit Wasserzeichen versehenen Text generiert, ihn angegriffen, neu tokenisiert und bewertet. Jede Ergebnistabelle enthält eine roundtrip-Kontrolle (nicht angegriffener Text mit Wasserzeichen), damit man sieht, dass der Detektor in dieser Zeile tatsächlich funktioniert. Zweimal in dieser Studie ließ ein Bug jedes z auf null kollabieren, und die Kontrolle war das Einzige, was das aufdeckte.

Umfang des Angriffs: was tatsächlich funktioniert

Die Angriffsfläche teilt sich sauber nach Unicode-Kategorie, und das war letztlich die ganze Geschichte.

Funktioniert (Kategorie Mn, nicht raumgreifende Markierungen):

AngriffWas er tutÄnderungsrateÜbersteht Normalisierung?
vs16_30Variationsselektor nach ~30% der Zeichen57%ja
vs16Variationsselektor nach ~10% der Zeichen23%ja (z 3,46)
vs_suppSelektoren der Supplementary Plane (U+E0100+)24%ja (z 3,40)
homoglyphKyrillisches а für lateinisches a (Kategorie Ll)9%ja, aber schwacher Effekt

Funktioniert nicht (Kategorie Cf, Formatierungszeichen):

Angriffrohes znormalisiertes zUrteil
zwsp_30-0.0935.68vollständig rückgängig gemacht
combo0.9235.68vollständig rückgängig gemacht
bidi24.3735.68vollständig rückgängig gemacht
nbsp41.0446.51bewegt es kaum

Cf-Zeichen sind reine Formatierung ohne semantischen Inhalt, sodass ein Normalisierer sie vollständig entfernen kann, ohne etwas zu verlieren. Mn-Variationsselektoren tragen in Emoji- und CJK-Text echte Bedeutung, sodass ein pauschales Entfernen legitime Dokumente beschädigen würde. Diese Asymmetrie ist der Grund, warum eine Familie vertretbar ist und die andere nicht.

Der praktische Umfang: Damit eine starke Baseline unter den Schwellenwert gedrückt wird, müssen etwa 20 % oder mehr der Zeichen verändert werden, aber die eingefügten Zeichen sind unsichtbar, sodass der Text bei jeder Änderungsrate normal lesbar bleibt. Es ist visuell als identisch verifiziert, siehe src/fidelity_check.py. Vier Familien fügen nur Zeichen ein, die nichts darstellen; Homoglyphen sind die ehrliche Ausnahme (schriftartabhängig, nicht garantiert unsichtbar).

was nicht funktioniert: die offensichtlichen Dinge

Meine anfängliche Befürchtung war die langweilige: dass Gedankenstriche und „and" zu „&" und das Entfernen von Markdown einfach funktionieren würden und das Wasserzeichen sich als Sicherheitstheater herausstellen würde. Viele Leute online gehen genau davon aus.

Es funktioniert nicht. Die gesamte Leiter der Oberflächenbearbeitung auf gpt-oss-20b, bis zu 32k Token:

AngriffÄnderungsratez @ 1kz @ 32k
roundtrip (Kontrolle)0%25.7104.3
Gedankenstrich zu Bindestrich~0%26.4113.7
sämtliches Markdown entfernen13.6%27.2103.3
AmE zu BrE + Abkürzungen1.3%~28~100
40 % jedes Wortes löschen38%4.925.4

Über die drei Modelle, auf denen diese Leiter lief (0.8B, 4B, 20B = 294 Zellen), überschritt genau eine Zelle den Schwellenwert: das Löschen von 39 % jedes Wortes bei der kürzesten Länge auf dem 4B. Das ist kein Angriff, das ist das Zerstückeln des Dokuments.

Insgesamt gemessene Zellen über die gesamte Studie: 440 (294 aus der obigen Angriffsleiter, plus 146 aus dem untenstehenden Scaling-Law-Sweep, der die Prosa auf 131072 Token erweitert).

Zwei Dinge haben mich überrascht:

Tool herunterladen