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
SEW — Bettet keybasierte, stilbasierte Wasserzeichen in LLM-generiertem Python-, Java- und C++-Code ein und erkennt sie mittels CST-Rewriting, wobei die funktionale Korrektheit erhalten bleibt und Code-Editing-Angriffen widerstanden wird. | Kitploit
Tools/GitHubGitHub/suhanmen/sew
Statische AnalyseCode-AnalyseKryptographiePapers & ForschungKI-Sicherheit
GitHubsuhanmen/sew

SEW

Bettet keybasierte, stilbasierte Wasserzeichen in LLM-generiertem Python-, Java- und C++-Code ein und erkennt sie mittels CST-Rewriting, wobei die funktionale Korrektheit erhalten bleibt und Code-Editing-Angriffen widerstanden wird.

Repository anzeigen
11vor 13h 1mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SEW: Style-Encoded Watermarking von LLM-generiertem Code

GitHub Repo stars GitHub last commit GitHub contributors

Paper Link📖

📰 News

  • 📢 NEU! Das SEW-Paper ist auf arXiv verfügbar: arXiv:2609.39414. (30. Sep. 2026)
  • 📢 Der offizielle SEW-Code wurde auf GitHub veröffentlicht. (30. Sep. 2026)

🔍 Motivation

FeatureToken-level watermarks (KGW, SWEET, Unigram, STONE, STA-1)Post-hoc watermarks (ACW, SrcMarker, RoSeMary)✨ SEW
AccessDecoding-time (biases token selection)Post-hoc (rewrites finished code)Post-hoc (rewrites finished code, model-agnostic)
Functional correctnessChanges the program (detectability–correctness trade-off)Can break programs (Java/C++ pass@1 ≈ 12% for neural rewriting)Preserved (pass@1 equal to unwatermarked code)
Predictability—Recurring patterns (recovered from 10 watermarked programs)Key- and context-dependent (choices vary with each program's structure)
Detection (TPR@FPR5%)14–60%31–98%⚡ 98.7–99.5%

Die Wasserzeichensetzung von LLM-generiertem Code unterstützt die Nachverfolgung der Herkunft. Wasserzeichen, die die Token-Auswahl während der Generierung verändern, tauschen Erkennbarkeit gegen funktionale Korrektheit ein und erfordern die Kontrolle über das generierende Modell. Post-hoc-Methoden versehen stattdessen fertiggestellten Code mit vordefinierten Transformationen oder trainierten neuronalen Modellen mit einem Wasserzeichen, doch ihre wiederkehrenden Muster machen das Wasserzeichen über Programme hinweg vorhersagbar, und Muster, die bereits in nicht gewassertem Code häufig vorkommen, werden als Wasserzeichen-Evidenz gezählt, was zu Fehlerkennungen führt. SEW stellt die Frage: Kann der Code-Stil eines bereits generierten Programms ein Wasserzeichen tragen, das konstruktionsbedingt korrekt, schwer vorherzusagen und gegenüber von Menschen geschriebenem Code kalibriert ist?

✨ Über SEW

SEW overview

SEW (Style-Encoded Watermarking) bettet Wasserzeichen in bereits generierten Code ein und erkennt sie dort durch drei Komponenten:

  1. Code-Stilregeln mit geschlüsselten, kontextabhängigen Entscheidungen. Semantisch äquivalente Stilentscheidungen, die aus Style Guides und Transformationsregeln gesammelt wurden (29 für Python, 22 für Java, 19 für C++; z. B. x += 1 / x = x + 1, range(n) / range(0, n), if (c) s; / if (c) { s; }), werden auf dem Concrete Syntax Tree (CST) abgeglichen. Welche Variante eine Stelle annimmt, wird durch einen geheimen Schlüssel und den strukturellen Kontext der Stelle entschieden.
  2. Kalibrierung der Stilpräferenz. Wasserzeichen-Evidenz wird gegen die Wahrscheinlichkeit jeder Stilvariante in von Menschen geschriebenem Code bewertet, sodass Stile, die Menschen ohnehin bevorzugen, weniger zählen.
  3. Kontextbewusste Stilaggregation. Stellen an strukturell übereinstimmenden Positionen, denen dieselbe Stilentscheidung zugewiesen wurde, werden zu einer Stimme zusammengefasst, sodass wiederholte Anwendungen einer Entscheidung die Evidenz nicht aufblähen.

Die Erkennung benötigt nur den verdächtigen Code und den Schlüssel — nicht das generierende Modell, den Originalcode oder irgendeine Aufzeichnung der Einbettung.

🚀 Was macht SEW wertvoll?

✅ Modellagnostisch und konstruktionsbedingt korrekt — SEW schreibt nur Stilstellen um, an denen beide Varianten dieselbe Semantik haben, sodass es auf der Ausgabe jedes Modells funktioniert und pass@1 gleich dem des nicht gewasserten Codes hält.

✅ Kalibrierte Evidenz — Ein Poisson-Binomial-Test mit Stilwahrscheinlichkeiten, die aus von Menschen geschriebenem Code (LeetCode-Lösungen, disjunkt zu den Evaluationsdaten) geschätzt wurden, hält Fehlerkennungen auf menschlichem Code gering.

✅ Robust und schwer zu inferieren — SEW behält seine Erkennung unter Formatierung, Linting, Kommentarentfernung und Variablenumbenennung bei, und ein Angreifer, der gewasserte Programme beobachtet, kann seine Stilentscheidungen nicht so zurückgewinnen, wie er die der Post-hoc-Baselines zurückgewinnt.

📈 Ergebnisse

Hauptergebnis — Erkennung auf CodeContests (TPR@FPR5% / AUROC, %), gemittelt über drei LLMs (Qwen3.5-9B, gemma-4-12B-it, gpt-oss-20b).

TypeMethodPythonJavaC++
Token-levelKGW48.33 / 80.5643.30 / 72.3159.31 / 84.54
SWEET59.92 / 85.1841.19 / 76.5660.01 / 87.24
Unigram57.45 / 88.9736.54 / 71.3747.05 / 71.13
STONE28.09 / 62.3314.38 / 62.9523.65 / 64.79
STA-135.26 / 66.2620.93 / 61.4844.71 / 73.72
Post-hocACW90.10 / 95.05––
SrcMarker90.21 / 97.8671.52 / 93.5869.88 / 81.55
RoSeMary97.86 / 97.3231.00 / 95.4681.26 / 89.44
SEW99.49 / 99.6498.70 / 98.9999.22 / 99.38

Funktionale Korrektheit (pass@1 des gewasserten Codes, %; nicht gewasserter Code: 57.63 / 52.05 / 53.74).

MethodPythonJavaC++
ACW56.00––
SrcMarker56.7811.8711.82
RoSeMary56.3911.7111.52
SEW57.6352.0553.74

Robustheit gegenüber Code-Bearbeitungsangriffen (TPR@FPR5%, %, gemittelt über drei LLMs und drei Sprachen; ACW: nur Python).

Tool herunterladen