
מהו בקרת גישה שבורה?
בקרת גישה שבורה מתרחשת כאשר יישום אינו מצליח לאכוף הגבלות נאותות על מה שהמשתמשים יכולים לראות או לעשות.
במילים אחרות, תוקפים מנצלים פגמים לוגיים כדי לגשת לנתונים או פעולות שאמורים להיות מחוץ לתחום — כמו צפייה ברשומות של משתמש אחר או ביצוע משימות ניהול ללא אישור.
פגיעות זו הגיעה לראש עשרת הגדולים של OWASP רשימה כי זה נפוץ ומסוכן. ברגע שבקרת הגישה נשברת, התוקף לא צריך ניצולים מתוחכמים — רק כמה בקשות מתוחכמות כדי לנוע אופקית או אנכית מעבר לגבולות ההרשאות.
דוגמאות נפוצות
| סוג | תיאור | דוגמה |
|---|---|---|
| הסלמה אופקית | קבלת גישה לנתוני משתמשים אחרים באותה רמת הרשאות. | שינוי user_id=1 אל user_id=2 לקרוא את הפרופיל של משתמש אחר. |
| הסלמה אנכית | קפיצה מתפקיד משתמש רגיל להרשאות ברמת מנהל. | שינוי גוף הבקשה כדי להגדיר "תפקיד": "מנהל". |
| IDOR (הפניה לא בטוחה לאובייקט ישיר) | גישה ישירה לאובייקטים ללא אימות בעלות. | הורדה /חשבונית?id=5678 גם אם הוא שייך למשתמש אחר. |
| בדיקות בצד הלקוח בלבד | הסתמכות על כפתורים מוסתרים או קלטות מושבתות לצורך בקרת גישה. | ניתן עדיין לקרוא לכפתור "מחק" מוסתר ב-HTML באמצעות API. |
מפתחים נוטים להסתמך על בקרות בצד הלקוח — כפתורים מוסתרים, רכיבי ממשק משתמש מושבתים או בדיקות JavaScript — מכיוון שהם קלים ליישום ומשפרים את חוויית המשתמש. הבעיה מתעוררת כאשר כללים אלה בצד הלקוח מטופלים כקו ההגנה היחיד: ללא אכיפה קפדנית בצד השרת, כל נקודת קצה של API הופכת לגבול אמון מרומז. אימות חסר או לא עקבי של בעלות על אובייקטים, תביעות תפקידים ואסימוני הפעלה פירושו שבקשה מתוכננת יכולה להחליף מזהים, לשחזר אסימונים או לשנות מטענים כדי לגשת לנתונים שהמבקש לא אמור לראות או לשנות אותם. כאשר צוותים מזניחים גם את עקרונות הפריבילגיה המינימלית – מתן תפקידים רחבים, אסימונים ארוכי טווח או היקפי API מוגזמים – שטח התקיפה גדל והאכיפה הופכת לשברירית בכל השירותים.
ההשלכות בעולם האמיתי חמורות. בקרת גישה לקויה מאפשרת לתוקפים להוציא נתונים רגישים של לקוחות או של חברות, לזייף רשומות או למחוק מידע קריטי, וכל אלה עלולים להרוס את האמון ולשבש את הפעילות. במקרים רבים, זהו נקודת המפנה לפריצות גדולות יותר: יריב שיכול להגדיל את הרשאותיו או לנוע לרוחב עשוי להשתלט על מערכות שלמות או על קונסולות ניהול. מעבר לנזק הישיר, כשלים אלה גורמים לעתים קרובות להפרות של תקנות ותאימות – וחושפים ארגונים לקנסות ולעלויות תיקון במסגרת תקנות כמו GDPR או PCI DSS – והם עלולים לגרום נזק ארוך טווח למוניטין, שעלותו גבוהה בהרבה מהתיקון הטכני הראשוני.
כיצד לזהות ולמנוע זאת
- אכוף תמיד בקרת גישה בשרת — לעולם אל תבטח בלקוח.
- החל את עקרון הפריבילגיה המינימלית — כל משתמש או מפתח API צריך לקבל רק את מה שנחוץ לו.
- אמת בעלות על אובייקט לפני החזרת או שינוי משאבים.
- השתמש במזהים בלתי צפויים במקום מזהים רציפים.
- יישום בקרת גישה מבוססת תפקידים (RBAC) והיגיון אימות עקבי.
- בצע בדיקות רציפות בעזרת כלים אוטומטיים כמו Penligent.

Penligent: זיהוי בשפה טבעית של בקרת גישה פגומה
Penligent מאפשר לצוותי אבטחה לבדוק פגמים בבקרת הגישה באמצעות הנחיה בשפה טבעית בלבד — ללא קוד, ללא סקריפטים.
דוגמה לשאלה:
"בדוק את האפליקציה שלי לאיתור פגיעויות בבקרת הגישה — כולל העלאת הרשאות אופקית ואנכית."
מה יקרה בהמשך:
Penligent באופן אוטומטי:
- מפרט נקודות קצה ותפקידים;
- מדמה רמות משתמשים מרובות;
- מזהה ניסיונות גישה לא מורשים;
- מדגיש אילו ממשקי API או דפים חשופים;
- מציע פעולות תיקון — כל זאת מבלי לגעת במערכות הייצור.
על ידי שילוב של חשיבה מבוססת בינה מלאכותית ואימות מבוסס כללים, Penligent מספקת תובנה הגנתית בדקות, לא בשעות.
נקודה מרכזית
בקרת גישה פגומה אינה רק טעות קידוד — זוהי פגם בתכנון שניתן כעת לאתר בשלב מוקדם באמצעות אוטומציה.
עם Penligent, תוכלו לעבור מ"תיקון תגובתי" ל מניעה יזומה, תוך שימוש בשפה פשוטה כדי לבדוק את היישומים שלכם בצורה בטוחה וחכמה.

