▶️ Дивитися відеоурок (13 хвилин)
Перш ніж переходити до захисту, я покажу, наскільки вразливою може бути система. За допомогою соціальної інженерії мені вдалося змусити нашого AI-агента розкрити свій system prompt, перелік інструментів та внутрішні інструкції. Крім того, я використав order lookup tool, щоб отримати дані чужого замовлення — і агент надав їх без жодних вагань. Це критичні вразливості, які й сьогодні масово зустрічаються в AI-застосунках.
Ми виправимо ці помилки, впровадивши чотири рівні захисту.
Перший рівень — робота з самим prompt. Я додаю чіткі межі безпеки: тепер агент відмовляється розкривати свої інструкції чи конфіденційні дані, а до кожного, хто видає себе за співробітника компанії, ставиться як до звичайного клієнта. Це посилює захист, але досвідчений зловмисник все одно може спробувати обійти prompt, тому ми не зупиняємося на цьому.
Другий рівень — локальний LLM guard. За допомогою Ollama та Llama 3.2 ми створимо окремого агента, чиє єдине завдання — класифікувати вхідні повідомлення як безпечні або небезпечні та повертати результат у форматі JSON. Я налаштовую його як middleware, щоб блокувати шкідливі запити ще до того, як вони потраплять до основного агента. Оскільки перевірка виконується локально, вона є безкоштовною для кожного запиту.
Третій рівень — tool-level authorization. Я обмежую доступ order lookup tool лише даними authenticated user. Тепер система фізично не зможе повернути чуже замовлення, незалежно від переданого order ID. Саме це рішення остаточно усуває ризик витоку даних.
Четвертий рівень — output filtering. Це middleware, що працює як сітка безпеки: він сканує відповіді та маскує конфіденційну інформацію, як-от SSN, номери кредитних карток чи API keys, перед тим, як вони покинуть систему.
У результаті ми отримали агента, якого справді важко зламати. На цьому наш цикл завершується: за одинадцять епізодів ми пройшли шлях від composer require laravel/ai до створення повноцінної, протестованої та захищеної AI-платформи.
Дякуємо, що будували цей проєкт разом із нами. Якщо ви тільки починаєте — радимо переглянути курс з першого епізоду, адже кожен урок базується на попередньому.