আমার সার্ভারটি শেলশক বাগটি থেকে সুরক্ষিত থাকলে কীভাবে পরীক্ষা করবেন?


80

আপডেটগুলির পরে আমি কীভাবে নিশ্চিত করব যে আমার বাশ ইনস্টলেশনটি শেলশক বাগের পক্ষে আর ঝুঁকিপূর্ণ নয় ?



দয়া করে মনে রাখবেন বাশের আরও দু'টি দুর্বলতা এখনও অপ্রেরণযোগ্য (সিভিই -2014-7186 এবং সিভিই -2014-7187) 7
হরিণ হান্টার

হরিণ হান্টার তার মন্তব্য পোস্ট করার পরে খুব বেশি সময়ের মধ্যে সিভিই -2014-7186 এবং সিভিই-2014-7187 স্থির করে এমন প্যাচগুলি উপলব্ধ। আপনার যদি সিভিই -2014-7169 এর জন্য একটি ডিস্ট্রো সরবরাহিত প্যাচ থাকে তবে আপনার কাছে ইতিমধ্যে 7186/7187 ব্লক করার জন্য যথেষ্ট পরিমাণে থাকতে পারে, নীচের কমান্ডগুলি দিয়ে আপনার সিস্টেমটি পরীক্ষা করে দেখুন। আপনার ডিসট্রোর জন্য আরও সুরক্ষা আপডেটগুলি পরীক্ষা করে দেখুন।
বিউওলফনোড 42

উত্তর:


83

CVE-2014-6271 দুর্বলতার জন্য পরীক্ষা করে দেখুন

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

এটি দুর্বল শব্দটির প্রতিধ্বনি করা উচিত নয়।


সিভিই -2014-7169 দুর্বলতা পরীক্ষা করার জন্য
(সতর্কতা: যদি আপনার ব্যর্থ হয় তবে এটি মুছে ফেলা /tmp/echoযেতে পারে এমন একটি ফাইল তৈরি বা ওভাররাইট করে দেবে , এবং আবার পরীক্ষার আগে মুছতে হবে)

cd /tmp; env X='() { (a)=>\' bash -c "echo date"; cat echo

এটি ডেট শব্দের কথা বলা উচিত তারপর একটি বার্তায় অভিযোগ করুন cat: echo: No such file or directory। পরিবর্তে যদি এটি আপনাকে বর্তমান তারিখের সময়টি বলে দেয় তবে আপনার সিস্টেমটি দুর্বল।


CVE-2014-7186 এর জন্য পরীক্ষা করতে

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


CVE-2014-7187 জন্য চেক করতে

