חיוב שגוי
בקצרה
באבטחה, חיוב שגוי מתרחש כאשר כלי מדווח על בעיה שאינה קיימת בפועל.
מהו חיוב שגוי?
חיוב שגוי הוא כאשר כלי אבטחה מדווח על בעיה שאינה קיימת בפועל.
דוגמה פשוטה:
- בעיה אמיתית: אזעקת העשן מופעלת בגלל שיש אש.
- חיוב שגוי: אזעקת העשן מופעלת בגלל אדים מבישול.
ההתראה אמיתית, אך אין סכנה ממשית.
מדוע חיובים שגויים הם בעיה
חיובים שגויים עושים יותר מאשר לבזבז זמן. הם יכולים להוביל לבעיות אמיתיות ככל שהזמן עובר.
הם מובילים ל:
- בזבוז זמן בתיקון בעיות שאינן קיימות
- תסכול בין צוותי האבטחה והפיתוח
- סיכון גבוה יותר כי בעיות אמיתיות מתעלמות
מדוע חיובים שגויים מתרחשים
כלי אבטחה מתוכננים להיות זהירים. בטוח יותר עבורם לתת יותר מדי אזהרות מאשר לפספס התקפה אמיתית.
סיבות נפוצות:
-
אין הקשר
כלי רואה סיסמה מקודדת, אך היא נמצאת רק בקובץ בדיקה.
-
קוד מורכב
הכלי חושב שקלט המשתמש אינו בטוח, אך הקוד כבר מנקה אותו.
-
כללים ישנים
תוכנה חדשה ובטוחה נראית כמו איום ישן.
-
כללים רחבים מדי
לדוגמה, סימון כל שימוש ב-eval() גם כשהוא בטוח.
העלות האמיתית של חיובים שגויים
הבעיה האמיתית מתרחשת כאשר יותר מדי התראות מצטברות.
- צוותים מפסיקים לשים לב להתראות.
- בניות ושחרורים מאטים.
- מהנדסים מיומנים מבזבזים זמן בבדיקת בעיות מזויפות.
חיוביים כוזבים לעומת שליליים כוזבים
| מונח | מה זה אומר |
|---|---|
| חיובי אמיתי | בעיה אמיתית נמצאת בצורה נכונה |
| חיובי כוזב | מדווחת בעיה אך היא אינה אמיתית |
| שלילי אמיתי | קוד בטוח מתעלמים ממנו בצורה נכונה |
| שלילי כוזב | בעיה אמיתית מתפספסת (זה מסוכן) |
מונחים קשורים
- עייפות התראות
- SAST
- מיון
- EPSS
שאלות נפוצות
איך אני יודע אם התראה היא חיובי כוזב?
עליך לבדוק את הקוד כדי לקבוע אם משתמש אמיתי יכול להפעיל את הבעיה.
האם כלים יכולים להיות ללא חיוביים כוזבים?
לא. המטרה היא להפחית אותם, לא להסיר אותם לחלוטין.
האם עלי להפסיק להשתמש בכלי עם הרבה חיוביים כוזבים?
לא מיד. רוב הכלים צריכים התאמה כדי להתאים לבסיס הקוד שלך.