מילון סייבר בעברית

מה זה CSRF ולמה כניסה תקינה אינה אישור לפעולה

CSRF, קיצור של Cross-Site Request Forgery, הוא מצב שבו דפדפן של משתמש נגרם לשלוח בקשה לפעולה שהמשתמש לא התכוון לאשר, תוך שימוש בהקשר הכניסה הזמין לו. קיום חשבון מחובר אינו מוכיח שהמשתמש התכוון לפעולה המסוימת. הגנה דורשת בקרות מתאימות בצד היישום, לצד אימות והרשאות.

מה ההבדל בין זהות, סמכות וכוונה

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

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

בקרות נפוצות ומה צריך להתאים ליישום

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

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

מה nonce של WordPress עושה ומה אינו עושה

WordPress מסבירה שה-nonces שלה מסייעים להגנה בהקשרים כגון CSRF, אך אינם מנגנון אימות או בקרת הרשאות. הם גם אינם בהכרח חד-פעמיים במובן המילולי. לכן קיומו של nonce בקישור או בטופס אינו פוטר מבדיקת הסמכות לפעולה ולמשאב.

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

WordPress: Nonces אינם אימות או הרשאה

דוגמה: שינוי הגדרה בחשבון מנהל

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

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

מה שונה מ-XSS ומה בודקים אחרי תיקון

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

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

מקור מקצועי: OWASP: הגנה מפני CSRFמקור מקצועי: WordPress: Nonces אינם אימות או הרשאה

תשובות ברורות

שאלות שעולות בנושא

MFA מונע CSRF לבדו?

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

nonce הוא סיסמת המשתמש?

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

צריך לבטל את הטופס כדי להיות בטוחים?

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

מתקדמים לפי הצורך

נמצאה בעיית בקשות או הרשאות באתר?

נגדיר את הפעולה וההיקף ונבדוק בקרות ותיקון בתיאום עם האחראי למערכת.

לתיאום בדיקה וטיפול