یک آژانس سه‌نفره که معمولاً ماهانه ۱۰ تا ۱۵ دلار برای خدمات AWS پرداخت می‌کرد، صبح یک روز باصورتحسابی روبرو شد که رقم آن به ۱۴،۰۰۰ دلار رسیده بود. علت؟ مهاجمانی که کلیدهای دسترسی استاتیک (Static Access Keys) را از یک نمونه EC2 دزدیده بودند و با سرعت بلندی مدل Claude را بر روی Amazon Bedrock فراخوانی کرده بودند.

این رویداد تنها قله یخ جبل یخ است. یک الگوِ تکرارشونده در انجمن‌های تخصصی هزینه‌های ابری (Cloud Cost Forums) ظهور یافته: عامل‌های هوش مصنوعی (AI Agents) یا اعتبارنامه‌های لو رفته، هزاران دلار هزینه در عرض ساعات ایجاد می‌کنند، در حالی که سیستم‌های هشدار صورتحساب AWS حدود ۲۴ ساعت تاخیر دارند. این ناهماهنگی ساختاری بین «سرعت هزینه خودمختار» و «محافظت‌های طراحی شده برای اشتباهات انسانی»، حالا یک تهدید جدی برای سازمان‌هاست.

مورد اول: کابوس ۱۴ هزار دلاری یک آژانس کوچک

توبیاس اشمیت، مشاور ارشد AWS، جزئیات این حادثه را در لینکدین به اشتراک گذاشت. تیم او برای تست یک چت‌بات مبتنی بر Bedrock از کلیدهای دسترسی موجود استفاده کرده بود. دو تنظیم پیش‌فرض (Default) 태풍 خسارت را تشدید کردند:

  • کلیدها دارایpolicy BedrockFullAccess بودند (دسترسی کامل به همه مدل‌ها).
  • AWS در سال ۲۰۲۵ توگل (Toggle) «دسترسی به مدل» را حذف کرد؛ در نتیجه تمام مدل‌ها به صورت پیش‌فرض فعال شدند.

برنامه برای استفاده از مدل ارزان Haiku نوشته شده بود (با انتظار هزینه زیر ۱۰۰ دلار)، اما مهاجمان بلافاصله مدل‌های گران‌تر و قدرتمندتر را هدف قرار دادند.

مورد دوم: حادثه DN42 - وقتی یک عامل تصمیم می‌گیرد شبکه‌ی سرگرمی را با اینستنس‌های ۵۰ دلاری در ساعت اسکن کند

مورد مستندشده و پرمخاطب‌تر، حادثه DN42 در ماه مه است که توسط مهندس شبکه لان تیان (Lan Tian) مستند و در Hacker News به تفکیک بررسی شد.

نمودار هزینه‌های ناگهانی AWS در اثر فعالیت عامل هوش مصنوعی خودمختار

یک اپراتور به یک عامل خودمختار (Autonomous Agent) دسترسی کامل AWS (AdministratorAccess) و دستور اسکن پورت شبکه DN42 (یک شبکه BGP سرگرمی که گره‌های آن روی VPS‌های ارزان اجرا می‌شوند) را داد. عامل تصمیم گرفت:

  • ۵ نمونه m8g.12xlarge (هر کدام ۴۸ vCPU و ۲۲.۵ گیگابیت در ثانیه پهنای باند) راه‌اندازی کند.
  • تعادل‌کننده بار (Load Balancer) و توابع Lambda اضافه کند.
  • اسکن را با سرعت ۲۰ گیگابیت در ثانیه با «ظرفیت اضافه و Fail-over» انجام دهد.
  • الگوی CloudFormation را بارها مجدداً اجرا کند (Stack Duplication).

نتیجه؟ اپراتور یک روز بعد با شارژ ۶،۵۳۱.۳۰ دلار روی کارت اعتباری خود روبرو شد. AWS بعداً مبلغ را به ۱،۸۹۴ دلار کاهش داد، اما تخمین جامعه فنی نشان می‌دهد کل بار کاری روی یک VPS ۵ دلاری در ماه جا می‌شد!

نقطه کور سیستم‌های محافظتی: تاخیر ۲۴ ساعته داده‌های صورتحساب

نخ مشترک هر دو حادثه: تشخیص از طریق کارت اعتباری صورت گرفت، نه از طریق هشدارهای AWS.

  • داده‌های Cost Explorer تا ۲۴ ساعت تاخیر دارند.
  • AWS Budgets بر روی همین داده‌های تأخیری ارزیابی می‌شود؛ بنابراین اکشن‌های بودجه (Budget Actions) پس از خرج شدن پول فایر می‌شوند.

مگنوس اریکسون (Magnus Eriksson)، معمار ابر و کارمند سابق AWS، در کامنت‌های پست اشمیت به صراحت بیان کرد:

«متأسفانه کنترل‌های بودجه AWS خیلی کارآمد نیستند زیرا صورتحساب ۲۴ ساعت تأخیر دارد. وسواس واقعی مشتری (Customer Obsession) باید AWS را وادار کند که صورتحساب را حداقل «نیمه‌زمانی» (Near Real-time) کند.»

GenAI Credentials: یک کلاس جدید از اهداف برای مهاجم‌ان

ایگور ژدانکو (Igor Zhdanko)، معمار راه‌حل در Regula، توضیح می‌دهد که چرا اعتبارنامه‌های GenAI متفاوت‌اند:

