Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SEW — LLMが生成したPython、Java、C++コードに埋め込まれたキー付きスタイルベースのウォーターマークをCST書き換えによって検出し、機能的な正確性を維持しつつコード編集攻撃に耐性を持たせます。 | Kitploit
ツール/GitHubGitHub/suhanmen/sew
静的分析コード分析暗号化論文と研究AIセキュリティ
GitHubsuhanmen/sew

SEW

LLMが生成したPython、Java、C++コードに埋め込まれたキー付きスタイルベースのウォーターマークをCST書き換えによって検出し、機能的な正確性を維持しつつコード編集攻撃に耐性を持たせます。

リポジトリを見る
1113時間1分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

SEW: LLM生成コードのスタイル符号化ウォーターマーキング

GitHub Repo stars GitHub last commit GitHub contributors

論文リンク📖

📰 ニュース

  • 📢 新着! SEWの論文がarXivで公開されました: arXiv:2609.39414。(2026年9月30日)
  • 📢 公式のSEWコードがGitHubで公開されました。(2026年9月30日)

🔍 動機

特徴トークンレベル透かし (KGW, SWEET, Unigram, STONE, STA-1)事後透かし (ACW, SrcMarker, RoSeMary)✨ SEW
アクセスデコード時 (トークン選択にバイアスをかける)事後 (完成したコードを書き換える)事後 (完成したコードを書き換える、モデル非依存)
機能的正しさプログラムを変更する (検出可能性と正しさのトレードオフ)プログラムを壊す可能性がある (ニューラル書き換えによるJava/C++のpass@1 ≈ 12%)保持される (pass@1は透かしなしコードと同等)
予測可能性—反復パターン (10個の透かし入りプログラムから復元可能)鍵とコンテキストに依存 (選択は各プログラムの構造によって変化する)
検出 (TPR@FPR5%)14–60%31–98%⚡ 98.7–99.5%

LLM生成コードへの透かし入れは、来歴追跡を支援します。生成中にトークン選択を変更する透かしは、検出可能性と機能的正しさをトレードオフし、生成モデルを制御する必要があります。事後手法は代わりに、事前定義された変換や訓練されたニューラルモデルを用いて完成したコードに透かしを入れますが、その反復パターンはプログラム間で透かしを予測可能にし、透かしなしコードにすでに一般的なパターンが透かしの証拠として数えられ、誤検出を引き起こします。SEWは問いかけます: すでに生成されたプログラムのコードスタイルは、構造的に正しく、予測が難しく、人間が書いたコードに対して較正された透かしを運ぶことができるか?

✨ SEWについて

SEW overview

SEW (Style-Encoded Watermarking) は、すでに生成されたコードに3つのコンポーネントを通じて透かしを埋め込み、検出します:

  1. 鍵付きでコンテキスト依存の選択を伴うコードスタイルルール。 スタイルガイドや変換ルールから収集された意味的に等価なスタイル選択 (Pythonで29、Javaで22、C++で19。例: x += 1 / x = x + 1、range(n) / range(0, n)、if (c) s; / if (c) { s; }) は、具象構文木 (CST) 上でマッチングされます。あるサイトがどのバリアントを取るかは、秘密鍵とそのサイトの構造的コンテキストによって決定されます。
  2. スタイル選好の較正。 透かしの証拠は、人間が書いたコードにおける各スタイルバリアントの確率に対して評価されるため、人々がすでに好むスタイルはより小さく数えられます。
  3. コンテキスト認識型スタイル集約。 構造的に一致する位置にあり、同じスタイル選択が割り当てられたサイトは1つの票に統合されるため、1つの選択の繰り返し適用が証拠を膨らませることはありません。

検出には疑わしいコードと鍵のみが必要であり、生成モデル、元のコード、埋め込みの記録は必要ありません。

🚀 SEWが価値を持つ理由

✅ モデル非依存で構造的に正しい — SEWは両方のバリアントが同じ意味を持つスタイルサイトのみを書き換えるため、あらゆるモデルの出力で機能し、pass@1を透かしなしコードと同等に保ちます。

✅ 較正された証拠 — 人間が書いたコード (評価データとは重複しないLeetCodeの解答) から推定されたスタイル確率を用いたポアソン二項検定により、人間のコードに対する誤検出を低く抑えます。

✅ 堅牢で推測が難しい — SEWはフォーマット、リンティング、コメント削除、変数名変更の下でも検出を維持し、透かし入りプログラムを観察した敵対者は、事後ベースラインのスタイル選択を復元するようにはSEWのスタイル選択を復元できません。

📈 結果

主要な結果 — CodeContestsでの検出 (TPR@FPR5% / AUROC、%)、3つのLLM (Qwen3.5-9B、gemma-4-12B-it、gpt-oss-20b) の平均。

種類手法PythonJavaC++
トークンレベルKGW48.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
事後ACW90.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

機能的正しさ (透かし入りコードのpass@1、%; 透かしなしコード: 57.63 / 52.05 / 53.74)。

手法PythonJavaC++
ACW56.00––
SrcMarker56.7811.8711.82
RoSeMary56.3911.7111.52
SEW57.6352.0553.74

コード編集攻撃への堅牢性 (TPR@FPR5%、%、3つのLLMと3言語の平均; ACW: Pythonのみ)。

手法攻撃なしフォーマットリンティングコメント削除名前変更
KGW50.3143.3149.9924.4843.26
SWEET53.7149.7953.0019.3448.83
ACW90.100.5193.5689.353.17
SrcMarker77.2077.2376.4277.2026.43
RoSeMary70.0467.0069.4270.0422.26
SEW99.1495.5798.9999.1499.14

3つのLLMと3つのプログラミング言語を用いたCodeContestsでの実験は、以下を示しています:

  • すべての言語でより高い検出。 SEWは各言語で平均98.70–99.49% TPR@FPR5%に達し、すべてのトークンレベルおよび事後ベースラインを上回ります。
  • 機能的正しさの損失なし。 SEWは意味的に等価なスタイル選択のみを変更するため、透かし入りコードは元のコードが通るテストを正確に通過します。
  • コード編集への堅牢性。 フォーマット、リンティング、コメント削除、名前変更はSEWの検出をほぼ変えない一方、各事後ベースラインは少なくとも1つでその信号のほとんどを失います。
  • 推測が難しい。 わずか10個の透かし入りプログラムを観察した後、敵対者はACW (99.54–99.77%)、SrcMarker (89.45–94.53%)、RoSeMary (85.70–94.79%) の挿入決定を復元します; SEWの鍵とコンテキストに依存する選択は、すべての設定で最も低い復元率を示します。

完全な表、ルール認識型フリッピングとLLM書き換え攻撃、アブレーションについては論文を参照してください。

🔬 ケーススタディ: 各事後透かしがプログラムに何をするか

ツールをダウンロード