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
stego_provenance_defense — Difesa steganografica contro il prompt injection per l'AI agentica tramite binding di provenienza in fase di decodifica, autenticazione HMAC e applicazione della fiducia MCP. | Kitploit
Strumenti/GitHubGitHub/ericyoc/stego_provenance_defense
Strumenti DifensiviSteganografiaAutenticazionePaper e RicercaApprendimento e FormazioneSicurezza dell'IA
GitHubericyoc/stego_provenance_defense

stego_provenance_defense

Difesa steganografica contro il prompt injection per l'AI agentica tramite binding di provenienza in fase di decodifica, autenticazione HMAC e applicazione della fiducia MCP.

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 →
Vedi RepositorySito web
202 giorni faNon ancora revisionato
Condividi

Eric Yocam su Lounge

Binding di provenienza al momento della decodifica per agenti MCP

Una proof-of-concept riproducibile per un vettore di prompt-injection steganografico che aggira gli scanner di contenuto testuale, e una difesa che lo contiene al confine della decodifica — binding di provenienza al momento della decodifica.

Solo ricerca sulla sicurezza educativa / difensiva. Tutti i segreti in questo repo sono finti. Usare solo su sistemi di propria proprietà o per i quali si è autorizzati a eseguire test.


Riepilogo

Un attaccante invia via email a una vittima un messaggio dall'aspetto ordinario. Un logo di un marchio nella firma dell'email nasconde un'istruzione tramite steganografia (LSB, DCT o metadati). L'immagine è visivamente identica all'originale e non contiene testo sospetto, quindi uno scanner di contenuto non vede nulla e la vittima non clicca su nulla. Ma l'agente di riepilogo della casella di posta abituale della vittima elabora la firma, uno strumento nella sua pipeline decodifica l'immagine, e l'istruzione nascosta entra nel contesto dell'agente — dove, in una pipeline MCP multi-agente, viene inoltrata tra agenti come output fidato di un peer e guida una chiamata critica a uno strumento. Questo è il riciclaggio di fiducia cross-modale. La difesa, il binding di provenienza al momento della decodifica, conia un'etichetta UNTRUSTED firmata con HMAC nell'istante in cui viene eseguito uno strumento che inverte l'occultamento e fa sì che il livello MCP mantenga esso stesso la discendenza di provenienza, così blocca qualsiasi chiamata critica a uno strumento la cui discendenza non è fidata — anche quando un agente compromesso presenta un'etichetta valida per un valore fidato non correlato. Contiene anziché rilevare, quindi è indipendente dalla formulazione del payload e dal vettore.


Risultati

Tasso di successo dell'attacco (ASR) — 24 payload (tre vettori × otto evasioni: semplice, con parole innocue, Base64, token-split, omoglifo cirillico, zero-width, confondibile Unicode, commento HTML); più basso è meglio. Il baseline taint in-process è un controllo del flusso informativo che marca l'output della decodifica come non fidato ma non porta alcun binding crittografico cross-dominio:

DifesaPerditenASR
Non difeso (nessun controllo)2424100%
Scanner di contenuto (keyword/DLP)152462.5%
Parser di intenti regex152462.5%
Taint del flusso dati (baseline IFC)0240%
Provenienza al momento della decodifica (nostra)0240%

Taint e provenienza pareggiano sull'ASR a singolo dominio; divergono sotto rilancio avversariale (sotto), che è il punto del binding crittografico.

Sostituzione con etichetta valida — un agente compromesso presenta un binding TRUSTED legittimamente firmato da uno strumento benigno, omettendo l'origine di decodifica UNTRUSTED che in realtà guida la chiamata. La correzione è che il livello MCP mantiene la discendenza esso stesso e decide sul proprio registro, non sul binding fornito dall'agente:

ApplicazioneDecisione
Solo binding fornito dall'agente (ingenuo)consenti (perdite)
Mantenuto dal livello, dipendenza omessablocca
Mantenuto dal livello, dipendenza negli argomentiblocca
Mantenuto dal livello, contesto pulitoconsenti

Ablazione dei componenti — quattro componenti, ciascuno difende da un attacco distinto. Disabilitarne uno alla volta; substitution è in-domain, forged relay è un'etichetta TRUSTED falsificata che attraversa un relay non fidato verso un verificatore remoto che detiene solo il binding presentato. Fondamentalmente, l'HMAC da solo non ferma la sostituzione (lo fa il registro), e il registro da solo non sopravvive a un relay cross-dominio (lo fa l'HMAC):

ConfigurazioneOnestoSostituzioneRelay contraffatto
Meccanismo completobloccatobloccatobloccato
− marcatura di decodificaperdeperdeperde
− autenticazione crittografica (HMAC)bloccatobloccatoperde
− tracciamento della lineage attendibilebloccatoperdebloccato
− mediazione del sinkperdeperdeperde

Propagazione cross-contesto — la taint sopravvive a un confine di messaggio inter-agente, non solo a un handle di ritorno di uno strumento. Una decodifica non attendibile nell'Agente A raggiunge una chiamata critica nel contesto separato dell'Agente B, e su un canale mediato (che il modello di minaccia richiede già per le comunicazioni inter-agente) la taint si propaga e B viene bloccato. Un canale che il layer non media è fuori dal modello per costruzione — non una perdita nell'ambito:

Canale A → BChiamata critica di B
Messaggio inter-agente mediato (nell'ambito)blocco (taint propagata)
Canale laterale non mediato (fuori dal modello)non coperto

Scalabilità dell'overhead — MintBinding è ~O(1) (~10–14 µs indipendentemente dalla profondità); EnforceCritical è lineare nella chiusura di dipendenze che attraversa (≈10 µs a profondità 1 → ≈0,66 ms a profondità 100 → ≈6,7 ms a profondità 1000) e costante (~6–7 µs) nel numero di contesti taint concorrenti. Chiusure realistiche (profondità nell'ordine delle decine) restano sotto ~0,1 ms.

Utilità per attività legittime — un percorso di promozione attendibile sottoposto ad audit (ri-etichettatura di un valore decodificato specifico, ad esempio un numero di fattura OCR, sotto autorizzazione) elimina i blocchi falsi mentre l'attacco resta bloccato:

RegimeCompletamentoBlocchi falsiAttacco bloccato
Nessuna promozione2/3 (67%)1sì
Promozione attendibile3/3 (100%)0sì

Completezza del set di decodifica — l'assunzione di registrazione, messa direttamente alla prova:

Set di decodificaAttacco stegoChiamata critica legittima
Correttobloccatoconsentita
Decoder mancanteperdeconsentita
Troppo ampiobloccatoblocco falso

Integrità delle etichette tra i passaggi — il binding sopravvive al relay onesto e resiste a un worker compromesso:

Scenario di relayDecisione del verificatore
Relay onesto, 1 / 3 / 5 / 10 hopverifica; bloccato
Compromesso: riscrittura del payload, HMAC mantenutoblocco (mancata corrispondenza HMAC)
Compromesso: falsificazione di TRUSTEDblocco (mancata corrispondenza HMAC)
Compromesso: rimozione del bindingblocco (nessuna etichetta valida)

Overhead — effettivamente gratuito nel punto di decisione: creare e verificare un binding costa ~8–9 µs ciascuno (~17 µs in totale), rispetto a una chiamata allo strumento di decodifica di ~11 ms — meno dello ~0,2% aggiunto. La distorsione del carrier è bassa (LSB ≈ 76 dB PSNR, metadati lossless; DCT ≈ 18 dB — una metrica di distorsione, non un'affermazione di impercettibilità percettiva).


Cosa c'è qui

Scarica lo strumento