מהו credential stuffing?
credential stuffing (מילוי אישורים) היא התקפה אוטומטית שבה זוגות גנובים של שם משתמש וסיסמה מדליפה נבדקים מול דפי ההתחברות של שירותים אחרים בקנה מידה מסיבי, תוך ניצול העובדה שאנשים ממחזרים את אותה סיסמה באתרים רבים.
בניגוד לניחוש סיסמאות, credential stuffing אינו מנסה צירופים אקראיים — הוא משחזר אישורים שכבר ידוע שהם תקפים במקום כלשהו, כך שאפילו שיעור הצלחה נמוך מניב חשבונות פרוצים רבים ברשימה גדולה. זהו אחד הנתיבים הנפוצים ביותר להשתלטות על חשבון ואחד האיומים האוטומטיים בעלי הנפח הגבוה ביותר באינטרנט. מדריך זה מסביר כיצד ההתקפה עובדת, מדוע היא מצליחה כה תדיר, מהם סימניה המסגירים וכיצד ההגנות ברמת המכשיר עוצרות אותה היכן שהגבלות קצב וסיסמאות נכשלות.
מהו credential stuffing?
credential stuffing הוא השחזור האוטומטי בקנה מידה גדול של אישורי התחברות שנגנבו קודם מול נקודת קצה האימות של יעד, בתקווה שהמשתמשים מיחזרו את האישורים הללו. זו התקפה של קנה מידה ומיחזור, לא של תחכום.
התוקף מתחיל ברשימה של זוגות אמיתיים של שם משתמש וסיסמה — לרוב מיליונים — שדלפו מאיזו דליפה ללא קשר. האוטומציה שולחת כל זוג לטופס ההתחברות של היעד. בכל מקום שבו משתמש מיחזר את הסיסמה, ההתחברות עובדת, ואותו חשבון פרוץ כעת. התוקף אינו זקוק לשום ידע על אף קורבן בודד; הרשימה שדלפה ומחזור הסיסמאות עושים את כל העבודה.
הדבר הופך את credential stuffing לשונה מהתקפות כוח גס, שמנחשות סיסמאות למשתמש ידוע, ומ-password spraying, שבודק כמה סיסמאות נפוצות מול חשבונות רבים. credential stuffing משתמש בזוגות שלמים, כבר תקפים, ובדיוק לכן הוא מצליח בשיעורים שהניחוש הטהור לעולם אינו משיג.
כיצד עובדת התקפת credential stuffing?
התקפת credential stuffing עובדת בכך שהיא טוענת רשימה של אישורים שדלפו לתוך האוטומציה, מפזרת את ניסיונות ההתחברות בין כתובות IP ומכשירים רבים כדי לעקוף הגבלות קצב ואוספת את הזוגות שעובדים למונטיזציה מאוחרת יותר.
התוקף מצייד את האוטומציה — מסקריפטים פשוטים ועד דפדפני headless — ברשימת האישורים ומכוון אותה לנקודת הקצה של ההתחברות. כדי להימנע מההגנה הברורה של חסימת IP לאחר כשלים רבים, התעבורה מפוזרת בין רשתות proxy ביתי ו-user agents מוחלפים, כך שכל ניסיון ייראה כמגיע ממשתמש רגיל אחר.
ההתחברויות המוצלחות נרשמות ומופרדות מהכשלים. החשבונות המאומתים הללו מנוצלים אז ישירות, נמכרים כאישורים מאומתים או מועברים לשלב מונטיזציה שמרוקן ערך. כל צינור הייצור מתועש: כלים, גישה ל-proxy ורשימות אישורים כולם זמינים בקלות, ובדיוק לכן ההתקפה כה נפוצה.
מדוע credential stuffing מצליח כה תדיר?
credential stuffing מצליח משום שמחזור הסיסמאות נפוץ, האישורים שדלפו שופעים וזולים והתשתית של אוטומציה ו-proxy הנחוצה להרצת ההתקפה הפכה למצרך. כל חלק במשוואה מיטיב עם התוקף.
מחזור הסיסמאות הוא סיבת השורש. כאשר אותם דוא"ל וסיסמה פותחים את חשבונות האדם בשירותים רבים, דליפה יחידה חושפת את כולם, והתוקפים צריכים רק למצוא את השירותים שבהם הקורבן מיחזר את אישוריו. המחזור הופך דליפה למפתח-אב.
ההיצע והכלים עושים את השאר. מערכי נתונים עצומים של אישורים מסתובבים בחופשיות, ה-proxy הביתי גורם לתעבורה להיראות לגיטימית וכלים מוכנים מאמתים את כל התהליך. משום שאפילו שיעור הצלחה קטן ברשימה מסיבית מניב אלפי חשבונות, הכלכלה עובדת בעוצמה לטובת התוקף — ובדיוק לכן ההגנות חייבות לתקוף את הכלכלה הזו.
מהם הסימנים של התקפת credential stuffing?
החתימות של credential stuffing הן קפיצה בניסיונות ההתחברות, שיעור כשל גבוה בצורה חריגה ודפוסי תעבורה שחושפים אוטומציה למרות המאמצים להיראות אנושיים. בראייה משולבת, קשה לבלבל אותם עם פעילות אורגנית.
הנפח הוא הסימן הראשון: זינוק פתאומי בניסיונות ההתחברות הרבה מעל הרמה הרגילה, לרוב מרוכז בנקודת הקצה של האימות. משום שרוב האישורים המשוחזרים אינם תואמים, שיעור הכשל עולה לרמות שאף אוכלוסיית משתמשים לגיטימית אינה מפיקה — יחס הצלחה של התחברות שהופך את מה שהייתם רואים בדרך כלל.
הרכב התעבורה מסגיר את האוטומציה. גם כשהם מפוזרים בין כתובות IP רבות, הניסיונות חולקים רמזים: טביעות אצבע של TLS אופייניות לאוטומציה, מקורות של מרכז נתונים או proxy ידוע מעורבבים ברעש הביתי, עיתוי מכני ואותות מכשיר שחוזרים בסשנים שכביכול אין ביניהם קשר. המתאם ברמת המכשיר חושף את הקמפיין היחיד המסתתר מאחורי אלפי כתובות IP.
- קפיצה חדה בנפח ההתחברות מול נקודת הקצה של האימות.
- שיעור כשל התחברות גבוה בצורה חריגה, ככל שרוב הזוגות המשוחזרים מחטיאים.
- תעבורה מפוזרת בין כתובות IP רבות שעם זאת חולקת מאפייני מכשיר או TLS.
- רמזים לאוטומציה: מקורות של proxy ומרכז נתונים, טביעות אצבע של ספריות סקריפטים ועיתוי מכני.
מדוע סיסמאות והגבלות קצב אינן מסוגלות לעצור אותה?
סיסמאות והגבלות קצב לפי IP נכשלות משום שההתקפה משתמשת באישורים תקפים ומתפזרת בין אלפי כתובות IP, ומביסה את שתי ההגנות מעצם התכנון. כל אחת נבנתה למודל איום ש-credential stuffing עוקף במכוון.
מדיניות סיסמאות חזקות מגינה רק על החשבונות של השירות שלכם עצמו; אין בה דבר בנוגע לאישור שהמשתמש מיחזר מאתר אחר שדלף. הסיסמה תקפה, ולכן היא עוברת כל בדיקת חוזק ותקינות. הפגיעות חיה במיחזור שהפלטפורמה אינה יכולה לראות או לשלוט בו.
הגבלת קצב לפי IP הניחה תוקף שפועל מכתובת יחידה, ולכן חסימה לאחר מטח כשלים עצרה אותו. רשתות proxy ביתי הורסות את ההנחה הזו בכך שהן נותנות לכל ניסיון IP חדש ובעל מראה לגיטימי, ושומרות כל מקור מתחת לסף. להגבלת קצב לפי IP פשוט אין דבר בר-קיימא לספור. המזהה בר-הקיימא שהתוקף אינו יכול להחליף בזול הוא המכשיר.
כיצד מודיעין מכשירים עוצר credential stuffing?
מודיעין מכשירים עוצר credential stuffing בכך שהוא מזהה את המכשיר שמאחורי כל ניסיון, כך שהגבלת הקצב והחסימה יפעלו על זהות בת-קיימא ששורדת החלפת IP, ובכך שהוא מסמן את האוטומציה שההתקפה תלויה בה. הוא נוגד ישירות את ההתחמקות המרכזית של ההתקפה.
משום שזהות המכשיר מתמידה בין כתובות IP, מכשיר הונאה יחיד שמכה בהתחברות ניתן לזיהוי לא משנה מאחורי כמה proxy ביתי הוא מסתתר. הגבלות קצב שנכפות לפי מכשיר — ולא לפי IP — סוף סוף יש להן משהו יציב לספור, כך שהתוקף כבר אינו יכול לאפס את התקציב שלו על ידי שאילת כתובת אחרת.
מעבר לכך, אותות הבוט והאוטומציה חושפים את הכלים עצמם: חפצים של דפדפן headless, טביעות אצבע של TLS של ספריות סקריפטים ורמזים התנהגותיים מסמנים את התעבורה כאוטומטית ללא תלות באישורים התקפים שהיא נושאת. ומשום שאותו מכשיר חוזר בין חשבונות, מתאם המכשירים חושף את כל הקמפיין — והופך אלפי ניסיונות מפוזרים לתוקף יחיד ניתן לזיהוי שאתם יכולים לחסום מיד.
כיצד חברות יכולות להתגונן מפני credential stuffing?
חברות מתגוננות מפני credential stuffing באסטרטגיה רב-שכבתית: זיהוי והגבלת קצב ברמת המכשיר, זיהוי בוטים בתהליך ההתחברות, אימות מבוסס סיכון וניטור החתימות של ההתקפה. השכבות סוגרות את הפערים שכל בקרה מותירה בכוחות עצמה.
ההגנות ברמת המכשיר הן החלק המרכזי משום שהן מנטרלות את ההתחמקות בהחלפת IP שהופכת את ההתקפה לכדאית — הגבלת קצב וחסימה לפי מכשיר במקום לפי כתובת. זיהוי בוטים מוסיף חזית שנייה, ומסמן את האוטומציה באמצעות אותות של סביבה, רשת והתנהגות גם כאשר האישורים תקפים.
סביבן, האימות מבוסס הסיכון דורש אימות מוגבר כאשר התחברות נראית חשודה, ומרוקן את הערך של כל אישור שחומק, וניטור זינוקי נפח וחריגות בשיעור הכשל נותן אזהרה מוקדמת על קמפיין מתמשך. עידוד סיסמאות ייחודיות ו-MFA מפחית את המיחזור הבסיסי שההתקפה מנצלת. יחד, השכבות גורמות לכלכלת ההתקפה לחדול לעבוד.
לא מכירים מונח בעמוד זה? כל מושג לעיל מוגדר במילון ה-device intelligence שלנו.
מעדיפים הגדרה תמציתית? ראו בוט Credential Stuffing במילון המונחים.
שאלות נפוצות
הגבילו את קצב המכשיר, לא את ה-IP
TRACIO נותנת לכל ניסיון זהות מכשיר מתמידה ששורדת החלפת proxy, כך ש-credential stuffing לא יוכל לאפס את תקציבו על ידי החלפת IP. התחילו בחינם וסיימו את ההתקפה.