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

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

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

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

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

Категории

Все категории
Loading categories
llm-differential-privacy-gateway — Noisegate: шлюз дифференциальной приватности, позволяющий недоверенному LLM-агенту запрашивать конфиденциальные данные через MCP (Model Context Protocol), с формальной гарантией того, что запись ни одного отдельного человека не может утечь, даже если агент является злонамеренным — принудительное исполнение реализовано в доверенном коде ниже уровня модели и подтверждено рабочей галереей атак. | Kitploit
Инструменты/GitHubGitHub/yashmahajan10/llm-differential-privacy-gateway
Оборонительные ИнструментыКонфиденциальностьОбучение и ОбразованиеБезопасность ИИЛаборатории и Практика
GitHubyashmahajan10/llm-differential-privacy-gateway

llm-differential-privacy-gateway

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
253181 месяц назадЕщё не проверено

Описание

Noisegate: шлюз дифференциальной приватности, позволяющий недоверенному LLM-агенту запрашивать конфиденциальные данные через MCP (Model Context Protocol), с формальной гарантией того, что запись ни одного отдельного человека не может утечь, даже если агент является злонамеренным — принудительное исполнение реализовано в доверенном коде ниже уровня модели и подтверждено рабочей галереей атак.

Поделиться

Noisegate: шлюз дифференциальной приватности для недоверенных AI-агентов

CI Python 3.13+ License: Apache-2.0

AI-агент, способный изучать конфиденциальные данные, не имея возможности выделить кого-либо конкретного. Ограничение носит математический характер, оно обеспечивается кодом, до которого агент не может добраться, а репозиторий поставляет атаки, которые пытаются его сломать.

A Claude Desktop chat against the gateway: an AI agent gets honest noise-injected charts, is told the model itself cannot disable the noise, drains a tiny privacy budget until the gate refuses, has a too-narrow census query rejected at the trust boundary, and ends on a clean 16-bar histogram usable at scale

Записанная сессия Claude Desktop (ответы сокращены; карточки графиков принадлежат самой сессии). AI-агент разбивает 20 пациентов по диагнозам, и шум ±12 перекрывает каждый интервал. Напомнив, что он не может отключить шум, он исчерпывает бюджет из трёх ответов, пока шлюз не возвращает отказ вместо более тихого ответа. На переписи из 32 561 строки слишком узкий срез отклоняется на границе доверия, тогда как полная разбивка по образованию возвращается чистой в масштабе. Отказ и отклонение — это реальное принудительное исполнение работающего шлюза, воспроизводимое командой python scripts/render_demo_gif.py.

Краткий обзор

  • Запускаемые атаки, закреплённые в CI. Три классические атаки на приватность выполняются против собственного движка системы: разностная атака, вывод о принадлежности к множеству и выделение путём реидентификации. Каждая показана успешной при отключённой приватности, побеждённой при включённой приватности и проверяется при каждой сборке, чтобы защита не могла тихо деградировать.
  • Независимо проверенная математика. Механизм шума построен с нуля и совпадает с OpenDP, эталонной промышленной реализацией, во всех 35 проверках масштаба шума с точностью до 1e-9.
  • Больше вопросов благодаря более строгому учёту. При используемом в развёртывании ε на запрос гибридная композиция zCDP допускает 308 запросов в рамках одного бюджета, против 268 при продвинутой композиции и 100 при наивной сумме ε. Гарантия — это (ε, δ)-DP, а не чистая ε.
  • Создан для AI-агентов. Работает как MCP-сервер для Claude Desktop. Подключающийся агент по замыслу недоверенный, и каждое свойство приватности обеспечивается ниже него.
  • Стек: Python · DuckDB · FastAPI · Streamlit · MCP SDK · Docker · GitHub Actions, с набором из более чем 250 тестов в CI.

Вы задаёте вопросы о конфиденциальном наборе данных на простом английском. LLM компилирует каждый вопрос в небольшой ограниченный запрос. Движок дифференциальной приватности выполняет его в рамках отслеживаемого бюджета приватности и возвращает намеренно зашумлённый ответ с указанным доверительным интервалом. Подобно своему звуковому тёзке, шлюз удерживает каждый сигнал ниже заданного порога под уровнем шума: вклад любого отдельного человека заглушается, тогда как сигнал в масштабе всего набора данных проходит почти нетронутым.

