-Daniel Bass
Підвищення продуктивності додатків за допомогою використання агентів штучного інтелекту стає дуже поширеною практикою - незалежно від того, чи це пов'язано з гіпе в галузі або реальними корисними випадками використання.
Ці агенти штучного інтелекту, однак, часто вимагають доступу до високочутливих даних, що вводить значні ризики для безпеки.Без стандартизованих рішень з контролю доступу, команди розробників часто будують заходи безпеки з нуля, що призводить до випадків, колиАсистенти викривають конфіденційну інформацію про пацієнтадекілька агентів, які перебувають уСучасні швидкі ін'єкційні атаки. .
Захист агентів штучного інтелекту в цьому контексті стає настільки ж важливим, як і можливості самих агентів штучного інтелекту - якщо не більше.
Щоб вирішити цю проблему, миДозвольтеЯ давно працюю над структурованим підходом до безпеки, який я хотів би представити вам сьогодні:
Рамка чотирьох периметрів
Цей метод забезпечує комплексну стратегію захисту агентів AI шляхом впровадженняДжерело: Fine Grain Access Control, забезпечення відповідності, і пом'якшення потенційних векторів атаки. перш ніж я піду в рішення, давайте поговоримо більше про проблемний простір.
Проблема: ІТ ризики безпеки в чутливих доменів
Традиційні заходи безпеки додатків та механізми контролю доступу недостатні, коли мова йде про поводження з агентами штучного інтелекту.Контроль доступу на основі ролей (Roll-Based Access Control - RBAC)На відміну від традиційних додатків, де вхідні карти до передбачуваних виходів і шаблони доступу добре визначені, AI генерує унікальні відповіді для кожного запиту.
Спосіб доступу систем штучного інтелекту до даних також не відповідає стандартам безпеки. Щоб надати точні та корисні відповіді, агенти штучного інтелекту потребують широкого доступу до різних джерел даних та баз знань. Класичний RBAC виявляється занадто жорстким для цієї потреби - ви не можете просто призначати статичні дозволи, коли вимоги до даних змінюються відповідно до контексту.На основі атрибутівПринципи, що дозволяють приймати динамічні рішення.
Інша стурбованість полягає в нових векторах атак, які впроваджують системи штучного інтелекту.Традиційні заходи безпеки не були розроблені для боротьби з атаками швидкого введення, спробами вилучення моделей або атаками отруєння даних.Ці уразливості є унікальними для систем штучного інтелекту, що вимагають абсолютно нових методів захисту.
Рішення має форму всеосяжної системи безпеки, побудованої навколо чотирьох основних периметрів.
Рішення: рамки чотирьох периметрів
Оскільки додатки AI відрізняються від стандартного програмного забезпечення тим, як вони обробляють входи, отримують дані, виконують дії та генерують виходи, вони також вводять унікальні ризики безпеки.
ТІFour-Perimeter Frameworkпризначений для здійснення ідентифікаційної свідомості,Отримання дозволу протягом усього життєвого циклуВін вводить межі безпеки, які регулюють, до яких даних можуть отримати доступ моделі штучного інтелекту, які операції вони можуть виконувати, і як їхні відповіді підтверджуються.
Рамка складається з чотирьох частин:
- І
- Промпт-фільтрація - забезпечення того, щоб тільки підтверджені, безпечні входи досягали моделей AI. І
- RAG Data Protection – контроль доступу AI до зовнішніх джерел знань. І
- Безпечний зовнішній доступ – визначення дозволів агента AI при взаємодії з зовнішніми інструментами. І
- Реагування - застосування перевірок відповідності та фільтрація вихідних продуктів, створених AI. І
Застосовуючиfine-grained access control (FGA)Принципи цих периметрів, агенти AI залишаютьсяsecure, auditable, and compliant— не жертвуючи своєю гнучкістю і функціональністю.
Звідки входить FGA?
Як вже згадувалося раніше, традиційні методи контролю доступу, такі як RBAC, не справляються з динамічною, контекстно-залежною поведінкою AI. Ось де вступає в дію дрібне авторизація (FGA), зокрема через контроль доступу на основі атрибутів (ABAC) і контроль доступу на основі відносин (ReBAC):
- І
- ABAC для моделей Prompt Filtering AI обробляє неструктуровані входи, що ускладнює застосування традиційних правил безпеки. ABAC вирішує це шляхом вилучення структурованих атрибутів з AI-попросів та використання їх у прийнятті рішень щодо доступу, заснованих на політиці. І
- І
- ReBAC для RAG Data Protection Retrieval-Augmented Generation (RAG) дозволяє моделям AI витягувати інформацію з векторних баз даних. ReBAC надає природний спосіб посилення безпеки в цьому налаштуванні шляхом визначення відносин між користувачами, джерелами даних та агентами AI. Замість того, щоб призначати статичні дозволи, ReBAC динамічно надає або заперечує доступ на основі того, як об'єкти даних відносяться один до одного, дозволяючи контекст-свідомі дозволи для пошуку. І
Об'єднуючи ABAC і ReBAC, додатки AI отримують гнучкі, орієнтовані на політику механізми контролю доступу, які адаптуються до різних робочих процесів AI без необхідності ручного втручання.
Як виглядає поетапна реалізація?
Давайте пройдемо через практичну реалізацію, щоб побачитиFour-Perimeter Framework in actionЦей приклад забезпечує агента AIvalidating prompts, enforcing data protection, restricting external access, and moderating responsesЛеверингPermit.io AI Access ControlІнтеграція на кожному кроці.
Дозвольте1. Implement Prompt Filtering
Перший периметр безпеки зосереджується на валідації та очищенні входів штучного інтелекту, перш ніж вони досягають моделі.Ми можемо застосувати структуровану обробку входів та застосувати політики доступу до запрошень, перш ніж вони досягають моделі штучного інтелекту:
- І
- Авторизаційні перевірки вбудовані в поточний валідаційний трубопровід, запобігаючи несанкціонованим даним впливати на вихід AI. І
- Роль, атрибут і контроль доступу, заснований на відносинах, здійснюються, гарантуючи, що тільки затверджені параметри передаються до AI. І
- Будь-які порушення політики реєструються та блокуються в реальному часі, зберігаючи аудиторний слід рішень щодо доступу. І
Ось три способи фільтрування запрошень - від найпростішого до найсучаснішого:
- І
- Валідація токенів - Ефективний метод для простих перевірок, таких як довжина прописки або загальна допустимість запущених входів в системі. І
- У цьому методі перевірка дозволів перевіряє закономірності в текстовому записі, наприклад, якщо закономірність відповідає запиту SQL або прикладу коду. І
- Класифікація AI - найсучасніший метод в цьому списку, класифікація AI використовує AI для аналізу прописки за допомогою спеціальної системної прописки, класифікуючи її в структурований вхід, який може бути точно проаналізований в перевірці дозволів. І
Prompt Filtering with PydanticAI
Щоб найкраще продемонструвати реалізацію ефективного фільтрації проб, ось приклад використання інструментів PydanticAI для фільтрації входів користувачів до агентів AI. PydanticAI - це рамка агентів, яка використовує знамениту бібліотеку Python Pydantic та її статичні можливості для написання і перетворює її на структуровану структуру AI, яка обробляє неструктуризовані дані.
Наступний репозиторій GitHub містить повну реалізацію рамки для PydanticAI:github.com / дозволи / дозволи
@financial_agent.tool
async def validate_financial_query(
ctx: RunContext[PermitDeps],
query: FinancialQuery,
) -> bool:
"""Key checks:
- User has explicitly opted in to AI financial advice
- Consent is properly recorded and verified
- Classifies if the prompt is requesting advice
Args:
ctx: Context containing Permit client and user ID
query: The financial query to validate
Returns:
bool: True if user has consented to AI advice, False otherwise
"""
try:
# Classify if the prompt is requesting advice
is_seeking_advice = classify_prompt_for_advice(query.question)
permitted = await ctx.deps.permit.check(
# The user object with their attributes
{
"key": ctx.deps.user_id,
},
# The action being performed
"receive",
# The resource being accessed
{
"type": "financial_advice",
"attributes": {"is_ai_generated": is_seeking_advice},
},
)
if not permitted:
if is_seeking_advice:
return "User has not opted in to receive AI-generated financial advice"
else:
return "User does not have permission to access this information"
return True
except PermitApiError as e:
raise SecurityError(f"Permission check failed: {str(e)}")
2. Enforce Data Protection –
Далі ми гарантуємоretrieval-augmented generation (RAG)Забезпечуючи, що моделі AI можуть отримати доступ тільки доauthorized knowledge sourcesЦе може бути досягнуто за допомогою тонкого фільтрації даних агента AI від імені користувача в робочому процесі AI:
- І
- Політика використовує передові моделі фільтрації даних, такі як управління доступом на основі відносин, щоб дозволити передові фільтрації запитів до двигуна політики. І
- Векторні та графічні джерела, пов'язані з агентами AI, мають метадані, які можуть допомогти двигуну маніпулювати неструктурованим запитом, фільтруючи його, щоб включати тільки дозволені дані. І
- Кожного разу, коли агент отримує дані з бази знань RAG, він фільтрує результати за дозволом користувача. І
Коли програма агента виконує фільтрацію RAG, вона використовує один з наступних методів:
- І
- FilterObjects — У цьому методі графічне застосування отримує всі відповідні дані з RAG, а потім фільтрує їх за дозволами користувача. Перевага цієї функції полягає в тому, що воно зберігає двигун політики без статусу і не знає даних RAG. І
- GetUserPermissions - У цьому методі агент надає RAG неструктурований запит. RAG потім викликає функцію GetUserPermissions, додаючи запит фільтра до неструктурованого запиту RAG. Це дозволяє фільтрувати запит тільки до ресурсів, до яких користувач може отримати доступ. І
RAG Data Protection with Langchain
Langchain, відома рамка додатків AI, відома (також) своїми компонентами-ретриверами, які надають велику підтримку в налаштованих ретриверах, які можуть бути зібрані з будь-яким видом джерела даних, що полегшує впровадження безпечного RAG.SelfQueryRetriever
, ви можете обгортати звичайний RAG зGetUserPermissions
Функція, яка додасть фільтровані дані до запиту.Ось приклад PermitSelfQueryRetriever, який отримує користувача, дії та тип ресурсів RAG для фільтрації результатів для LLM:
# 1. Build a small in-memory vector store
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(docs, embedding=embeddings)
# 2. Initialize the PermitSelfQueryRetriever
retriever = PermitSelfQueryRetriever(
api_key=os.getenv("PERMIT_API_KEY", ""),
pdp_url=os.getenv("PERMIT_PDP_URL"),
user=USER,
resource_type=RESOURCE_TYPE,
action=ACTION,
llm=embeddings,
vectorstore=vectorstore,
enable_limit=False,
)
The following repository contains the full implementation of the framework for Langchain: https://github.com/permitio/langchain-permit
3. Secure External Access –
Агенти штучного інтелекту часто взаємодіють з зовнішніми API, сервісами та інструментами автоматизації. Без належного контролю доступу вони ризикують виконувати несанкціоновані дії. Таким чином, ми повинні переконатися, що операції, спрямовані на штучний інтелект, обмежені на основі політики ідентичності машини.
- І
- Використання моделей, таких як MCP, яка визначає модель сервера-клієнта, де агенти штучного інтелекту взаємодіють з зовнішніми службами, є великим кроком у забезпеченні безпеки для зовнішнього доступу до штучного інтелекту (наприклад, бази даних, API, платіжні системи). І
- Інфраструктура дій AI може використовувати сервіс, такий як Permit.io, для проведення перевірок авторизації на рівні дій, перевірки того, хто робить запит і які дії вони хочуть виконати. І
- Розробники можуть призначати ідентичності машин агентам AI, обмежуючи їх можливості тільки попередньо затвердженими функціями. І
Хоча GPT і інтерфейси природної мови не є новими, дозволяючи їм виконувати дії від імені користувачів є досить новим викликом, з яким стикаються багато інженерів.
- І
- Безпека прямого доступу - найпростіший рівень. Користувач просить агента AI виконати операцію, наприклад, HTTP-дзвінок. І
- Комунікація між агентами - на цьому наступному рівні нам потрібен каскадний потік ідентичностей і дозволів, які дозволяють агентам виконувати дії самостійно на основі принципу найменшої привілеї. І
- Потоки запитів доступу - найбільш захоплюючим рівнем зовнішнього доступу є те, коли агент AI розуміє необхідність запитувати доступ безпосередньо від людського користувача, коли він хоче виконати операцію. І
MCP, Human-in-the-Loop, and External Access
Протокол модельного контексту - це новий протокол, запроваджений компанією Anthropic, який вирішує проблему дозволу агентам штучного інтелекту виконувати проактивні дії і служить найбільшим засобом для забезпечення зовнішнього доступу.
У наступному прикладі ми покажемо MCP-сервер, який знає, як керувати потоками запитів доступу, приводячи людей в ланцюг, і використовує API Permit.io для запиту дозволів.
Повний приклад коду для сервера запитів доступу MCP можна переглянути тут:HTTPS://github.com/permitio/permit-mcp Завантажити
@mcp.tool()
async def request_access(username: str, resource: str, resource_name: str) -> dict:
"""
Initiate access request call to a specific resource in the system
Args:
username: The username of the person requesting access
resource: The resource type the user is request access for
resource_name: The name of the restaurant to request access for
"""
login = await permit.elements.login_as({ "userId": slugify(username), "tenant": "default"})
print(login)
url = f"https://api.permit.io/v2/facts/{PROJECT_ID}/{ENV_ID}/access_requests/{ELEMENTS_CONFIG_ID}/user/{slugify(username)}/tenant/default"
payload = {
"access_request_details": {
"tenant": "default",
"resource": resource,
"resource_instance": resource_name['id'],
"role": "viewer",
},
"reason": f"User {username} requests role 'viewer' for {resource_name}"
}
headers = {
"authorization": "Bearer YOUR_API_SECRET_KEY",
"Content-Type": "application/json",
}
async with httpx.AsyncClient() as client:
await client.post(url, json=payload, headers=headers)
return "Your request has been sent. Please check back later."
4. Validate AI Responses –
Останній периметр примушує до зміцнення вмісту та дотримання відповідей, що генеруються AI. Це можна зробити, створивши робочий процес, який застосовує фільтрацію, засновану на політиці, перш ніж доставляти вихід AI:
- І
- Перевірка дозволів може бути додана до програми агента, що дозволяє здійснювати виконання політики на кожному кроці ланцюга, перш ніж користувач фактично отримує відповідь. І
- Комбіновані робочі процеси перевірки даних та авторизації забезпечують, що тільки перевірлені та дозволені дані можуть рухатися вперед. І
- Відповідь, що повертається користувачам, може редагуватися на основі заздалегідь визначених обмежень, що дозволяє маскувати дані або повідомляти користувача про обмеження використання. І
Response Filtering with Langflow
У наступному прикладі ми використовуємо Langflow, візуальний редактор додатків AI без коду, щоб створити компонент перевірки дозволів, який позиціонується перед будь-якою відповіддю чату до користувача.Цей репозиторіймістить всі компоненти управління доступом, необхідні для захищених додатків Langflow.
Висновок
Системи штучного інтелекту швидко інтегруються в додатки в різних галузях промисловості, але їх рамки безпеки залишаються недорозвиненими порівняно з традиційним програмним забезпеченням.Без належного контролю доступу, що усвідомлює ідентичність, агенти штучного інтелекту ризикують викрити чутливі дані, виконати несанкціоновані операції та генерувати відповіді, які виходять за межі рекомендацій щодо відповідності.
Рамка чотирьох периметрів пропонує структурований спосіб забезпечення робочих процесів штучного інтелекту на кожному етапі – від валідації запитів та захисту даних з збільшеною генерацією (RAG) до контролю зовнішніх дій, орієнтованих на штучний інтелект, і забезпечення відповідності відповідності.
Замість того, щоб створювати контроль доступу з нуля, інтеграції Permit.io AI Access Control з PydanticAI, LangChain, MCP і LangFlow дозволяють командам вбудовувати безпеку безпосередньо в свої додатки AI, не порушуючи робочі процеси розробки.Спробуйте самі тут. .
Тобто, ця галузь все ще є відносно новою, і кращі практики для забезпечення агентів AI все ще розвиваються. рамка чотирьох периметрів є експериментальним підходом, і хоча вона забезпечує міцний фундамент, я визнаю, що реалізація в реальному світі завжди вимагає подальшого удосконалення та адаптації.
Я хотів би почути ваші відгуки, думки та ідеї про те, як поліпшити цю структуру, щоб зробити її ще кращою для готових до виробництва систем AI - коментуйте тут, або дізнайтеся мене в нашому розділі.Слатська спільнота. .