מה זה Brute Force Attack ואיך אפשר להתגונן מפני מתקפה כזאת?

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

מאת: חיים מיטרני, רכז אבטחת מידע, תחום חינוך
Experis Israel

המפתח למתקפה – Broken Authentication

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

תהליך זה נקרא Broken Authentication,  ובעברית נקרא "הזדהות שבורה".

הזדהות שבורה נובעת מכמה גורמים בעיקר בגלל הגדרה לא נכונה במערכת, כמו למשל:

  • שימוש בסיסמאות ברירת מחדל, סיסמאות חלשות או סיסמאות ידועות מראש כגון Password1 או  admin/admin.
  • שימוש בנתוני הזדהות חלשים או בלתי-אפקטיביים לצורכי תהליכי שחזור סיסמאות, כגון "תשובות ממאגר נתונים", אשר בהגדרה לא ניתן להגן עליהם.
  • אחסון סיסמאות בצורה גלויה, או שימוש ב- Hash* חלש.
  • חוסר שימוש במנגנון Multi Factor Authentication**, או שימוש במנגנונים שאינם אפקטיביים ובטוחים מספיק.

לקריאה נוספת על הנושא, אפשר לגשת לאתר OWASP >>

מהלך התקיפה

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

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

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

 

פריצה לאתר לא מוגן

 

בתמונה אנחנו רואים מספר אקראי של סיסמאות שה-Brute Force  מנסה ומספר הניסיונות שבוצעו.

לכל בקשה יש תגובה:

התגובה מהאתר היא : 303 See Other.   זהו סוג של הפנייה, שמחזיר לדף ה-login, דף ההתחברות הראשוני.

באחד הניסיונות, התקבל משך תגובה שונה מכל שאר התשובות: כאשר כל בקשה לקחה 493 יחידות זמן , הניסיון האחרון לקח 508 יחידות זמן.

 

בתמונה האחרונה, התקבלה אותה התשובה מהאתר (303). אבל הפעם יש משהו שונה. שימו לב !

 

במקרה זה, תשובת השרת הייתה הפנייה אל תוך האתר, לעמוד dashboard/main/index.

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

פריצה לאתר מוגן

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

קיבלנו מהאתר את ההודעה "שם המשתמש או הסיסמה אינם נכונים". עד פה, הכל נראה בסדר. אך שימו לב למשך התגובה, שפתאום השתנתה מ-6806 ל-7324. נכנס לשורה הבאה ונראה מה השתנה.

מה שהשתנה זו תשובת השרת, המודיע כי המשתמש נחסם: "לא ניתן להיכנס למערכת. המשתמש נעול. אנא פנה למנהלת."

אם כך, מה אפשר לעשות על מנת להתגונן מפני התקפה מסוג זה?

  • כאשר ניתן, יישם הזדהות מבוססת **Multi Factor Authentication. הזדהות זו תסייע במניעת גניבה ממוכנת של נתוני הזדהות, מתקפות Brute Force ושימוש חוזר בנתוני הזדהות גנובים.
  • יישם בדיקות סיסמאות חלשות, כגון בדיקת סיסמאות חדשות למול רשימת סיסמאות top 10000 worst passwords .
  • יישור קו עם אורך סיסמא, מורכבות ומדיניות החלפת סיסמאות למול NIST 800 63 B' s guidelines in section 5.1.1 for Memorized Secrets  או מדיניות סיסמאות מודרנית אחרת.
  • צמצום או האטה של ניסיונות הזדהות כושלים. שימו דגש על תיעוד כלל ניסיונות ההזדהות הכושלים ויידוע של מנהלי המערכת בעת גילוי מתקפות מסוג Credential Stuffing, מתקפות Brute Force או גילוי כל מתקפה אחרת .
  • השתמשו במגנון Captcha***, המומלץ הוא של גוגל הנקרא reCaptcha.

 

 


* Hash  – פונקציה המשמשת להצפנת טקסטים.

** Multi Factor Authentication – הזדהות המתבצעת בעזרת לפחות שני פרמטרים שונים.

*** Captcha – סוג של מבחן שעוברים משתמשים במהלך הזדהות, האמור לאמת שהם אנושיים.

 

נשמח לשמוע מכם, מוזמנים לפנות אלינו בכל שאלה

    צור קשר