Технозаметки Малышева
13.2K subscribers
5.63K photos
2.13K videos
43 files
5.56K links
Новости инноваций из мира Искусственного Интеллекта. 🤖 [РКН: 7021469833 ]

Всё об ИИ, ИТ трендах и Технологической Сингулярности.

🤖: @ai_gptfreebot [бесплатный бот]
✍️: @tsingular_bot [каталог ботов и курсов]

💸: https://pay.cloudtips.ru/p/c8960bbb
Download Telegram
🚨 Ваш ИИ-агент может быть скомпрометирован.

CCS 2026: «Your Agent Is Mine»

Нашёл интересное системное исследование атак на цепочку поставок LLM — через API-роутеры, которые стоят между вашим приложением и моделью.

Роутеры типа LiteLLM и OpenRouter — это прокси на уровне приложения. Они разрывают TLS-соединение клиента и открывают новое к провайдеру. Это значит: роутер видит всё в открытом виде и может переписать любой ответ.

Что обнаружили в дикой природе:

🔧 Внедрение кода. 1 платный и 8 бесплатных роутеров активно подменяли tool-call аргументы — например, меняли URL в bash-команде на вредоносный. Успешность — 100% на четырёх фреймворках (Claude Code, OpenAI Codex, OpenCode, OpenClaw).

🔑 Кража ключей. 17 роутеров обратились к AWS-канарейкам исследователей. Один роутер похитил приватный ключ и вывел ETH.

🎯 Адаптивное уклонение. Два роутера ждали 50 «чистых» запросов перед атакой — чтобы пройти аудит. Другие атаковали только в «YOLO-режиме», когда агент автоматически выполняет все tool-команды.

Но главное — транзитивная угроза:

Один утёкший ключ OpenAI сгенерировал 100 млн токенов и вскрыл 7+ сессий Codex. Декоративный «слабый» роутер, поднятый исследователями, втянулся в цепочку поставок, обработал 2 млрд токенов и поймал 99 учёток в 440 сессиях. Из них 401 сессия работала в YOLO-режиме — автоподтверждение всех команд.

Почему это работает: ни один провайдер не подписывает свои ответы криптографически. Нет механизма проверить, что ответ от GPT или Claude — действительно от них, а не подменён посредником. Оверхед атаки — 0,013 мс, неотличим от сетевого джиттера.

Защита, которая есть сейчас:

🛡 Шлюз политик для опасных инструментов — блокирует запросы к незнакомым доменам. Блокирует 100% базовых атак, но 0% адаптивных (через allowlisted-домены)

📊 Аномали-скрининг ответов (IsolationForest) — ловит 89% подмен при 6,7% ложных срабатываний

📝 Логирование с хешированием — для расследования инцидентов постфактум, 1,26 КБ на запись

Что предлагают авторы: провайдеры должны подписывать ответы криптографически — JSON-конверт с полем provider, model, request_nonce и подписью. Клиент проверяет подпись и понимает, был ли ответ подменён.

Практический вывод: если ваш агент может выполнять код или вызывать API — не пускайте его через непроверенные роутеры. Отключите YOLO-режим.

#ИБ #агенты #LLM #cybersecurity #LiteLLM #OpenRouter
───
@tsingular
✍10👍5🔥4⚡3❤3👀1
LiteLLM переписали AI-шлюз на Rust

Проект пока экспериментальный и продовый Python-шлюз не заменяет, но вектор интересный.

⚡️ Python-шлюз добавляет миллисекунды задержки к каждому LLM-запросу.
Для кодовых ИИ агентов, которые делают десятки вызовов на одну задачу, эта разница умножается и становится узким горлышком.
В Rust версии накладные транзакционные расходы меньше миллисекунды.


Совместимость с Python-версией полная: тот же config.yaml, та же схема Postgres, ключи, виртуальные ключи, команды, бюджеты, маршрутизация и резервные цепочки, - без изменений.
SDK и админка те же, просто меняется исполняемый файл.

📦 Из коробки: планировщик задач (cron, webhook, API), песочницы E2B и Daytona для изолированных запусков Claude Code, сохранение состояния агентских сессий.
В планах, - долговременные сессии, память, артефакты, хранилище.
Для промышленного использования с требованиями к доступности и нормативному соответствию пока все ещё рекомендуется LiteLLM Enterprise на Python-шлюзе.

Анонс: docs.litellm.ai/blog/litellm-rust-launch
Репозиторий: github.com/LiteLLM-Labs/litellm-rust

#LiteLLM #Rust
———
@tsingular
🔥122😁1🤔1🤯1
LiteLLM добавила AutoRouter в базовую библиотеку, без прокси и лицензии Enterprise

AutoRouter собирается Python скриптом: litellm.Router получает список моделей и правила выбора, а прокси и лицензия Enterprise не нужны. Модель выбирается на каждый запрос.

Уровней маршрутизации четыре: SIMPLE, MEDIUM, COMPLEX и REASONING, каждому сопоставлено имя модели.
Эвристический классификатор по умолчанию считает сложность локально по длине запроса, коду и словам рассуждения, без отдельного вызова модели.
Нераспознанный запрос уходит на модель по умолчанию.

🔧 Классификатор можно заменить: LLM-классификатор получает таймаут 2 секунды и откат на эвристику, но за такой выбор вы платите двумя вызовами.
Правила по ключевым словам срабатывают раньше классификатора, из совпавших побеждает тот, что старше по уровню.
Свой класс на Python читает метаданные запроса, например имя агента.

Роутеру можно отдать пул моделей: тогда LiteLLM выбирает случайно, а флаг adaptive включает отбор по сэмплированию Томпсона с обратной связью следующих ходов.
Привязка сессии держит разговор на модели первого хода до истечения TTL, чтобы не терять кэш промпта.

Проверять маршрут советуют на своих запросах.
С return_raw_model_name=True ответ показывает, какая модель ответила, а лог LiteLLM Router на уровне INFO пишет строку ComplexityRouter: routing decision с причиной: эвристика, ключевое слово, LLM-классификатор или привязка сессии.

📎 Устройство маршрутизатора: https://docs.litellm.ai/docs/autorouter_sdk/routing

#LiteLLM #LLM #роутер
———
@tsingular
✍3🔥2⚡1