(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


CVE-2014-6277 জন্য চেক করতে। আমি এটির উপর 100% নিশ্চিত নই কারণ মনে হয় যে আংশিক প্যাচযুক্ত সিস্টেমে আমার আর অ্যাক্সেস নেই তা নির্ভর করে।

env HTTP_COOKIE="() { x() { _; }; x() { _; } <<`perl -e '{print "A"x1000}'`; }" bash -c "echo testing CVE-2014-6277"

এটির পাসের ফলাফলটি কেবল পাঠ্যের পিছনে প্রতিধ্বনিত হয় testing CVE-2014-6277। যদি এটি পার্ল চালিত হয় বা যদি অভিযোগ করে যে পার্ল ইনস্টল করা নেই যা অবশ্যই একটি ব্যর্থ। আমি অন্য কোনও ব্যর্থতার বৈশিষ্ট্য সম্পর্কে নিশ্চিত নই কারণ আমার আর কোনও আনপ্যাচড সিস্টেম নেই।


সিভিই -2014-6278 পরীক্ষা করার জন্য। আবার, আমি এই পরীক্ষা হিসাবে আমার আর কোনও আনপ্যাচড সিস্টেম নেই কিনা তা সম্পর্কে 100% নিশ্চিত নই।

env HTTP_COOKIE='() { _; } >_[$($())] { echo hi mom; id; }' bash -c "echo testing CVE-2014-6278"

এই পরীক্ষার জন্য পাসটি হ'ল এটি কেবল পাঠ্যের প্রতিধ্বনি করা উচিত testing CVE-2014-6278। যদি আপনার hi momকোথাও প্রতিধ্বনিত হয় তবে এটি অবশ্যই একটি ব্যর্থ।


1
আমরা কি এতে সাধারণ পরীক্ষা যোগ করতে পারি foo='() { echo not patched; }' bash -c foo? ফাংশন রফতানি পৃথক নেমস্পেসে না লাগানো পর্যন্ত আমরা এক পার্সার বাগ থেকে পরের দিকে চালানো বন্ধ করব না।
বিলি

এই পরীক্ষার কোন সিভিই আছে? আপনার এই সমস্যাটি বর্ণনা করার জন্য কোনও রেফারেন্স রয়েছে? এছাড়াও এই ধরণের তথ্যটি বিদ্যমান প্যাচগুলির সাফল্য বা ব্যর্থতা কীভাবে পরীক্ষা করতে হয় সে সম্পর্কে এই কিউর কারণে শেলশক সম্পর্কিত অন্যান্য প্রশ্নের একটিতে অন্তর্ভুক্ত থাকতে পারে।
বিউভুলফনোড 42

এটি আসন্ন কিছু শেলশক সিভিইয়ের ( lcamtuf.blogspot.com/2014/09/… ) মাইকেল জালিউস্কির ব্লগ পোস্ট থেকে । এটি CVE-2014-6278 এর জন্য তার প্রস্তাবিত পরীক্ষা, যা এখনও জনসাধারণের। মনে হচ্ছে পরীক্ষার সাধারণতা সম্পর্কে আমি ভুল ছিলাম, যদিও; আমি ইতিমধ্যে এমন একটি মামলার মুখোমুখি হয়েছি যেখানে জালিউস্কির পরীক্ষা পাস হয়েছিল তবে সিভিই -2014-7187 পরীক্ষা ব্যর্থ হয়েছিল।
বিলি

এবং এখানে সিভিই-২০১--6277E and এবং সিভিই -২০১--62 on78 on এর সম্পূর্ণ প্রকাশ রয়েছে, তাদের পরীক্ষা করার জন্য কমান্ড সহ: সেকলিস্ট.আর.এস.
২০১৪ /

একটি লক্ষণীয় বিষয়: যদিও BASH এর সংস্করণটি দুর্বল, এমনকি যদি এটি কিছু না ব্যবহার করে (যেমন ডেমোন দ্বারা ব্যবহৃত সমস্ত অ্যাকাউন্ট যেমন "www" বা "কাপ" বা যে কোনও কিছুই) তাদের ডিফল্ট শেল হিসাবে BASH এর সাথে কনফিগার করা হয়েছে, এবং এর মধ্যে কোনও কিছুই নেই আপনার কোডগুলি সিস্টেমে কল করে () বা এর মতো, দুর্বল সংস্করণটি কম ঝুঁকিপূর্ণ হতে পারে তবে তবুও, যত তাড়াতাড়ি সম্ভব BASH আপগ্রেড করুন।
ডিটি কে

32

একটি বিশেষভাবে তৈরি কার্বনযুক্ত পরিবেশের পরিবর্তনশীল রফতানি করুন যা বাশের দুর্বল সংস্করণগুলি দ্বারা স্বয়ংক্রিয়ভাবে মূল্যায়ন করা হবে:

$ export testbug='() { :;}; echo VULNERABLE'

আপনি যদি সেই ভেরিয়েবলটি নিজে ব্যবহার করেননি তবুও বাশ $ টেস্টবগে কোডটি মূল্যায়ন করবে কিনা তা দেখার জন্য এখন একটি সহজ প্রতিধ্বনি সম্পাদন করুন:

$ bash -c "echo Hello"
VULNERABLE
Hello

যদি এটি "VULNERABLE" স্ট্রিংটি দেখায় তবে উত্তরটি সুস্পষ্ট। অন্যথায়, আপনাকে উদ্বিগ্ন হওয়ার দরকার নেই এবং আপনার বাশের সংস্কৃত সংস্করণটি ঠিক আছে।

দয়া করে নোট করুন যে লিনাক্সের প্রধান বিতরণগুলি একাধিক প্যাচ প্রকাশ করেছে এবং কখনও কখনও তারা দুর্বলতা পুরোপুরি ঠিক করে না। এই বাগের জন্য সুরক্ষা পরামর্শ এবং সিভিই এন্ট্রি পরীক্ষা করে দেখুন ।


5
সিভিই -2014-6271 ছাড়াও, বিশেষত রেড হ্যাট থেকে অসম্পূর্ণ ফিক্সটির নিজস্ব রয়েছে যা নিম্নলিখিত অনুসরণযোগ্য : সিভিই-2014-7169
ডকম্যাক্স

3
এমন এক-লাইনার যা আপনার শেল এনভিকে দূষিত করে না এবং এমনকি যদি আপনি বিকল্প লগইন শেল ব্যবহার করেন (যা হয়ত জানেন না export) কাজ করে env testbug='() { :;}; echo VULNERABLE' bash -c "echo Hello"
তখনও

1
এখানে উবুন্টুর নির্দিষ্ট কিছু বিবরণ রয়েছে জিজ্ঞাসা করুন / জিজ্ঞাসা / ৫২২০১১/২ - ব্যক্তিগতভাবে সমস্যাটি সমাধানের জন্য আমাকে উবুন্টু ১৩.১০ থেকে ১৪.০৪ এ
উন্নীত

2

শেলশক কার্যত ব্যাশের একাধিক দুর্বলতার সংমিশ্রণ , এবং এই মুহুর্তে এই ম্যালওয়্যার রয়েছে যা এই দুর্বলতাটিকে কাজে লাগায় , তাই শেলশক এমন একটি সমস্যা হতে পারে যা এখনও খোলা আছে, এই সমস্যাগুলি সম্পর্কে রেডহ্যাটের আপডেট সহ একটি থ্রেড রয়েছে

রেডহ্যাট নীচেরগুলি পুনঃনির্দেশনা দিয়েছেন:

আপনার আদেশ প্রদান করুন:

$ 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

2

আমি সিজিআই স্ক্রিপ্টগুলিতে দুর্বলতার জন্য আপনার ওয়েবসারভার পরীক্ষা করতে শেলশকার নামে একটি সি এল এল ইউটিলিটি লিখেছিলাম । আপনার সাইটটি পরীক্ষা করতে, আপনি চালাতে চাই:

python shellshocker.py <your-server-address>/<cgi-script-path>

অর্থাত

python shellshocker.py http://example.com/cgi-bin/possibly-vulnerable-script.cgi

সম্পাদনা: এই ইউটিলিটিটি নামানো হয়েছে, দুঃখিত: '(


আপনার লিঙ্কটি মারা গেছে
এসএসকে

@ এসএসকে দুঃখিত,) ভুল লিখেছেন।
লিয়াম মার্শাল

