FixVibe
Covered by FixVibehigh

זיהוי ומניעה של סקריפטים חוצי אתרים (XSS) פגיעויות

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

CWE-79

השפעה

תוקף המנצל בהצלחה פגיעות של Scripting Cross-Site (XSS) יכול להתחזות למשתמש קורבן, לבצע כל פעולה שהמשתמש מורשה לבצע ולגשת לכל אחד מנתוני המשתמש [S1]. זה כולל גניבת קובצי Cookie כדי לחטוף חשבונות, לכידת אישורי כניסה באמצעות טפסים מזויפים, או ביצוע השחתה וירטואלית [S1][S2]. אם לקורבן יש הרשאות ניהול, התוקף יכול להשיג שליטה מלאה על האפליקציה ועל הנתונים שלה [S1].

סיבת שורש

XSS מתרחש כאשר אפליקציה מקבלת קלט הניתן לשליטה על ידי המשתמש וכוללת אותה בדף אינטרנט ללא נטרול או קידוד הולם [S2]. זה מאפשר לפרש את הקלט כתוכן פעיל (JavaScript) על ידי הדפדפן של הקורבן, תוך עקיפת מדיניות אותו מקור שנועדה לבודד אתרים זה מזה [S1][S2].

סוגי פגיעות

  • משתקף XSS: סקריפטים זדוניים משתקפים מאפליקציית אינטרנט לדפדפן של הקורבן, בדרך כלל באמצעות פרמטר URL [S1].
  • מאוחסן XSS: הסקריפט מאוחסן באופן קבוע בשרת (למשל, במסד נתונים או קטע הערות) ומוגש למשתמשים מאוחר יותר [S1][S2].
  • XSS מבוסס DOM: הפגיעות קיימת כולה בקוד בצד הלקוח שמעבד נתונים ממקור לא מהימן בצורה לא בטוחה, כגון כתיבה ל-innerHTML [S1].

תיקוני בטון

  • קוד נתונים בפלט: המר נתונים הניתנים לשליטה על ידי המשתמש לצורה בטוחה לפני עיבודם. השתמש בקידוד ישות HTML עבור גוף ה-HTML, ובקידוד JavaScript או CSS מתאים עבור ההקשרים הספציפיים הללו [S1][S2].
  • סנן קלט בהגעה: הטמע רשימות הרשאות קפדניות עבור פורמטי קלט צפויים ודחה כל דבר שאינו תואם [S1][S2].
  • השתמש בכותרות אבטחה: הגדר את הדגל HttpOnly בקובצי Cookie של הפעלה כדי למנוע גישה באמצעות JavaScript [S2]. השתמש ב-Content-Type ו-X-Content-Type-Options: nosniff כדי להבטיח שדפדפנים לא יפרשו תגובות לא נכון כקוד הפעלה [S1].
  • מדיניות אבטחת תוכן (CSP): פרוס CSP חזק כדי להגביל את המקורות שמהם ניתן לטעון ולבצע סקריפטים, ולספק שכבת הגנה מעמיקה ZXCVIXVIBETOKEN0ZXCVZXCVFIXXVIBETOKEN1.

כיצד FixVibe בודק את זה

FixVibe יכול לזהות XSS באמצעות גישה רב-שכבתית המבוססת על מתודולוגיות סריקה מבוססות [S1]:

  • סריקות פסיביות: זיהוי כותרות אבטחה חסרות או חלשות כמו Content-Security-Policy או X-Content-Type-Options שנועדו למתן את XSS [S1].
  • בדיקות אקטיביות: הזרקת מחרוזות אלפאנומריות ייחודיות שאינן זדוניות לפרמטרים של כתובת URL ולשדות טופס כדי לקבוע אם הם משתקפים בגוף התגובה ללא קידוד מתאים [S1].
  • סריקות ריפו: ניתוח JavaScript בצד הלקוח עבור "כיורים" המטפלים בנתונים לא מהימנים בצורה לא בטוחה, כגון innerHTML, document.write או setTimeout, שהם אינדיקטורים נפוצים של innerHTML, document.write, או setTimeout, שהם אינדיקטורים נפוצים של innerHTML. [S1].