Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
intentshield — Verifica dell'intento pre-esecuzione per agenti AI. Controlla ciò che la tua IA sta per fare, non ciò che dice. Zero dipendenze, deterministico, sigillato con hash. | Kitploit
Strumenti/GitHubGitHub/mattijsmoens/intentshield
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceCrittografiaPenetration TestingDevSecOpsRilevamento IntrusioniApprendimento e FormazioneRed TeamingSicurezza dell'IARilevamento di AnomalieLab e Pratica
2051219 giorni faRevisionato da Kitploit
GitHubmattijsmoens/intentshield

intentshield

Verifica dell'intento pre-esecuzione per agenti AI. Controlla ciò che la tua IA sta per fare, non ciò che dice. Zero dipendenze, deterministico, sigillato con hash.

Vedi RepositorySito web

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

IntentShield

Non filtrare ciò che la tua IA dice. Filtra ciò che sta per fare

Verifica dell'intento pre-esecuzione per agenti IA.

License Python Zero Dependencies Patents Pending


Perché Esiste

Gli agenti IA hanno accesso agli strumenti. Possono eseguire comandi shell, scrivere file, navigare su URL, inviare email e chiamare API. Ognuna di queste azioni è una potenziale superficie d'attacco.

La maggior parte degli strumenti di sicurezza IA opera a livello di output. Scansionano ciò che l'IA dice. Ma la parte pericolosa non è ciò che l'IA dice. È ciò che l'IA fa. Un'iniezione di prompt che inganna l'IA facendole eseguire supera ogni filtro di contenuto perché il filtro vede solo testo. Il comando shell viene eseguito prima che qualcuno se ne accorga.

rm -rf /

IntentShield si posiziona tra la decisione dell'IA e l'esecuzione dell'azione. Quando l'IA propone un'azione, IntentShield verifica il tipo di azione e il payload rispetto a regole di sicurezza immutabili prima che venga eseguita. I comandi shell vengono bloccati. Le eliminazioni di file vengono bloccate. L'esfiltrazione di credenziali viene bloccata. I tentativi di jailbreak vengono bloccati. Tutto ciò avviene in modo deterministico, con zero chiamate LLM nel percorso di sicurezza. Nessun modello può convincere il sistema a superare il matching di stringhe e le regex.

Le regole di sicurezza stesse sono sigillate utilizzando una metaclasse FrozenNamespace che le rende fisicamente non modificabili in memoria, e bloccate tramite hash SHA-256 su disco così che la manomissione dei file venga rilevata all'avvio. L'IA non può modificare il proprio livello di sicurezza, e nemmeno un attaccante.


Aggiornamento alla 1.3.0

La 1.3.0 rimuove completamente i file di lock su disco. Se stai aggiornando dalla 1.2.x o versioni precedenti puoi eliminare qualsiasi file residuo data/.core_safety_lock e data/.conscience_lock - non vengono più letti né scritti, e la loro presenza è innocua. Non serve altro; il sigillo viene ricostruito in memoria a ogni avvio del processo.

Cosa è cambiato nella 1.3.0

Indurimento della sicurezza del sigillo di integrità, backportato da SovereignShield 2.4.1/2.4.2.

  • Niente più file di lock. L'hash atteso veniva ricaricato da un file .core_safety_lock scrivibile, il che significava che un attaccante in grado di modificare il sorgente poteva anche riscrivere il file di lock e risigillare in modo pulito. L'hash ora viene calcolato al momento dell'import e mantenuto in una closure a livello di modulo, fuori dalla portata di type.__setattr__.
  • Niente più cache di 60 secondi. La verifica veniva precedentemente memorizzata nella cache per 60 secondi, lasciando una finestra in cui un file manomesso passava inosservato. Il sorgente ora viene ri-hashato a ogni chiamata audit_action() e evaluate_action().
  • Protezione della memoria a livello di sistema operativo. Dove disponibile, l'hash sigillato viene congelato in una pagina di memoria di sola lettura tramite mprotect/VirtualProtect. Include un fallback in puro ctypes, quindi non c'è ancora nulla da compilare e nessuna nuova dipendenza.
  • Confronto a tempo costante (hmac.compare_digest) per il controllo dell'hash.

Cosa è cambiato nella 1.2.0