Интересно не то, что LLM может писать запросы. Интересно то, что гарантия приватности не зависит от того, заслуживает ли LLM доверия. Модель — это удобство, предлагающее запрос. Она ничего не обеспечивает. Каждое свойство приватности обеспечивается ниже по потоку компонентами, которые вели бы себя так же, если бы запрос вручную набрал человек. Это дисциплина границы доверия, которую вы применяли бы к любому недоверенному вводу в производственной системе, применённая здесь к AI-агенту.


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

1. Запустите атаки: без API-ключа, без загрузки данных, без сервера

Галерея атак выполняется внутри процесса против настоящего DP-движка:```bash pip install -e . python -m attacks.patients_alice # re-identify Alice with privacy off, then watch # the guard, the noise, and the budget defeat it

### 2. Подключение AI-агента

Шлюз работает как MCP stdio-сервер для Claude Desktop. Агент становится недоверенным автором запросов и получает только структурированные инструменты (`count`, `sum`, `average`, `histogram`, `get_budget`), схемы аргументов которых генерируются из политики набора данных. API-ключ нигде не нужен, поскольку подключающийся агент и есть интеллект.

**[Настройка и полное руководство →](https://github.com/yashmahajan10/llm-differential-privacy-gateway/blob/main/docs/CLAUDE_DESKTOP.md)**

### 3. Полноценный интерфейс на естественном языке

Локальная однопользовательская демонстрация. API-ключ нужен только для недоверенного компилятора NL→запрос:```bash
export ANTHROPIC_API_KEY=...   # used only by the untrusted NL→query compiler
docker compose up              # brings up the engine, API, and UI
# open http://localhost:8501

Эта поверхность HTTP + Streamlit представляет собой локальную однопользовательскую демонстрацию. Идентификация осуществляется через подделываемый заголовок X-Identity, поэтому она предназначена для одного доверенного оператора на его собственной машине, а не для публичного развёртывания (см. что представляют собой эти поверхности, а чем не являются). Для локальной настройки без Docker, запуска тестов и параметров конфигурации см. SETUP.md.


Главное: галерея атак

Любой может заявить о приватности. Этот репозиторий поставляет эксплойты, которые опровергли бы это заявление, запускает их против собственного движка и фиксирует результаты в CI. Самый быстрый способ понять, что гарантирует шлюз, — увидеть, как он отражает три классические атаки, которые ломают наивные системы «запрос к базе данных».

Атака 1: Атака вычитания

Атака вычитания изолирует одного человека, задавая два агрегированных вопроса, которые различаются ровно на этого человека.``` Query A: "Total income of all 100 people in department X." → $7,240,000 Query B: "Total income of all people in department X except Alice." → $7,135,000 Attacker computes: A − B = $105,000 ← Alice's exact salary, leaked.

Оба запроса — «просто агрегаты». Ни один из них не называет отдельную строку. И всё же вместе они раскрывают конкретного человека. Галерея (`attacks/differencing.py`) показывает, как эта атака **удаётся при отключённой приватности**: приватное значение цели восстанавливается точно. (Пример с зарплатой выше — иллюстративный; на реальных данных UCI Adult «Alice» — единственная обладательница максимального прироста капитала в своей группе.) Затем она показывает ту же атаку **побеждённой, как только DP включён**: калиброванный шум на каждом ответе делает вычитание бесполезным, а бюджетный учёт списывает средства за информацию, раскрытую в *обоих* запросах, а не рассматривает их как независимые.

### Атака 2: Вывод о принадлежности

Атака вывода о принадлежности определяет, входит ли *конкретный человек* в набор данных вообще. Для многих наборов данных (медицинское исследование, список неплательщиков) сам этот факт является чувствительным. Злоумышленник, имеющий только доступ к запросам, пытается решить: «есть ли этот конкретный человек в данных?»

Галерея запускает эту атаку по развёртке бюджетов приватности (ε — регулятор, обменивающий точность ответа на приватность) и строит график результата:
Скачать инструмент