کِرِدنشیال بروکرینگ: امنیت در استقرار ایجنتهای هوش مصنوعی
خلاصهٔ کاملتر
وقتی یک ایجنت هوش مصنوعی مستقر میکنی، خیلی زود با یه معضل اساسی روبرو میشی: ایجنت برای انجام کارش به کردنشیال (کلید API، توکن دسترسی و...) نیاز داره، ولی نمیشه بهش اعتماد کامل داشت. یک ایجنت کدنویسی مثلاً باید هم با Anthropic API و هم با GitHub کار کنه؛ پس باید بهش کلید بدی. اما اگه این کلیدها لو برن چی؟
مشکل اصلی اینجاست که ایجنتها برخلاف نرمافزارهای معمولی، non-deterministic هستن؛ یعنی مسیر اجراشون ثابت نیست و به خروجی احتمالاتی مدل زبانی متصلشون بستگی داره. همین خاصیت یه بردار حمله جدید به اسم Prompt Injection ایجاد میکنه، یعنی مهاجم میتونه از طریق محتوای مخرب — نه لزوماً ورودی مستقیم کاربر — ایجنت رو گول بزنه. مثلاً یه issue مخرب در گیتهاب یا یه توییت فریبکارانه میتونه ایجنتی که مجاز به خوندن اون محتواست رو وادار به انجام کارهای ناخواسته کنه.
وقتی مهاجم بتونه ایجنت رو دستکاری کنه، یه قدم بدتر Credential Exfiltration هست؛ یعنی ایجنت رو مجبور کنه تمام کردنشیالهایی که داره (حتی process.env) رو به بیرون ارسال کنه. با این کار مهاجم مستقیماً به سرویسهایی که ایجنت باهاشون کار میکرده دسترسی پیدا میکنه.
راهحل این مشکل کِرِدنشیال بروکرینگ هست؛ یک پارادایم نوظهور امنیتی که یک پراکسی بین ایجنت و سرویسهای مقصد قرار میده. این پراکسی (که بهش «credential broker» میگن) درخواستهای خروجی ایجنت رو میگیره، کردنشیال واقعی رو به اونها وصل میکنه و بعد به سرویس مقصد ارسال میکنه — بدون اینکه ایجنت هیچوقت مقدار واقعی کردنشیال رو ببینه. Anthropic، Vercel، Cloudflare و LangChain همگی مستقل از هم به همین نتیجه رسیدن و نسخههایی از این مدل رو پیادهسازی کردن.
یکی از پیادهسازیهای اوپنسورس این مدل Agent Vault از تیم Infisical هست. در این سیستم، ایجنت به جای کردنشیال واقعی یه مقدار placeholder مثل github_token میگیره. وقتی درخواست از طریق HTTPS_PROXY به بروکر میرسه، بروکر placeholder رو با مقدار واقعی جایگزین میکنه و درخواست رو به GitHub میفرسته:
Agent → HTTPS_PROXY → Broker (swap __github_token__ → real token) → GitHub
این مکانیزم جایگزینی رشتهای هوشمندانهست چون بروکر نیازی نداره برای هر سرویس (Bearer token، API key، query param و...) منطق جداگانهای بدونه — همه جا از همون مکانیزم استفاده میکنه.
در طراحی یه بروکر خوب چند نکته کلیدی وجود داره: ایزولاسیون (ایجنت نباید از طریق kernel exploit بتونه به کردنشیالهای بروکر دسترسی پیدا کنه)، نزدیکی فیزیکی (چون تأخیر شبکه در صدها فراخوانی API پشت سر هم تأثیر بزرگی داره)، و خصوصی نگهداشتن بروکر (endpoint بروکر باید فقط از شبکه داخلی قابل دسترس باشه). مهمتر از همه اینه که بروکر باید transparent باشه و با هر ابزاری که ایجنت الان استفاده میکنه (CLI، SDK، MCP) کار کنه بدون نیاز به تغییر در کد ایجنت.
نکات کلیدی:
- ایجنتهای هوش مصنوعی به دلیل ماهیت non-deterministic در برابر Prompt Injection آسیبپذیرند
- Credential Exfiltration یعنی فریب دادن ایجنت برای ارسال کردنشیالهایش به مهاجم
- کِرِدنشیال بروکرینگ یک پراکسی بین ایجنت و سرویسها قرار میده تا ایجنت از کردنشیال استفاده کنه بدون اینکه آن را ببینه
- بروکر باید ایزوله، نزدیک به ایجنت، خصوصی، و interface-agnostic باشه
- Agent Vault یک پیادهسازی اوپنسورس از این مدل است که با مکانیزم جایگزینی placeholder کار میکنه




