سيمل

شركة Semmle هي منصة لتحليل الشفرة البرمجية ؛ استحوذت عليها GitHub (التابعة لشركة Microsoft ) في 18 سبتمبر 2019 مقابل مبلغ لم يُفصح عنه. [ 2 ] تعمل تقنية LGTM من Semmle على أتمتة مراجعة الشفرة البرمجية ، وتتبع مساهمات المطورين ، وتحديد مشكلات أمان البرمجيات . [ 2 ] تستفيد منصة LGTM من محرك الاستعلام CodeQL (المعروف سابقًا باسم QL) [ 3 ] لإجراء تحليل دلالي على قواعد بيانات الشفرة البرمجية. تهدف GitHub إلى دمج تقنية Semmle لتوفير خدمات الكشف المستمر عن الثغرات الأمنية. [ 4 ] في نوفمبر 2019، أصبح استخدام CodeQL مجانيًا لأغراض البحث والمصادر المفتوحة. [ 5 ] إما أن CodeQL تشترك في أصل مباشر مع .QL (dot-que-ell)، المشتقة من شجرة عائلة Datalog ، أو أنها تطور لتقنية مماثلة.

SemmleCode هي لغة استعلام كائنية التوجه لقواعد البيانات الاستنتاجية، طورتها شركة Semmle. وتتميز ضمن هذه الفئة بدعمها للاستعلام التكراري .

خلفية مؤسسية

كان مقر الشركة الرئيسي في سان فرانسيسكو ، بينما كانت عمليات التطوير الخاصة بها تتخذ من بلو بور كورت، شارع ألفريد ، وسط أكسفورد ، إنجلترا . وشمل عملاء سيميل كريدي سويس ، وناسا ، وديل . [ 6 ]

خلفية SemmleCode

أكاديمي

يستند نظام SemmleCode إلى أبحاث أكاديمية حول استعلام شفرة المصدر لبرامج الحاسوب. كان نظام Omega الخاص بلينتون أول نظام من هذا النوع، [ 7 ] حيث كانت الاستعلامات تُصاغ بلغة QUEL . لم تسمح QUEL بالاستدعاء الذاتي في الاستعلامات، مما صعّب فحص هياكل البرامج الهرمية مثل مخطط الاستدعاءات . ولذلك، كان التطور المهم التالي هو استخدام البرمجة المنطقية ، التي تسمح بمثل هذه الاستعلامات الاستدعائية، في متصفح XL C++. [ 8 ] إلا أن عيب استخدام لغة برمجة منطقية كاملة هو صعوبة تحقيق كفاءة مقبولة. كان نظام CodeQuest، [ 9 ] الذي طُوّر في جامعة أكسفورد ، أول من استغلّ الملاحظة القائلة بأن لغة Datalog ، وهي نسخة محدودة للغاية من البرمجة المنطقية، تُمثّل نقطة التوازن الأمثل بين القدرة التعبيرية والكفاءة. لغة الاستعلام QL هي نسخة كائنية التوجه من Datalog.

صناعي

