כך תוקפים מנצלים רישום מאסיבי להשגת גישה לא מורשית ולשליטה במערכת
מקרה אמיתי של מבדק חדירה חושף כיצד חולשת Mass Assignment אפשרה לתוקף לקבל הרשאות Superuser ולשלוט במערכת. בכתבה זו נסקור את הסכנות, נלמד על הדרכים שבהן תוקפים מנצלים חולשות אלו, ונציע פתרונות מעשיים שיעזרו לכם לשמור על הארגון שלכם בטוח ומוגן.
כיצד יישום רישום מאסיבי באפליקציה עלול להוביל לפרצות אבטחה חמורות
Mass Assignment הוא מונח המתאר מצב שבו אפליקציה מקבלת ומעבדת קלטים ממשתמשים ובאופן אוטומטי מעדכנת מאפיינים לאובייקטים במערכת – ללא בקרה מספקת. רישום כזה מאפשר לתוקפים לנצל חולשות באפליקציה כדי להשיג גישה לא מורשית למשאבים רגישים, לבצע הסלמת הרשאות, להשתלט על חשבונות משתמשים ועוד. מדובר בפרצה שכיחה באפליקציות רבות, וחשוב להבין כיצד אפשר למנוע אותה.
הבנת הסיכונים ברישום מאסיבי
כיצד תוקפים מנצלים פרצות ב־Mass Assignment להשגת גישה לא מורשית
אחת הבעיות המרכזיות ב־Mass Assignment היא שלעיתים קרובות קלטים מהמשתמש נשלחים ישירות לאובייקטים או לטבלאות במסד הנתונים, בלי להיבדק אם הם כוללים פרמטרים רגישים שלא אמורים להיות מעודכנים. כתוצאה מכך תוקפים יכולים להוסיף, לשנות או למחוק פרמטרים שמספקים להם גישה מוגברת או מידע רגיש ולפיכך לפגוע באבטחת המערכת. פגיעות זו נכללת ב־Owasp Top 10 לאתרים לשנת 2021 וממוקמת במקום הראשון – A01:2021 Broken Access Control, ואף נכללת ב־Owasp Top 10 ל־API במקום השלישי – API3:2023 – Broken Object Property Level Authorization.
ציפיות מול מציאות
כיצד חוסר בקרה על קלטים יכול להוביל להסלמת הרשאות
פריימוורקים רבים מאפשרים למפתחים למפות בקלות פרמטרים של בקשות HTTP נכנסות (למשל מטופס או קובץ JSON) ישירות לתכונות של אוביקט מודל. זה נעשה לרוב מטעמי נוחות בעת יצירה או עדכון של רשומות במסד נתונים.
יחד עם הנוחות, מגיעה הבעייתיות. במערכות מסוימות אפשר להוסיף פרמטרים לא צפויים לבקשות HTTP ולשלוח אותם לשרת. לדוגמה תוקף יכול להוסיף פרמטרים כמו "password" לבקשת עדכון כתובת המייל. אם המערכת אינה מבצעת בקרה מספקת, פרמטר זה יכול לגרום לכך שהתוקף יוכל לשנות סיסמה לאותו משתמש, אף שלא קיימת או לא מאופשרת לו פונקציונליות זו באמצעות האפליקציה.
מקרה לקוח: ניצול חולשת רישום מאסיבי שהובילה להסלמת הרשאות
כיצד תוקף הצליח לקבל הרשאות Superuser באמצעות הוספת פרמטר אחד לבקשה
במהלך מבדק חדירה אפליקטיבי שנערך עבור לקוח של IPV Security, הבודק זיהה חולשה בתהליך יצירת המשתמש. בבעלותו של הבודק היה חשבון Admin אשר קיבל עבור תהליך הבדיקות, ובמסגרת הרשאותיו הוא יכול היה ליצור משתמשים נוספים במערכת. כמו כן, הוא היה יכול לקבל מידע על חשבונות של משתמשי Super Admin במערכת, אך לא לערוך אותם או את הרשאותיו. כאשר הבודק קיבל את תשובת השרת על אחד ממשתמשי ה־Super Admin, הוא הבחין בפרמטרים "is_superuser" ו־"is_staff" שהופיעו בתגובת השרת כחלק מפרטי החשבון. פרמטרים אלו לא היו קיימים עבור משתמשים בעלי הרשאות שונות ולא היו קיימים בבקשה המקורית ליצירת משתמשים, אך זיהויים אפשר לבודק להוסיף אותם לבקשת יצירת המשתמשים עם ערך "true" ולשלוח אותה לשרת.
למרבה ההפתעה, לאחר שליחת הבקשה המתוקנת, הבודק יצר משתמש בעל הרשאות Superuser במערכת, מה שאפשר לו לאחר התחברות עם משתמש זה גישה מלאה וניהול מוחלט של המערכת. מקרה זה מדגים את הסכנות הטמונות בהשארת פרמטרים רגישים ללא בקרה מספקת ומדגיש את הצורך בבקרה קפדנית על קלטי המשתמש.
תובנות ממומחי סייבר בכירים של IPV Security
צעדים להגנה על הארגון מפני חולשות Mass Assignment
כדי למנוע תרחישים דומים, מומלץ לארגונים לבצע את הצעדים האלה:
- סינון פרמטרים מורשים בלבד: יש להגדיר במפורש אילו פרמטרים מותרים לרישום מאסיבי ולוודא שכל פרמטר רגיש נבדק ומאומת. כך אפשר למנוע הוספת פרמטרים רגישים באופן לא מורשה.
- שימוש בסינון פרמטרים חזק: מערכות רבות מציעות כלים לסינון פרמטרים שמטרתם לוודא שפרמטרים בטוחים בלבד ייכללו ברישום. יש להשתמש בטכניקות אלו כדי להגן על המערכת.
- הימנעות מרישום מאסיבי של שדות רגישים: שדות רגישים כמו "is_admin" "role" "balance" או "user_id" לא צריכים להיות חלק מרישום מאסיבי. יש לטפל בשדות אלו בנפרד עם בדיקות ואימותים מפורטים.
- יישום בקרת גישה מבוססת תפקידים (RBAC): יש להבטיח שמשתמשים עם הרשאות מתאימות בלבד יוכלו לשנות שדות מסוימים. לדוגמה למנהל מערכת בלבד צריכה להיות אפשרות לשנות את פרמטר ה־"is_admin".
- שימוש בפריימוורקים בעלי הגנה מובנית: מרבית הפריימוורקים המודרניים כוללים הגנות מובנות נגד רישום מאסיבי. יש לוודא שאתם מכירים ומשתמשים בהגנות אלו.
- ביצוע בדיקות אבטחה תקופתיות: יש לבצע בדיקות חדירה ואבטחה תקופתיות כדי לזהות ולתקן פרצות אבטחה במערכת, בייחוד בנוגע לרישום מאסיבי.
סיכום
כיצד מניעת חולשות Mass Assignment יכולה להגן על המערכת שלכם מפני פרצות אבטחה
המקרה שהודגם במבדק החדירה האפליקטיבי מראה כיצד חולשת רישום מאסיבי, חולשה נפוצה מאוד באפליקציות מבוססות אובייקטים, יכולה להיות מנוצלת לרעה כדי להשיג גישה לא מורשית ואף להסלמת הרשאות במערכת. על ידי בקרת פרמטרים קפדנית, שימוש בכלי אבטחה מובנים ויישום מדיניות אבטחה מחמירה, אפשר למנוע מתקפות אלו ולהגן על הנתונים הרגישים בארגון.
להתייעצות עם מומחה או להזמנת מבדק חדירה אפליקטיבי? פנו למומחי איי פי וי סקיוריטי!
להתייעצות מקצועית ניתן לפנות אלינו לאימייל info@ipvsecurity.com או במספר הטלפון 077-4447130. IPV Security מתמחה זה 19 שנה באבטחת מידע, סייבר, סקרי סיכונים ותקנים ורגולציות הנוגעים לביטחון מידע ועוד.