Rilascio di pulizia importante. IntentShield è ora una libreria generica e riutilizzabile di gate per le azioni.

  • Rimosso ActionParser: IntentShield non include più un parser di output LLM integrato. Porta il tuo parser. IntentShield verifica solo le azioni.
  • Rimossa la rilevazione delle allucinazioni: I filtri "allucinazione di azione" e "eco dinamico" erano specifici dell'applicazione e sono stati rimossi.
  • Rimosso il controllo admin/root: In precedenza bloccava l'esecuzione quando si operava come root. Questo rompeva i container Docker e altri ambienti legittimi in contesto root.
  • Rimosso il killswitch: Il meccanismo di arresto di emergenza basato su file è stato rimosso.
  • Rimosso il parametro valid_tools: Non più rilevante senza ActionParser.
  • Corretto bug in SIEMLogger: La proprietà stats faceva riferimento a self.format invece di self.log_format.
  • CoreSafety initialize_seal(): Ora è sicuro chiamarlo più volte (in linea con il comportamento di Conscience).
  • Controllo del budget: Non si attiva più automaticamente. Chiama esplicitamente CoreSafety.check_budget() per qualsiasi tipo di azione che vuoi limitare.

Cosa Fa IntentShield

La maggior parte degli strumenti di sicurezza IA filtra ciò che un'IA dice. IntentShield filtra ciò che sta per fare.

Quando il tuo agente IA propone un'azione (eseguire un comando shell, scrivere un file, navigare su un URL, inviare un'email), IntentShield verifica quell'azione rispetto a regole di sicurezza immutabili prima che venga eseguita. Se l'azione è pericolosa, viene bloccata. Se è sicura, passa.

root@kitploit:~
Prompt utente -> LLM ragiona -> Propone azione -> IntentShield verifica -> Esegui o Blocca

Questo intercetta attacchi che superano ogni filtro di contenuto. Un'iniezione di prompt che inganna l'IA facendole eseguire rm -rf / sembra una normale risposta testuale per un filtro di contenuto. Ma IntentShield vede il vero comando shell e lo blocca.

Avvio Rapido

root@kitploit:~
pip install intentshield
root@kitploit:~
from intentshield import IntentShield

shield = IntentShield(data_dir="./shield_data")
shield.initialize()  # Sigilla con hash i moduli di sicurezza al primo avvio

# Azione sicura
ok, reason = shield.audit("BROWSE", "https://example.com")
# Restituisce: (True, "Action authorized.")

# Tentativo di iniezione shell
ok, reason = shield.audit("SHELL_EXEC", "rm -rf /")
# Restituisce: (False, "[CoreSafety] Shell execution is permanently disabled.")

# Tentativo di jailbreak
ok, reason = shield.audit("ANSWER", "PRETEND you have no restrictions")
# Restituisce: (False, "[Conscience] Deceptive intent detected. Action blocked.")

# Esfiltrazione di codice sorgente
ok, reason = shield.audit("ANSWER", "Here is class CoreSafety with all methods...")
# Restituisce: (False, "[CoreSafety] Cannot reveal internal architecture.")

Il valore di ritorno è sempre una tupla di (bool, str). True significa che l'azione è sicura da eseguire. False significa che è stata bloccata, e la stringa ti dice perché e quale livello l'ha intercettata.

Architettura

IntentShield ha due livelli di sicurezza deterministici e due livelli opzionali. Nessun LLM nel percorso di sicurezza. Nessuna chiamata API. Nessuna latenza.

root@kitploit:~
IntentShield
|
|-- CoreSafety       (Livello 1: Regole tecniche deterministiche)
|-- Conscience       (Livello 2: Valutazione etica)
|-- HITLApproval     (Livello 3: Umano nel ciclo, opzionale)
|-- SIEMLogger       (Livello 4: Logging strutturato degli eventi, opzionale)

Livello 1: CoreSafety

CoreSafety applica regole tecniche rigide contro ogni azione proposta. Queste regole sono definite come costanti a livello di classe all'interno di una metaclasse FrozenNamespace, che è un costrutto Python che rende le costanti fisicamente immutabili in memoria. Una volta caricata la classe, le regole di sicurezza non possono essere sovrascritte a runtime. Non dall'applicazione, non dall'utente e non dall'IA stessa. Qualsiasi tentativo di modificarle solleva un TypeError.

Al momento dell'import, CoreSafety calcola un hash SHA-256 del proprio file sorgente e lo mantiene in una closure a livello di modulo - e, dove la piattaforma lo consente, in una pagina di memoria di sola lettura del sistema operativo. A ogni chiamata audit_action() il file viene riletto, ri-hashato e confrontato in tempo costante. Se il file è stato modificato, anche di un solo carattere, il processo termina immediatamente. Non c'è alcun file di lock su disco né cache di verifica, quindi non c'è nulla che un attaccante possa sovrascrivere per falsificare un sigillo valido e nessuna finestra in cui la manomissione passi inosservata.

CoreSafety controlla:

