زبانهای برنامه نویسی دارای بیشترین حفره امنیتی کدامند؟
چهارشنبه ۲۱ فروردین ۱۳۹۸

زبانهای برنامه نویسی دارای بیشترین حفره امنیتی کدامند؟

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

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

اما باید گفت این مشکلات به همیشه به این سادگی نیستند و بعضا پس از مدتهای طولانی کشف می شوند. دو نمونه از مشکلات امنیتی بزرگ که پس از زمانی طولانی کشف شدند یکی باگ امنیتی توییتر و دیگری حفره امنیتی گوگل پلاس که باعث تعطیلی آن شد می باشد.

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

ناامن ترین زبانهای برنامه نویسی کدامند؟

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

ناامن ترین زبانهای برنامه نویسی

طبق نظر این شرکت امنیتی حجم بالای آسیب پذیری برای زبانهای مختلف همچون C به معنی پایین بودن امنیت آن نمی باشد. زیرا مولفه های دیگری نیز در این موضوع دخیل هستند. باید گفت که آمار بالای نقایص امنیتی زبان C به عوامل مختلفی بستگی دارد. از جمله عوامل موثر قدمت و عمر بالای این زبان نسبت به دیگر زبان ها می باشد. همچنین تعداد کاربران و کدهای نوشته شده با آن که برخی از آنها نرم افزارهای مهمی می باشند. به عنوان مثال نرم افزارهای مهمی همچون OpenSSL و هسته لینوکس (Linux Kernel) با استفاده از زبان C تولید شده اند.

با این اوصاف باید گفت که برخی از این مشکلات امنیتی مربوط به ساختار زبان می باشد. به عنوان مثال یکی از نکات اساسی زبان C رفتار نامشخص آن می باشد که باعث مشود آسیب پذیری های متعددی در شرایط مختلف ایجاد شود. از طرف دیگر زبان ++C هم که زبان معروفی است در ۵ سال اخیر آسیب پذیری های شدیدی داشته است. مثلا خطاهای بافر (Buffer) که مدتی طولانی در C وجود داشت حالا در ++C نیز خودنمایی می کند.

زبان PHP هم که ناامنی آن زبانزد خاص و عام است و در تمام بحث های امنیتی وب نامی از PHP وجود دارد. اما این زبان نیز همچون C استفاده زیادی دارد و بسیاری از سایت های اینترنتی با این زبان نوشته شده اند. زبان قدیمی پایتون اما به نظر می رسد از نظر امنیتی عملکرد خوبی دارد و تعداد حفره های امنیتی آن پایین است.

اما در خصوص جاوا اسکریپت باید گفت که یکی از محبوب ترین زبان های برنامه نویسی مخصوص وب می باشد که روز به روز بر کاربران آن افزوده می شود. جاوا اسکریپت در حقیقت زبان مرورگر می باشد که توسعه دهنده های وب برای مدیریت رفتار مرورگر و وب سایت ها از آن استفاده می کنند و در تمام سایت های اینترنتی پای این زبان در میان است. طی سال های اخیر و با رونق گرفتن استفاده از این زبان تعداد آسیب پذیری های آن نیز افزایش یافته است. البته لازم است بدانید که بیشتر مشکلات امنیتی و آسیب پذیری های جاوا اسکریپت مربوط به کتابخانه (Library) های ثالث هستند.

فهرست زبانهای دارای بیشترین آسیب پذیری

بسیاری از زبان های برنامه نویسی حفره های امنیتی مشترکی دارند. یکی نقصهای امنیتی که در ۷۰ درصد زبان ها وجود دارد  «تزریق اسکریپت از طریق وبگاه» می باشد. 

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

در ادامه لیست زبانهای برنامه برنامه نویسی دارای بیشترین حفره امنیتی ذکر خواهد شد.

  • سی (C)
  • پی اچ پی (PHP)
  • جاوا (Java)
  • جاوا اسکریپت (JavaScript)
  • پایتون (Python)
  • سی پلاس پلاس (C++)
  • روبی (Ruby)

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

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

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

به این مطلب امتیاز دهید

مطالب مرتبط