Pysa ، محلل ثابت لـ Python يقدمه Facebook

أدخل Facebook محلل ثابت مفتوح المصدر يسمى "Pysa»(محلل بايثون الثابت) وهو مصممة لتحديد الثغرات الأمنية المحتملة في كود Python.

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

على سبيل المثال ، Pysa يمكن تتبع استخدام البيانات الخارجية الخام في المكالمات التي تنفذ البرامج الخارجية ، في عمليات الملفات وبنيات SQL.

اليوم ، نشارك تفاصيل حول Pysa ، وهي أداة تحليل ثابتة مفتوحة المصدر قمنا بإنشائها لاكتشاف ومنع مشكلات الأمان والخصوصية في تعليمات Python البرمجية. في العام الماضي ، شاركنا كيف أنشأنا Zoncolan ، وهي أداة تحليل ثابتة تساعدنا في تحليل أكثر من 100 مليون سطر من كود الاختراق وساعدت المهندسين على منع آلاف المشاكل الأمنية المحتملة. ألهمنا هذا النجاح لتطوير Pysa ، وهو اختصار لـ Python Static Analyzer.

يستخدم Pysa نفس الخوارزميات لإجراء تحليل ثابت وحتى مشاركة التعليمات البرمجية مع زونكولان. مثل Zoncolan ، Pysa يتتبع تدفق البيانات من خلال برنامج.

يحدد المستخدم المصادر (الأماكن التي تنشأ فيها البيانات المهمة) وكذلك الأحواض (الأماكن التي لا ينبغي أن تنتهي فيها بيانات المصدر).

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

تميل أجهزة الاستقبال إلى أن تكون أكثر تنوعًا ، ولكن يمكن أن تتضمن واجهات برمجة التطبيقات التي تشغل التعليمات البرمجية ، مثل eval، أو واجهات برمجة التطبيقات التي تصل إلى نظام الملفات ، مثلos.open

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

عمل محلل يتلخص في تحديد مصادر البيانات الواردة والمكالمات الخطيرة التي يجب عدم استخدام البيانات الأصلية فيها.

يراقب Pysa مرور البيانات عبر سلسلة استدعاءات الوظائف ويربط البيانات الأصلية بأماكن يحتمل أن تكون خطرة في الكود.

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

إحدى الثغرات الشائعة التي حددتها Pysa هي مشكلة إعادة توجيه مفتوحة (CVE-2019-19775) في منصة رسائل Zulip ، والتي تنتج عن تمرير معلمات خارجية غير نظيفة عند عرض الصور المصغرة.

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

على سبيل المثال يمكن استخدام Pysa بدون تكوينات إضافية للتحقق من المشاريع باستخدام الأطر دجانجو وتورنادو. يمكن لـ Pysa أيضًا تحديد نقاط الضعف الشائعة في تطبيقات الويب ، مثل استبدال SQL والبرمجة النصية عبر المواقع (XSS).

على Facebook ، يتم استخدام المحلل للتحقق من رمز خدمة Instagram. خلال الربع الأول من عام 2020 ، ساعدت Pysa في تحديد 44٪ من جميع المشكلات التي وجدها مهندسو Facebook في قاعدة الأكواد من جانب الخادم في Instagram.

تم تحديد إجمالي 330 مشكلة في هذه العملية من التحقق الآلي من التغيير باستخدام Pysa ، تم تقييم 49 (15٪) منها على أنها مهمة و 131 (40٪) لم تكن خطيرة. في 150 حالة (45٪) نُسبت المشاكل لإيجابيات كاذبة.

تم تصميم المحلل اللغوي الجديد كإضافة إلى مجموعة أدوات التحقق من نوع Pyre ويتم وضعه في المستودع الخاص بك. تم تحرير الرمز بموجب ترخيص MIT.

أخيرا إذا كنت تريد معرفة المزيد عنها ، يمكنك التحقق من التفاصيل في المنشور الأصلي. الرابط هو هذا.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.