
Project Aura: التدقيق الأمني واستبطان الكود

الاتجاه الحالي في التطوير هو استخدام العديد من الحزم في مرحلة التطوير، حتى لو كانت توفر فقط وظائف تافهة وتتكون من 11 سطرًا من الشيفرة. عندما نجمع هذا مع سياسات متساهلة جدًا لنشر الحزم الجديدة، نرى الآن ارتفاعًا في الهجمات الخبيثة التي تستهدف المطورين. كانت هناك عدة طرق مختلفة من جهات التهديد:
هذه مجرد أمثلة قليلة من التقنيات التي يمكن للمطور من خلالها تعريض نفسه للخطر. وهذا مدعوم بحقيقة عدم وجود عملية مراقبة على ما يتم تحميله إلى المستودعات مثل PyPI أو NPM، وأن الحظ المحض هو ما كشف الحوادث السابقة. هدفنا هو تحسين ذلك.
لقد أنشأنا إطار عمل مصمم لمسح الشيفرة المصدرية على نطاق واسع (مثل مستودع PyPI بأكمله)، بحثًا عن الشذوذ والنوايا الخبيثة المحتملة وكذلك الثغرات الأمنية. هذا الإطار مصمم أيضًا لمسح الشيفرة المصدرية عند الطلب مثل عند تثبيت حزمة من قبل مطور أو أي مجموعة من الملفات/الأدلة. التنفيذ الحالي يستهدف لغة Python و PyPI، ومع ذلك، فهو مصمم لتوفير القدرة على تضمين لغات أخرى (مثل Javascript و NPM).
تشمل حالات الاستخدام على سبيل المثال لا الحصر:
يُحقق ذلك محرك تحليل هجين عالي التحسين. يتم إجراء التحليل في بيئة آمنة تمامًا باستخدام تحليل الشيفرة الثابتة دون أي تنفيذ للشيفرة. يقوم محرك Aura الأساسي بتحليل شجرة AST المستخلصة من الشيفرة المصدرية، وإجراء تحليل سلوكي وتدفق تنفيذ الشيفرة. كما يدعم المحرك إعادة كتابة شجرة AST باستخدام مجموعة من القواعد مثل نشر الثوابت (constant propagation) أو الطي (folding) أو التقييم الثابت (static evaluation)؛ هذه مجموعة من التقنيات التي تستخدمها المترجمات لتحسين الشيفرة. هذا هو السبب في أن نهج التحليل هذا "هجين" لأنه يعزز التحليل الثابت بتقييم جزئي آمن تمامًا يسمح لنا بالتغلب على آليات الإبهام (obfuscation) الأبسط.
أدناه، يمكنك رؤية عرض لتقنيات "الإبهام" المختلفة للشيفرة المصدرية التي يتعرف عليها محرك تحويل AST في Aura:

لتعلم الإطار وبدء استخدامه، اقرأ وثائق التثبيت والإعداد و الاستخدام.
الجزء الأساسي من Aura هو تحليل الشيفرة المصدرية بحثًا عن الشذوذ أو الثغرات المحتملة. يحتوي Aura على عدة محللات مدمجة تبحث عن الشذوذ مثل استخدام eval في سكريبت الإعداد؛ محللات أخرى تنظر في هيكل نظام الملفات (غير الشيفرة المصدرية) بحثًا عن أمثلة مثل تسريب بيانات الاعتماد، ورموز API المضمنة (hard-coded)، إلخ. هذه المحللات تُنتج ما نسميه hits التي تحدد الشذوذ الذي تم العثور عليه ويمكن أن تتضمن أيضًا نقاطًا (score)، تُستخدم لحساب الهالة الأمنية (security aura) للبيانات الممسوحة. يُنصح باستخدام حكم معقول على الشذوذ المعروض بناءً على وظيفة البيانات المدخلة. على سبيل المثال، من الطبيعي تمامًا لمكتبة requests أن تتضمن استدعاءات متعلقة بالشبكة بينما في نفس الوقت، لا يُتوقع لمكتبة معالجة صور أن ترسل بيانات عبر الشبكة. هناك أيضًا دعم لإخراج البيانات بتنسيق JSON مناسب لفحوصات المستودعات الضخمة أو التكامل مع المنتجات الأخرى. لوصف واستخدام المكونات الأخرى، راجع الوثائق.


##الوثائق
هذا المشروع مرخص بموجب رخصة GPLv3 - راجع ملف LICENSE.txt للحصول على التفاصيل. تحتوي أجزاء من هذا الإطار على تكاملات (اختيارية) مع منتجات أخرى مثل منصة r2c و libraries.io، إلخ؛ والتي تخضع لرخص وشروط الاستخدام الخاصة بها.