سيستم هاي آسيب پذير
- 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
منابع :
[1] http://arstechnica.com/security/2014/09/bug-in-bash-shell-creates-big-security-hole-on-anything-wit…
[2] http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271
[3] http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7169
[4] https://access.redhat.com/security/cve/CVE-2014-6271
[5] https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-inject…
[6] http://www.kb.cert.org/vuls/id/252743
- 8