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