tarnish
tarnish هي أداة تحليل ثابتة لمساعدة الباحثين في مراجعات أمان إضافات Chrome. تؤتمت الكثير من العمل الروتيني وتساعدك في التعرف بسرعة على الثغرات الأمنية المحتملة. تصاحب هذه الأداة مقالة المدونة البحثية التي يمكن العثور عليها هنا. إذا كنت لا ترغب في عناء إعداد هذا، يمكنك ببساطة استخدام الأداة على https://thehackerblog.com/tarnish/.

إشعار وملاحظات غير مصقولة
تجدر الإشارة إلى أن هذا إصدار غير مصقول. هذا هو نفس المصدر المستخدم في النشر الموجود على https://thehackerblog.com/tarnish/. في المستقبل قد أقوم بتنظيفه وجعله أسهل بكثير للتشغيل لكن ليس لدي وقت الآن.
لإعداد هذا، ستحتاج إلى فهم كيفية:
- تكوين حاوية S3
- (إذا كنت تستخدم التوسع التلقائي) إعداد ElasticBeanstalk
- استخدام
docker-compose
- إعداد redis
الإعداد معقد قليلاً بسبب بعض أهداف التصميم:
- إجراء تحليل ثابت فعال ضد إضافات Chrome
- التوسع تلقائيًا لزيادة عبء العمل مع المزيد من النسخ والتقليص.
- العمل بميزانية محدودة (وبالتالي استخدام ElasticBeanstalk مع Spot Instances).
بعض الملاحظات السريعة لمساعدة شخص يحاول إعداد هذا:
- يستخدم
tarnish نظام Python Celery لتحليل الإضافات.
- يستخدم تكوين Python Celery redis كوسيط (سيلزم إنشاؤه).
- العمال الذين يعالجون مهام تحليل الإضافات يعملون على مثيلات Spot من AWS ElasticBeanstalk. لمن ليسوا على دراية، مثيلات Spot هي في الأساس مزايدة على موارد حوسبة غير مستخدمة. هذا يسمح للخدمة بالعمل بتكلفة منخفضة جدًا.
- يتطلب العمال مثيل AWS
t2.medium على الأقل للعمل.
- الواجهة الأمامية لـ
tarnish هي مجرد مجموعة من الملفات الثابتة التي يتم تحميلها إلى حاوية S3 مهيأة كمضيف ويب ثابت.
انظر إلى docker-compose.yaml.example للحصول على تكوينات متغيرات البيئة. من الأفضل تشغيل ./start.sh والانتقال إلى الواجهة الأمامية الثابتة لبدء العمل. يمكنك استخدام S3 للموقع الثابت أو مجرد خادم ويب ثابت بسيط مثل python -m SimpleHTTPServer (سيتعين عليك تعديل ملفات JavaScript لضمان تطابق المصدر، إلخ).
الميزات
يسحب أي إضافة Chrome من رابط متجر Chrome الإلكتروني المقدم.
- عارض
manifest.json: يعرض ببساطة نسخة مجملة بتنسيق JSON من manifest الإضافة.
- تحليل البصمة: اكتشاف
web_accessible_resources وتوليد تلقائي لجافا سكريبت بصمة إضافة Chrome.
- تحليل اختطاف النقر المحتمل: اكتشاف صفحات HTML إضافية مع توجيه
web_accessible_resources مضبوط. قد تكون هذه عرضة لاختراق النقر اعتمادًا على الغرض من الصفحات.
- عارض تحذيرات الإذن: يعرض قائمة بجميع تحذيرات إذن Chrome التي سيتم عرضها عند محاولة المستخدم تثبيت الإضافة.
- الدوال الخطيرة: تعرض موقع الدوال الخطيرة التي يمكن استغلالها من قبل مهاجم (مثل دوال innerHTML، chrome.tabs.executeScript).
- نقاط الدخول: تعرض أين تستقبل الإضافة المدخلات من المستخدم/الخارج. هذا مفيد لفهم مساحة سطح الإضافة والبحث عن نقاط محتملة لإرسال بيانات ضارة مصممة إلى الإضافة.
- كل من ماسحات الدوال الخطيرة ونقاط الدخول تحتوي على التالي للتنبيهات التي تولدها:
- مقتطف الكود ذو الصلة والسطر الذي تسبب في التنبيه.
- وصف المشكلة.
- زر “عرض الملف” لعرض ملف المصدر الكامل الذي يحتوي على الكود.
- مسار الملف المبلغ عنه.
- URI كامل لإضافة Chrome للملف المبلغ عنه.
- نوع الملف، مثل سكريبت صفحة خلفية، سكريبت محتوى، إجراء متصفح، إلخ.
- إذا كان السطر الضعيف في ملف JavaScript، مسارات جميع الصفحات التي يتم تضمينها فيها بالإضافة إلى نوع هذه الصفحات وحالة
web_accessible_resource.
- محلل سياسة أمان المحتوى (CSP) ومدقق الالتفاف: سيشير إلى نقاط الضعف في CSP للإضافة وسيسلط الضوء أيضًا على أي طرق محتملة لتجاوز CSP بسبب شبكات CDN المدرجة في القائمة البيضاء، إلخ.
- المكتبات المعروفة الضعيفة: يستخدم Retire.js للتحقق من أي استخدام لمكتبات JavaScript المعروفة بضعفها.
- تنزيل الإضافة والإصدارات المنسقة.
- تنزيل الإضافة الأصلية.
- تنزيل نسخة مجملة من الإضافة (HTML وجافا سكريبت مقومات تلقائيًا).
- التخزين المؤقت التلقائي لنتائج الفحص، تشغيل فحص إضافة سيستغرق وقتًا طويلاً في المرة الأولى. ولكن المرة الثانية، بافتراض أن الإضافة لم يتم تحديثها، ستكون فورية تقريبًا بسبب تخزين النتائج مؤقتًا.
- عناوين URL للتقرير قابلة للربط، يمكن بسهولة ربط شخص آخر بتقرير إضافة تم إنشاؤه بواسطة tarnish.