Credential Stuffing چیست؟
Credential Stuffing یک روش حمله سایبری است که در آن مهاجمان از لیستهای اطلاعات کاربری لو رفته (شامل نامکاربری و رمزعبور) برای نفوذ به یک سیستم استفاده میکنند. این حمله از رباتها برای خودکارسازی و افزایش مقیاس استفاده کرده و بر این فرض استوار است که بسیاری از کاربران از یک نامکاربری و رمزعبور در چندین سرویس مختلف استفاده میکنند. آمارها نشان میدهند که تقریباً ۰٫۱% از اطلاعات کاربری لو رفته، اگر در سرویس دیگری امتحان شوند، منجر به ورود موفق خواهند شد.
Credential Stuffing بهدلایل زیر بهعنوان یک بردار تهدید در حال افزایش شناخته میشود:
- دسترسی گسترده به پایگاهدادههای عظیمی از اطلاعات کاربری لو رفته: برای مثال، “Collection #1-5” که ۲۲ میلیارد ترکیب نامکاربری و رمزعبور را بهصورت متن ساده (plaintext) برای جامعه هکرها در دسترس قرار داد.
- رباتهای پیشرفتهتر: این رباتها میتوانند بهطور همزمان تلاشهای متعددی برای ورود انجام دهند و وانمود کنند که از آدرسهای IP مختلف منشاء میگیرند. این رباتها اغلب میتوانند از اقدامات امنیتی ساده مانند مسدودسازی IPهایی که تلاشهای ناموفق زیادی دارند، عبور کنند.
چرا Credential Stuffing مؤثر است؟
- استفاده مکرر از رمز عبور توسط کاربران
بسیاری از کاربران از یک نامکاربری و رمز عبور یکسان در چندین سرویس و وبسایت استفاده میکنند. این عادت به دلیل سهولت در بهخاطر سپردن اطلاعات ورود است، اما یک نقطهضعف بزرگ امنیتی ایجاد میکند. اگر اطلاعات کاربری در یک سرویس لو برود، مهاجمان میتوانند از آن برای نفوذ به سایر سرویسها استفاده کنند.
- دسترسی گسترده به دادههای لو رفته
بانکهای اطلاعاتی عظیمی از اطلاعات کاربری افشا شده (مانند پایگاهداده Collection #1-5) بهراحتی در اینترنت یا در بازارهای سیاه (Dark Web) در دسترس هکرها قرار دارند. این پایگاهها حاوی میلیاردها ترکیب نامکاربری و رمز عبور هستند که بهصورت آماده برای حملات Credential Stuffing استفاده میشوند.
- خودکارسازی حملات با استفاده از رباتها
رباتها میتوانند حملات Credential Stuffing را در مقیاس بزرگ اجرا کنند. آنها به مهاجمان این امکان را میدهند که بهطور همزمان هزاران ترکیب کاربری و رمز عبور را در سرویسهای مختلف امتحان کنند، بدون اینکه به تلاش انسانی نیاز باشد.
- این رباتها اغلب آدرسهای IP مختلف را جعل میکنند تا شناسایی و مسدود نشوند.
- ابزارهای پیشرفته حتی میتوانند CAPTCHA را دور بزنند.
- نبود احراز هویت چندمرحلهای (MFA)
در بسیاری از وبسایتها و سرویسها، احراز هویت فقط به یک رمز عبور متکی است. اگر رمز عبور درست باشد، مهاجمان بهراحتی میتوانند وارد حساب شوند. در صورتی که MFA فعال باشد، حتی در صورت دستیابی به رمز عبور، مهاجم نمیتواند وارد شود.
- ضعف در نظارت امنیتی
برخی از سازمانها فاقد سیستمهای نظارتی قوی هستند که تلاشهای مکرر ورود از منابع مشکوک را تشخیص دهند.
- عدم اعمال محدودیت بر تعداد تلاشهای ورود.
- مسدود نکردن آدرسهای IP مشکوک.
- اطلاعات بیشتر در حسابها
اغلب حسابهای کاربری در سرویسهای مختلف حاوی اطلاعات ارزشمند شخصی، مالی یا تجاری هستند. مهاجمان میتوانند:
- اطلاعات حساس کاربران را استخراج کنند.
- از حساب برای کلاهبرداریهای مالی یا انجام حملات دیگر مانند فیشینگ استفاده کنند.
- هویت قربانیان را سرقت کرده یا از حسابها در بازارهای سیاه استفاده کنند.
- ساده بودن اجرای حملات برای مهاجمان
Credential Stuffing برخلاف بسیاری از حملات سایبری نیاز به مهارت پیچیده یا دانش تخصصی ندارد. ابزارهای آمادهای در اینترنت موجود است که به مهاجمان امکان اجرای حمله را میدهد.
- ناکارآمدی برخی تدابیر امنیتی ساده
روشهای امنیتی پایه مانند مسدود کردن IP یا استفاده از CAPTCHA، بهدلیل تکنیکهای پیشرفته مهاجمان (مانند جعل IP یا استفاده از مرورگرهای بدون رابط کاربری)، در برخی موارد ناکارآمد هستند.
Credential Stuffing در مقابل حملات Brute Force
Credential Stuffing به حمله Brute Force شبیه است، اما تفاوتهای مهمی بین آنها وجود دارد:
- حملات Brute Force سعی میکنند بدون داشتن زمینه قبلی، اطلاعات کاربری را حدس بزنند: این کار با استفاده از رشتههای تصادفی، الگوهای رایج رمز عبور، یا دیکشنریهایی از عبارات متداول انجام میشود.
- حملات Brute Force زمانی موفق میشوند که کاربران رمزهای ساده و قابل حدس انتخاب کنند.
- حملات Brute Force فاقد اطلاعات زمینهای و دادههای ناشی از نقضهای امنیتی قبلی هستند، بنابراین نرخ موفقیت ورود آنها بسیار پایینتر است.
در یک اپلیکیشن وب مدرن که دارای اقدامات امنیتی اولیه است، احتمال شکست خوردن حملات Brute Force زیاد است، در حالی که حملات Credential Stuffing ممکن است موفق شوند. دلیل این امر این است که حتی اگر رمزهای عبور قوی اعمال شوند، کاربران ممکن است همان رمز عبور را در سرویسهای مختلف استفاده کنند که منجر به خطر نفوذ میشود.
نحوه عملکرد حملات Credential Stuffing
در زیر فرآیند معمولی که یک مهاجم در یک حمله Credential Stuffing در مقیاس بزرگ دنبال میکند، شرح داده شده است:
- راهاندازی ربات: مهاجم یک ربات تنظیم میکند که قادر است بهطور خودکار و بهصورت همزمان وارد حسابهای کاربری متعددی شود و در عین حال آدرسهای IP مختلف را جعل کند.
- اجرای فرآیند خودکار: مهاجم یک فرآیند خودکار را اجرا میکند تا بررسی کند که آیا اطلاعات کاربری سرقت شده در وبسایتهای مختلف کار میکنند یا خیر. این فرآیند بهصورت موازی در چندین سایت اجرا میشود تا نیاز به تلاشهای مکرر برای ورود به یک سرویس خاص کاهش یابد.
- نظارت بر ورودهای موفق: مهاجم ورودهای موفق را زیر نظر میگیرد و اطلاعات شناسایی شخصی، اطلاعات کارتهای اعتباری یا سایر دادههای ارزشمند را از حسابهای در معرض خطر استخراج میکند.
- ذخیره اطلاعات حسابها برای استفادههای بعدی: اطلاعات حسابهای نفوذشده را برای استفادههای آینده ذخیره میکند، مانند حملات فیشینگ یا تراکنشهای دیگری که توسط سرویس به خطر افتاده امکانپذیر است.
ابزارها و تکنیکهایی که مهاجمان در حملات Credential Stuffing استفاده میکنند:
- پایگاه دادههای اطلاعات کاربری لو رفته
- منبع اصلی:
مهاجمان از بانکهای اطلاعاتی حاوی نامهای کاربری و رمزهای عبور افشا شده استفاده میکنند. این دادهها معمولاً از حملات قبلی یا نقض امنیتی جمعآوری شده و در بازارهای سیاه یا حتی بهصورت رایگان در دسترس قرار میگیرند.- مثال: مجموعههای معروف مانند Collection #1-5 که حاوی میلیاردها ترکیب نامکاربری و رمز عبور است.
- رباتهای خودکار
- توضیح:
مهاجمان از رباتها برای اجرای خودکار حملات در مقیاس وسیع استفاده میکنند. این رباتها هزاران تلاش برای ورود به حسابهای کاربری را در سرویسهای مختلف انجام میدهند. - ویژگیها:
- ارسال درخواستهای متعدد بهطور همزمان.
- دور زدن CAPTCHA یا تأخیرهای مصنوعی.
- جعل IP برای جلوگیری از شناسایی.
- ابزارهای معروف:
- Sentry MBA
- SNIPR
- OpenBullet
- جعل آدرس IP (IP Spoofing)
- توضیح:
برای جلوگیری از شناسایی و مسدودسازی، مهاجمان آدرسهای IP خود را تغییر داده یا از شبکههای پراکسی استفاده میکنند. - ابزارها:
- استفاده از VPNها یا شبکههای پراکسی برای ایجاد آدرسهای IP متفاوت.
- ابزارهای مخصوصی که بهطور خودکار آدرس IP را تغییر میدهند.
- مرورگرهای بدون رابط کاربری (Headless Browsers)
- توضیح:
مرورگرهای بدون رابط کاربری مانند PhantomJS و Puppeteer به مهاجمان اجازه میدهند تا عملیات ورود را بدون تعامل مستقیم انسانی اجرا کنند. - قابلیتها:
- انجام تعاملات پیشرفته، مانند پر کردن فرمها یا دور زدن CAPTCHA.
- شبیهسازی رفتارهای انسانی برای جلوگیری از شناسایی.
- دور زدن CAPTCHA
- روشها:
- استفاده از سرویسهای شخص ثالث که CAPTCHAها را با کمک انسان حل میکنند (مانند سرویسهای CAPTCHA-solving).
- استفاده از تکنیکهای هوش مصنوعی برای شناسایی و حل CAPTCHA.
- استفاده از ابزارهای خودکار مانند Anti-Captcha Plugins.
- ابزارهای تحلیل اطلاعات کاربری
- توضیح:
مهاجمان از ابزارهای تحلیل برای شناسایی الگوهای رمز عبور یا یافتن اطلاعات تکراری در دادههای لو رفته استفاده میکنند. - مثال:
- ابزارهایی برای مرتبسازی دادهها و شناسایی رمزهای عبور پرتکرار.
- استفاده از اسکریپتها برای بررسی اعتبار دادهها.
- حملات چندمرحلهای (Multiphase Attacks)
- توضیح:
مهاجمان ممکن است Credential Stuffing را بهعنوان بخشی از یک حمله بزرگتر استفاده کنند. - مثال:
- حمله اولیه برای شناسایی حسابهای معتبر.
- استفاده از این حسابها برای حملات فیشینگ یا سرقت اطلاعات مالی.
- دور زدن محدودیت نرخ درخواست (Rate Limiting)
- روشها:
- استفاده از هزاران آدرس IP برای دور زدن محدودیت نرخ درخواست در سرورها.
- ارسال درخواستها به صورت نامنظم برای شبیهسازی رفتار طبیعی کاربران.
- استفاده از شبکههای پراکسی (Proxy Networks)
- توضیح:
مهاجمان از شبکههای پراکسی برای ناشناس ماندن و ارسال درخواستها از موقعیتهای مختلف استفاده میکنند. - ابزارها:
- شبکههای پراکسی عمومی یا پولی.
- سرویسهایی مانند Tor یا SOCKS5 Proxies.
- ترکیب ابزارها و اسکریپتهای سفارشی
- توضیح:
مهاجمان حرفهای معمولاً ابزارهای موجود را با اسکریپتهای سفارشی ترکیب میکنند تا حملات را کارآمدتر کنند. - قابلیتها:
- شخصیسازی تنظیمات حمله بر اساس هدف.
- خودکارسازی پردازش دادهها و ارسال درخواستها.
پیشگیری از حملات Credential Stuffing
اقدامات زیر میتوانند به محافظت از وبسایت شما در برابر حملات Credential Stuffing کمک کنند:
- احراز هویت چندمرحلهای (Multi-Factor Authentication یا MFA)
- توضیح: از کاربران بخواهید علاوه بر چیزی که میدانند (مانند رمز عبور)، چیزی که دارند (مانند تلفن همراه یا توکن دسترسی) را نیز ارائه دهند. این روش بهترین دفاع در برابر حملات Credential Stuffing است، زیرا رباتهای مهاجم نمیتوانند روشهای فیزیکی احراز هویت را فراهم کنند.
- چالش: ممکن است امکانپذیر نباشد MFA را برای همه کاربران اعمال کرد. در این صورت، میتوان آن را با روشهای دیگر ترکیب کرد، مثلاً فقط در ترکیب با اثر انگشت دستگاه از MFA استفاده شود.
- استفاده از CAPTCHA
- توضیح: CAPTCHA از کاربران میخواهد عملی انجام دهند تا اثبات کنند انسان هستند. این میتواند اثربخشی حملات را کاهش دهد.
- چالش: هکرها میتوانند از مرورگرهای بدون رابط کاربری (headless browsers) برای دور زدن CAPTCHA استفاده کنند. مانند MFA، CAPTCHA نیز بهتر است با روشهای دیگر ترکیب شود و فقط در سناریوهای خاص اعمال گردد.
- اثر انگشت دستگاه (Device Fingerprinting)
- توضیح: با استفاده از جاوااسکریپت اطلاعات دستگاه کاربر را جمعآوری کرده و برای هر نشست یک “اثر انگشت” ایجاد کنید. این اثر انگشت میتواند ترکیبی از سیستمعامل، زبان، مرورگر، منطقه زمانی و غیره باشد.
- مزایا: اگر یک ترکیب خاص از این پارامترها چند بار پشت سر هم وارد شود، احتمالاً یک حمله است.
- پیشنهاد:
- برای حملات مشکوک، اقدامات شدیدتری مانند مسدودسازی IP اعمال کنید.
- برای تشخیصهای کمتر حساس، اقداماتی مثل مسدودسازی موقت اعمال کنید.
- یک ترکیب رایج اثر انگشت: سیستمعامل + موقعیت جغرافیایی + زبان.
- مسدودسازی IP (IP Blacklisting)
- توضیح: مهاجمان معمولاً از یک مجموعه محدود از IP استفاده میکنند. میتوانید IPهایی را که تلاش میکنند به حسابهای مختلف وارد شوند، مسدود یا تحت نظارت قرار دهید.
- نکته: برای کاهش نتایج مثبت کاذب، IPهای آخرین تلاشهای ورود به یک حساب خاص را با IPهای مشکوک مقایسه کنید.
- محدود کردن نرخ ترافیک از منابع غیرمسکونی (Rate-Limit Non-Residential Traffic)
- توضیح: ترافیکی که از منابعی مانند خدمات ابری (مانند Amazon Web Services) میآید، معمولاً ترافیک ربات است. این ترافیک باید با دقت بیشتری مدیریت شود.
- اقدامات:
- محدودیتهای شدید نرخ ترافیک اعمال کنید.
- IPهای دارای رفتار مشکوک را مسدود یا ممنوع کنید.
- مسدود کردن مرورگرهای بدون رابط کاربری (Block Headless Browsers)
- توضیح: مرورگرهایی مثل PhantomJS که بدون رابط کاربری عمل میکنند، با استفاده از فراخوانیهای جاوااسکریپت به راحتی قابل شناسایی هستند.
- اقدام: دسترسی این مرورگرها را مسدود کنید، زیرا نشاندهنده رفتار مشکوک هستند.
- ممنوع کردن استفاده از آدرس ایمیل به عنوان شناسه کاربری
- توضیح: حملات Credential Stuffing بر اساس استفاده مجدد از نامکاربری یا شناسههای حساب در سرویسهای مختلف انجام میشود. این احتمال در صورتی که شناسه کاربر آدرس ایمیل باشد، بیشتر است.
- اقدام: اجازه ندهید کاربران از ایمیل خود به عنوان شناسه حساب استفاده کنند تا شانس استفاده مجدد از ترکیب نامکاربری/رمز عبور در سایتهای دیگر کاهش یابد.
راهکار مدیریت ربات Imperva
راهکار مدیریت ربات پیشرو در صنعت Imperva تمام بهترین روشهای ذکر شده را برای محافظت در برابر رباتهای مخرب پیادهسازی میکند. علاوه بر این، یک لایه امنیتی خودکار اضافه میکند تا از حملاتی مانند Credential Stuffing، Carding (سرقت اطلاعات کارت اعتباری)، Ticketing (سوءاستفاده از سیستمهای رزرو) و بسیاری حملات دیگر که از طریق رباتهای مخرب انجام میشوند، جلوگیری کند.
علاوه بر محافظت در برابر رباتهای مخرب، Imperva حفاظت چندلایهای ارائه میدهد تا اطمینان حاصل شود که وبسایتها و برنامههای کاربردی در دسترس، ایمن و قابل استفاده هستند. راهکار امنیتی برنامههای کاربردی Imperva شامل موارد زیر است:
- حفاظت DDoS
- توضیح: اطمینان از دسترسی پایدار وبسایت در هر شرایطی. از هر نوع حمله DDoS، با هر اندازه، که ممکن است دسترسی به وبسایت و زیرساخت شبکه را مختل کند، جلوگیری میکند.
- شبکه تحویل محتوا (CDN)
- توضیح: بهبود عملکرد وبسایت و کاهش هزینههای پهنای باند با استفاده از یک CDN طراحیشده برای توسعهدهندگان. محتوای استاتیک را در لبه شبکه ذخیره کرده و APIها و وبسایتهای دینامیک را سرعت میبخشد.
- فایروال برنامههای کاربردی وب (WAF)
- توضیح: یک راهکار ابری که ترافیک قانونی را میپذیرد و ترافیک مخرب را مسدود میکند و برنامهها را در لبه شبکه ایمن نگه میدارد. WAF دروازهای نیز از برنامهها و APIهای درون شبکه محافظت میکند.
- امنیت API
- توضیح: APIها را محافظت میکند و اطمینان حاصل میکند که فقط ترافیک مجاز به نقاط پایانی API دسترسی داشته باشد. همچنین، بهرهبرداری از آسیبپذیریها را شناسایی و مسدود میکند.
- حفاظت از تصاحب حساب کاربری (Account Takeover Protection)
- توضیح: از یک فرآیند تشخیص مبتنی بر نیت استفاده میکند تا تلاشهای انجامشده برای تصاحب حسابهای کاربری و سوءاستفاده از آنها را شناسایی و دفع کند.
- RASP (محافظت از زمان اجرای برنامه)
- توضیح: از برنامههای شما در برابر حملات شناختهشده و Zero-Day از داخل محافظت میکند. این محافظت سریع و دقیق است و نیازی به امضای خاص یا حالت یادگیری ندارد.
نمونههای واقعی از حملات Credential Stuffing
. حمله به شرکت دیزنی+ (Disney+)
- زمان: نوامبر ۲۰۱۹
- شرح:
مدت کوتاهی پس از راهاندازی سرویس استریمینگ دیزنی+، هزاران حساب کاربری هک شد. مهاجمان از اطلاعات کاربری لو رفته در حملات Credential Stuffing استفاده کردند و به حسابهای کاربران دسترسی پیدا کردند. - پیامدها:
- کاربران نتوانستند به حسابهای خود دسترسی داشته باشند.
- اطلاعات حسابها در بازار سیاه به فروش رسید.
- دلایل موفقیت:
- بسیاری از کاربران از رمزهای عبور یکسان در سرویسهای دیگر استفاده کرده بودند.
- عدم استفاده از احراز هویت چندمرحلهای.
- حمله به شرکت Dunkin’ Donuts
- زمان: فوریه ۲۰۱۹
- شرح:
مهاجمان به سیستم برنامه وفاداری (Loyalty Program) شرکت Dunkin’ Donuts حمله کردند. با استفاده از اطلاعات کاربری لو رفته، آنها حسابهای کاربران را هدف قرار دادند و امتیازات وفاداری را سرقت کردند. - پیامدها:
- اطلاعات حساس کاربران، مانند نام، ایمیل و شماره تماس به خطر افتاد.
- ارزشهای نقدی امتیازات دزدیده شدند.
- دلایل موفقیت:
- رمزهای عبور ضعیف و تکراری کاربران.
- عدم وجود محدودیتهای قوی برای تلاشهای ناموفق ورود.
- حمله به شرکت Zoom
- زمان: آوریل ۲۰۲۰
- شرح:
در زمان اوج استفاده از سرویسهای ویدئوکنفرانس مانند Zoom، مهاجمان Credential Stuffing را برای دسترسی به حسابهای کاربران اجرا کردند. اطلاعات حسابها در دارک وب به فروش گذاشته شد. - پیامدها:
- ورود غیرمجاز به جلسات ویدئویی (Zoom-Bombing).
- انتشار اطلاعات شخصی کاربران.
- دلایل موفقیت:
- استفاده کاربران از نامکاربری و رمز عبور مشابه در سرویسهای مختلف.
- عدم اجرای قوی احراز هویت چندعاملی.
- حمله به سیستمهای بانکداری آنلاین HSBC
- زمان: مارس ۲۰۱۸
- شرح:
حملهای به سیستم بانک HSBC انجام شد که در آن مهاجمان از Credential Stuffing برای دسترسی به حسابهای آنلاین مشتریان استفاده کردند. - پیامدها:
- اطلاعات مالی و تراکنشهای کاربران به خطر افتاد.
- اعتماد مشتریان به بانک کاهش یافت.
- دلایل موفقیت:
- استفاده از رمزهای عبور تکراری توسط کاربران.
- عدم تشخیص سریع رفتارهای غیرعادی در سیستم.
- حمله به شرکت Zynga
- زمان: سپتامبر ۲۰۱۹
- شرح:
حملهای که اطلاعات ۱۷۰ میلیون کاربر Zynga را به خطر انداخت. اطلاعات کاربران در این نقض داده شامل ایمیلها و رمزهای عبور رمزنگاریشده بود. پس از آن، این اطلاعات برای Credential Stuffing استفاده شد. - پیامدها:
- اطلاعات کاربری در سرویسهای دیگر نیز به خطر افتاد.
- افزایش فشار امنیتی بر سایر سرویسها برای مقابله با حملات مرتبط.
- دلایل موفقیت:
- وجود اطلاعات ارزشمند در پایگاهداده Zynga.
- استفاده کاربران از رمزهای عبور مشابه.
- حمله به British Airways
- زمان: اکتبر ۲۰۱۸
- شرح:
British Airways قربانی حمله Credential Stuffing شد که به نفوذ به سیستم برنامه وفاداری کاربران منجر شد. مهاجمان به اطلاعات شخصی و مالی دسترسی پیدا کردند. - پیامدها:
- سرقت اطلاعات کارتهای اعتباری کاربران.
- جریمههای سنگین برای عدم رعایت GDPR (حریم خصوصی دادهها).
- دلایل موفقیت:
- ضعف در سیستمهای امنیتی و نظارتی.
- استفاده کاربران از رمزهای عبور قابل حدس و تکراری.
- حمله به Reddit
- زمان: ۲۰۱۸
- شرح:
مهاجمان از Credential Stuffing برای دسترسی به حسابهای کاربران Reddit استفاده کردند. این حمله به افشای ایمیلها و فعالیتهای کاربران انجامید. - پیامدها:
- نقض حریم خصوصی کاربران.
- آسیب به شهرت Reddit.
- دلایل موفقیت:
- نبود MFA برای تمامی کاربران.
- استفاده از رمزهای عبور تکراری توسط کاربران.
https://www.imperva.com/learn/application-security/credential-stuffing/
https://owasp.org/www-community/attacks/Credential_stuffing