Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SEW — Inserisce e rileva watermark basati su stile e chiave nel codice Python, Java e C++ generato da LLM tramite riscrittura del CST, preservando la correttezza funzionale e resistendo agli attacchi di modifica del codice. | Kitploit
Strumenti/GitHubGitHub/suhanmen/sew
Analisi StaticaAnalisi del CodiceCrittografiaPaper e RicercaSicurezza dell'IA
GitHubsuhanmen/sew

SEW

Inserisce e rileva watermark basati su stile e chiave nel codice Python, Java e C++ generato da LLM tramite riscrittura del CST, preservando la correttezza funzionale e resistendo agli attacchi di modifica del codice.

Vedi Repository
1113h 1m faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SEW: Watermarking con codifica dello stile per codice generato da LLM

GitHub Repo stars GitHub last commit GitHub contributors

Link al Paper📖

📰 Novità

  • 📢 NOVITÀ! Il paper SEW è disponibile su arXiv: arXiv:2609.39414. (30 settembre 2026)
  • 📢 Il codice ufficiale di SEW è stato rilasciato su GitHub. (30 settembre 2026)

🔍 Motivazione

CaratteristicaWatermark a livello di token (KGW, SWEET, Unigram, STONE, STA-1)Watermark post-hoc (ACW, SrcMarker, RoSeMary)✨ SEW
AccessoAl momento della decodifica (influenza la selezione dei token)Post-hoc (riscrive il codice finito)Post-hoc (riscrive il codice finito, indipendente dal modello)
Correttezza funzionaleModifica il programma (compromesso rilevabilità–correttezza)Può rompere i programmi (pass@1 Java/C++ ≈ 12% con riscrittura neurale)Preservata (pass@1 uguale al codice non watermarked)
Prevedibilità—Pattern ricorrenti (recuperati da 10 programmi watermarked)Dipendente da chiave e contesto (le scelte variano con la struttura di ogni programma)
Rilevamento (TPR@FPR5%)14–60%31–98%⚡ 98,7–99,5%

Il watermarking del codice generato da LLM supporta il tracciamento della provenienza. I watermark che modificano la selezione dei token durante la generazione scambiano la rilevabilità con la correttezza funzionale e richiedono il controllo sul modello generatore. I metodi post-hoc invece applicano un watermark al codice completato con trasformazioni predefinite o modelli neurali addestrati, ma i loro pattern ricorrenti rendono il watermark prevedibile tra i programmi, e i pattern già comuni nel codice non watermarked vengono conteggiati come prova del watermark, causando falsi rilevamenti. SEW si chiede: lo stile del codice di un programma già generato può portare un watermark corretto per costruzione, difficile da prevedere e calibrato rispetto al codice scritto da esseri umani?

✨ Informazioni su SEW

SEW overview

SEW (Style-Encoded Watermarking) incorpora e rileva watermark in codice già generato attraverso tre componenti:

  1. Regole di stile del codice con scelte dipendenti da chiave e contesto. Scelte di stile semanticamente equivalenti raccolte da guide di stile e regole di trasformazione (29 per Python, 22 per Java, 19 per C++; ad es., x += 1 / x = x + 1, range(n) / range(0, n), if (c) s; / if (c) { s; }) vengono confrontate sull'albero della sintassi concreta (CST). Quale variante assume un sito è deciso da una chiave segreta e dal contesto strutturale del sito.
  2. Calibrazione delle preferenze di stile. L'evidenza del watermark viene valutata rispetto alla probabilità di ciascuna variante di stile nel codice scritto da esseri umani, così gli stili già preferiti dalle persone contano meno.
  3. Aggregazione dello stile consapevole del contesto. I siti in posizioni strutturalmente corrispondenti a cui è assegnata la stessa scelta di stile vengono combinati in un unico voto, così le applicazioni ripetute di una scelta non gonfiano l'evidenza.

Il rilevamento necessita solo del codice sospetto e della chiave — non del modello generatore, del codice originale o di qualsiasi registro dell'incorporamento.

🚀 Cosa rende SEW prezioso?

✅ Indipendente dal modello e corretto per costruzione — SEW riscrive solo i siti di stile in cui entrambe le varianti hanno la stessa semantica, quindi funziona sull'output di qualsiasi modello e mantiene il pass@1 uguale a quello del codice non watermarked.

✅ Evidenza calibrata — Un test di Poisson-binomiale con probabilità di stile stimate dal codice scritto da esseri umani (soluzioni LeetCode, disgiunte dai dati di valutazione) mantiene bassi i falsi rilevamenti sul codice umano.

✅ Robusto e difficile da inferire — SEW mantiene il suo rilevamento sotto formattazione, linting, rimozione dei commenti e rinomina delle variabili, e un avversario che osserva programmi watermarked non può recuperare le sue scelte di stile come recupera quelle delle baseline post-hoc.

📈 Risultati

Risultato principale — rilevamento su CodeContests (TPR@FPR5% / AUROC, %), mediato su tre LLM (Qwen3.5-9B, gemma-4-12B-it, gpt-oss-20b).

TipoMetodoPythonJavaC++
A livello di tokenKGW48,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

Correttezza funzionale (pass@1 del codice watermarked, %; codice non watermarked: 57,63 / 52,05 / 53,74).

MetodoPythonJavaC++
ACW56,00––
SrcMarker56,7811,8711,82
RoSeMary56,3911,7111,52
SEW57,6352,0553,74

Robustezza agli attacchi di modifica del codice (TPR@FPR5%, %, mediato su tre LLM e tre linguaggi; ACW: solo Python).

MetodoNessun attaccoFormattazioneLintingRimozione commentiRinomina
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
Scarica lo strumento