الإيجابيات الكاذبة
TL;DR
في مجال الأمن، تحدث الإيجابية الكاذبة عندما يبلغ أداة عن مشكلة لا توجد بالفعل.
ما هي الإيجابية الكاذبة؟
الإيجابية الكاذبة هي عندما يبلغ أداة الأمن عن مشكلة لا توجد بالفعل.
مثال بسيط:
- المشكلة الحقيقية: ينطلق إنذار الحريق بسبب وجود حريق.
- الإيجابية الكاذبة: ينطلق إنذار الحريق بسبب البخار الناتج عن الطهي.
التنبيه حقيقي، لكن لا يوجد خطر فعلي.
لماذا تعتبر الإيجابيات الكاذبة مشكلة
الإيجابيات الكاذبة تفعل أكثر من مجرد إضاعة الوقت. يمكن أن تؤدي إلى مشاكل حقيقية مع مرور الوقت.
تؤدي إلى:
- إضاعة الوقت في إصلاح مشاكل غير موجودة
- إحباط بين فرق الأمن والتطوير
- زيادة المخاطر لأن المشاكل الحقيقية يتم تجاهلها
لماذا تحدث الإيجابيات الكاذبة
تم تصميم أدوات الأمن لتكون حذرة. من الآمن لها أن تعطي الكثير من التحذيرات بدلاً من أن تفوت هجومًا حقيقيًا.
أسباب شائعة:
-
عدم وجود سياق
ترى الأداة كلمة مرور مكتوبة بشكل ثابت، لكنها موجودة فقط في ملف اختبار.
-
كود معقد
تعتقد الأداة أن إدخال المستخدم غير آمن، لكن الكود ينظفه بالفعل.
-
قواعد قديمة
يبدو البرنامج الجديد والآمن كتهديد قديم.
-
قواعد واسعة جدًا
على سبيل المثال، الإشارة إلى كل استخدام لـ eval() حتى عندما يكون آمنًا.
التكلفة الحقيقية للإيجابيات الكاذبة
تأتي المشكلة الحقيقية عندما تتراكم الكثير من التنبيهات.
- تتوقف الفرق عن الانتباه للتنبيهات.
- تبطئ عمليات البناء والإصدار.
- يضيع المهندسون المهرة الوقت في مراجعة القضايا الوهمية.
الإيجابيات الكاذبة مقابل السلبيات الكاذبة
| المصطلح | ماذا يعني |
|---|---|
| إيجابي حقيقي | يتم العثور على مشكلة حقيقية بشكل صحيح |
| إيجابي كاذب | يتم الإبلاغ عن مشكلة ولكنها ليست حقيقية |
| سلبي حقيقي | يتم تجاهل الكود الآمن بشكل صحيح |
| سلبي كاذب | يتم تفويت مشكلة حقيقية (وهذا خطير) |
المصطلحات ذات الصلة
- إجهاد التنبيه
- SAST
- الفرز
- EPSS
الأسئلة الشائعة
كيف أعرف إذا كان التنبيه إيجابيًا كاذبًا؟
يجب عليك مراجعة الكود لتحديد ما إذا كان يمكن لمستخدم حقيقي أن يثير المشكلة.
هل يمكن أن تكون الأدوات بدون إيجابيات كاذبة؟
لا. الهدف هو تقليلها، وليس إزالتها تمامًا.
هل يجب أن أتوقف عن استخدام أداة بها العديد من الإيجابيات الكاذبة؟
ليس فورًا. معظم الأدوات تحتاج إلى ضبط لتتناسب مع قاعدة الكود الخاصة بك.