আপডেটগুলির পরে আমি কীভাবে নিশ্চিত করব যে আমার বাশ ইনস্টলেশনটি শেলশক বাগের পক্ষে আর ঝুঁকিপূর্ণ নয় ?
আপডেটগুলির পরে আমি কীভাবে নিশ্চিত করব যে আমার বাশ ইনস্টলেশনটি শেলশক বাগের পক্ষে আর ঝুঁকিপূর্ণ নয় ?
উত্তর:
CVE-2014-6271 দুর্বলতার জন্য পরীক্ষা করে দেখুন
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
এটি দুর্বল শব্দটির প্রতিধ্বনি করা উচিত নয়।
/tmp/echo
যেতে পারে এমন একটি ফাইল তৈরি বা ওভাররাইট করে দেবে , এবং আবার পরীক্ষার আগে মুছতে হবে)
cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo
এটি ডেট শব্দের কথা বলা উচিত তারপর একটি বার্তায় অভিযোগ করুন cat: echo: No such file or directory
। পরিবর্তে যদি এটি আপনাকে বর্তমান তারিখের সময়টি বলে দেয় তবে আপনার সিস্টেমটি দুর্বল।
bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo "CVE-2014-7186 vulnerable, redir_stack"
এটি পাঠ্যের পিছনে প্রতিধ্বনি করা উচিত নয় CVE-2014-7186 vulnerable, redir_stack
।
(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash || echo "CVE-2014-7187 vulnerable, word_lineno"
এটি পাঠ্যের পিছনে প্রতিধ্বনি করা উচিত নয় CVE-2014-7187 vulnerable, word_lineno
।
env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"
এটির পাসের ফলাফলটি কেবল পাঠ্যের পিছনে প্রতিধ্বনিত হয় testing CVE-2014-6277
। যদি এটি পার্ল চালিত হয় বা যদি অভিযোগ করে যে পার্ল ইনস্টল করা নেই যা অবশ্যই একটি ব্যর্থ। আমি অন্য কোনও ব্যর্থতার বৈশিষ্ট্য সম্পর্কে নিশ্চিত নই কারণ আমার আর কোনও আনপ্যাচড সিস্টেম নেই।
env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"
এই পরীক্ষার জন্য পাসটি হ'ল এটি কেবল পাঠ্যের প্রতিধ্বনি করা উচিত testing CVE-2014-6278
। যদি আপনার hi mom
কোথাও প্রতিধ্বনিত হয় তবে এটি অবশ্যই একটি ব্যর্থ।
foo='() { echo not patched; }' bash -c foo
? ফাংশন রফতানি পৃথক নেমস্পেসে না লাগানো পর্যন্ত আমরা এক পার্সার বাগ থেকে পরের দিকে চালানো বন্ধ করব না।
একটি বিশেষভাবে তৈরি কার্বনযুক্ত পরিবেশের পরিবর্তনশীল রফতানি করুন যা বাশের দুর্বল সংস্করণগুলি দ্বারা স্বয়ংক্রিয়ভাবে মূল্যায়ন করা হবে:
$ export testbug='() { :;}; echo VULNERABLE'
আপনি যদি সেই ভেরিয়েবলটি নিজে ব্যবহার করেননি তবুও বাশ $ টেস্টবগে কোডটি মূল্যায়ন করবে কিনা তা দেখার জন্য এখন একটি সহজ প্রতিধ্বনি সম্পাদন করুন:
$ bash -c "echo Hello"
VULNERABLE
Hello
যদি এটি "VULNERABLE" স্ট্রিংটি দেখায় তবে উত্তরটি সুস্পষ্ট। অন্যথায়, আপনাকে উদ্বিগ্ন হওয়ার দরকার নেই এবং আপনার বাশের সংস্কৃত সংস্করণটি ঠিক আছে।
দয়া করে নোট করুন যে লিনাক্সের প্রধান বিতরণগুলি একাধিক প্যাচ প্রকাশ করেছে এবং কখনও কখনও তারা দুর্বলতা পুরোপুরি ঠিক করে না। এই বাগের জন্য সুরক্ষা পরামর্শ এবং সিভিই এন্ট্রি পরীক্ষা করে দেখুন ।
export
) কাজ করে env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
শেলশক কার্যত ব্যাশের একাধিক দুর্বলতার সংমিশ্রণ , এবং এই মুহুর্তে এই ম্যালওয়্যার রয়েছে যা এই দুর্বলতাটিকে কাজে লাগায় , তাই শেলশক এমন একটি সমস্যা হতে পারে যা এখনও খোলা আছে, এই সমস্যাগুলি সম্পর্কে রেডহ্যাটের আপডেট সহ একটি থ্রেড রয়েছে ।
রেডহ্যাট নীচেরগুলি পুনঃনির্দেশনা দিয়েছেন:
আপনার আদেশ প্রদান করুন:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
যদি আউটপুট হয়:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
bash: BASH_FUNC_x(): line 0: syntax error near unexpected token `)'
bash: BASH_FUNC_x(): line 0: `BASH_FUNC_x() () { :;}; echo vulnerable'
bash: error importing function definition for `BASH_FUNC_x'
test
আপনার কোনও ঠিক নেই।
যদি আউটপুট হয়:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash: error importing function definition for `BASH_FUNC_x()'
test
তোমার CVE-2014-6271
ঠিক আছে
যদি আপনার আউটপুট হয়:
$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `BASH_FUNC_x'
test
আপনি দুর্বল নন
শেলশক চেকের অন্য অংশটি সিভিই -2014-7169 দুর্বলতা চেকটি নিশ্চিত করে যে সিস্টেমটি ফাইল তৈরির সমস্যা থেকে সুরক্ষিত রয়েছে। আপনার বাশের সংস্করণটি CVE-2014-7169 এর পক্ষে ঝুঁকিপূর্ণ কিনা তা পরীক্ষা করতে নিম্নলিখিত কমান্ডটি চালান:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
bash: x: line 1: syntax error near unexpected token `='
bash: x: line 1: `'
bash: error importing function definition for `x'
Fri Sep 26 11:49:58 GMT 2014
যদি আপনার সিস্টেমটি দুর্বল হয়, সময় এবং তারিখটি প্রদর্শিত হবে এবং / tmp / প্রতিধ্বনি তৈরি হবে।
যদি আপনার সিস্টেমটি অরক্ষিত না হয় তবে আপনি আউটপুট এর মতো দেখতে পাবেন:
$ cd /tmp; rm -f /tmp/echo; env 'x=() { (a)=>\' bash -c "echo date"; cat /tmp/echo
date
cat: /tmp/echo: No such file or directory
আমি সিজিআই স্ক্রিপ্টগুলিতে দুর্বলতার জন্য আপনার ওয়েবসারভার পরীক্ষা করতে শেলশকার নামে একটি সি এল এল ইউটিলিটি লিখেছিলাম । আপনার সাইটটি পরীক্ষা করতে, আপনি চালাতে চাই:
python shellshocker.py <your-server-address>/<cgi-script-path>
অর্থাত
python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi
সম্পাদনা: এই ইউটিলিটিটি নামানো হয়েছে, দুঃখিত: '(
আপনি এই অনলাইন পরীক্ষায় আপনার সিজিআই ইউআরএল জমা দিতে পারেন:
টাইপ এনভ এক্স = '() {:;}; প্রতিধ্বনিত 'বাশ-সি "প্রতিধ্বনি এটি একটি পরীক্ষা" এবং যদি এটি দুর্বল হয়ে যায় এবং এটি একটি পরীক্ষা হয় তবে এর অর্থ হল আপনার ওএসএক্স / লিনাক্স মেশিনটি প্রভাবিত হয়েছে। প্রতিকারটি হ'ল ব্যাশের সর্বশেষতম সংস্করণে আপডেট করা।