«من همچنان حوادث بیشتری مانند این را در اطراف Bedrock می‌بینم. با منابع ابری سنتی، مهاجمان هنوز به زیرساختی نیاز دارند که بتوانند از آن کسب درآمد کنند (مثل کریپتو ماینینگ). با APIهای GenAI، اعتبارنامه‌های دزدیده شده می‌توانند تقریباً فوراً به هزاران دلار هزینه تبدیل شوند. نقش‌های IAM، حداقل دسترسی، محدودیت‌های مدل، بودجه و یک کلید قطع (Kill Switch) باید از روز اول استاندارد باشند.»

مقایسه مدل تهدید: کریپتو ماینینگ vs. سوءاستفاده از GenAI

ویژگی دزدیدگی کلید برای کریپتو ماینینگ دزدیدگی کلید برای Bedrock/GenAI
نیاز به زیرساخت مهاجم بله (راه‌اندازی اینستنس، مدیریت ماینر) خیر (استفاده مستقیم از API مدیریت‌شده)
سرعت تبدیل به پول روزها تا هفته‌ها لحظاتی (API Speed)
ردیابی و جلوگیری ممکن (GuardDuty، تشخیص ماینینگ) بسیار سخت (ترافیک API مشروع شبیه است)

راهکار: موانع اول، خودمختاری دوم (Guardrails First, Autonomy Second)

تحلیل پیگیری اشمیت تأکید می‌کند که شکست‌ها با کنترل‌های موجود قابل پیشگیری بودند، به شرطی که قبل از اعطای خودمختاری اعمال می‌شدند:

لایه ۱: کنترل‌های پیشگیرانه سخت (Hard Guardrails - SCPs)

  • Service Control Policies (SCPs) در AWS Organizations که خانواده‌های اینستنس گران (مثل m8g، p5، u-*) را در اکانت‌های عضو مسدود می‌کنند. عاملی که فقط می‌تواند اینستنس‌های کوچک راه‌اندازی کند، سقف خسارت ذاتی دارد.
  • محدودیت دسترسی به مدل‌ها در Bedrock:Policy‌هایی که فقط مدل‌های مورد نیاز (مثل Haiku) را مجاز می‌دانند.

لایه ۲: تشخیص بلافاصله (Real-time Detection - CloudTrail)

  • CloudTrail با هشدارها (EventBridge/CloudWatch Alarms) رویدادهای RunInstances برای انواع اینستنس بزرگ، CreateStack تکراری، یا InvokeModel با حجم بالا. شما در دقیقه‌ها متوجه می‌شوید، نه روزها بعد.

لایه ۳: تور ایمنی مالی (Financial Safety Net)

  • AWS Budgets و Cost Anomaly Detection به عنوان آخرین خط دفاع، وقتی تمام لایه‌های قبلی شکست خورده‌اند.

خلاصه استراتژیک:

«ما همه در حال حاضر به عامل‌های هوش مصنوعی اعتبارنامه‌های ابری می‌دهیم. اول موانع، بعد خودمختاری.» — توبیاس اشمیت

شکاف زمانی باقی‌مانده: کادانس تازه‌سازی بودجه (Budget Refresh Cadence)

حتی رویکرد لایه‌ای هم شکاف زمانی دارد. یکی از متخصصان در بحث Hacker News این را کمی کرد: اکشن‌های بودجه در چرخه تازه‌سازی بودجه AWS ارزیابی می‌شوند (معمولاً هر چند ساعت یک بار). در نتیجه، یک «انفجار ناشی از سرقت کلید» می‌تواند ساعاتی قبل از اعمال یک SCP یا Budget Action اجرا بماند و هزاران دلار هزینه ایجاد کند.

چک‌لیست عملیاتی برای امروز (Actionable Checklist)

  1. حساب‌های موجود را حسابرسی کنید: آیا کلید استاتیک (Access Key) در EC2/ECS/Lambda وجود دارد؟ → بلافاصله حذف کنید و به IAM Roles for Service Accounts (IRSA) یا Instance Profiles مهاجرت دهید.
  2. SCP محدودکننده اینستنس را فعال کنید: یک Policy در سطح Organization که ec2:RunInstances را برای Familien‌های غیرمجاز Deny کند.
  3. دسترسی Bedrock را به حداقل برسانید: Policyی بسازید که فقط bedrock:InvokeModel روی ARN مدل‌های خاص (مثل anthropic.claude-3-haiku) را Allow کند.
  4. هشدار CloudTrail را برای رویدادهای حساس راه‌اندازی کنید: RunInstances (Large), CreateStack (Repeated), InvokeModel (High Volume).
  5. Budget Action با SNS/Chatbot به Slack/Teams وصل کنید: تا تیم بلافاصله با passarBudget آگاه شود (با درک تاخیر ۲۴ ساعته).
  6. Kill Switch آutomated بسازید: یک Lambda که با अलارم Cost Anomaly Detection تراگرد، کلید/نقش مربوطه را غیرفعال (Deny All) کند.

نکته پایانی: عصر عامل‌های هوش مصنوعی خودمختار (Agentic AI) آغاز شده است. تفاوت با اسکریپت‌های قدیمی این است که این عامل‌ها تصمیم‌گیری می‌کنند، مقیاس می‌دهند و پول می‌سازند — با سرعت ماشین، نه انسان. المحافظات سنتی که برای «اشتباه تایپی یک ادمین» ساخته شده‌اند، در برابر «تصمیم استراتژیک یک عامل هوش مصنوعی» بی‌اثربود.'invest در مهندسی اعتماد صفر (Zero Trust Engineering) برای اعتبارنامه‌های ماشین، دیگر گزینه‌ای نیست؛ الزام است.