شرکت پویا فناوران سدید ایرانیان | Pars-Secure
گزارش روایت حملهٔ Red Team — FinoPay
Red Team Operation — Attack-Chain Narrative
| کارفرما | پلتفرم پرداخت دیجیتال نمونه (FinoPay) |
| کد پروژه | PS-1405-038 |
| نوع سرویس | Red Team / Adversarial Simulation |
| نسخهٔ سند | ۱.۰ |
| تاریخ تهیه | ۱۴۰۵/۰۴/۱۰ |
| طبقهبندی | TLP:AMBER (محرمانه) |
| استاندارد مرجع | MITRE ATT&CK for Financial Services · PTES |
خلاصهٔ مأموریت
هدف این عملیات، سنجش امکانپذیری یک سناریوی مشخص مالی: «آیا یک مهاجم با یک حساب کاربری عادی میتواند وجهی را از کیف پول یک کاربر دیگر بهصورت غیرمجاز واریز کند؟» برخلاف ارزیابی پوششمحور که ۳۱ operation شناساییشده را سیستماتیک بررسی میکند، این عملیات هدفمحور است: هر ضعف فقط در صورتی بررسی شد که در مسیر رسیدن به هدف مالی قرار داشت.
روایت حمله — مراحل زنجیره
۱. شناسایی
Reconnaissance (TA0043)
نگاشت سطح حملهٔ عمومی: ۳۱ API operation در ۶ سرویس شناسایی شد. مستندات Swagger عمومی، الگوی نامگذاری /admin/* و ساختار شناسهٔ کیف پول را آشکار کرد. از این ۳۱ operation، ۸ operation در مسیر مستقیم هدف قرار گرفتند.
۲. دسترسی اولیه
Initial Access (TA0001)
ثبت حساب کاربری عادی از طریق API عمومی و دریافت توکن JWT. بررسی payload توکن: claim role برابر user — تأیید عدم دسترسی ویژه. کیف پول پیشفرض مهاجم با walletId شناختهشده ایجاد شد.
۳. کشف شناسهٔ منبع هدف
Discovery (TA0007)
بهرهبرداری از BOLA در GET /wallets/{walletId}/transactions: کاربر هدف پیشتر یک پرداخت به حساب مهاجم داشت. walletId هدف از میان سوابق تراکنشهای کیف پول مهاجم کشف شد — بدون هیچ ابزار scanning.
۴. ارتقای دسترسی
Privilege Escalation (TA0004)
بهرهبرداری از BFLA در PUT /admin/limits/{userId}: محدودیت مبلغ روزانهٔ حساب مهاجم از ۵ میلیون به ۵۰۰ میلیون تومان با یک درخواست ساده افزایش یافت — بدون خطا یا هشدار.
۵. اثرگذاری
Impact (TA0040)
بهرهبرداری از BOLA در POST /transfers/internal: با تنظیم fromWalletId برابر walletId کاربر هدف، آغاز یک انتقال وجه از کیف پول هدف به حساب مهاجم امکانپذیر شد. در چارچوب Rules of Engagement، تراکنش واقعی اجرا نشد و اثبات با Proof of Concept در محیط آزمایشی مستند شد.
نگاشت MITRE ATT&CK
| گام | Tactic | Technique | شواهد |
|---|---|---|---|
| ۱ | Reconnaissance | T1590 — Gather Victim Network Information | نگاشت ۳۱ operation از Swagger عمومی |
| ۲ | Initial Access | T1078 — Valid Accounts | ثبت حساب عادی و استخراج JWT |
| ۳ | Discovery | T1083 — Resource Enumeration (API variant) | BOLA روی /wallets/{id}/transactions برای کشف walletId هدف |
| ۴ | Privilege Escalation | T1548 — Abuse Elevation Control Mechanism | BFLA روی /admin/limits برای حذف محدودیت مبلغ روزانه |
| ۵ | Impact | T1657 — Financial Theft | BOLA روی /transfers/internal برای آغاز تراکنش از کیف پول هدف |
دستاوردهای کلیدی
تیم قرمز با زنجیر کردن سه ضعف مستقل — BOLA در خواندن تاریخچه، BFLA در مدیریت محدودیت، و BOLA در آغاز تراکنش — یک مسیر حملهٔ کامل مالی را با یک حساب کاربری عادی اثبات کرد. ضعفها بهصورت منفرد «متوسط» یا «بالا» ارزیابی میشوند، ولی در کنار هم یک سناریوی کلاهبرداری مالی واقعی ایجاد میکنند.
شکافهای دفاعی و تشخیص
- هیچ هشداری برای ۵۰ درخواست متوالی به /wallets/*/transactions با walletId های مختلف ایجاد نشد.
- دسترسی کاربر عادی به /admin/limits در لاگها ثبت شد ولی هیچ آلرت بلادرنگی تریگر نکرد.
- آغاز تراکنش با fromWalletId متعلق به کاربر دیگر ثبت نشد — غیاب anomaly detection روی الگوی تراکنش غیرعادی.
توصیههای راهبردی دفاعی
- استقرار پایش رفتاری (behavioral monitoring) برای کشف الگوی enumeration روی شناسههای منابع مالی.
- راهاندازی هشدار بلادرنگ برای دسترسی کاربر عادی به مسیرهای /admin/*.
- اعمال کنترل مالکیت fromWalletId در POST /transfers/internal — تطبیق با userId احرازهویتشده.
- بازنگری کلی معماری authorization: یک لایهٔ مرکزی برای تمام عملیات مالی.
جمعبندی
اثر اصلی این عملیات، نمایش یک مسیر حملهٔ کامل از ثبتنام تا کلاهبرداری مالی بود. هر سه ضعف بهصورت منفرد «متوسط» یا «بالا» ارزیابی میشوند، ولی در کنار هم یک ریسک وجودی برای پلتفرم ایجاد میکنند. علاوه بر اصلاح فنی، تقویت توانایی تشخیص (detection capability) برای کوتاه کردن زمان کشف مهاجم ضروری است.
میخواهید سازمان شما هم اینطور ارزیابی شود؟
ارزیابی اولیه سطح حملهٔ رایگان و بدون تعهد انجام میشود.