أدت الأبحاث المبكرة في مجال استعلام مصدر برامج الحاسوب إلى ظهور عدد من التطبيقات الصناعية. وعلى وجه الخصوص، أصبحت هذه الأبحاث حجر الزاوية لأنظمة ذكاء التطبيقات ( استخراج البيانات من مصدر أنظمة البرمجيات) وتحديث البرمجيات. في عام 2007، كانت شركة CAST [ 10 ومقرها باريس ، من الشركات الرائدة في هذا المجال، ومن بين الشركات البارزة الأخرى شركة BluePhoenix في هرتسليا ، إسرائيل . يختلف نظام SemmleCode عن هذه الأنظمة في استخدامه لغة استعلام كائنية التوجه، مما يتيح للمبرمجين صياغة استعلامات جديدة بسهولة تتناسب مع مشاريعهم الخاصة.

يمكن الاطلاع على سرد كامل للتطورات الأكاديمية والصناعية التي أدت إلى إنشاء SemmleCode في ورقة بحثية من تأليف حاجييف وآخرون [ 11 ] .

استعلام نموذجي بلغة QL

لتوضيح استخدام لغة QL، لنأخذ مثالاً على القاعدة المعروفة في البرمجة كائنية التوجه، وهي أن الحقول العامة يجب تعريفها على أنها نهائية. وللكشف عن أي مخالفة لهذه القاعدة، يجب البحث عن حقول عامة ولكنها ليست نهائية. في لغة QL، يُعبَّر عن هذا الشرط كما يلي:

من الحقل f حيث f.hasModifier ( "public" ) وليس ( f.hasModifier ( " final " ))، حدد f.getDeclaringType ( ). getPackage ( ) ، و f.getDeclaringType ( ) ، و f

هنا لا يتم تحديد الحقل المخالف فحسب f، بل يتم تحديد الحزمة والنوع اللذين يظهر فيهما تعريفه أيضًا.

تكامل SemmleCode مع بيئات التطوير

يوفر SemmleCode واجهة مستخدم عبر بيئة تطوير Eclipse للاستعلام عن كود Java (سواءً الكود المصدري أو الكود الوسيط) بالإضافة إلى ملفات XML، ولتحرير استعلامات QL. ومع ذلك، فهذا مجرد تطبيق واحد للتقنية التي يقوم عليها: إذ يمكن استخدام QL للاستعلام عن أي نوع آخر من البيانات المعقدة.

كجزء من عملية الاندماج في شركة مايكروسوفت/جيت هاب، تم استبدال سير العمل الأصلي القائم على إكليبس بسير عمل قائم على برنامج مايكروسوفت فيجوال ستوديو كود . [ 3 ]

انظر أيضاً

مراجع

  1. «استحوذت GitHub على Semmle لمساعدة المطورين على اكتشاف ثغرات البرامج» . venturebeat.com . ١٨ سبتمبر ٢٠١٩. تاريخ الاطلاع: ٢٠ سبتمبر ٢٠١٩ .
  2. 1 2 لاردينوا، فريدريك (18 سبتمبر 2019). "GitHub تستحوذ على أداة تحليل الشفرة Semmle" . techcrunch.com . TechCrunch . تم الاطلاع عليه في 13 مارس 2021 .
  3. 1 2 "تقديم CodeQL" . semmle.com . Semmle. سبتمبر 2019. تم الاطلاع عليه في 13 مارس 2021. تم تغيير اسم منتج وأدوات "QL" إلى CodeQL ... ما كان يُسمى سابقًا "لقطة QL" أصبح الآن قاعدة بيانات CodeQL.
  4. دي سيمون، سيرجيو (19 سبتمبر 2019). "GitHub يدمج تحليل Semmle للبرمجيات للكشف المستمر عن الثغرات الأمنية" . infoq . InfoQ . تم الاطلاع عليه في 13 مارس 2021 .
  5. كريل، بول (15 نوفمبر 2019). "GitHub يجعل CodeQL مجانيًا للأبحاث والمصادر المفتوحة" . infoworld.com . InfoWorld . تم الاطلاع عليه في 13 مارس 2021 .
  6. «شركة Semmle المنبثقة تحصل على 8 ملايين دولار من Accel Partners» (بيان صحفي). جامعة أكسفورد. 16 سبتمبر 2014. تاريخ الاطلاع: 18 سبتمبر 2015 .
  7. "نظام أوميغا لينتون" . الولايات المتحدة الأمريكية: جامعة كاليفورنيا، بيركلي . 1983.
  8. شهرام جافي، كينيتشي ميتسوي، هيروآكي ناكامورا، تسويوشي أوهيرا، كازو ياسودا، كازوشي كوس، تسوتومو كاميمورا، وريتشارد هيلم. بنية متصفح XL C++ . في CASCON '92: وقائع مؤتمر عام 1992 لمركز الدراسات المتقدمة حول البحوث التعاونية ، الصفحات 369-379. مطبعة IBM، 1992.
  9. "نظام CodeQuest" . المملكة المتحدة: مختبر الحوسبة بجامعة أكسفورد . مؤرشف من الأصل في 9 أكتوبر 2006.
  10. "برنامج كاست" .
  11. إلنار حاجييف، وماثيو فيرباير، وأويج دي مور، كود كويست: استعلامات قابلة للتوسع عن شفرة المصدر باستخدام داتا لوج. في وقائع المؤتمر الأوروبي لعام 2006 حول البرمجة الكائنية التوجه (ECOOP 2006) ، الصفحات 2-27. سبرينغر ، 2006.

للمزيد من القراءة

  • مارك أ. لينتون. تطبيق وجهات النظر العلائقية للبرامج. في بيتر ب. هندرسون، محرر، بيئات تطوير البرمجيات (SDE) ، الصفحات 132-140، 1984.