وبلاگ فرتک

باگ امنیتی خطرناک Shellshock Bash

باگ امنیتی خطرناک Shellshock Bash

هنوز چندماهی از انتشار حفره امنیتی هارت‌بلید (Heartbleed) نگذشته است که اخیراً (۲۴ سپتامبر ۲۰۱۴) یک حفره امنیتی خیلی خطرناک در دستور Bash سیستم های مبتنی بر یونیکس مثل لینوکس و Mac OS X کشف شده است که از آن به Shellshock تعبیر شده است. همچنین از این باگ خطرناک با نام Bash Bug نیز یاد شده است.

اگر شما دارای یک سرور لینوکسی یا مکینتاش هستید حتما این مقاله را بخوانید.

توضیحات و جزئیات کامل در مورد این باگ را میتوانید در CVE-2014-6271 و CVE-2014-7169 بخوانید.

نحوه تشخیص Shellshock Bash

اگر شما از نرم افزار Bash ورژن های ۱٫۱۴ تا ۴٫۳ (آخرین نگارش قبل از انتشار باگ) استفاده میکنید، در معرض این خطر هستید.

در خط فرمان bash دستور زیر را اجرا کنید:

env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

در صورتیکه بعد از اجرای دستور فوق خروجی زیر را مشاهده نمودید یعنی دستگاه شما در معرض خطر میباشد:

Bash is vulnerable!
Bash Test

در غیر اینصورت پیام زیر چاپ میشود:

bash: warning: VAR: ignoring function definition attempt
bash: error importing function definition for `VAR'
Bash Test

همچنین جهت تست وب سایت خود میتوانید از این ابزار آنلاین جهت چک کردن سایت خود استفاده کنید.

نحوه رفع مشکل Shellshock Bash

تا تاریخ انتشار این مقاله (Sept. 25, 2014 – 6:00pm EST) تنها یک به روز رسانی نیمه تمام (incomplete fix) برای این باگ منتشر شده است. با اینحال پیشنهاد میشود در اسرع وقت نرم افزار Bash سرور خود را به روزرسانی نمائید.

برای اینکار با توجه به سیستم عامل خود یکی از دستورات زیر را اجرا نمائید:

Ubuntu / Debian:

sudo apt-get update && sudo apt-get install --only-upgrade bash

CentOS / Red Hat / Fedora:

sudo yum update bash

بعد از به روزرسانی Bash مجددا، تست را انجام دهید تا از رفع مشکل مطمئن شوید.

۱ دیدگاه

  • In response to #shellshock, Richard Stallman said the bug was just a “blip”. It’s not, it’s a “blimp” — a huge nasty spot on the radar warning of big things to come. Three more related bugs have been found, and there are likely more to be found later. The cause isn’t that a programmer made a mistake, but that there is a systematic failure in the code — it’s obsolete, having been written to the standards of 1984 rather than 2014.