لماذا لغة جافا آمنة؟ كائن واحد يقدم جل المزايات الأمنية و الحماية لبرامج جافا

بنهاية عام 2016 تصدرت المهارات المتعلقة بأمن المعلومات قائمة المهارات الأكثر طلباً بالعالم، ما يعني أن أهمية القضايا الأمنية في تصاعد مستمر.

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

لغة جافا لغة آمنة، لغة جافا أكثر لغات البرمجة أمناً، لغة جافا …

هذه عبارات شائعة جداً في أوساط المبرمجين، ألم تسمع بها قبلاً؟ اليوم نستكشف الأسباب التي أبدعت هذه العبارات و نشرتها بين أوساط المبرمجين عن لغة جافا، هل هي صحيحة أم .. خرافة ؟!!

أمن جافا - أكثر لغات البرمجة شيوعاً
أكثر لغات البرمجة شيوعاً – المصدر: tiobe.com

تُكتب لغات البرمجة بلغات يحاول مطوروها أن يجعلوها أقرب ما تكون للغة الإنسان -للغة الإنجليزية غالباً-، بعد ذلك تُحول كلمات لغة البرمجة التي كتبها المبرمج إلى لغة يفهمها الحاسب و هي لغة صفر واحد.

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

البطل الذي وشّح لغة جافا بوشاح “لغة برمجة آمنة”

من المثير أن تعلم أنه لا يمكن تنفيذ شفرة جافا Source Code دون وجود كائن يسمى بـ “آلة جافا الإفتراضية” و تختصر بـ JVM و هي إختصار لإسم Java Virtual Machine.

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

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

طبقة آلة جافا الإفتراضية - أمن جافا

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

ما الذي تفعله آلة جافا الإفتراضية لجعل لغة جافا آمنة

كما ذكرتُ لك فإن آلة جافا الإفتراضية تمثل العنصر الأساسي في أمن لغة جافا، لذا فمن الممكن أن نقول أن أمن لغة جافا أتى من طريقة التصميم أولاً، ثم من المميزات التي وفرها ذلك التصميم.

فلنتعرف على الآثار المهمة لتصميم تنفيذ لغة جافا عبر آلة جافا الإفتراضية، و على المهام الأمنية التي تؤديها لغة جافا الإفتراضية و التي جعلت لغة جافا من أكثر لغات البرمجة أمناً.

  1. التصميم الرائع لتنفيذ برامج الجافا: برامج جافا المترجمة لا تعمل في أنظمة التشغيل دون إستخدام آلة جافا الإفتراضية، هذا هو السهل الممتنع، لماذا؟ نفس هذه الفكرة من الممكن أن تعبّر عنها من وجهة نظر الأمن بأن تقول لا يمكن تنفيذ برامج جافا دون مرورها بإجراءات التحقق من الأمن عبر آلة جافا الإفتراضية !
  2. الحماية من هجمات تجاوز سعة المخزن المؤقت Buffer Overflow attack: المخزن المؤقت Buffer هو مساحة بالذاكرة العشوائية للحاسب تُخزن فيها قيم المتغيرات المستخدمة في البرنامج، هجمة تجاوز سعة المخزن المؤقت تعني أن المتغير كُتب فوق متغير آخر في المخزن المؤقت. لغة جافا تفرض إلى حد كبير متغيرات ذات حجم محدد.
    كما أن آلة جافا الإفتراضية تتحكم في طريقة حفظ المتغيرات في المخزن المؤقت (الذاكرة العشوائية) و بذلك تكون هجمات تجاوز سعة المخزن المؤقت صعبةً جداً.
  3. مدير الحماية: مدير الحماية هو كائن بآلة جافا الإفتراضية، يقوم بما يُسمى به فعلاً، فهو يدير حماية الشفرات البرمجية و يضمن أمنها إلى أقصى درجة ممكنة.
    عند تنفيذ الشفرة البرمجية عبر آلة جافا الإفتراضية فإنها تمر عبر إجراءاتٍ يحددها مدير الحماية و الذي يتحقق من معاييرَ أمنية يجب توفرها في الشفرات البرمجية، في حال لم تستطع الشفرة البرمجية تجاوزها لن يتم تنفيذ البرنامج.
    هذه إحدى طرق الحماية من برمجة الفيروسات و البرامج الخبيثة بلغة جافا.
  4. إدارة الذاكرة: من المهام التي تؤديها آلة جافا الإفتراضية أيضاً إدارة الذاكرة، من الواضح أن إزاحة إدارة الذاكرة عن كاهل المبرمج شيء عظيم، ولكن هل تعلم ما هو تأثيره على أمن جافا؟
    آلة جافا الإفتراضية تمنع الوصول إلى مواقع الذاكرة التي لا تخص البرنامج، و بالتالي لا يمكن قراءة بيانات البرامج الأخرى ولا تعليماتها من الذاكرة العشوائية دون صلاحية.

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

و من الممتع أيضاً أن تحاول تخيل المخاطر التي قد تحدث في حال لم تحتوي لغة جافا على هذه المميزات، و الذي يحدث فعلياً في لغات برمجةٍ أخرى 🙂

مصطفى الطيب

صديقٌ لنُظمِ المعلُومات و عُلومِ الحَاسِب و مُختصٌ بهما، مُحبٌ للعِلمِ و نَشرِه. أُشاركُ معارفي و تَجاربي و خِبراتي في تَدويناتٍ و دوراتٍ من خلال مُدونةِ عُلوم.

مقالات ذات صلة

‫4 تعليقات

  1. الف شكر اخ مصطفى على المعلومات الجميلة
    لكن لدي سؤال من فضلك
    طالما ان جافا تتمتع بهذه الدرجة العالية من الثقة والامان لماذا يتعلم الطلاب عدة برامج اخرى؟ ولماذا لا يتم التركيز على تعلم جافا فقط؟
    تحياتي

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *