Investor's wiki

صندوق رمادي

صندوق رمادي

ما هو الصندوق الرمادي؟

يشير المربع الرمادي إلى اختبار البرنامج حيث توجد بعض المعرفة المحدودة لأعماله الداخلية. اختبار الصندوق الرمادي هو أسلوب اختراق أخلاقي حيث يتعين على المخترق استخدام معلومات محدودة لتحديد نقاط القوة والضعف في شبكة أمان الهدف.

فهم المربعات الرمادية

الصندوق الرمادي هو مزيج من اختبار الصندوق الأبيض ، حيث يفحص المُختبِر المنطق الداخلي وهيكل كود البرنامج ، واختبار الصندوق الأسود ، حيث لا يعرف المُختبِر شيئًا عن كود البرنامج. لفهم اختبار الصندوق الرمادي ، يجب أن نفهم أولاً اختبار الصندوق الأسود واختبار الصندوق الأبيض.

اختبار الصندوق الأسود والصندوق الأبيض

لا ينظر اختبار الصندوق الأسود إلا إلى المدخلات من قبل المستخدم والمخرجات التي ينتجها البرنامج في ضوء تلك المدخلات. لا يتطلب اختبار الصندوق الأسود أي معرفة بلغة البرمجة أو تفاصيل فنية أخرى. إنه نوع من الاختبارات عالية المستوى المستخدمة في اختبار النظام واختبار القبول. يحتاج مهندسو البرمجيات إلى مستند مواصفات متطلبات البرنامج (SRS) لإجراء اختبار الصندوق الأسود. يأخذ هذا الاختبار منظور المستخدم النهائي حيث لا يعرف اختبار الصندوق الأسود كيف يتم إنشاء المخرجات من المدخلات.

يتطلب اختبار الصندوق الأبيض معرفة متعمقة بالتقنيات والأنظمة الأساسية المستخدمة لبناء البرامج ، بما في ذلك لغة البرمجة ذات الصلة. إنه نوع من الاختبار منخفض المستوى يستخدم في اختبار الوحدة واختبار الإشارة. يحتاج مهندسو البرمجيات إلى فهم لغة البرمجة المستخدمة في إنشاء التطبيق حتى يتمكنوا من فهم كود المصدر الخاص به. تتمثل الأغراض الأساسية لاختبار الصندوق الأبيض في تعزيز الأمان ، ودراسة كيفية تدفق المدخلات والمخرجات من خلال التطبيق ، وتحسين التصميم وسهولة الاستخدام. عندما لا يحصل جهاز اختبار الصندوق الأبيض على الإخراج المتوقع من إدخال معين ، فإن النتيجة تعتبر خطأ يحتاج إلى الإصلاح.

كيف يعمل اختبار الصندوق الرمادي

يتضمن اختبار الصندوق الرمادي مكونات مهمة لكل من اختبار الصندوق الأسود والأبيض للحصول على نتيجة أفضل مما يمكن الحصول عليه بمفرده. يقوم كل من المستخدمين النهائيين والمطورين بإجراء اختبار المربع الرمادي بمعرفة محدودة (جزئية) بالكود المصدري للتطبيق. يمكن أن يكون اختبار الصندوق الرمادي يدويًا أو آليًا. إنه أكثر شمولاً ويستغرق وقتًا أطول من اختبار الصندوق الأسود ، ولكنه ليس شاملاً أو يستغرق وقتًا طويلاً مثل اختبار الصندوق الأبيض. يتطلب مختبرو الصندوق الرمادي مستندات تصميم مفصلة.

يتضمن اختبار الصندوق الرمادي تحديد المدخلات والمخرجات والمسارات الرئيسية والوظائف الفرعية. ثم ينتقل إلى تطوير المدخلات والمخرجات للوظائف الفرعية ، وتنفيذ حالات الاختبار للوظائف الفرعية ، والتحقق من تلك النتائج.

مثال الصندوق الرمادي

قد يقوم مُختبِر المربع الرمادي بفحص الروابط الموجودة على موقع الويب وإصلاحها. إذا لم يعمل الارتباط ، فسيقوم المختبر بتغيير رمز HTML لمحاولة جعل الارتباط يعمل ، ثم يعيد فحص واجهة المستخدم لمعرفة ما إذا كان الارتباط يعمل أم لا. قد يختبر اختبار الصندوق الرمادي أيضًا آلة حاسبة عبر الإنترنت. سيحدد المختبر المدخلات - الصيغ الرياضية مثل 1 + 1 ، 2 * 2 ، 5-4 ، و 15/3 - ثم تحقق لمعرفة أن الآلة الحاسبة توفر المخرجات الصحيحة في ضوء تلك المدخلات. يمتلك مُختبِر الصندوق الرمادي حق الوصول إلى كود HTML الخاص بالحاسبة ويمكنه تغييره إذا تم تحديد أي أخطاء.

يفحص اختبار المربع الرمادي كلاً من واجهة مستخدم التطبيق ، أو طبقة العرض التقديمي ، وأعماله الداخلية ، أو رمزه. يتم استخدامه بشكل أساسي في اختبار التكامل واختبار الاختراق ولكنه غير مناسب لاختبار الخوارزمية . يستخدم اختبار المربع الرمادي عمومًا لاختبار واجهة مستخدم التطبيق أو الأمان أو الوظائف عبر الإنترنت من خلال تقنيات مثل اختبار المصفوفة واختبار الانحدار واختبار الصفيف المتعامد واختبار الأنماط. من المرجح أن يقوم مختبرو الصندوق الرمادي بتحديد المشكلات الخاصة بالسياق.

يشير "الرمادي" إلى قدرة المختبر الجزئية على رؤية الأعمال الداخلية للتطبيق. يشير "الأبيض" إلى القدرة على رؤية أعماله الداخلية من خلال واجهة البرنامج ، بينما يشير "أسود" إلى عدم القدرة على رؤية الأعمال الداخلية للبرنامج. يُطلق على اختبار الصندوق الرمادي أحيانًا اسم اختبار شبه شفاف ، بينما يُطلق على اختبار الصندوق الأبيض أحيانًا اسم اختبار واضح وقد يُطلق على اختبار الصندوق الأسود أيضًا اسم اختبار معتم.

يسلط الضوء

  • اختبار الصندوق الرمادي هو في الأساس مزيج من منهجيات الصندوق الأبيض (المعرفة الكاملة) والصندوق الأسود (بدون معرفة).

  • اختبار الصندوق الرمادي هو أسلوب لاكتشاف أخطاء البرامج أو اكتشاف الثغرات ، حيث تُعرف مسبقًا بعض المعرفة المحدودة حول البرنامج الأساسي.

  • يسمح هذا النوع من "القرصنة الأخلاقية" لمطوري البرامج بإنشاء إصلاحات وتصحيحات لمنع المهاجمين الضارين من استغلال هذه الثغرات.