کدام زبان برنامه نویسی بیشترین تعداد آسیب پذیری امنیتی را دارد؟

program language

108 روز پیش

دنیای تکنولوژی بدون نقص های امنیتی معنا ندارد؛ از حفره های سخت افزاری مانند ملتداون و اسپکتر در پردازنده های اینتل گرفته تا ایرادات نرم افزاری در زبان های برنامه نویسی. به تازگی شرکت امنیتی «وایت سورس» آسیب پذیری های موجود در 7 زبان برنامه نویسی پرکاربرد طی ده سال اخیر را بررسی کرده و نتایج جالبی را به دست آورده است.

طبق گزارش وایت سورس، زبان های برنامه نویسی C، جاوا، جاوا اسکریپت، پایتون، روبی، پی اچ پی و ++C در فهرست بیشترین آسیب پذیری قرار می گیرند. زبان C حدود نیمی از گزارش های امنیتی را به خود اختصاص داده و در صدر جدول قرار گرفته است.

 

 

البته به گفته وایت سورس، حتی با وجود این همه آسیب پذیری هم نمی توان گفت که زبان C امنیت کمتری نسبت به دیگر زبان ها دارد. تعداد زیاد نقص های امنیتی زبان C به چند عامل وابسته است، از جمله اینکه قدمت بسیار بیشتری نسبت به بقیه دارد و کدهای فوق العاده زیادی با آن نوشته شده است. زیرساخت های نرم افزاری متعددی مانند OpenSSL و کرنل لینوکس هم از زبان C بهره می برند.

با این حال اگر برنامه نویسی را با C آغاز کرده باشید، احتمالاً می دانید که بعضی از مشکلات هم ذاتی هستند. یکی از مسائل اساسی زبان C رفتار نامشخص و تعریف نشده در شرایط مختلف است که می تواند آسیب پذیری های متعددی را ایجاد کند. از طرفی زبان ++C طی 5 سال گذشته با بحرانی ترین آسیب پذیری ها روبرو بوده است. خطاهای بافر که مدتها برنامه نویسان C را آزار می دادند، حالا در ++C خودنمایی می کنند.

جاوا اسکریپت که احتمالاً محبوب ترین زبان برنامه نویسی عصر حاضر به شمار می رود، تنها موردیست که طی 10 سال اخیر با افزایش مداوم تعداد آسیب پذیری ها روبرو بوده است. البته بیشتر معضلات امنیتی جاوا اسکریپت از نوع Path Traversal بوده یا مربوط به پکیج های ثالث هستند و فقط توسط ابزارهای آنالیز کد منبع شناسایی می شوند.

همان طور که انتظار می رود، شاهد عملکرد بسیار خوب زبان برنامه نویسی قدیمی پایتون از نظر امنیت هستیم. تقریباً تمامی زبان ها از حفره های امنیتی مشترک رنج می برند. دو نقص امنیتی که در 70 درصد زبان ها دیده می شوند، عبارتند از CWE-79 یا «تزریق اسکریپت از طریق وبگاه» و CWE-20 که به اعتبارسنجی داده ها مربوط است.

اما آیا در نهایت، زبان C کمترین و زبان پایتون بیشترین امنیت را در بین زبان های برنامه نویسی دارند؟ پاسخ به این سؤال به هیچ وجه ساده نیست. وایت سورس می گوید این نتیجه گیری ساده فقط به درد بحث و جدل بین برنامه نویسان می خورد، اما در نهایت این شما هستید که باید خلاقانه ترین و ایمن ترین نرم افزار ممکن را با هر زبانی که دوست دارید، بنویسید.

با این حال بهتر است که تمام برنامه نویسان، زمان کافی را به مطالعه آسیب پذیری های زبان مورد استفاده خود اختصاص دهند و نقاط قوت و ضعف آن را به خوبی بدانند، تا بتوانند در زمان طراحی و توسعه نرم افزار تصمیمات درستی را از نظر امنیتی اتخاذ کنند. در واقع نقش برنامه نویس از زبان برنامه نویسی مهم تر است.

 

منبع : دیجیاتو