هل تعلم ما هي لغة البرمجة الأكثر عرضة للخطر؟

هل تعلم ما هي لغة البرمجة الأكثر عرضة للخطر؟

هناك العديد من العيوب الأمنية في التكنولوجيا ، سواء في الأجهزة مثل Meltdown و Spectra bugs ، أو الأخطاء في أمان لغات البرمجة. تم إجراء دراسة مؤخرًا بواسطة WhiteSourceSoftware ، وهي شركة أمنية لتحليل الثغرات الأمنية مفتوحة المصدر في لغات البرمجة السبعة الأكثر استخدامًا ، خاصة في العقد الماضي.


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


وفقًا لمهندس أمان نواة Google Linux ، فإن Kees Cook، C هو أكثر من رمز الآلة ومُجمّع فاخر. توجد بعض نقاط الضعف والسلوكيات غير المؤكدة الموجودة في C والتي تؤدي إلى حدوث ثغرات وأخطاء أخرى.

أوضحت WhiteSource أن هذه الثغرات لا تعني أن لغة C هي لغة أقل أمانًا ، بل يتم استخدامها لفترة طويلة ويتم كتابة أكبر عدد من الرموز فيها. يحتوي Linux kernel و OpenSSL على بعض الرموز المكتوبة بلغة C.


جعل الأخطاء الأمنية في C أمرًا شائعًا وسهلًا بعد عقود من استخدامه. سلوك غير محدد من C يترك العديد من الاحتمالات سيئة مفتوحة.

بينما في C ++ ، تم العثور على معظم الثغرات الشديدة في السنوات الخمس الأخيرة ، حيث يمكن الآن العثور على خطأ في المخزن المؤقت C ++ أيضًا.

جافا سكريبت  هي لغة أخرى مطلوبة للغاية ولكن في العقد السابق ، زاد عدد نقاط الضعف فيها.


تقوم البرامج الآلية مثل أدوات تحليل شفرة المصدر برصد نقاط الضعف التي لا تشكل مشكلة كبيرة. اللغة التي تم تسجيلها جيدًا في الثغرات الأمنية هي بيثون.

تتم مشاركة بعض التعدادات الشائعة للضعف (CWEs) بين كل اللغات تقريبًا ، ومن بينها اثنان من CWEs يتم عرضهما في أعلى 70 في المئة من اللغات: XSS (Cross-Site-Scripting) أو CWE-79 و CWE-20 aka Input التحقق من الصحة.

بعض CWEs المشتركة التي شوهدت هي تسرب المعلومات / الكشف (CWE-200). مسار اجتياز (CWE-22) ، امتيازات CWE-264 ، أذونات والتحكم في الوصول وكذلك التحكم في الوصول غير المناسب (CWE-284).

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

لا يعتمد الأمان تمامًا على اللغة ، بدلاً من كيفية استخدام هذه اللغة