التغطية
ما الذي يغطيه yof وما الذي لا يغطيه
فئة بعد فئة: ما الذي يبحث عنه yof في كودك، وما الذي يختبره «الاختبار المؤتمت» على تطبيق يعمل، وما الذي لا يفعله أي منهما.
كيف تقرأ الجدول
- في الكود: أنماط تبحث عنها القواعد في ملفات المستودع المرتبط. القاعدة تجد نمطًا ولا تشغّل الكود، لذا تحتاج أغلب هذه النتائج إلى تحقق.
- على التطبيق الحي: اختبارات على تطبيق يعمل. «الاختبار المؤتمت» قيد التطوير وليس معروضًا للبيع، لذا لا شيء يحمل هذه العلامة متاح للعملاء بعد.
- غير مغطّى: ما لا يفعله أي منهما. التقرير لا يوحي أبدًا بأن هذه الأمور فُحصت.
| الفئة | في الكود | على التطبيق الحي | غير مغطّى |
|---|---|---|---|
| حقن SQL |
|
| المدخلات التي تمر عبر دالة أخرى أو ملف آخر، والحقن المخزَّن (من الدرجة الثانية)، والأخطاء داخل ORM. |
| حقن NoSQL |
|
| لغات الاستعلام في قواعد بيانات المستندات الأخرى، واللغات غير JavaScript و TypeScript. |
| حقن الأوامر |
|
| المعاملات المحقونة في برنامج يُستدعى من دون shell، واللغات الأخرى. |
| حقن القوالب |
|
| القوالب المقروءة من قاعدة بيانات، ومحركات القوالب التي تعمل في المتصفح. |
| تنفيذ كود من البيانات |
| لا يوجد اختبار حي | التنفيذ عبر كائن معزول (sandbox)، واللغات الأخرى. |
| البرمجة عبر المواقع (XSS) |
|
| تجاوزات الثقة في Angular و Vue، وإعدادات autoescape في قوالب الخادم، والسكربتات المخزَّنة، والإثبات في متصفح حقيقي. |
| إعادة توجيه مفتوحة |
|
| قوائم السماح الموجودة والتي يمكن تجاوزها. |
| تزوير الطلبات من جهة الخادم (SSRF) |
|
| DNS rebinding، وإعادة التوجيه التي تقود إلى الداخل، وإمكانية الوصول إلى بيانات السحابة الوصفية. |
| تزوير الطلبات عبر المواقع (CSRF) |
|
| الأطر غير تطبيقات نمط Express، والفحص الذي يجريه وسيط (proxy)، وهل تحمي إعدادات المتصفح الافتراضية المسار. |
| تحميل كائنات غير مأمون |
|
| Java ObjectInputStream و .NET BinaryFormatter وكيانات XML الخارجية. |
| تشفير ضعيف |
|
| أطوال المفاتيح وإصدارات البروتوكولات وشهادات الخدمة العاملة، والتشفير المخصص، والقنوات الجانبية. |
| كلمات مرور في الكود والإعدادات |
| لا يوجد اختبار حي | سجل git للملفات المحذوفة، وهل ما زالت كلمة المرور التي وُجدت تعمل، والكلمة العادية الواحدة من دون رقم أو رمز. |
| رفع الملفات |
|
| ما تفعله خدمة التخزين أو CDN بالملف، والبرمجيات الخبيثة في الملف المرفوع، وحدود الحجم. |
| Dockerfile |
| لا يوجد اختبار حي | الصور المبنية وحزم نظام التشغيل داخلها لا تُفحص. نهاية الدعم معروفة لست صور أساسية رسمية فقط. |
| docker-compose |
| لا يوجد اختبار حي | الحاويات العاملة، وملفات env غير الموجودة في المستودع. |
| ملفات Kubernetes |
| لا يوجد اختبار حي | العنقود العامل، وقوالب Helm غير المولَّدة، و RBAC، وسياسات الشبكة والقبول، والملفات التي فيها مراسي YAML. |
| Terraform |
| لا يوجد اختبار حي | الحساب السحابي نفسه: ما نُشر قد يختلف عن الملفات. القيم القادمة من متغيرات أو وحدات أو دوال، والمزوّدون الآخرون وأنواع الموارد الأخرى. |
خارج كل الصفوف
- صور الحاويات المبنية وحزم نظام التشغيل التي بداخلها لا تُفحص.
- هذه القواعد تقرأ الملفات. لا تنظر إلى النظام العامل: العنقود وحساب السحابة وسلوك التطبيق أثناء عمله.
- بيانات الطلب تُتابَع داخل دالة واحدة أو معالج واحد فقط. القيمة التي تمر أولًا بدالة أخرى أو ملف آخر لا تُتابَع.
- اللغات: قواعد الصياغة تقرأ JavaScript و TypeScript. للغة Python الأشكال البسيطة والدقيقة. وللغات PHP و Ruby و Go و Java و Kotlin و C# بضعة أشكال من سطر واحد. اللغات الأخرى لا تقرؤها هذه القواعد.
لا تغطيه الفحوص الآلية أبدًا
- عيوب في منطق العمل، مثل سعر أو خطوة يمكن لشخص تخطيها.
- نقاط ضعف لا يعرفها أحد بعد (ثغرات اليوم صفر).
- الأشخاص والإجراءات: التصيّد، وكلمات المرور المتبادلة يدويًا، ومن لديه صلاحية الوصول.
- كل ما هو خارج النطاق المذكور في هذا التقرير، وأي تغيير بعد تاريخه.
هذا ليس اختبار اختراق.