مرحبا يا هبر! أقدم لكم ترجمة المقال "
Internet aurait de sérieux problèmes à cause de langages comme C et C ++ favorisant la survenue de failles " (الفرنسية).
لكن القليل من المطورين يهتمون بهذا.
يؤثر أحد الأخطاء على iPhone ، والآخر - Windows ، والخوادم الثالثة - التي تعمل على Linux. للوهلة الأولى ، ليس لهذه الأخطاء ما تفعله ، لأنها تتعلق بأنظمة مختلفة: Android ، iOS ، macOS ، Windows ، Linux. ومع ذلك ، في الواقع ، كل شيء مختلف ، وفقًا أليكس جينور ، مهندس أمن البرمجيات في موزيلا ، الذي عمل سابقًا في خدمة USDS (الولايات المتحدة الرقمية).
خلال الحلقة الثالثة الأضعف ، وهي مناسبة سنوية تنظمها Motherboard Vice ،
فيما يتعلق بموضوع القرصنة الحاسوبية والأمن السيبراني في المستقبل ، أثار أليكس جينور مشكلة خطيرة ، والتي ، في رأيه ، يمكن أن تهدد الإنترنت ، ولكن ، من المفارقات ، أنه يترك للمطورين اللامبالاة تمامًا.
أوضح غاينور أن الأخطاء الثلاثة المذكورة سابقًا موجودة ، لأن البرنامج الذي تؤثر عليه على منصات مختلفة قد كتب باستخدام لغات البرمجة ، والتي لديها ميل غير سارة للتسبب في أخطاء مثل "الذاكرة غير آمنة" ، مما يتيح الوصول إلى مناطق الذاكرة غير المخصصة.
[3]على الأرجح ، كان المقصود هو الإشارة إلى العنصر السادس من الصفيف المكون من 5 عناصر ، على الرغم من أنه في لغات البرمجة الأخرى الأكثر أمانًا ، سيتم عرض رسالة خطأ على الأقل.
هذه الفئة من الأخطاء يمكن أن تؤدي إلى الأخطاء والثغرات الأمنية عند الوصول إلى الذاكرة.
من خلال السماح بحدوث أخطاء مثل "عدم أمان الذاكرة" ، يمكن أن تقوم لغات البرمجة مثل C و C ++ بنشر مجموعة لا نهائية تقريبًا من الثغرات الأمنية الخطيرة على مر السنين. مثال على نقاط الضعف هذه:
- اكتب عدم تطابق
- تجاوز سعة المخزن المؤقت
- تجاوز عدد صحيح متغير
- استخدام بعد الضعف مجانا
يمكن أن يحدث عدم تطابق النوع عندما لا يتحقق جزء من الكود من نوع الكائن الذي تم تمريره إليه ويستخدمه عمياء. هذا الوضع يمكن أن يكون خطيرا. بالإضافة إلى ذلك ، إلى جانب عدم تطابق النوع ، ترتبط مؤشرات الوظائف غير الصحيحة أو البيانات غير الصحيحة بالجزء الخطأ من الكود ، مما قد يؤدي في بعض الحالات إلى تنفيذه.
تجاوز سعة المخزن المؤقت (أو "تجاوز سعة المخزن المؤقت" باللغة الإنجليزية) هو ثغرة أمنية حرجة تحدث عندما يدخل المستخدم في سلسلة تكون في مجموعة من الأحرف ذات الحجم غير الكافي. يؤدي هذا إلى كتابة البيانات خارج منطقة الذاكرة المخصصة للصفيف. HeartBleed ، على سبيل المثال ، والتي أثرت على 17 ٪ من الخوادم الآمنة على الإنترنت ، كانت مشكلة عدم حصانة تجاوز سعة المخزن المؤقت التي سمحت لها بقراءة 60 كيلو بايت بعد نهاية القائمة ، بما في ذلك كلمات المرور وبيانات المستخدم الأخرى.
يعد تجاوز سعة عدد صحيح من الصعب اكتشاف الثغرة الأمنية التي تستغل حقيقة أن الأرقام لا يمكن أن تتجاوز قيمة معينة ، وهذا يعتمد على عدد البتات المستخدمة لتمثيلها وطريقة الترميز.
تحدث ثغرة "الاستخدام بعد الاستخدام المجاني" عادةً عند استخدام مؤشر أو بيانات في الذاكرة عند تحرير المؤشر (أو كتلة الذاكرة) بالفعل.
تعد نقاط الضعف هذه معًا هي الاستغلالات الأكثر شيوعًا في البرامج الشائعة ، مثل Firefox أو Chrome أو Windows أو Android أو iOS. حصرت غاينور بالفعل ما لا يقل عن 400 وتقول: "لقد كنت أراقب أمن هذه المشاريع لأكثر من عام ، وفي جميع إصدارات هذه المنتجات تقريبًا ، أكثر من نصف نقاط الضعف غير آمنة للذاكرة. والأكثر إثارة للقلق هو أن نقاط الضعف الحرجة والحادة [...] تحتوي دائمًا على هذا النوع ".
على الرغم من المخاطر الأمنية الكبيرة للبرنامج الذي يدعمونه ، لا تزال لغات البرمجة غير الآمنة للذاكرة مثل C أو C ++ تستخدم من قبل المطورين ، في حين يمكن اعتبار البدائل المؤكدة مثل Rust و Swift. كما لغات "ذاكرة آمنة" نادرة.
قد يكون هذا بسبب حقيقة أن المطورين ، كقاعدة عامة ، يختارون لغة برمجة استنادًا إلى لغات يعرفها فريقهم وأداؤهم وأنظمة المكتبات التي يمكن أن تتدفق من هذا الاختيار. عند اتخاذ القرارات ، لا يتم اعتبار عنصر الأمان المرتبط بهذا الأمر أبدًا ، أو على الأقل لا يتم اعتباره كافيًا ، على حد تعبير جينور.
بالإضافة إلى ذلك ، فإن معظم مشاريع البرامج ، حتى أهمها لأمن الإنترنت ، ليست جديدة. تم إطلاقها قبل عشر سنوات ، إن لم يكن أكثر. يبلغ عمر Linux و OpenSSL وخادم الويب Apache ، على سبيل المثال ، أكثر من عشرين عامًا. بالنسبة لمشاريع كبيرة الحجم مثل هذه ، فإن إعادة كتابة كل الشفرة بلغة جديدة ليس خيارًا. يجب تحويلها تدريجيًا ، مما يعني أنه يجب كتابة المشروعات وحفظها بلغتين مختلفتين بدلاً من واحدة. وهذا يعني أيضًا الحاجة إلى تشكيل فريق كبير يستغرق الكثير من الوقت ويتطلب المزيد من المال.
المشكلة الأكبر ، أخيرًا ، أن العديد من المطورين لا يعتقدون أن المشكلة موجودة على الإطلاق. إنهم يعتقدون أن المشكلة ليست في أن اللغات مثل C أو C ++ تساهم في الثغرات الأمنية ، ولكن المبرمجين الآخرين الذين يكتبون الكود مع وجود أخطاء. إنهم يعتقدون أنه لا توجد أي مشاكل مع هذه اللغات المفترض أنها "غير آمنة للذاكرة" ، لأنه لا يوجد كود مثالي ، فقط الناس لا يعرفون كيفية استخدامها.
ما رأيك في هذا؟
ألاحظ أن النقد السليم للترجمة مرحب به أيضًا.
شكرا لاهتمامكم!