تكشف أداة ODGen الجديدة عن 180 يومًا في مكتبات Node.js ذكاء بيانات PlatoBlockchain. البحث العمودي. عاي.

تكشف أداة ODGen الجديدة عن 180 يومًا في مكتبات Node.js

كشف باحثون في جامعة جونز هوبكنز مؤخرًا عن 180 نقطة ضعف مذهلة في يوم الصفر عبر الآلاف من مكتبات Node.js باستخدام أداة تحليل كود جديدة طوروها خصيصًا لهذا الغرض ، تسمى ODGen.

سبعين من هذه العيوب منذ ذلك الحين تلقت نقاط ضعف مشتركة ومعرفات التعرض (CVE). وهي تشمل عيوب إدخال الأوامر ، ونقاط الضعف في اجتياز المسار ، ومشكلات تنفيذ التعليمات البرمجية التعسفية ، ونقاط الضعف في البرمجة النصية عبر المواقع - بعضها في التطبيقات المستخدمة على نطاق واسع.

في ورقة بحثية صدرت في ندوة Usenix Security في وقت سابق من هذا الشهر ، وصف باحثو Johns Hopkins - Song Li و Mingqing Kang و Jianwei Hou و Yinzhi Cao - ODGen كبديل أفضل لتحليل الكود الحالي وما يسمى باستعلام الرسم البياني. طرق البحث عن ثغرات Node.js.

أثبتت الأساليب القائمة على تحليل البرامج أنها مفيدة في المساعدة على اكتشاف أنواع الثغرات الأمنية الفردية مثل عيوب إدخال التعليمات البرمجية في JavaScript. لكن الباحثين قالوا إنه لا يمكن توسيعها بسهولة لاكتشاف جميع أنواع نقاط الضعف التي قد تكون موجودة في منصة Node.js. وبالمثل ، فإن طرق تحليل الشفرة القائمة على الرسم البياني - حيث يتم تمثيل الكود أولاً كرسم بياني ثم الاستعلام عن أخطاء ترميز محددة - تعمل بشكل جيد في بيئات مثل C ++ و PHP. ومع ذلك ، فإن الأساليب القائمة على الرسوم البيانية ليست فعالة في التنقيب عن ثغرات جافا سكريبت بسبب الاستخدام المكثف للغة البرمجة للميزات الديناميكية ، كما لاحظوا.

نهج "جديد" للعثور على ثغرات جافا سكريبت

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

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

يعمل الرسم البياني Object Dependence Graph الذي اقترحه الباحثون على تحسين هذا النهج من خلال تمثيل كائنات JavaScript كعقد وإضافة ميزات - بما في ذلك التبعيات بين الكائنات - خاصة بلغة البرمجة ، ثم الاستعلام عن الأخطاء. يصف Cao كيفية عمل هذه الطريقة باستخدام الحبوب في حفنة من الأرز: إذا كانت جميع الحبوب تبدو كما هي قبل الغليان ولكن تفترض لونين مختلفين بعد الغليان - أحدهما يمثل الحبوب الجيدة والآخر الحبوب السيئة - يصبح من السهل تحديد وإزالة الأعشاب الضارة. الحبوب السيئة. يقول كاو: "التفسير المجرد يشبه نوعًا ما عملية الغلي التي تحول الأرز - أي البرامج - إلى كائنات ملونة مختلفة" لذلك يسهل اكتشاف الأخطاء.

مجموعة متنوعة من الحشرات

لمعرفة ما إذا كان نهجهم يعمل ، قام الباحثون أولاً باختبار ODGen مقابل عينة من 330 نقطة ضعف تم الإبلاغ عنها مسبقًا في حزم Node.js على مستودع مدير حزم العقدة (npm). أظهر الاختبار أن الماسح الضوئي حدد بشكل صحيح 302 من 330 نقطة ضعف. مدعومًا بمعدل الدقة المرتفع نسبيًا ، قام الباحثون بتشغيل ODGen مقابل 300,000 حزمة Java في npm. أبلغ الماسح عن ما مجموعه 2,964 نقطة ضعف محتملة عبر الحزم. قام الباحثون بفحص 264 منها - كل ذلك مع أكثر من 1,000،180 تنزيل أسبوعيًا في المتوسط ​​- وتمكنوا من تأكيد 122 على أنها ثغرات أمنية مشروعة. كان 15 منها على مستوى التطبيق ، و XNUMX كانت في حزم تم استيرادها بواسطة تطبيقات أو كود آخر ، و XNUMX كانت موجودة في حزم غير مباشرة.

كانت مجموعة (80) من الثغرات الأمنية المؤكدة التي اكتشفها ODGen تدفقات حقن الأوامر التي تسمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية على مستوى نظام التشغيل عبر تطبيق ضعيف. ثلاثون منها كانت عيوبًا في اجتياز المسار ؛ تم تمكين التلاعب بالرمز 24 ، و 19 اشتمل على نوع معين من هجوم حقن الأوامر يسمى تلوث النموذج الأولي.

الطابع الزمني:

اكثر من قراءة مظلمة