מהן מתקפות XSS עצמאיות?
Self-XSS, או פרצת אבטחה XSS עצמית, היא סוג של התקפת הנדסה חברתית שמטרתה לגרום לכם להריץ קוד זדוני בדפדפן האינטרנט. בניגוד להתקפות XSS רגילות, שמבוססות על נקודות חולשה באפליקציות אינטרנט שמאפשרות לתוקפים להחדיר קוד זדוני, התקפות Self-XSS מבוססות על פעולות שלכם שעשויות להוביל להרצת קוד.
בדרך כלל, התקפות Self-XSS כוללות תרמיות של התוקף שמעודדות אתכם להעתיק ולהדביק קוד זדוני במסוף של DevTools בדפדפן. בדרך כלל התוקף מצליח לעשות זאת על ידי הבטחה לסוג כלשהו של פרס. יכול להיות שמדובר באחד מהמקרים הבאים:
- מבטיחים לכם שהקוד ייתן לכם גישה לתכונות מוסתרות או לפרסים וירטואליים.
- התחזות לכך שהקוד הוא בדיקת אבטחה או תיקון באג.
- הבטחה שהקוד מאפשר לפרוץ לאתר לצורך רווח.
אחרי שמריצים את הקוד, התוקף יכול לקבל שליטה על החשבון. כך התוקף יכול:
- לגנוב את המידע האישי שלכם, כמו שם, כתובת ומספר כרטיס אשראי.
- לפרסם בשמכם הודעות או תגובות ללא הרשאה.
- לשלוט בחשבונות שלכם ברשתות החברתיות.
- להפיץ תוכנות זדוניות למשתמשים אחרים.
איך כלי הפיתוח ל-Chrome מנסים לצמצם את היקף ההתקפות מסוג XSS עצמאי?
לאפשר למשתמשים להדביק קוד ב-DevTools ואז להריץ אותו הוא מסוכן מטבעו. אבל הוא גם אחת מהתכונות המרכזיות של כלי הפיתוח ל-Chrome. לכן נאלצנו למצוא איזון בין צמצום של התקפות XSS עצמאיות פוטנציאליות לבין אי-הפרעה לעבודה של מפתחים שרוצים רק לנפות באגים באתרים.
מפתחים בדרך כלל לא מעתיקים קוד שהם מוצאים באינטרנט, מדביקים אותו ב-DevTools ומפעילים אותו בלי לבדוק קודם מה הקוד עושה. רוב המפתחים מודעים מאוד לסיכוני האבטחה של הפעלת קוד שמצאו בפינה מפוקפקת באינטרנט.
בכלים למפתחים של Chrome, אנחנו סומכים על המפתחים שיודעים מה הם עושים. אנחנו לא רוצים להאט אותם או להסיח את דעתם בשום צורה כשהם מעתיקים ומדביקים קוד.
לדעתנו, אנשים שאינם מפתחים נמצאים בסיכון גבוה הרבה יותר להיפול קורבן להתקפת XSS עצמית. כדי להגן עליכם, אנחנו סבורים שזה לגיטימי ומועיל להפריע לכם כשאתם עושים משהו שעלול להיות מסוכן. כשכלי הפיתוח ל-Chrome מזהה שמשתמש לא מנוסה מנסה להדביק קוד ב-DevTools, הוא יעצור ויציג אזהרה.
מתי יוצגו אזהרות על XSS עצמי בכלי הפיתוח?
DevTools משתמש בהיוריסטיקה פשוטה מאוד כדי להחליט אם להציג אזהרות על XSS עצמי: היא מבוססת על היסטוריית המסוף של פרופיל המשתמש שלכם.
אם בפרופיל שלכם יש לפחות 5 רשומות בהיסטוריית המסוף, כלי הפיתוח לא יטרידו אתכם באזהרות או בחלונות קופצים. היסטוריית המסוף היא רשימת הפקודות שהקלדתם והפעלתם במסוף. אלה הפקודות שמוצגות כשמקישים שוב ושוב על מקש החץ למעלה במסוף.
איך נראות האזהרות על XSS עצמי?
כשמשתמש לא מנוסה מנסה להדביק קוד ב-מסוף, הפעולה הזו חסומה ובמקום זאת מוצגת אזהרה ב-מסוף.
אפשר לבטל את האזהרה הזו ולהפעיל הדבקה, אבל כדי לעשות זאת צריך להקליד 'allow pasting'.
כשמשתמש לא מנוסה מדביק קוד בעורך הקוד של DevTools (לדוגמה, בחלונית מקורות), חוויית המשתמש דומה מאוד. במקום אזהרה, תוצג תיבת דו-שיח מודאלית.
שוב, סגירת תיבת הדו-שיח הזו לא מספיקה כדי לאפשר הדבקה. כדי לבטל את האזהרה, צריך להקליד 'allow pasting' בשדה הקלט.
האם זו הגדרה חד-פעמית?
כן, אחרי שתבחרו לאפשר הדבקה, לא תראו יותר אזהרות על XSS עצמאי.
אנחנו מקווים שהשיטה הזו תשיג איזון טוב בין שימושיות לבין אי נוחות. הוספת חיכוך מגדילה את הסבירות לקריאת האזהרה, וכך מקטינה את הסבירות להתקפת XSS עצמית מוצלחת.
בכלי הפיתוח של Chrome נשמר דגל שמציין אם להציג התראות על XSS עצמי בפרופיל שלכם ב-Chrome או לא. לכן, אם יוצרים פרופיל חדש ומתחילים להדביק קוד ב-DevTools באופן מיידי, ההדבקה תיחסם והתראות על XSS עצמי יוצגו במקום זאת.
האם אפשר להשבית אותה לצורך אוטומציה של בדיקות?
אבל מה לגבי בדיקות אוטומטיות? כלים רבים לבדיקות יוצרים פרופיל זמני חדש לכל הפעלת בדיקה. לכן, אם אתם משתמשים ב-DevTools כדי לנפות באגים בבדיקות האוטומטיות, ההדבקה ב-מסוף תיחסם בהתחלה.
כדי לעקוף את הבעיה, אפשר לבצע אחת מהפעולות הבאות:
שימוש ב-Chrome for Testing, גרסה של Chrome שמיועדת במיוחד לבדיקות ולאוטומציה. האזהרות על XSS עצמי מושבתות.
בערוצי הפצה אחרים של Chrome, מעבירים את הדגל
--unsafely-disable-devtools-self-xss-warnings
של שורת הפקודה ל-Chrome כדי להשבית לחלוטין את תיבת הדו-שיח של האזהרה על XSS עצמי.
סיכום
מה דעתך על האסטרטגיה הזו לצמצום התקפות XSS עצמאיות? יש לכם תגובות או הצעות? אפשר להוסיף תגובה לבאג הזה או ליצור איתנו קשר באחת מהדרכים הבאות.
במיוחד אם אתם עובדים על אתר שמזהיר מפני התקפות XSS עצמאיות באמצעות יומני מסוף, נשמח לדבר איתכם על תיאום המאמצים שלנו או על מדידת ההשפעה של אמצעי ההפחתה של XSS עצמאי.
הורדת הערוצים לתצוגה מקדימה
מומלץ להשתמש ב-Chrome Canary, ב-Dev או ב-Beta כדפדפן הפיתוח שמוגדר כברירת מחדל. ערוצי התצוגה המקדימה האלה מעניקים לכם גישה לתכונות העדכניות ביותר של DevTools, מאפשרים לכם לבדוק ממשקי API מתקדמים לפלטפורמות אינטרנט ולמצוא בעיות באתר לפני שהמשתמשים שלכם יעשו זאת.
יצירת קשר עם צוות כלי הפיתוח ל-Chrome
אתם יכולים להשתמש באפשרויות הבאות כדי לדון בתכונות החדשות, בעדכונים או בכל דבר אחר שקשור ל-DevTools.
- אתם יכולים לשלוח לנו משוב ובקשות להוספת תכונות בכתובת crbug.com.
- מדווחים על בעיה בכלי הפיתוח באמצעות הסמל אפשרויות נוספות > עזרה > דיווח על בעיה בכלי הפיתוח ב-DevTools.
- שולחים ציוץ אל @ChromeDevTools.
- אפשר להשאיר תגובות בסרטונים של מה חדש בכלי הפיתוח ב-YouTube או בסרטונים של טיפים לשימוש בכלי הפיתוח ב-YouTube.