
باحث عن التسريبات عبر المواقع (XS-Leaks)
XSLeaker هي أداة تساعد في اكتشاف XS-Leaks على المواقع الإلكترونية. تقارن الأداة قيم الموارد التي تُعرف عنها تقنيات تسريب (مثل عدد iframes) بين حالات مختلفة.
يتكون XSLeaker من مكوّنين: إضافة Chrome تُستخدم لجمع قيم الموارد في حالات مختلفة، وخادم node.js يُستخدم لمقارنة النتائج وعرضها.
يتم فحص قيم الموارد التالية بحثاً عن الاختلافات:
بافتراض أن المستخدم يريد اختبار n حالة مختلفة، يجب تنفيذ الإعداد التالي:
أنشئ n ملف تعريف في Chrome، واحد لكل حالة. نظراً لإمكانية إعادة استخدام ملفات التعريف، لن يحتاج المستخدم إلى إنشاء ملفات تعريف جديدة إلا إذا أراد اختبار أكثر من n حالة.
ثبّت إضافة XSLeaker في Chrome لكل ملف تعريف.
يجب تنفيذ هذا الإعداد مرة واحدة فقط، إلا إذا أراد المستخدم اختبار أكثر من n حالة.
افتح n نافذة متصفح بملفات تعريف مختلفة.
فعّل إضافة المتصفح في كل نافذة. يتم ذلك عبر زر "Activate" في النافذة المنبثقة.
اختيارياً، اختر اسماً للحالة (مثل حساب المسؤول). يُنصح بذلك لأنه يجعل تحديد الحالات في النتائج أسهل بكثير.
جهّز الحالات المختلفة للموقع الإلكتروني الذي يجب اختباره، واحدة لكل نافذة (مثل تسجيل الدخول كمستخدمين مختلفين).
اختر نافذة واحدة وفعّل Master Mode (الوضع الرئيسي) عبر مفتاح التبديل في النافذة المنبثقة. ستتبع النوافذ الأخرى الآن تغييرات URL من النافذة الرئيسية.
داخل النافذة الرئيسية، انتقل إلى الموقع المراد اختباره. تنتقل كل النوافذ الأخرى إلى الصفحة نفسها.
ابدأ الاختبار بالنقر على زر "Send Results" في النافذة المنبثقة للنافذة الرئيسية.
انتقل إلى الواجهة الإلكترونية (مثل http://localhost:3000) التي يوفرها Node.js للتحقق من الاختلافات.
لاختبار الموقع نفسه مرة أخرى، يكفي أن ينتقل المستخدم إلى URL الهدف عبر النافذة الرئيسية ويضغط زر "Send Results" مجدداً.
انقر على الصورة لمشاهدة XSLeaker أثناء العمل:
تحتوي الواجهة الإلكترونية المستضافة عبر node.js على الصفحات التالية:
النتائج: تعرض أحدث نتائج الاختبارات
السجل: يعرض جميع الاختبارات التي تم إجراؤها في الماضي. بالنقر على أي صف في الجدول تظهر نتائج الاختبار.
الأتمتة: تتيح صفحة الأتمتة للمستخدم رفع قائمة عناوين URL لاختبارها. يوجّه زر "Start Test" كل نافذة متصفح متصلة إلى URL واحد تلو الآخر وينفذ الاختبار. يمكن الاطلاع على النتائج في السجل.
ملاحظة: تحتاج أولاً إلى إعداد الحالات التي تريد اختبارها في النوافذ المختلفة.
توجد حالياً مشكلة (Bug) تجعل الاختلافات المحفوظة في قاعدة البيانات غير صحيحة في بعض الأحيان. تأكد من الاختلافات بالنظر إلى نتائج الاختبار بعد الاختبار الآلي.
الاختبار: منصة اختبار يمكن استخدامها للتحقق من أن XSLeaker يعمل بشكل صحيح. على http://localhost:3000/tests يمكن اختيار حالة، ثم تعيين الخصائص المعتمدة على الحالة. بمجرد فتح عدة نوافذ متصفح بحالات مختلفة، انتقل إلى موقع الاختبار (http://localhost:3000/tests/testsite) بواسطة النافذة الرئيسية وشغّل الاختبار.

تعرض الصورة البنية المعمارية لـ XSLeaker. تتصل نوافذ المتصفح المختلفة ذات الحالات المختلفة بتطبيق node.js عبر WebSockets. يوفر الخادم واجهة إلكترونية يمكن للمستخدم من خلالها الاطلاع على نتائج الاختبار (انظر واجهة XSLeaker الإلكترونية). يحفظ الخادم نتائج الاختبار في قاعدة بيانات SQLite.