ما هو الصندوق الرمادي؟
يشير مصطلح الصندوق الرمادي إلى اختبار البرمجيات حيث يوجد معرفة محدودة بكيفية عملها الداخلي. يُعتبر اختبار الصندوق الرمادي تقنية اختراق أخلاقية حيث يتعين على المخترق استخدام معلومات محدودة لتحديد نقاط القوة والضعف في شبكة أمان الهدف.
النقاط الرئيسية
- اختبار الصندوق الرمادي هو تقنية لاكتشاف أخطاء البرمجيات أو العثور على ثغرات، حيث يكون هناك معرفة محدودة مسبقة حول البرمجيات الأساسية.
- يتيح هذا الشكل من "الاختراق الأخلاقي" لمطوري البرمجيات إنشاء إصلاحات وترقيعات لمنع المهاجمين الخبيثين من استغلال هذه الثغرات.
- يُعتبر اختبار الصندوق الرمادي مزيجًا من منهجيات الصندوق الأبيض (المعرفة الكاملة) والصندوق الأسود (عدم المعرفة).
فهم الصناديق الرمادية
يعتبر الاختبار الرمادي مزيجًا من اختبار الصندوق الأبيض، حيث يقوم المختبر بفحص المنطق الداخلي وهيكل كود البرنامج، واختبار الصندوق الأسود، حيث لا يعرف المختبر أي شيء عن كود البرنامج. لفهم الاختبار الرمادي، يجب علينا أولاً فهم اختبار الصندوق الأسود واختبار الصندوق الأبيض.
اختبار الصندوق الأسود واختبار الصندوق الأبيض
يعتبر اختبار الصندوق الأسود من الاختبارات التي تركز فقط على المدخلات التي يقدمها المستخدم وما ينتجه البرنامج من مخرجات بناءً على تلك المدخلات. لا يتطلب اختبار الصندوق الأسود أي معرفة بلغة البرمجة أو التفاصيل التقنية الأخرى. إنه نوع من الاختبارات عالية المستوى المستخدمة في اختبار النظام واختبار القبول. يحتاج مهندسو البرمجيات إلى وثيقة مواصفات متطلبات البرمجيات (SRS) لإجراء اختبار الصندوق الأسود. يأخذ هذا الاختبار منظور المستخدم النهائي حيث لا يعرف مختبر الصندوق الأسود كيفية توليد المخرجات من المدخلات.
يتطلب اختبار الصندوق الأبيض معرفة عميقة بالتقنيات والمنصات المستخدمة في بناء البرمجيات، بما في ذلك لغة البرمجة ذات الصلة. إنه نوع من الاختبارات منخفضة المستوى المستخدمة في اختبار الوحدة واختبار المؤشرات. يحتاج مهندسو البرمجيات إلى فهم لغة البرمجة المستخدمة لإنشاء التطبيق حتى يتمكنوا من فهم الشيفرة المصدرية. الأغراض الرئيسية لاختبار الصندوق الأبيض هي تعزيز الأمان، وفحص كيفية تدفق المدخلات والمخرجات عبر التطبيق، وتحسين التصميم وسهولة الاستخدام. عندما لا يحصل مختبر الصندوق الأبيض على المخرجات المتوقعة من مدخلات معينة، يُعتبر النتيجة خطأ يجب إصلاحه.
كيف تعمل اختبارات الصندوق الرمادي
يتضمن اختبار الصندوق الرمادي مكونات مهمة من اختبار الصندوق الأسود والأبيض للحصول على نتيجة أفضل مما يمكن لأي منهما تحقيقه بمفرده. يقوم كل من المستخدمين النهائيين والمطورين بإجراء اختبار الصندوق الرمادي مع معرفة محدودة (جزئية) بشيفرة المصدر للتطبيق. يمكن أن يكون اختبار الصندوق الرمادي يدويًا أو آليًا. إنه أكثر شمولاً ويستغرق وقتًا أطول من اختبار الصندوق الأسود، ولكنه ليس شاملاً أو مستغرقًا للوقت مثل اختبار الصندوق الأبيض. يتطلب مختبرو الصندوق الرمادي وثائق تصميم مفصلة.
يتضمن اختبار الصندوق الرمادي تحديد المدخلات والمخرجات والمسارات الرئيسية والوظائف الفرعية. ثم ينتقل إلى تطوير المدخلات والمخرجات للوظائف الفرعية، وتنفيذ حالات الاختبار للوظائف الفرعية، والتحقق من تلك النتائج.
مثال الصندوق الرمادي
قد يقوم مختبر الصندوق الرمادي بفحص وإصلاح الروابط على موقع الويب. إذا لم يعمل الرابط، يقوم المختبر بتغيير كود HTML لمحاولة جعل الرابط يعمل، ثم يعيد التحقق من واجهة المستخدم لمعرفة ما إذا كان الرابط يعمل. قد يقوم مختبر الصندوق الرمادي أيضًا باختبار آلة حاسبة عبر الإنترنت. سيقوم المختبر بتحديد المدخلات - مثل الصيغ الرياضية مثل 1 زائد 1، 2 ضرب 2، 5 ناقص 4، و15 مقسوم على 3 - ثم يتحقق من أن الآلة الحاسبة تقدم المخرجات الصحيحة بناءً على تلك المدخلات. يمتلك مختبر الصندوق الرمادي إمكانية الوصول إلى كود HTML الخاص بالآلة الحاسبة ويمكنه تغييره إذا تم تحديد أي أخطاء.
يُركّز اختبار الصندوق الرمادي على كل من واجهة المستخدم للتطبيق، أو طبقة العرض، وعلى عمله الداخلي أو الكود. يُستخدم بشكل رئيسي في اختبار التكامل واختبار الاختراق، ولكنه غير مناسب لاختبار الخوارزميات. يُستخدم اختبار الصندوق الرمادي بشكل عام لاختبار واجهة المستخدم للتطبيق، أو الأمان، أو الوظائف عبر الإنترنت من خلال تقنيات مثل اختبار المصفوفة، واختبار الانحدار، واختبار المصفوفة المتعامدة، واختبار الأنماط. من المرجح أن يحدد مختبرو الصندوق الرمادي المشاكل الخاصة بالسياق.
"الرمادي" يشير إلى القدرة الجزئية للمختبر على رؤية كيفية عمل التطبيق من الداخل. "الأبيض" يشير إلى القدرة على رؤية ما وراء واجهة البرنامج إلى كيفية عمله الداخلي، و"الأسود" يشير إلى عدم القدرة على رؤية كيفية عمل البرنامج من الداخل. يُطلق أحيانًا على اختبار الصندوق الرمادي اسم الاختبار الشفاف، بينما يُطلق أحيانًا على اختبار الصندوق الأبيض اسم الاختبار الواضح، وقد يُطلق أيضًا على اختبار الصندوق الأسود اسم الاختبار المعتم.
ما هي مزايا اختبار الصندوق الرمادي؟
لأن اختبار الصندوق الرمادي يُجرى من منظور المستخدم أو المخترق، فقد يكشف عن عيوب مهمة في البرنامج التي قد لا تكون واضحة للمطور الذي يقترب من الاختبار من منظور التطوير.
من يقوم بإجراء اختبار الصندوق الرمادي؟
يمكن لكل من المطورين ومختبري الأمان إجراء اختبار الصندوق الرمادي. يتم إجراء اختبار الصندوق الأبيض من قبل المطورين والمختبرين الذين لديهم معرفة جيدة بالكود المستخدم في كتابة البرنامج. يتم إجراء اختبار الصندوق الأسود من قبل المختبرين الذين لا يحتاجون إلى معرفة كود البرنامج. اختبار الصندوق الرمادي هو مزيج من الاثنين ويمكن أن يتم من قبل الخبراء الذين يقومون بإجراء كل من اختبار الصندوق الأبيض والصندوق الأسود.
كيف يتم استخدام اختبار الصندوق الرمادي في الأمن السيبراني؟
يمكن استخدام اختبار الصندوق الرمادي لمعرفة نوع الوصول الذي يمتلكه المستخدم عند تسجيل الدخول إلى موقع ويب أو تطبيق، وبالتالي، مدى سهولة أو صعوبة اختراق الموقع باستخدام بيانات اعتماد مشابهة، أو بدون أي بيانات اعتماد.