يرحب المحللون بنصيحة وكالة الأمن القومي للمطورين لاعتماد لغات آمنة للذاكرة وذكاء بيانات PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

يرحب المحللون بنصائح وكالة الأمن القومي للمطورين لاعتماد لغات آمنة للذاكرة

رحب محللو الأمن بتوصية من وكالة الأمن القومي الأمريكية (NSA) الأسبوع الماضي لمطوري البرامج للنظر في اعتماد لغات مثل C # و Go و Java و Ruby و Rust و Swift لتقليل نقاط الضعف المتعلقة بالذاكرة في التعليمات البرمجية.

ووصفت وكالة الأمن القومي (NSA) هذه اللغات على أنها لغات "ذاكرة آمنة" تدير الذاكرة تلقائيًا كجزء من لغة الكمبيوتر. وقالت وكالة الأمن القومي إنهم لا يعتمدون على المبرمج لتنفيذ أمان الذاكرة وبدلاً من ذلك يستخدمون مزيجًا من وقت الترجمة وتشغيل عمليات التحقق من الوقت للحماية من أخطاء الذاكرة.

حالة اللغات الآمنة للذاكرة

أشار مستشار NSA غير المعتاد إلى حد ما في 10 نوفمبر إلى اللغات المستخدمة على نطاق واسع مثل C و C ++ الاعتماد بشكل كبير على المبرمجين لا يزال عدم ارتكاب أخطاء متعلقة بالذاكرة ، وهو ما لاحظته ، هو السبب الرئيسي للثغرات الأمنية في البرامج. الدراسات السابقة - واحدًا تلو الآخر مايكروسوفت في 2019 وآخر من جوجل في عام 2020 ذات الصلة بمتصفح Chrome - على سبيل المثال ، وجد كلاهما أن 70٪ من نقاط الضعف كانت مشكلات تتعلق بأمان الذاكرة ، حسبما قالت وكالة الأمن القومي.

قالت وكالة الأمن القومي: "اللغات شائعة الاستخدام ، مثل C و C ++ ، توفر قدرًا كبيرًا من الحرية والمرونة في إدارة الذاكرة مع الاعتماد بشكل كبير على المبرمج لإجراء الفحوصات اللازمة على مراجع الذاكرة". يؤدي هذا غالبًا إلى نقاط ضعف قابلة للاستغلال مرتبطة بأخطاء بسيطة مثل أخطاء تجاوز سعة المخزن المؤقت ومشكلات تخصيص الذاكرة وظروف السباق.

قالت وكالة الأمن القومي في استشاريها إن لغات C # و Go و Java و Ruby و Rust و Swift وغيرها من اللغات الآمنة للذاكرة لا تقضي تمامًا على مخاطر هذه المشكلات. تتضمن معظمها ، على سبيل المثال ، على الأقل عددًا قليلاً من الفئات أو الوظائف غير الآمنة للذاكرة وتسمح للمبرمج بأداء وظيفة إدارة الذاكرة التي يحتمل أن تكون غير آمنة. يمكن أن تتضمن اللغات الآمنة للذاكرة أحيانًا أيضًا مكتبات مكتوبة بلغات تحتوي على وظائف ذاكرة قد تكون غير آمنة.

ولكن حتى مع هذه التحذيرات ، فإن اللغات الآمنة للذاكرة يمكن أن تساعد في تقليل الثغرات الأمنية في البرامج وقالت وكالة الأمن القومي إنها ناتجة عن سوء إدارة الذاكرة وإهمالها.

يرحب تيم ماكي ، الاستراتيجي الأمني ​​الرئيسي في مركز أبحاث الأمن السيبراني في سينوبسيس ، بتوصية وكالة الأمن القومي. في الواقع ، يجب أن يكون استخدام اللغات الآمنة للذاكرة هو الإعداد الافتراضي لمعظم التطبيقات ، كما يقول. يقول: "لأغراض عملية ، فإن الاعتماد على المطورين للتركيز على قضايا إدارة الذاكرة بدلاً من برمجة ميزات جديدة رائعة يمثل ضريبة على الابتكار". يقول ماكي إنه مع لغات البرمجة الآمنة للذاكرة والأطر المرتبطة بها ، فإن مؤلفي اللغة هم الذين يضمنون الإدارة السليمة للذاكرة وليس مطوري التطبيقات.

التحول يمكن أن يكون تحديا

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

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

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

كما يحذر ماكي من أن استخدام اللغات الآمنة للذاكرة لا يحل أيضًا محل الحاجة إلى اختبار البرامج المناسب. لا يعني مجرد كون لغة البرمجة آمنة للذاكرة أن اللغة أو التطبيقات التي تم تطويرها عليها خالية من الأخطاء.

يقول ماكي إن الانتقال من لغة برمجة إلى أخرى هو اقتراح محفوف بالمخاطر ما لم يكن لديك موظفون يفهمون اللغة القديمة واللغة الجديدة. "من الأفضل إجراء مثل هذا الترحيل عندما يمر التطبيق بتحديث إصدار رئيسي ؛ وإلا فهناك احتمال أن يتم إدخال أخطاء غير مقصودة كجزء من جهود الترحيل ، "يلاحظ.

يقترح ماكي أن تفكر المؤسسات في استخدام الخدمات المصغرة عندما يتعلق الأمر بتغيير اللغات. يقول ماكي: "باستخدام بنية الخدمات المصغرة ، يتحلل التطبيق إلى مجموعة من الخدمات التي يتم وضعها في حاويات". "من منظور لغة البرمجة ، لا يوجد شيء يتطلب بطبيعته برمجة كل خدمة مصغرة بنفس لغة البرمجة مثل الخدمات الأخرى داخل نفس التطبيق."

القيام بهذه الخطوة

تظهر البيانات الأخيرة من Statista ذلك العديد من المطورين يستخدمون بالفعل اللغات التي تعتبر آمنة للذاكرة. ما يقرب من الثلثين (65.6٪) ، على سبيل المثال ، يستخدمون JavaScript ، وما يقرب من النصف (48.06٪) يستخدمون Python ، والثلث يستخدمون Java ، وما يقرب من 28٪ يستخدمون C #. في الوقت نفسه ، لا تزال نسبة كبيرة تستخدم لغات غير آمنة مثل C ++ (22.5٪) و C (19.25٪).

يقول يوهانس أولريش ، عميد الأبحاث في معهد SANS للتكنولوجيا: "أعتقد أن العديد من المنظمات قد تحولت بالفعل من C / C ++ ليس فقط من أجل قضية سلامة الذاكرة ، ولكن أيضًا من أجل السهولة الشاملة للتطوير والصيانة". "ولكن ستظل هناك قواعد رمز قديمة يجب الحفاظ عليها لسنوات عديدة قادمة."

لم تقدم استشارة وكالة الأمن القومي سوى القليل من التبصر فيما قد يكون سببًا وراء توصيتها في هذه المرحلة. لكن جون بامبنيك ، صائد التهديدات الرئيسي في Netenrich ، ينصح المنظمات بألا تتجاهلها. يقول: "كانت نقاط الضعف في الذاكرة والهجمات منتشرة منذ التسعينيات ، لذا بشكل عام ، هذه نصيحة جيدة". "مع قول ذلك ، نظرًا لأن هذا يأتي من وكالة الأمن القومي ، أعتقد أن هذه النصيحة يجب أن تتطلب مزيدًا من الاستعجال وأن تكون مدفوعة بالمعرفة التي لديهم ونحن لا نفعل ذلك."

الطابع الزمني:

اكثر من قراءة مظلمة