دنیای تکنولوژی بدون نقص های امنیتی معنا ندارد؛ از حفره های سخت افزاری مانند ملتداون و اسپکتر در پردازنده های اینتل گرفته تا ایرادات نرم افزاری در زبان های برنامه نویسی. به تازگی شرکت امنیتی «وایت سورس» آسیب پذیری های موجود در 7 زبان برنامه نویسی پرکاربرد طی ده سال اخیر را بررسی کرده و نتایج جالبی را به دست آورده است.
طبق گزارش وایت سورس، زبان های برنامه نویسی C، جاوا، جاوا اسکریپت، پایتون، روبی، پی اچ پی و ++C در فهرست بیشترین آسیب پذیری قرار می گیرند. زبان C حدود نیمی از گزارش های امنیتی را به خود اختصاص داده و در صدر جدول قرار گرفته است.
گزارش وایت سورس
البته به گفته وایت سورس، حتی با وجود این همه آسیب پذیری هم نمی توان گفت که زبان C امنیت کمتری نسبت به دیگر زبان ها دارد. تعداد زیاد نقص های امنیتی زبان C به چند عامل وابسته است، از جمله اینکه قدمت بسیار بیشتری نسبت به بقیه دارد و کدهای فوق العاده زیادی با آن نوشته شده است. زیرساخت های نرم افزاری متعددی مانند OpenSSL و کرنل لینوکس هم از زبان C بهره می برند.
با این حال اگر برنامه نویسی را با C آغاز کرده باشید، احتمالاً می دانید که بعضی از مشکلات هم ذاتی هستند. یکی از مسائل اساسی زبان C رفتار نامشخص و تعریف نشده در شرایط مختلف است که می تواند آسیب پذیری های متعددی را ایجاد کند. از طرفی زبان ++C طی 5 سال گذشته با بحرانی ترین آسیب پذیری ها روبرو بوده است. خطاهای بافر که مدتها برنامه نویسان C را آزار می دادند، حالا در ++C خودنمایی می کنند.
جاوا اسکریپت که احتمالاً محبوب ترین زبان برنامه نویسی عصر حاضر به شمار می رود، تنها موردیست که طی 10 سال اخیر با افزایش مداوم تعداد آسیب پذیری ها روبرو بوده است. البته بیشتر معضلات امنیتی جاوا اسکریپت از نوع Path Traversal بوده یا مربوط به پکیج های ثالث هستند و فقط توسط ابزارهای آنالیز کد منبع شناسایی می شوند.
همان طور که انتظار می رود، شاهد عملکرد بسیار خوب زبان برنامه نویسی قدیمی پایتون از نظر امنیت هستیم. تقریباً تمامی زبان ها از حفره های امنیتی مشترک رنج می برند. دو نقص امنیتی که در 70 درصد زبان ها دیده می شوند، عبارتند از CWE-79 یا «تزریق اسکریپت از طریق وبگاه» و CWE-20 که به اعتبارسنجی داده ها مربوط است.
منبع: دیجیاتو