פגיעות ברשימות Adblock Plus מאפשרת לבצע קוד זדוני

דפדפן

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

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

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

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

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

אפשרות המסנן $ rewrite גורמת לבעיה

כאשר AdblockerPlus 3.2 הושק בשנת 2018, זה הוסיפה אפשרות לרשימת פילטרים חדשה, הנקראת $ rewrite.

אפשרות זו מוּתָר למנהל רשימות החלף בקשת אינטרנט שתואמת ביטוי רגולרי בפרט עם כתובת URL אחרת.

הוברט פיגואר, מי הציג את הפונקציה הזו, הסביר כי:

"מאז Adblock Plus 3.2 עבור Chrome, Firefox ו- Opera (וגרסאות הפיתוח של 3.1.0.2053), אפשרות סינון חדשה $ rewrite מאפשרת לך לכתוב מחדש את כתובת ה- URL של המשאב במקום לחסום אותו.

כאשר Adblock Plus מקצה כתובת URL לבקשה למסנן עם האפשרות $ rewrite, היא הופכת את ה- URL על בסיס הכלל המסופק ואומרת לדפדפן לטעון את המשאב במקביל.

התחביר של $ $ rewrite מציין מחרוזת המשמשת תבנית לכתובת האתר החדשה.

$ n מוחלף בהתאמה המשנה התשיעית של הפילטר של המסנן. זהו תחביר זהה לפונקציה JavaScript String.prototype.replace ().

אם כתובת האתר המתקבלת יחסית (כלומר אין לך מארח), מקור השאילתה המקורית ישמש כבסיס. בשני המקרים, אם כתובת ה- URL החדשה לא משתפת את המקור, השכתוב ייחשב כבלתי מוצלח והבקשה הראשונית תעבור.

כמו כן, מתעלמים מסנני שכתוב $ בשאילתות SCRIPT, SUBDOCUMENT, OBJECT ו- OBJECT_SUBREQUEST מטעמי אבטחה. אפשרות זו נוחה לשינוי או ביטול פרמטרים של שאילתות ».

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

ביצוע הקוד נעשה אפילו במפות גוגל

הסביר חוקר אבטחה כי:

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

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

זה לא היה קשה למצוא כי לעשות זאת לבד פשוט השתמש במפות Google כהוכחה למושג.

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

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

השימוש ב- XMLHttpRequest או Fetch להורדת סקריפטים ופתיחת ההפניה מחדש הם שני המקשים לבעיה.

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


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.