בדקתי לאחרונה לוג של מערכת ניטור שרצה אצלי ברציפות 68 ימים. היא שלחה 57 התראות - בממוצע כמעט אחת ליום - מול 3,142 בדיקות שקטות. אף אחת מהן לא הייתה "תקלה" במובן הצר: הקוד עשה בדיוק את מה שנכתב בו. ובכל זאת המערכת נכשלה - כי בקצב כזה, ההתראה מפסיקה להיקרא. המדד המשוקלל שייצר את ההתראות האלה הוחלף מאז בארכיטקטורה אחרת לגמרי, של אינדיקטורים בוליאניים נפרדים - נפרדים, לא בלתי-תלויים: כמה מהם נשענים על אותו ספק נתונים, וזה מתועד בדף המתודולוגיה; הנימוק המלא וההגנות שנולדו מכל אחד מהכשלים כאן מתועדים במתודולוגיית מדד ההסלמה.
זהו כשל התכנון הנפוץ ביותר במערכות ניטור, והוא כמעט לעולם אינו מתועד כבאג: מערכת לא נכשלת רק כשהיא מפספסת אירוע - היא נכשלת גם כשהיא מאמנת את מי שמסתכל עליה להתעלם ממנה. התוצאה זהה, אבל הכשל השני שקט, מצטבר, ולא מופיע בשום דוח.
המספרים בענף נעים בטווח רחב מאוד בין סקר לסקר, ואנטון צ'ובאקין - מי שריכז אותם - מציין בכנות שחלק ניכר מהנתונים בתחום סותרים זה את זה.[2] לכן לא אבנה טיעון על מספר בודד. הכיוון, לעומת זאת, עקבי בכל הסקרים: נפח ההתראות אינו הבעיה המרכזית - איכות הסיגנל היא. בסקר SANS לשנת 2025, 73% מצוותי האבטחה מציינים התרעות שווא כאתגר הזיהוי מספר אחת שלהם.[1]
שלוש התרעות שווא אמיתיות - שנתפסו בתוך שעה
המקרים הבאים אינם תיאורטיים ואינם לקוחים מספרות מקצועית. הם קרו בבנייה של מערכת ניטור אחת, בערב אחד, ואני מביא אותם עם המספרים המדויקים שנמדדו. כל אחד מהם מייצג משפחה שלמה של באגים שאני פוגש אצל לקוחות.
🔴 מקרה 1 - חיפוש גלובלי במקום חיפוש ממוקד
המערכת נדרשה לזהות מתי מדינה מסוימת מורה על פינוי חירום של סגל דיפלומטי. כתבתי חיפוש של הביטוי הרלוונטי בתוך פיד רשמי - וההתראה נדלקה בריצה הראשונה.
הסיבה: הפיד מכיל 213 מדינות, והביטוי הופיע בשבע מהן כטקסט קבוע וישן - ובהן מדינות חסרות כל רלוונטיות לאירוע שחיפשתי. הקוד עשה בדיוק את מה שביקשתי ממנו. אני ביקשתי את הדבר הלא נכון.
השורש: בלבול בין נוכחות של מאפיין לבין שינוי בו. ברוב מערכות הניטור העובדה שערך מסוים קיים אינה אומרת דבר. מה שאומר משהו הוא שהוא השתנה ביחס לקו בסיס ידוע.
🟠 מקרה 2 - מקור הנתונים עצמו אינו יציב
תיקנתי את מקרה 1 וצמצמתי את החיפוש לגוף הרשומה של כל מדינה בנפרד. ההתראה נדלקה שוב - הפעם על שתי מדינות שמצבן לא השתנה כבר חודשים.
שתי בקשות לאותה כתובת בדיוק, בהפרש של שניות, החזירו:
- בקשה א' - 229 רשומות, גוף הרשומה הרלוונטית באורך 5,603 תווים, הביטוי אינו מופיע
- בקשה ב' - 216 רשומות, אותה רשומה באורך 8,682 תווים, הביטוי מופיע
המקור מגיש גרסאות קטומות שונות של אותו תוכן. כל השוואה בין שתי דגימות עוקבות "מגלה" שינוי שמעולם לא קרה.
השורש: הנחה שקטה שהקלט יציב. זו הנחה שאיש אינו כותב בפירוש ולכן איש אינו בודק. במקרה הזה מדובר במקור רשמי ומכובד - מה שהופך את ההנחה למפתה עוד יותר.
🔵 מקרה 3 - בדיקת מצב בזמן הלא נכון
מערכת אחרת שלחה פקודה למכשיר, המתינה חמש שניות קבועות, ואז בדקה פעם אחת אם המצב השתנה. הדפוס נראה סביר לגמרי. בפועל הוא הגרלה - ולשני הכיוונים.
מהיסטוריית המצב, ברזולוציה של אלפיות שנייה:
19:02:43.951- הערך נרשם כמבוקש (כתיבה אופטימית מקומית)19:02:44.568- הערך חוזר לקדמותו: המכשיר עצמו דיווח שלא קיבל את הפקודה
בדיקה שנוחתת לפני החזרה מדווחת הצלחה שלא קרתה. בדיקה שנוחתת אחריה מדווחת כישלון - גם כשהפקודה השנייה כן נקלטה. אותו קוד בדיוק ייצר גם התרעת שווא וגם שקט שווא - תלוי במילישניות שבהן נחתה הבדיקה.
השורש: אימות של שליחת הפקודה במקום אימות של האפקט, בתוספת חלון זמן קבוע מול מערכת שזמן התגובה שלה משתנה.
שישה כללי תכנון שמונעים את שלושת המקרים
מה שבחרתי לא למדוד - וגם זה החלטת תכנון
באותה מערכת רציתי מדד סימטרי לשני אזורים. בדקתי את מקור הנתונים בפועל וקיבלתי 0 רשומות באזור אחד מול 96 באזור השני - לא בגלל אירוע, אלא כי לאזור הראשון פשוט אין כיסוי חיישנים.
מדד ריק מסוכן יותר ממדד חסר
הפיתוי היה להציג את המדד ממילא - הוא היה נראה תקין, ירוק ומרגיע. זו בדיוק ההגדרה של תצוגה מטעה: רכיב שמשדר "נבדק ונמצא תקין" בזמן שהוא לא מודד דבר. בחרתי להציג במקומו הצהרה מפורשת שהמדד אינו ניתן למדידה.
הכלל: חור מוצהר עדיף על מדד שנראה שלם. מי שמסתכל על המסך צריך לדעת לא רק מה נמדד, אלא גם מה לא.
למה זה נוגע ישירות לארגון שלכם
שלושת המקרים למעלה אינם ייחודיים למערכת שבניתי. הם התבניות שאני פוגש שוב ושוב בסקרי ביטחון, ובמיוחד בסביבות שבהן הותקן כלי ניטור והוגדר "לפי ברירת המחדל":
- חוקים שמתריעים על נוכחות - חתימה שקיימת בסביבה מאז ומעולם, ומייצרת התראה יומית שאיש כבר לא פותח.
- אינטגרציות שמניחות קלט יציב - פיד מודיעין או API של ספק שמשנה פורמט, וכל שינוי נספר כאירוע.
- מדדים שנראים ירוקים כי המקור מת - החיישן הפסיק לדווח, ולוח המחוונים מציג "תקין" במקום "אין נתונים". זה הכשל המסוכן מכולם.
- חוסר הבחנה בין עלות הסיגנלים - אזכור ברשת וניסיון הזדהות כושל מקבלים אותו משקל.
העלות אינה תיאורטית. כשצוות מתרגל שרוב ההתראות אינן דורשות פעולה, ההתראה האמיתית מגיעה לאותה תיבה ומקבלת את אותו יחס. הבעיה אינה בטכנולוגיה אלא בתכנון חוקי ההתרעה - וזו בדיוק העבודה שאני עושה בסקר ביטחון 360° ובמסגרת "רב מגן": לא להוסיף עוד כלי, אלא לגרום לכלים הקיימים לדבר רק כשיש מה לומר.
השורה התחתונה
מערכת ניטור נמדדת לא רק במה שהיא תופסת, אלא במה שהיא נמנעת מלשלוח. שלוש התרעות השווא שתיארתי כאן נבעו משלוש הנחות שקטות שאיש לא כתב במפורש: שנוכחות היא שינוי, שהקלט יציב, ושפקודה שנשלחה היא פקודה שבוצעה. כל אחת מהן נראית סבירה בקוד וכל אחת מהן שקרה.
התיקון אינו טכנולוגי ואינו יקר: קו בסיס לפני התרעה, אישור בשתי תצפיות, ודאות לגבי האפקט במקום ודאות לגבי הפקודה, ודרישת אישוש בלתי תלוי. ארבעה מתוך ששת הכללים שלמעלה - והם לבדם מורידים את נפח ההתרעות באופן משמעותי - ובעיקר מחזירים את האמון בהתרעה שכן נשלחת.
צ'קליסט - בדיקת בריאות לחוקי ההתרעה שלכם
- האם קיים חוק שנדלק בריצה הראשונה שלו? אם כן - הוא כנראה בודק נוכחות ולא שינוי.
- האם לכל חוק יש קו בסיס מוגדר, ומה קורה לפני שנצבר מספיק מידע?
- האם שינוי שנצפה פעם אחת מספיק כדי להתריע?
- האם המערכת מבחינה בין "המקור דיווח תקין" לבין "המקור לא ענה"? מה מוצג במסך בכל אחד מהמצבים?
- כמה מהמדדים שלכם באמת בלתי תלויים - ולא נגזרים מאותו מקור?
- מתי בפעם האחרונה מישהו פתח התראה מסוג מסוים ופעל בעקבותיה? חוק שאיש לא פעל לפיו חצי שנה הוא חוב תפעולי.
- מי מוסמך לכבות חוק רועש - והאם יש מסלול לעשות זאת בלי לכבות את הכיסוי כולו?
מקורות
- Vectra AI — What Is Alert Fatigue? Causes, Impact & How to Reduce It (מרכז נתונים מ-Vectra AI 2026, Microsoft/Omdia 2026 ו-SANS 2025)
- Anton Chuvakin — Anton's Alert Fatigue: The Study (ריכוז סקרים בנושא, כולל הסתייגות מפורשת מהסתירות שביניהם)
הנתונים המספריים על המערכת שתוארה במאמר - 57 התראות ב-68 ימים, 229 מול 216 רשומות, 5,603 מול 8,682 תווים, 0 מול 96 רשומות - נמדדו על ידי ישירות בלוגים ובקריאות חיות לאותם מקורות באוגוסט 2026.