
أظهر استعراض من WhiteSource أي من لغات البرمجة بها أكبر الثغرات الأمنية. الفائز بمكافحة التصنيف هو C. ولكن هذه ليست سوى بداية القصة.
التكنولوجيا ككل محشوة بالأخطاء الأمنية. في مستوى منخفض ، هذه أخطاء في الأجهزة. لذلك كان مع أخطاء إنتل وأخطاء شبح. أعلى قليلا هي ثقوب في أمن لغات البرمجة. وهناك الكثير منهم!
في الآونة الأخيرة ، أجرت شركة OpenSource WhiteSource ، وهي شركة أمنية ، بحثًا عن الثغرات الأمنية في سبع من لغات البرمجة الأكثر شيوعًا في السنوات العشر الأخيرة. استخدمت الشركة قاعدة بيانات أمان اللغة الخاصة بها للكشف عن الأخطاء. أنه يحتوي على نقاط ضعف المصدر المفتوح من عدة مصادر ، مثل قاعدة بيانات الضعف الوطنية (NVD) ، وتعليمات الأمان ، بتتبعات GitHub ، ومشاريع مفتوحة المصدر.
حددت الشركة اللغات التالية: C و Java و JavaScript و Python و Ruby و PHP و C ++. وهذا ليس مستغربا. مثل أي لغة بها أكثر أخطاء الأمان. بهامش واسع ، هذا هو X. كان أكثر من 50 ٪ من نقاط الضعف المكتشفة فيه.
كما لاحظ Kees "Case" Cook ، مهندس أمان Linux Linux kernel في Google ، مؤخرًا: "C عبارة عن مُجمّع مُحسّن. تقريبا رمز الجهاز. " بالإضافة إلى ذلك ، "تحمل C أمتعة مزعجة وسلوكًا غامضًا ونقاط ضعف أخرى تؤدي إلى ثغرات في ثغرات أمنية وبنية تحتية".
ومع ذلك ، يزعم WhiteSource أنه "لا يمكنك القول أن لغة C أقل أمانًا من اللغات الأخرى. يمكن تفسير عدد كبير من نقاط الضعف في التعليمات البرمجية مفتوحة المصدر C بعدد من العوامل. بالنسبة للمبتدئين ، تم استخدام لغة C لفترة أطول من اللغات الأخرى التي اكتشفناها. لديها أكبر قدر من التعليمات البرمجية المكتوبة. كما أنها واحدة من اللغات التي تقف وراء البنى التحتية المهمة مثل OpenSSL و Linux kernel. يشرح هذا المزيج من مستوى الصوت والموضع المركزي عددًا كبيرًا من نقاط الضعف المعروفة المصدر المفتوح. "
اشتعلت WhiteSource هذه النقطة. ولكن على الرغم من عقود من البرمجة والتعامل مع لغة C ، هناك بالفعل طرق في هذه اللغة تجعل الأخطاء الأمنية الفظيعة سهلة للغاية. على سبيل المثال ، هناك عدد كبير من أمثلة السلوك غير المحدد في C ، مما يفتح الفرص لجميع أنواع المشاكل.
في الوقت نفسه ، اشتهرت C ++ بضعفها على أعلى درجة من الخطر خلال السنوات الخمس الماضية. غالبًا ما يتم اكتشاف الأخطاء في المخزن المؤقت التي ابتليت بها C لمدة طويلة في C ++.
لا تعكس الأشكال الصورة بأكملها ، إذا تحدثنا عن اللغة الأكثر حماية أو الأقل حماية.
(Image WhiteSource)ومع ذلك ، ربما تكون JavaScript هي اللغة الأكثر شعبية. والوحيد الذي أظهر "زيادة مستمرة في عدد نقاط الضعف خلال السنوات العشر الماضية".
يؤكد WhiteSource على أنه قبل سخرية JavaScript ، يرجى ملاحظة أن هذه النتائج مضللة. يتكون معظم تعداد الضعف العام في JavaScript من مخارج من الدليل المعين والثقوب في الحماية المشفرة لحزم JavaScript التي بالكاد يتم استخدامها ودعمها.
لماذا إذن هذه المشاكل اللغوية وغيرها في الأفق؟ تكتشف البرامج الآلية الجديدة ، مثل أدوات تحليل شفرة المصدر ، نقاط الضعف التي يمكن التغاضي عنها بطريقة أخرى.
اللغة الوحيدة التي أظهرت نفسها بشكل جيد فيما يتعلق بالثقوب الأمنية هي (أسطوانة الطبل!) - بيثون. نعم ، حسن البالغ من العمر سخر بيثون في كثير من الأحيان.
تساهم جميع اللغات تقريبًا في قائمة الثغرات العامة. ظهر خطأان من القائمة وتم الإبلاغ عنهما في 70٪ من الحالات: Crossite Scripting (XSS) ، والمعروف أيضًا باسم CWE-79 والتوثيق غير الكافي للمصادقة (CWE-20).
أخطاء شائعة أخرى: التسرب / الإفصاح (CWE-200) ، دليل خارج الحدود (CWE-22) و CWE-264 - أذونات وامتيازات وأدوات التحكم في الوصول. تم استبدال هذا الأخير مؤخرًا من خلال نسبه الأكثر تحديدًا وإغلاقًا - التحكم في الوصول غير المناسب (CWE-284).
ولكن هل سي هو الأسوأ وبيثون هو الأفضل؟ يعتقد WhiteSource أن هذا استنتاج بسيط للغاية: "على الرغم من أن اللعبة" لغة البرمجة الخاصة بي أكثر أمانًا من لغتك "فهي بالتأكيد وسيلة ممتعة لقضاء بعض الوقت ... لا يبدو أن الإجابة تساعدك في إنشاء برامج أكثر أمانًا أو ابتكارًا."
على العكس من ذلك ، يجب أن تقضي مزيدًا من الوقت "في البقاء في طليعة ثغرات المصدر المفتوح ، وفهم نقاط القوة والضعف في لغة البرمجة التي تستخدمها أنت وفريقك."
في نهاية المطاف ، لا يعود الأمان إلى لغات البرمجة ، ولكن إلى كيفية استخدامها.
→
الإجراء: خصم 40 ٪ على IaaS للمطورين.ستيفن فوغان نيكولز لنظام التشغيل Linux و Open Source
المقال الأصلي