Oleksandr Kuzmenko, РедакторОпубліковано 5 хв читанняЗа участі AI · перевірено редактором
TL;DR
- Ніколи не покладайтеся на системні промпти для контролю доступу до виклику інструментів.
- Розраховуйте права на виконання як перетин дозволів користувача, агента і тенанта.
- Використовуйте стандарт OAuth Token Exchange (RFC 8693) для безпечного делегування повноважень.
Ключові факти
- Принцип авторизації
- Перетин User ∩ Agent ∩ Tenant
- Стандарт обміну ідентичностями
- OAuth 2.0 Token Exchange (RFC 8693)
- Стратегія безпеки
- Fail closed (блокування за замовчуванням)
Першопричина: позичені привілеї
Коли AI-асистент зчитує неперевірені дані тікетів або повідомлень, приховані інструкції змушують модель генерувати валідні виклики на кшталт write to tickets.globex. Якщо шар виконання авторизує запити через загальний сервісний акаунт, агент перетворюється на 'confused deputy'. Зловмисник отримує різницю між правами користувача та привілеями всієї платформи.
Правило перетину прав
Результуючі права мають суворо дорівнювати формулі user ∩ agent ∩ tenant. Кожен виклик інструменту має відповідати чотирьом правилам:
- Заборона за замовчуванням: Порожній набір прав забороняє будь-які дії, а збій пошуку негайно закриває доступ.
- Рішення на межі виклику: Ніколи не покладайтеся на системні інструкції для захисту API. Промпт доступний для маніпуляцій зловмисника.
- Звуження повноважень: Передача задач між агентами може лише зменшувати набір доступних дій. Жоден наступний крок не має розширювати права.
- Аудит кожного рішення: Логування дозволів та відмов разом з ідентифікаторами політик для аналізу спроб ін'єкцій.
Конвеєр безпечного шлюзу
Кожен виклик проходить перевірку в шлюзі: аутентифікація workload через mutual TLS, валідація delegated-токенів через OAuth Token Exchange (RFC 8693) та прив'язка тенанта за збереженими даними авторизації, а не за параметрами запиту.
Спробуй за 2 хвилини
permit(
principal in Acme::Role::"SupportAgent",
action in [Acme::Action::"ReadTicket"],
resource in Acme::Tenant::"AcmeCorp"
) when {
context.user.roles.contains("TicketViewer")
};Коли використовувати
- Створення мультитенентних агентних платформ, де LLM виконує запити до API чи БД від імені користувачів.
- Проєктування багатокрокових систем, де батьківський агент делегує задачі субагентам.
Що зробити сьогодні
- Проведіть аудит кінцевих точок виконання інструментів та відмовтеся від спільних сервісних акаунтів.
- Впровадьте шлюз авторизації, що перевіряє перетин прав користувача, агента й тенанта перед викликом API.
Назви кроків узяті з блоку «Що зробити сьогодні».
Назви кроків узяті з блоку «Що зробити сьогодні». Проведіть аудит кінцевих точок виконання інструментів та відмовтеся від спільних сервісних акаунтів.. Впровадьте шлюз авторизації, що перевіряє перетин прав користувача, агента й тенанта перед викликом API.
- Проведіть аудит кінцевих точок виконання інструментів та відмовтеся від спільних сервісних акаунтів.
- Впровадьте шлюз авторизації, що перевіряє перетин прав користувача, агента й тенанта перед викликом API.