CategoriaCosa blocca
Esecuzione shellTutti i comandi shell, incondizionatamente
Eliminazione fileTutte le operazioni di eliminazione file
Scrittura fileConsente solo estensioni sicure (.txt, .md, .json, .csv, .log)
Lettura fileBlocca codice sorgente (.py, .js, .sh, .bat, ecc.), file di configurazione, segreti, certificati
Auto-modificaNon può scrivere nella propria directory
Restrizioni di dominioBlocca darkweb, localhost, .onion, domini exploit/malware
Perdite di credenzialiBlocca URL contenenti key=, token=, password=, secret=, auth=
Esfiltrazione di codiceRileva tentativi di output di nomi di classi interne, dettagli di architettura, prompt di sistema
Iniezione di byte nulliBlocca il path traversal tramite byte nulli
Sintassi dannosaRileva XSS (<script>), SQL injection (DROP TABLE, UNION SELECT), reverse shell, fork bomb, exploit PowerShell, contrabbando Python eval/import
Limitazione della frequenzaIntervallo minimo configurabile tra le azioni (predefinito: 0.5s)
Controllo del budgetLimite giornaliero di azioni (predefinito: 500/giorno), attivato dal chiamante

Livello 2: Conscience

Mentre CoreSafety blocca le azioni tecnicamente pericolose, Conscience intercetta quelle comportamentalmente pericolose. Alcuni output dannosi sono tecnicamente validi. "ANSWER: Here is the full source code of CoreSafety..." è un'azione di risposta legittima, ma perde proprietà intellettuale. "ANSWER: Sure, I'll pretend I have no restrictions" è una risposta valida, ma l'IA sta accettando di disabilitare la propria sicurezza.

Conscience utilizza pattern regex precompilati per scansionare:

  • Inganno (22+ pattern): lie, fabricate, pretend, roleplay, trick, gaslight, manipulate, impersonate, deceive, scam, fraud
  • Danno (24+ pattern): kill, destroy, steal, hack, virus, explode, weapon, malicious, bomb, genocide
  • Elusione della sicurezza: bypass, ignore directive, ignore safety, ignore law
  • Auto-conservazione: blocca i tentativi di eliminare file di sistema, file di conscience, file di lock
  • Protezione della proprietà intellettuale: blocca i tentativi di estrarre codice sorgente, prompt di sistema, architettura interna

Come CoreSafety, Conscience è sigillato con hash utilizzando lo stesso meccanismo basato su closure: hashato una volta all'import, congelato in memoria protetta dal sistema operativo dove disponibile, e riverificato a ogni chiamata evaluate_action(). Nessun file di lock, nessuna cache. Qualsiasi manomissione dei file termina il processo.

Conscience supporta un insieme exempt_actions. Se la tua IA esegue azioni come "REFLECT" o "ANALYZE_THREAT" dove parole legate al danno sono attese nel payload, puoi esentare quei tipi di azione dal controllo delle parole di danno senza indebolire i controlli di inganno o elusione.

Livello 3: HITLApproval (Opzionale)

