ثريد عن محاضرة م. محمد الدوب @Voulnet
@SAFCSP
#سايبر_نايت بعنوان "Deserializtion"
الشريك والممكن الرقمي@stc_ksa
#SAFCSP
#الأمن_السيبراني
@SAFCSP
#سايبر_نايت بعنوان "Deserializtion"
الشريك والممكن الرقمي@stc_ksa
#SAFCSP
#الأمن_السيبراني
أيضا القدرة على التحكم في قيم الحقول داخل الكائن الذي تم إلغاء تسلسله بحيث تكون مفيدة للمهاجم.
المستخدم إلى وظيفة ضعيفة تلغي الإدخال (غير الآمن!) الإدخال في دالة إلغاء تسلسل XML.
فإن الاستخدام غير الآمن لتسلسل / إلغاء تسلسل XML يمكن أن يؤدي إلى نقاط ضعف وتنفيذ التعليمات البرمجية عن بُعد.
المفيدة. • المشكلة: لا يمكنها إجراء تسلسل للواجهات الحل: البحث عن كائن لا يحتوي على واجهات ، على سبيل المثال XamlReader بدلاً من System.Diagnostics. معالجة المشكلة: لا يمكنه إجراء تسلسل / إلغاء تسلسل الفئات التي لا يعرفها في وقت التشغيل • الحل:
الحل: سنبحث للثغرات حيث يمكن للمهاجم / المستخدم توفير أو التأثير على النوع الذي يتم إرساله إلى deserializer.
سبيل المثال RCE ، كتابة / قراءة الملفات ، بدء العمليات). • يمكن استدعاء وظائفه تلقائيًا عند إنشاء مثيل (منشئون أو رسائل / مستوطنون ميدانيون عامون) أو عند إلغاء التسلسل (باستخدام استدعاءات إلغاء التسلسل مثل OnDeserialized ()). • لسوء الحظ ، ليس من السهل العثور على فئة واحدة
تقوم بكل ذلك لذا يتعين علينا ربط الأدوات (استخدم فئة واحدة لتحميل فئة أخرى ... إلخ).
التي من الواضح أنها لا يوصى بها خاصة في البيئات المهنية.
3- احتوت بعض مواقع POCS العامة على حمولات خطرة على الويب ليست آمنة للاستخدام في الأهداف المصرح بها (مثل الدعامات أو عمليات فرق العمل الحمراء).
• 4- كان علينا إرسال كل حمولة من المتصفح من صفحة مباشرة ،
3- احتوت بعض مواقع POCS العامة على حمولات خطرة على الويب ليست آمنة للاستخدام في الأهداف المصرح بها (مثل الدعامات أو عمليات فرق العمل الحمراء).
• 4- كان علينا إرسال كل حمولة من المتصفح من صفحة مباشرة ،
أو نسخ قيم VIEWSTATE و EVENTVALIDATION / صالحة. 5-
5- احتجنا إلى الإصدار الصحيح من خادم Sharepoint الهدف لتعيين الاسم الصحيح للتأهل للتجميع.
5- احتجنا إلى الإصدار الصحيح من خادم Sharepoint الهدف لتعيين الاسم الصحيح للتأهل للتجميع.
سبيل المثال ping 8.8.8.8 ثم حلقات فوق كل حرف ، يقوم بتشفيرها إلى utf16-big endian ، ثم يشفرها سداسيًا مما يؤدي إلى hex ثنائي ، ثم يأخذ تمثيل ascii الخاص به ، ثم يعكسه. تقوم وظيفة فك التشفير بالعكس: لكل 4 أحرف (2 بايت سداسي - تذكر أنها endf-16 endian كبيرة في الاتجاه المعاكس)
ثم تقوم بعكس هذه الأحرف الأربعة مرة أخرى ، وفك تشفيرها من hex ، وفك تشفيرها كـ utf-16 big endian ، مما أدى إلى نص الأمر الفعلي. مثال: 35009700370047005600 عكسي: 00530079007300740065 فك تشفير من UTF16: 0x5379737465
بعض الأحيان يكون الحل الحقيقي الوحيد ، على سبيل المثال ضد هجمات Python Pickle. ومع ذلك ، في بعض الأحيان ، هناك حاجة إلى التسلسل. 2- استخدم مكتبات ووظائف وتكوينات التسلسل الآمن: مثل YAML safe_load ، واجعل readObject final في Java. إلخ. ومع ذلك ، فإن هذه الدفاعات محدودة وغير
قابلة للتطبيق في جميع الحالات ، فهي تتطلب اختبارات مكثفة. 3- استخدام التوقيع: قم بتوقيع كائن متسلسل ولا تبطل ما لم يتم التوقيع عليه بشكل صحيح. تكمن المشكلة في هذا النهج في حماية مفتاح التوقيع ، وإذا تم تسريبه ، فقد ينتج عنه سطح هائل لإزالة التسلسل ،
على سبيل المثال: CVE-2020-0688 (Microsoft Exchange Deserialization بسبب تعرض مفتاح توقيع ViewState الثابت!)
/References/
وأخيراً اشكر الاستاذ م. محمد الدوب على هذي المحاضرة القيمه والمليئة بالمعلومات بمعدل 3ساعات تقريبا! و63شريحه بوربوينت! واكرر شكري على هذه المعلومات القيمه وفقك الله @Voulnet
ولا أنسى الاتحاد السعودي السيبراني على استضافتهم لهذا المهندس الرائع وغيرهم من الأشخاص الرائعين جزاهم الله خير @SAFCSP
جاري تحميل الاقتراحات...