چگونه از سرور خود در مقابل آسیب پذیری shellshock محافظت کنیم؟

اطلاعیه خودکار این مقاله ؛ این پست در ۹ سال پیش نوشته و منتشر شده است و اکنون شاید قوانین و ابزار ها تغییر پیدا کرده باشد. اگر میدانید این نوشته هنوز به کارتان می آید ،به خواندن ادامه دهید.

مقدمه

در ۲۴ سپتامبر سال ۲۰۱۴ از یک آسیب پذیری GNU Bash، که آنرا Shellshock یا باگ Bash می‌نامند، ابراز نگرانی شد. بطور خلاصه، این نقص امنیتی به هکرهای راه دور اجازه‌ی اجرای کد‌هایی که داخل متغییرهای محیطی Bash  تعریف میکنند را میدهد که این کدها به محض اجرای Bash اجرا خواهند شد.
بخاطر موقعیت موجودِ Bash در توزیع‌های لینوکس، BSD و Mac OS X، بسیاری از کامپیوترها در مقابل Shellshock آسیب پذیر هستند. تمام نسخه‌های Patch نشده‌ی Bash بین ۱٫۱۴ الی ۴٫۳ (که به معنی تمامی نسخه‌های ریلیز شده تا به امروز است) در خطر هستند. نقص امنیتیِ Shellshock در سیستم‌هایی قابل بهره برداری است که از سرویس‌ها یا اپلیکیشن‌هایی استفاده می‌کنند که به نوبه‌ی خود اجازه‌ی تعریفِ متغیرهای محیطی Bash را به کاربران غیرمجاز از راه دور می‌دهد. نمونه‌های سیستم‌هایی که این امکان را فراهم می‌کنند عبارتند از:
• سرور‌های Apache HTTP که از اسکریپت‌های CGI (با mod_cgi  و mod_cgid) که در Bash نوشته شده و یا در شل های زیر مجموعه Bash لانچ می‌شوند، استفاده می‌کنند
• کلاینت‌های DHCP خاص
• سرور‌های OpenSSH که از قابلیت ForceCommand استفاده می‌کنند
• بسیاری از سرویس‌های شبکه‌ که از Bash استفاده می‌کنند
بدلیل شیوع بسیار زیاد آسیب پذیریِ Shellshock ،( که حتی آسیب پذیری آن بیشتر از باگ خونریزی قلب است) و همچنین بکارگیری راحت آن، اکیدا توصیه می‌شود که تمام سیستم‌های آلوده به این باگ بمنظور اصلاح این آسیب پذیری، بنحوی مناسب آپدیت شوند. نحوه‌ی تست آسیب پذیری سیستم و نحوه‌ی آپدیت کردن Bash بمنظور از بین بردن این نقص را به شما آموزش خواهیم داد.

تست آسیب پذیری سیستم

 

می‌توانید با اجرا کردن فرمان زیر در خط فرمان Bash ، هر یک از سیستم‌های خود را که از Bash استفاده می‌کنند، از نظر آسیب پذیری Bash تست کنید:

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

قسمتِ های‌ echo Bash is vulnerable! در فرمان، نشان دهنده‌ی محلی‌ست که یک هکر می‌تواند کد‌های مخرب را تزریق کند.هکر با این کدها میتواند در تعریف متغییر محیطی تابعی را در داخل متغییر محیطی تعریف کند و این تابع هم هنگام اجرای Bash اجرا میشود. بنابراین اگر خروجیِ زیر را مشاهده کردید، به این معنی‌ست که نسخه‌ی Bash شما آسیب پذیر است و نیاز به آپدیت دارد.

Bash is vulnerable!
Bash Test

اگر خروجیِ شما حاوی هرگونه اخطار و یا خطا در مورد Bash باشد، باید Bash را به آخرین نسخه‌ی آن آپدیت کنید.
اگر تنها خروجیِ دریافتی در جواب فرمان فوق ، گزینه‌ی زیر باشد، Bash شما از Shellshock در امان است:

Bash Test

تست سایت‌های ریموت

اگر فقط قصد دارید بدانید که آیا وب‌سایت‌ها و یا اسکریپت‌های CGI خاص آسیب پذیر هستند یا نه، به لینک زیر مراجعه کنید:ShellShock Bash Vulnerability CVE-2014-6271 Test Tool

کافی‌ست URL وب سایت و یا اسکریپت CGI مورد نظر خود را در فرم مخصوص وارد کنید.

اصلاح آسیب پذیری: آپدیت Bash

ساده‌ترین روش اصلاح این نقص امنیتی، استفاده ازسیستم مدیریت بسته‌ پیش‌فرض توزیع لینوکس شما برای آپدیت کردن نسخه‌ی Bash است. زیر مجموعه‌های زیر به آپیدت کردن Bash در توزیع‌های مختلفی از لینوکس مانند Ubuntu، CentOS، Red Hat و Fedora می‌پردازد.
APT-GET: Ubuntu / Debian
در مورد ورژن‌های پشتیبانی شده‌ی فعلیِ Ubuntu یا Debian، حتما Bash  را بروش زیر با apt-get به آخرین نسخه آپدیت کنید:

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

سپس دوباره آسیب پذیری سیستم خود را با استفاده ار فرمانی که در قسمت قبل نشان داده شد، چک کنید.

نسخه های منتشر شده قدیمی Ubuntu/ Debian

اگر در حال استفاده‌ از نسخه های منتشر شده قدیمی Ubuntu/ Debian هستید، لازم است به نسخه منتشر شده پشتیبانی شده آپگرید کنید تا بتوانید از سیستم مدیریت بسته آن نسخه جدید برای آپدیت کردن Bash استفاده کنید. می‌توانید از فرمان زیر برای آپگیرد کردن به انتشاری جدید استفاده کنید. پیشنهاد می‌شود که قبل از انجام این کار، از سرور و اطلاعات مهم خود نسخه‌ی پشتیبان تهیه کنید تا در صورت بروز احتمالی هر گونه مشکل، چیزی را از دست ندهید.

sudo do-release-upgrade

پس از انجام آپگرد، Bash خود را آپدیت کنید.
YUM: CentOS/Red Hat/ Fedora
Bash خود را از طریق زیر به آخرین نسخه‌ی موجود آپدیت کنید:

sudo yum update bash

سپس دوباره آسیب پذیری سیستم خود را با استفاده ار فرمانی که در قسمت قبل نشان داده شد، چک کنید.

نسخه های منتشر شده قدیمی CentOS/Red Hat/ Fedora

اگر در حال استفاده‌ از نسخه های منتشر شده قدیمی CentOS/Red Hat/ Fedora هستید، لازم است به نسخه منتشر شده شده پشتیبانی شده آپگرید کنید تا بتوانید از سیستم مدیریت بسته آن نسخه جدید برای آپدیت کردن Bash استفاده کنید. می‌توانید از فرمان زیر برای آپگیرد کردن به نسخه منتشر شده جدید استفاده کنید. پیشنهاد می‌شود که قبل از انجام این کار، از سرور و اطلاعات مهم خود بک آپ تهیه کنید تا در صورت بروز احتمالی هر گونه مشکل، چیزی را از دست ندهید.

sudo yum update

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

منبع

برگردان: شراره یعقوبی

لینک کوتاه مطلب :

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*