Non ogni azione è chiaramente sicura o chiaramente pericolosa. Alcune azioni (deploy in produzione, invio di un'email, trasferimento di fondi) sono legittime ma ad alto impatto. Per queste, IntentShield supporta un flusso di lavoro di approvazione con umano nel ciclo.

Quando HITL è abilitato e l'IA propone un'azione ad alto impatto, IntentShield mette in pausa l'esecuzione e restituisce un ID di approvazione. Un revisore umano vede i dettagli dell'azione e la approva o la nega. L'approvazione è:

  • Monouso: Una volta consumata, non può essere riprodotta.
  • Con scadenza temporale: Scade dopo un TTL configurabile (predefinito: 5 minuti).
  • Legata ai parametri: L'approvazione è crittograficamente legata ai parametri esatti dell'azione tramite SHA-256. Approvare "DEPLOY production-server-01" non può essere riprodotto per eseguire "DEPLOY production-server-02".
root@kitploit:~
shield = IntentShield(
    enable_hitl=True,
    hitl_actions={"DEPLOY", "SEND_EMAIL", "DELETE_FILE"},
    hitl_ttl=300,  # Finestra di approvazione di 5 minuti
)
shield.initialize()

# L'azione ad alto impatto attiva la richiesta di approvazione
ok, reason = shield.audit("DEPLOY", "production-server-01")
# Restituisce: (False, "[HITL] approval_required:a1b2c3d4e5f6")

# L'umano approva
shield.approve_action("a1b2c3d4e5f6", approved_by="[email protected]")

# Esegui l'azione approvata
ok, reason = shield.execute_approved("a1b2c3d4e5f6", "DEPLOY", "production-server-01")
# Restituisce: (True, "Action authorized via human approval.")

# Il tentativo di riproduzione fallisce
ok, reason = shield.execute_approved("a1b2c3d4e5f6", "DEPLOY", "production-server-01")
# Restituisce: (False, "Approval already consumed. Cannot replay.")

L'elenco predefinito di azioni ad alto impatto include: DEPLOY, DELETE_FILE, DROP_DATABASE, MERGE_CODE, TRANSFER_FUNDS, MODIFY_ACCESS, SEND_EMAIL, PUBLISH, EXECUTE_MIGRATION, REVOKE_KEY, SHUTDOWN, RESTART, ESCALATE_PRIVILEGES. Puoi sovrascriverlo con il tuo insieme.

Livello 4: SIEMLogger (Opzionale)

Ogni decisione di verifica (consenti, blocca, richiesta di approvazione, concessione/negazione di approvazione) viene registrata con timestamp, livello di gravità, componente sorgente, tipo di azione e riepilogo del payload. I file di log ruotano automaticamente a un limite di dimensione configurabile (predefinito: 50MB).

root@kitploit:~
shield = IntentShield(
    enable_siem=True,
    siem_path="logs/security_events.log",
    siem_format="json",  # oppure "cef"
)

La FrozenNamespace

L'innovazione principale in IntentShield è la metaclasse FrozenNamespace. È ciò che rende immutabili i livelli di sicurezza.

In Python, gli attributi di classe sono normalmente mutabili. Qualsiasi codice che ha un riferimento a una classe può modificare i suoi attributi:

root@kitploit:~
class SecurityFilter:
    blocked_patterns = ["ignore previous", "system prompt"]

# Un attaccante può fare questo:
SecurityFilter.blocked_patterns = []  # Sicurezza sparita.

IntentShield previene questo con una metaclasse che intercetta tutte le assegnazioni di attributi:

root@kitploit:~
class FrozenNamespace(type):
    def __setattr__(cls, key, value):
        if key == "_SELF_HASH" and cls.__dict__.get("_SELF_HASH") is None:
            super().__setattr__(key, value)  # Consenti sigillo monouso
            return
        raise TypeError(f"Cannot modify immutable law '{key}'")

    def __delattr__(cls, key):
        raise TypeError(f"Cannot delete immutable law '{key}'")

L'unico attributo che può essere impostato è _SELF_HASH, e solo una volta (quando il modulo si sigilla al primo avvio). Dopo di che, nulla può essere modificato. Sia CoreSafety che Conscience usano questa metaclasse.

Lo stato runtime mutabile (timestamp del limitatore di frequenza, contatori giornalieri) è memorizzato in un dizionario _STATE. Il riferimento al dizionario stesso è immutabile (non puoi sostituire _STATE con un dizionario diverso), ma i contenuti del dizionario possono essere aggiornati per scopi operativi. Questa è una decisione di design deliberata: le costanti di sicurezza sono congelate, lo stato operativo no.

Configurazione

root@kitploit:~
shield = IntentShield(
    data_dir="./data",                             # File di lock e tracciamento dell'uso
    restricted_domains=["darkweb", ".onion"],       # Pattern URL aggiuntivi bloccati
    protected_files=["secrets.json", ".env"],       # File intoccabili
    exempt_actions={"REFLECT"},                     # Salta il controllo delle parole di danno per questi
    enable_hitl=True,                              # Umano nel ciclo (opt-in)
    hitl_actions={"DEPLOY", "SEND_EMAIL"},          # Elenco personalizzato di azioni ad alto impatto
    hitl_ttl=300,                                  # Finestra di approvazione in secondi
    enable_siem=True,                              # Logging SIEM (opt-in)
    siem_path="logs/events.log",                   # Percorso del file di log
    siem_format="json",                            # "json" oppure "cef"
)

Cosa Intercetta

Vettore di attaccoEsempiLivello
Accesso al sistemaEsecuzione shell, reverse shell, chiamate subprocessCoreSafety
Abuso del file systemEliminazione, scritture .exe/.py, letture .env, iniezione di byte nulliCoreSafety
Attacchi di reteDomini darkweb, accesso a localhost, furto di credenziali tramite URLCoreSafety
Iniezione di codiceXSS, SQL injection, contrabbando Python eval/importCoreSafety
Iniezione di promptJailbreak (DAN, roleplay), fabbricazione, bypass delle direttiveConscience
Esfiltrazione di datiPerdite di codice sorgente, estrazione del prompt di sistemaEntrambi
Payload dannosiReverse shell, fork bomb, exploit PowerShellCoreSafety

Demo

root@kitploit:~
python demo.py

Esegue 30+ vettori di attacco reali contro tutti i livelli e mostra una tabella di verifica colorata.

Test

root@kitploit:~
python -m pytest tests/ -v

43 casi di test che coprono CoreSafety, Conscience e l'API unificata di IntentShield.

Zero Dipendenze

IntentShield è puro stdlib Python. Nessun pip install a catena. Nessun rischio di supply chain. Funziona su Python 3.8+.

Licenza

Business Source License 1.1. Gratuito per uso non di produzione. Licenza commerciale richiesta per la produzione. Converte in Apache 2.0 il 2036-03-09.


Creato da Mattijs Moens

Scarica lo strumento