לדלג לתוכן

מדריך לברוטפורס סיסמאות - הגנה ותקיפה

כל אתר עם טופס התחברות הוא יעד פוטנציאלי למתקפת ברוטפורס. זו אחת השיטות הפשוטות והוותיקות ביותר בעולם ההאקינג, ודווקא בגלל הפשטות שלה היא עדיין עובדת נגד אתרים שלא הקדישו לה מחשבה. במדריך הזה נסביר איך המתקפה הזו עובדת מבחינה מושגית, ולמה ההגנה עליה היא בעיקר עניין של תכנון נכון מראש ולא תיקון אחרי מקרה.

מה זה בעצם ברוטפורס

ברוטפורס, ניחוש בכוח גס, הוא בדיוק מה שהשם אומר - במקום לנצל חולשה חכמה בקוד, התוקף פשוט מנסה צירופי שם משתמש וסיסמה רבים ברצף מול אותו טופס התחברות, עד שאחד מהם מצליח. בפועל, כמעט אף תוקף לא באמת מנחש אקראית. יש שתי גישות עיקריות שכדאי להכיר.

מתקפת מילון - Dictionary Attack

במקום לנסות כל צירוף אפשרי, שזה בלתי אפשרי מבחינת זמן, תוקף משתמש ברשימה של סיסמאות נפוצות - כאלה שאנשים אמיתיים באמת בוחרים, כמו "123456" או "Password1". רשימות כאלה נבנות משנים של דלפי מידע קודמים, ולכן הן יעילות הרבה יותר מניחוש אקראי טהור.

מה זה Credential Stuffing

זו שיטה שונה לגמרי, ומסוכנת יותר. תוקף לוקח רשימת שם משתמש וסיסמה שדלפה מאתר אחד לגמרי, ומנסה את אותם הצירופים באתרים אחרים. השיטה מסתמכת על הרגל אנושי מוכר - אנשים משתמשים באותה סיסמה בכמה שירותים. גם אם האתר שלכם מעולם לא נפרץ, המשתמשים שלכם עלולים להיות חשופים דרך דלף שקרה במקום אחר לגמרי.

איך תוקפים ניגשים לזה מבחינה מושגית

מבחינה טכנית, תוקף לא יושב ומקליד ידנית. הוא משתמש בכלי אוטומציה ששולח כמות גדולה של בקשות התחברות ברצף, ובודק כל תשובה - האם חוזר קוד שגיאה, האם הודעת ה"שם משתמש או סיסמה שגויים" זהה לכל הניסיונות, או שיש שוני קטן שמסגיר אם שם המשתמש בכלל קיים במערכת. תוקפים מנוסים גם מפזרים את הבקשות על פני זמן וכתובות IP שונות כדי להיראות כמו תעבורה אנושית רגילה ולהתחמק מזיהוי. חשוב להדגיש - כל התרגול המעשי של הטכניקות האלה נעשה על מערכות שנבנו בכוונה לכך, בפלטפורמות CTF או בבדיקות חדירות מורשות, ולא מול אתרים אמיתיים בלי אישור. תקיפה של מערכת בלי הרשאה היא עבירה פלילית, גם אם ה"סיסמה" שניחשתם הייתה חלשה במיוחד.

איך מגנים - ההגנות הבסיסיות שכל אתר צריך

כאן נמצא החלק הכי חשוב של הפוסט, כי הגנה נכונה כאן היא פשוטה יחסית להטמיע ומורידה את הסיכון בצורה דרמטית.

  • הגבלת קצב - Rate Limiting. להגביל כמה ניסיונות התחברות מותר לבצע מכתובת IP או מחשבון מסוים בפרק זמן נתון. זו ההגנה הראשונה והחשובה ביותר, כי היא הופכת מתקפה אוטומטית לאיטית עד כדי חוסר תועלת.
  • נעילת חשבון זמנית. אחרי מספר ניסיונות כושלים, לנעול את החשבון לזמן קצוב או לדרוש אימות נוסף לפני שממשיכים.
  • CAPTCHA. אמצעי שמבחין בין בן אדם לבין סקריפט אוטומטי, בדרך כלל אחרי כמה ניסיונות כושלים ולא מהניסיון הראשון, כדי לא לפגוע בחוויית המשתמש הרגיל.

הגנות מתקדמות יותר

  • אימות דו-שלבי - MFA. גם אם תוקף ניחש נכון את הסיסמה, בלי הקוד השני הוא לא יכול להיכנס. זו ההגנה הבודדת החזקה ביותר נגד ברוטפורס ונגד Credential Stuffing כאחד.
  • מדיניות סיסמאות חזקה. לדרוש אורך ומורכבות מינימליים, ולבדוק מול רשימות סיסמאות שדלפו בעבר שהסיסמה שנבחרה לא מופיעה שם.
  • הודעות שגיאה עקביות. לא לחשוף אם השגיאה נובעת משם משתמש שלא קיים או מסיסמה שגויה, כדי לא לעזור לתוקף לצמצם את המרחב.

ניטור וזיהוי

הגנה טובה לא נגמרת במניעה. חשוב לנטר ולתעד ניסיונות התחברות כושלים, ולהגדיר התראות כשמזוהה כמות חריגה של ניסיונות מאותו מקור או נגד אותו חשבון. לפעמים ההגנה הכי טובה היא פשוט לדעת מתי מתקפה מתרחשת, כדי להגיב מהר לפני שהיא מצליחה.

אם אתם רוצים להעמיק בנושא ולעבור על כל התחום בצורה מסודרת ומעשית, כולל איך לתרגל את הטכניקות האלה בסביבה חוקית, מוזמנים לעבור על קורס פריצת אתרים למתחילים.

יש לכם שאלות על משהו מהמדריך, או רוצים לדון בזה עם אנשים שלומדים את אותו הדבר? בדיוק בשביל זה יש לנו קהילה בדיסקורד.

הצטרפו לקהילה בדיסקורד

לסיכום

ברוטפורס היא מתקפה פשוטה ברעיון שלה, אבל ההגנה עליה היא לא "תוסיפו את זה מתישהו" - היא צריכה להיות חלק מהתכנון הבסיסי של כל טופס התחברות. הגבלת קצב, נעילת חשבון, ואימות דו-שלבי הופכים מתקפה שיכולה להצליח בקלות למתקפה שכמעט בלתי אפשרית מבחינה מעשית.