آسیب پذیری Shellshock
سیستم های آسیب پذیر
• GNU Bash تا نسخه 4.3
• سیستم های Linux و Mac OS X که Bash قسمتی از سیستم عامل اصلی آن ها است.
• هر سیستم BSD یا UNIX که روی آن GNU Bash روی آنها به عنوان یک افزونه نصب گردیده است.
• هر سیستم مشابه سیستم عامل UNIX که روی آن رابط /bin/sh به عنوان GNU Bash اجرا شده است.
خلاصه آسیب پذیری
یک آسیب پذیری حساس روی GNU Bourne-Again Shell (Bash) گزارش گردیده است.
Bash خط فرمان مورد استفاده روی سیستم عامل های Linux/UNIX و Apple’s Mac
OS X می باشد،. این نقص به مهاجم اجازه می دهد تا از راه دور دستورات
shell را با اتصال کدهای مخرب در environment variable های مورد استفاده
در سیستم عامل اجرا نماید. [1]
توضیح
GNU Bash از نسخه های1.14 تا 4.3 دارای یک نقص امنیتی است که دستورات قرار
گرفته در environment variable(متغیر محیطی) تغییر یافته را پردازش می
کند. این آسیب پذیری به مهاجمین از راه دور اجازه می دهد تا کدهای دلخواه
خود را از طریق فعال سازی اکسپلویت های مبتنی بر شبکه اجرا نماید. 2] و [3
موارد حساسی که آسیب پذیری ممکن است در معرض آن باشد، در لینک های ذیل آمده است4] و [5 که شامل موارد ذیل می باشد:
• سرویس دهنده Apache HTTP از اسکریپت های mod_cgi یا mod_cgid نوشته
شده در bash یا subshellهای GNU Bash ایجاد شده یا هر سیستمی که رابط
/bin/sh را با استفاده از GNU Bash اجرا می کند، استفاده می نماید.
• نادیده گرفتن یا دور زدن کردن ویژگی ForceCommand در OpenSSH sshd و
حفاظت محدود برای برخی از Git و از کار افتادن آنها، shell ها را محدود
کرده و اجازه قابلیت اجرای فرمان های دلخواه را می دهد. این مسیر داده روی
سیستم هایی که از رابط /bin/sh با استفاده از GNU Bash اجرا می گردند،
آسیب پذیر می باشد.
• اجازه دستورات دلخواه را روی ماشین سرویس گیرنده DHCP می دهد.
تاثیرات
این آسیب پذیری بر اساس استاندارد در دسته تاثیر " زیاد" دسته بندی گردیده و
دارای امتیاز 10 CVSS و دارای پیچیدگی پایین است، که بدان معنا است که
نیاز به مهارت پایین جهت اجرا دارد. این نقص به مهاجمین اجازه می دهد یک
environment variable (متغیر محیطی) خاص که حاوی دستورات دلخواه است ،روی
سیستم های آسیب پذیر اجرا کند.
این مورد به دلیل استفاده رایج Bash shell و نیز استفاده آن توسط نرم افزارهای مختلف با روش های مختلف، بسیار خطرناک است.
راه حل
وصله های منتشر شده برای رفع این آسیب پذیری توسط فروشندگان اصلی لینوکس
برای نسخه های آسیب پذیر منتشر گردیده است. البته راه حل پیشنهاد شده برای
آسیب پذیری CVE-2014-6271 ، این آسیب پذیری را بطور کامل رفع نمی کند.
بنابراین پیشنهاد می گردد، وصله های موجود نصب و به وصله های بروز شده در
آینده توجه گردد.
برخی از سیستم عامل های مانند UNIX، شامل توزیع های Linux و Apple Mac OS X
شامل Bash هستند و آسیب پذیر هستند. لذا از طرق مختلف می توانید با
فروشندگان سیستم عامل ها جهت رفع آسیب پذیری ها در ارتباط باشید. [6]
برای آزمایش سیستم خود، می توانید این دستور را از ترمینال اجرا کنید:
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
در صورت آسیب پذیر نبودن سیستم، با این نتیجه رو به رو خواهید شد:
bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' hello
و در صورت آسیب پذیر بودن، این پیغام را دریافت خواهید کرد:
vulnerable hello
شما همچنین می توانید با این دستور، از نسخه فعلی Bash سیستم تان با خبر شوید:
bash --version