מה ההבדל בין זהות, סמכות וכוונה
אימות עונה על השאלה מי המשתמש, והרשאה על השאלה מה מותר לו לעשות. בהקשר CSRF צריך לבחון גם אם הבקשה לפעולה מתאימה לתהליך שהיישום מצפה לו. מנגנון שהדפדפן מצרף אוטומטית אינו לבדו הוכחת כוונה.
המושג אינו מתאר בהכרח גניבת סיסמה או הרצת קוד בדפדפן. לכן החלפת סיסמה או הוספת הצפנה אינן תיקון אוטומטי של מסלול פגיע. צריך להבין איזו פעולה משנה מצב ואילו בדיקות השרת מפעיל לפני שהוא מבצע אותה.
בקרות נפוצות ומה צריך להתאים ליישום
OWASP מתארת מנגנונים כגון tokens ובקרות מקור לפי סוג היישום, לצד הגנות נוספות. בדיקות צריכות להתבצע בצד השרת ובהקשר מתאים. הגדרת cookie או כותרת אחת אינה הוכחה שכל הפעולות מוגנות.
| תחום | שאלה | מה אינו תחליף |
|---|---|---|
| אימות | האם זהות המשתמש נבדקה | עצם קיום שדה בטופס |
| הרשאה | האם החשבון רשאי לפעול על המשאב | token לבדו |
| הגנת בקשה | האם אומת המנגנון המתאים | קיום token בלי בדיקתו |
| תהליך רגיש | האם נדרש אישור מתאים לפעולה | הנחה שכל בקשה מביעה כוונה |
מה nonce של WordPress עושה ומה אינו עושה
WordPress מסבירה שה-nonces שלה מסייעים להגנה בהקשרים כגון CSRF, אך אינם מנגנון אימות או בקרת הרשאות. הם גם אינם בהכרח חד-פעמיים במובן המילולי. לכן קיומו של nonce בקישור או בטופס אינו פוטר מבדיקת הסמכות לפעולה ולמשאב.
התיקון צריך להתאים לממשקי WordPress ולמסלול בפועל. אין להחליף מנגנון נתמך בהשוואה מאולתרת או להסתפק בכך שהשדה מופיע בדף. מפתח מורשה בודק יצירה, העברה ואימות לצד כללי ההרשאה.
דוגמה: שינוי הגדרה בחשבון מנהל
זו המחשה שאינה כוללת קוד תקיפה. פעולה לשינוי הגדרה דורשת משתמש מורשה, בדיקת סמכות והגנת בקשה מתאימה. מסך שנראה תקין אינו מוכיח שהשרת אוכף את כל התנאים. בדיקה מאושרת משתמשת במשאב ניסיון ובתוצאה שאפשר להחזיר בבטחה.
בדוח מתעדים פעולה, חשבון בדיקה, הבקרה שנבחנה ותוצאת retest. אין לבצע שינויים בחשבונות או הזמנות אמיתיים כדי להדגים סיכון. כל בדיקה מחייבת היקף, הרשאה ותנאי עצירה.
מה שונה מ-XSS ומה בודקים אחרי תיקון
CSRF אינו XSS. חולשת XSS יכולה להשפיע על יכולת ההגנה בהקשרים מסוימים, אבל אין לאחד אותן לאותו תיקון. צריך לבדוק גם פלט דפדפן, הרשאות ותהליכים רגישים לפי היקף המערכת.
לאחר תיקון מוודאים שהפעולה המותרת עדיין עובדת, שבקרה חסרה או לא מתאימה אינה מתקבלת בהקשר שנבדק ושחשבונות ללא הרשאה אינם יכולים לפעול. היעדר שגיאה במסך אינו הוכחה שהבדיקות האלה בוצעו.