עצירת credential stuffing ב-Edge
כיצד tracio.ai מזהה ניסיונות התחברות אוטומטיים לפני שהם מגיעים למערכת האימות שלך — בשילוב device fingerprints, בדיקות velocity ואותות התנהגותיים.
מתקפות credential stuffing
משתמשות בכלים אוטומטיים כדי לבדוק צירופים גנובים של שם משתמש וסיסמה מול דפי התחברות. המתקפות עצומות בהיקפן — מפעיל בודד עשוי לבדוק מיליוני אישורי גישה ביום על פני מאות אתרי מטרה. הגנות מסורתיות כמו הגבלת קצב ו-CAPTCHA אינן מספיקות מכיוון שהתוקפים מפזרים את הבקשות שלהם על פני אלפי כתובות IP ומשתמשים בשירותים לפתרון CAPTCHA. כך אנחנו עוצרים credential stuffing ב-edge, לפני שהבקשות מגיעות למערכת האימות שלך.
משטח המתקפה
מבצע credential stuffing טיפוסי משתמש ברשימת אישורי גישה גנובים (זמינה בשווקי ה-dark web תמורת סכום נמוך כמו 10 דולר למיליון רשומות), בכלי אוטומציה (בדרך כלל סקריפט מותאם אישית או כלי כמו OpenBullet), וב-pool של כתובות IP מסוג proxy (residential proxies שמתחלפות בכל בקשה כדי לחמוק מהגבלת קצב מבוססת-IP).
התוקף מגדיר את הכלי שלו לשלוח בקשות התחברות בקצב מבוקר — איטי מספיק כדי לא להפעיל הגבלות קצב פשוטות, אך מהיר מספיק כדי לבדוק אלפי אישורי גישה בשעה. כל בקשה מגיעה מכתובת IP שונה, עם מחרוזת user agent שונה, מה שגורם לה להיראות כמו זרם של ניסיונות התחברות לגיטימיים ממשתמשים שונים.
מדוע הגבלת קצב נכשלת
הגבלת קצב מבוססת-IP היא קו ההגנה הראשון שרוב הצוותים פורסים, והיא הראשונה להיכשל. שירותי residential proxy מספקים גישה למיליוני כתובות IP אמיתיות — נתבים ביתיים, מכשירים ניידים ומכשירי IoT — שמתחלפות בכל בקשה. מנקודת המבט של השרת, כל ניסיון התחברות מגיע מ-IP residential ייחודי שאין לו היסטוריה של שימוש לרעה.
הגבלת קצב מבוססת-חשבון (הגבלת ניסיונות התחברות לכל שם משתמש) יעילה יותר אך יוצרת וקטור של denial-of-service: תוקף יכול לנעול משתמשים לגיטימיים מחוץ לחשבון על ידי כישלון מכוון של ניסיונות התחברות מרובים מול שמות המשתמש שלהם.
device fingerprinting כבסיס
device fingerprinting משנה את המשוואה מכיוון שהיא מזהה את המכשיר שמריץ את המתקפה, ולא את ה-IP שבו הוא משתמש. כלי credential stuffing שרץ על מכונה בודדת או על חוות VM מייצר device fingerprint עקבי על פני כל הבקשות שלו, ללא קשר לאיזו כתובת proxy IP הוא מחליף בכל פעם.
מנוע ה-Bot Detection שלנו מזהה את כלי האוטומציה עצמם. Selenium מותיר artifacts של navigator.webdriver. ל-Puppeteer ול-Playwright יש מאפיינים ייחודיים של סביבת ריצת JavaScript. ל-Headless Chrome חסרים ממשקי API ספציפיים של דפדפן שקיימים ב-Chrome עם ממשק גרפי. אפילו לקוחות HTTP מותאמים אישית שאינם מריצים JavaScript מזוהים באמצעות TLS fingerprinting — הודעות ה-Client Hello שלהם חושפות את ספריית ה-HTTP הבסיסית.
מעקב velocity לפי מכשיר
ברגע שיש לנו מזהה מכשיר יציב (באמצעות Device Identification), אנחנו יכולים ליישם בדיקות velocity ברמת המכשיר ולא ברמת ה-IP. אם מכשיר בודד מנסה 50 התחברויות ב-5 דקות — ללא קשר לכמה כתובות IP שונות הבקשות הללו הגיעו מהן — הדפוס הוא ללא ספק credential stuffing.
מודול ה-IP Intelligence שלנו עוקב אחר velocity בשלושה חלונות זמן: 5 דקות, שעה אחת ו-24 שעות. גישה רב-חלונית זו תופסת גם מתקפות אגרסיביות (מאות ניסיונות בדקה) וגם מתקפות slow-and-low (מספר ניסיונות בשעה הנמשכות לאורך ימים).
ניתוח אותות התנהגותיים
מעבר ל-bot detection ומעקב velocity, ניתוח ה-Smart Signals שלנו בוחן אותות התנהגותיים שמבחינים בין מתקפות אוטומטיות לבין התחברויות לגיטימיות. משתמשים אמיתיים מפגינים שונות טבעית בתזמון הבקשות, במהירות ההקלדה ובדפוסי הניווט. כלים אוטומטיים נוטים לייצר תזמון עקבי מכנית, כותרות בקשה זהות, וללא תנועות עכבר או אירועי גלילה.
אנחנו גם בודקים אי-עקביות באותות שמעידה על spoofing של הסביבה. דפדפן שטוען שהוא Chrome על macOS אך מציג פרמטרי WebGL המשויכים ל-VM של Linux מסומן מיד. מחרוזת user agent שאינה תואמת את ה-TLS fingerprint מפעילה התראת חבלה.
פריסה ב-Edge
המפתח לעצירת credential stuffing הוא לעצור אותו לפני שהוא מגיע למערכת האימות שלך. ה-agent שלנו נטען בדף ההתחברות ואוסף אותות במהלך טעינת הדף — לפני שהמשתמש (או ה-bot) שולח את אישורי הגישה. תוצאות ה-fingerprint וה-bot detection זמינות עד למועד שליחת טופס ההתחברות, מה שמאפשר לשרת שלך לדחות ניסיונות אוטומטיים מיד.
עבור מטרות בנפח גבוה, אנו ממליצים לפרוס את האינטגרציה של Cloudflare Worker או CloudFront Lambda@Edge שלנו, שמריצה אימות fingerprint ב-CDN edge. משמעות הדבר היא שבקשות credential stuffing נחסמות בצומת ה-edge הקרוב ביותר לתוקף, ולעולם אינן מגיעות לשרתי ה-origin שלך.
תוצאות
הלקוחות שלנו מדווחים על ירידה של 99% בנפח ה-credential stuffing לאחר פריסת tracio.ai בדפי ההתחברות שלהם. ה-1% שנותר מורכב ממתקפות מתוחכמות ביותר המשתמשות באוטומציה מלאה של דפדפן עם אותות מזויפים בקפידה — אשר נתפסות על ידי הזיהוי הרב-שיטתי שלנו בתוך העשרות הראשונות של הבקשות ככל שדפוסי ה-velocity מתגלים.