আপনার লিঙ্কটি এখনও মারা গেছে।
এমএক্সএক্স

হ্যাঁ, দুঃখিত, আমি এটি নামিয়েছি। এটি আমার পছন্দ নয় এমনভাবে শোষণ করা হচ্ছিল।
লিয়াম মার্শাল

1

আপনি এই অনলাইন পরীক্ষায় আপনার সিজিআই ইউআরএল জমা দিতে পারেন:

http://shellshock.iecra.org


4
ডাউনভোটদের কারণ প্রদান করা ভদ্র is
ডেভিড

4
"আমরা সমস্ত স্ক্যান লগ করি" ??? ছম্ছমে। আমি অজগরটি ডাউনলোড করে নিজে চালাতাম।
ব্র্যাড

1
@ ব্র্যাড কমপক্ষে তারা আপনাকে বলছে। আমি নিশ্চিত যে যদি আমি একটি হোয়াইটহ্যাট সুরক্ষা পরিষেবা সরবরাহ করে যা এই পরিষেবাদির প্রস্তাব দিচ্ছিল আমি কয়জন লোক অন্ধভাবে তাদের সাইটের বিবরণী কোনও ওয়েবসাইটের মধ্যে লিখেছিলাম যে এটি যাচ্ছে সে সম্পর্কে একটি লগ রাখতে পারি (কোনও ব্যক্তিগত বিবরণ ছাড়া কেবল কোনও কাউন্টার) well পরীক্ষার প্রস্তাব দেওয়া সাইটের সত্যতা সম্পর্কে খুব অজান্তেই অনুপ্রবেশ পরীক্ষার চেষ্টা করার জন্য ... এবং তারা এমন একটি লগ চাইবে যে কে তাদের পরীক্ষার ক্ষেত্রে অন্যের দ্বারাও ঝুঁকিপূর্ণ সাইটগুলি খুঁজে পেতে তাদের পরিষেবা ব্যবহার করেছিল কিনা তা পরীক্ষা করেছিল ...
রব মোয়ার

-1

টাইপ এনভ এক্স = '() {:;}; প্রতিধ্বনিত 'বাশ-সি "প্রতিধ্বনি এটি একটি পরীক্ষা" এবং যদি এটি দুর্বল হয়ে যায় এবং এটি একটি পরীক্ষা হয় তবে এর অর্থ হল আপনার ওএসএক্স / লিনাক্স মেশিনটি প্রভাবিত হয়েছে। প্রতিকারটি হ'ল ব্যাশের সর্বশেষতম সংস্করণে আপডেট করা।


6
মূল হিসাবে কেন? সম্পূর্ণ অপ্রয়োজনীয়।
মাদুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.