MitM-прокси для LLM: контроль токенов и безопасность запросов

MitM-прокси для LLM: контроль токенов и безопасность запросов

Всё больше разработчиков используют облачные языковые модели (LLM) для генерации кода, в том числе через автономных агентов. Однако это создаёт две ключевые проблемы:

  • Утечка данных: непонятно, какая информация передаётся в облако.
  • Неограниченный расход токенов, особенно при длительной работе агентов.

Для решения этих задач существуют инструменты вроде Tokentap (бывший Sherlock) — MitM-прокси, который перехватывает запросы к LLM и анализирует их в реальном времени. Это помогает контролировать безопасность и расходы.

Возможности Tokentap

  • Отслеживание токенов: показывает, сколько токенов потребляет каждый запрос.
  • Мониторинг контекстного окна: визуальный индикатор загруженности контекста.
  • Отладка промтов: автоматически сохраняет все запросы в форматах Markdown и JSON.
  • Готов к работе из коробки: не требует сертификатов, сложной настройки или виртуальных окружений.

Установка и запуск

На Linux рекомендуется установить pip и pipx для простой инсталляции с автоматическим созданием виртуального окружения:

После установки запускается прокси. Программа предложит указать папку для сохранения перехваченных промтов, после чего откроется консольная панель.

Можно также запускать локальную LLM через прокси. Поддерживаются три провайдера, часто используемых для программирования в терминале.

Пример: проксирование Gemini CLI

Предположим, установлен Gemini CLI и настроен доступ к Google. Запускаем прокси командой:

tokentap gemini

Как работает MitM-прокси

Прокси перехватывает HTTPS-трафик между клиентом и API LLM. Он расшифровывает запросы и ответы, анализирует их и передаёт дальше.

Информационная панель

  • Зелёный индикатор: загрузка контекста менее 50%.
  • Жёлтый: от 50% до 80%.
  • Красный: более 80% — риск переполнения контекста.

Каждый запрос сохраняется в выбранную директорию в двух форматах:

  • Markdown: читаемый вид для анализа.
  • JSON: исходное тело API-запроса для отладки.

После завершения сессии в LLM-CLI отображается сводка по использованию токенов.

Tokentap построен на основе mitmproxy — популярного инструмента для перехвата и анализа HTTPS-трафика.

Локальные модели ИИ

Для повышения безопасности эксперты рекомендуют использовать локальные модели с Hugging Face. Они не передают данные в облако и работают полностью на устройстве пользователя.

Одним из решений для локального запуска моделей является llama.cpp. Он использует библиотеку ggml, оптимизированную для высокой производительности на обычных компьютерах без GPU.

Преимущества ggml:

  • Нет внешних зависимостей.
  • Работает на любой платформе.
  • Не требует мощного железа.

Недавно разработчики ggml, во главе с Георгием Гергановым, присоединились к компании Hugging Face. Проект остаётся открытым и управляемым сообществом. Основное внимание будет уделено интеграции с библиотекой transformers для улучшения совместимости с моделями.

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

Важно: скрытые локальные модели

Некоторые приложения устанавливают локальные модели без уведомления. Например, последние версии Chrome автоматически загружают Gemini Nano — модель для локальной обработки запросов.

Отключить её можно через флаги браузера:

  • chrome://flags/#optimization-guide-on-device-model
  • chrome://flags/#prompt-api

После отключения можно удалить модель размером около 4 ГБ по пути:

AppData/Local/Google/Chrome/User Data/OptGuideOnDeviceModel/

И локальные, и облачные модели требуют контроля. Важно отслеживать, какие промты поступают на вход, как они обрабатываются и что возвращается. Без такого контроля нельзя полностью доверять ни одной системе ИИ.

Читать оригинал