מה באמת מוצאים ב-890 עבודות אבטחה

Read this article in English

מאז שהפלטפורמה שלנו עלתה לאוויר תיעדנו 6,643 ממצאים ב-890 עבודות. זה מה שבאמת יש בהם.

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

מה בדיוק נספר, לפני כל המספרים

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

890 עבודות, 167 ארגונים, 6,643 ממצאים. רובן בדיקות חדירה; המיעוט הנותר הוא סקירות תכן, קוד וארכיטקטורה. מספר הממצאים לפרויקט נע בין 0 ל-73, עם חציון של 5 — ו-234 פרויקטים לא הניבו ולו ממצא אחד, וגם זו תוצאה.

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

רוב מה שאנחנו מוצאים הוא לא קריטי, ומי שאומר לכם אחרת מוכר לכם משהו

חומרה ממצאים אחוז
אינפורמטיבית 569 8.6%
נמוכה 3,299 49.7%
בינונית 1,724 26.0%
גבוהה 751 11.3%
קריטית 295 4.4%

15.7% מכל מה שאנחנו מדווחים הוא גבוה או קריטי. 4.4% קריטי.

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

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

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

איך ממצא מגיע אליכם

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

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

3,802 ממצאים עברו את הסקירה הזו. אחד מכל ארבעה הוחזר.

תוצאת סקירה ממצאים אחוז
אושר בפעם הראשונה 2,846 74.9%
הוחזר פעם אחת 761 20.0%
הוחזר פעמיים 136 3.6%
הוחזר שלוש פעמים או יותר 57 1.5%

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

וזה לא שלב איטי — ממצא חציוני שוהה יום אחד בסקירה, ובערך 2.8 ימים מכתיבה עד אישור. לאורך החלון העבודה הזו התפרסה על 22 יועצים שכותבים ו-11 שסוקרים.

והחומרה שאתם קוראים היא לא משהו שמתמקחים עליו בדרך החוצה: 98% מרמות החומרה הן בדיוק מה שקבע היועץ שמצא את הבעיה.

הממצאים שבאמת מסכנים עסק

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

ממצא נמצא גבוה/קריטי שיעור
Persistent XSS 88 72 82%
עקיפת הרשאות באמצעות IDOR 106 56 53%
Reflected XSS 60 50 83%
עקיפת מודל הרשאות (אנכית) 82 49 60%
עקיפת מודל הרשאות (אופקית) 59 42 71%
Brute force על מסך התחברות 50 34 68%
מניעת שירות דרך נעילת משתמשים 61 29 48%
SQL Injection 28 23 82%
Kiosk Mode Breakout 26 19 73%
עקיפת לוגיקה עסקית — ולידציית נתונים 38 17 45%
Broken Access Control 15 12 80%

אלה לא הממצאים שאנחנו מדווחים הכי הרבה. הממצאים בעלי הנפח הגבוה ביותר שלנו — קונפיגורציה שגויה של CSP, היעדר HSTS, Subresource Integrity — לא מופיעים ברשימה הזו בכלל, וסורק ייתן לכם כל אחד מהם. הממצאים שממלאים דוח והממצאים שמסכנים עסק הם כמעט קבוצות שונות לגמרי.

ומחלקה אחת שולטת

קבצו את הרשימה הזו למחלקות. הרשאות — IDOR, עקיפה אנכית ואופקית, Broken Access Control, עקיפה אנונימית וגלישה כפויה — מגיעות ל-173. כל סוגי ה-XSS יחד מגיעים ל-128.

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

למה הרשאות זה מה שכלי לא ייתן לכם

זה החלק ששווה להפנים, וזו לא שורת שיווק — זה נובע ישירות ממה שהבאגים האלה הם.

Payload של XSS נראה שגוי. יש מחרוזת עם סוגריים משולשים בשדה שאמור להכיל שם. SQL Injection נראה שגוי. Traversal נראה שגוי. כלי יכול להתאים תבנית לכולם, כי הבקשה עצמה פגומה. לכן סורקים מוצאים XSS, ולכן XSS היא המחלקה היחידה שמתקרבת להרשאות למעלה.

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

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

זו הסיבה שאנחנו קיימים כאנשים ולא כמוצר.

מה קורה אחרי שאנחנו מוסרים את הדוח

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

המלכוד הוא בשלב הראשון: זה מתחיל בכך שאתם מבקשים. ורוב הזמן, אף אחד לא מבקש.

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

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

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

החומרה שקבענו דווחו נשלחו לבדיקה
קריטית 204 40.7%
גבוהה 573 37.7%
בינונית 1,188 32.7%
נמוכה 2,487 19.8%
אינפורמטיבית 500 11.4%

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

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

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

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

מה היינו עושים עם זה אם היינו בצד שלכם

אל תשפטו דוח לפי מספר הקריטיים שבו. שאלו מה נבדק ומה נוסה.

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

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

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

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


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

\n\n