לדלג לתוכן

מה זה Open Redirect - החולשה השולית שהיא בעצם כלי פישינג

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

אז מה זה בעצם קורה שם

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

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

https://האתר-האמיתי.co.il/login?redirect=https://אתר-מזויף.com

למה זה מסוכן - הכוח של הפישינג

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

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

למה זה נראה "מינורי" אבל לא באמת כזה

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

איך מגנים מפני Open Redirect

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

למה שווה להכיר את החולשה הזו

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

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

יש לכם שאלה, או שנתקלתם בחולשת Open Redirect בעצמכם ורוצים לספר על זה? מוזמנים לבוא ולדבר על זה בדיסקורד שלנו.

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

לסיכום

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