আমি কোনও অপ্রচলিত উবুন্টু সিস্টেমে শেলশক দুর্বলতা কীভাবে প্যাচ করব যা আমি আপগ্রেড করতে পারি না?


22

আমার কাছে এমন একটি সিস্টেম রয়েছে যা আমি দূরবর্তীভাবে পরিচালনা করি (2 টাইমজোন দূরে) যা উবুন্টু 9.04 চালায়, জন্টি। বিভিন্ন কারণে, মূলত যে আমি এতদূর থেকে একটি বিতরণ আপগ্রেড করার চেষ্টা করার বিষয়ে সত্যই উদ্বিগ্ন, আমি এটিকে আরও সাম্প্রতিক সংস্করণে আপগ্রেড করতে পারি না। স্পষ্টতই এটি আর সমর্থিত নয় এবং কোনও অফিসিয়াল প্যাচও নেই। আমি কীভাবে কোডটি প্যাচ করতে পারি এবং শেলশকের দুর্বলতাগুলি সরিয়ে ফেলতে বাশকে আমার পুনরায় সংকলন করতে পারি সে সম্পর্কে কোনও নির্দেশনা রয়েছে কি?


5
এই বিষয়ে আপনি কী গবেষণা করেছেন? সবচেয়ে সহজ সমাধান সম্ভবত এটি আবার তৈরি এবং প্যাচ করা হবে। সার্ভার আপডেট করার জন্য আপনার এটি সহজ সময় গ্রহণ করতে পারে।
রামহাউন্ড

হ্যাঁ, এটি আমার ফ্যালব্যাক বিকল্প। সার্ভারটি বেরোতে চলেছে, আমি তার প্রতিস্থাপনের জন্য তহবিল না আসা পর্যন্ত কেবল এটিকে চালিয়ে দেয়ার চেষ্টা করছি। আমি যদি সাইটে ছিলাম, আমি বুলেটটি কামড়াতাম এবং আপডেটটি করতাম তবে খুব কমই আমি এটুকু ছাড়াই যেতাম, এবং তাতে হাত না দেওয়া ছাড়া আমার ঝুঁকি নেই যে আমার যদি না থাকে করতে।
ক্লজ

কেবল পৃষ্ঠায় কিছু কীওয়ার্ড পাওয়া যাতে লোকেরা এটি খুঁজে পেতে পারে। এছাড়াও আমার জন্য ম্যাক, ওএস এক্স, আর্স্টেকনিকা

1
এটিকে ছাড়াই দিন, "লিপিং বরাবর" দ্রুত পরিবর্তন হবে change খুব পরিষ্কার হয়ে যান, আপনি পাঁচ বছর আগে বেরিয়ে এসেছিল এমন একটি ডিস্ট্রো ব্যবহার করছেন । সমর্থনটি অক্টোবর ২০১০ এ শেষ হয়েছে worry আপনার উদ্বেগ করার মতো আরও অনেক দুর্বলতা রয়েছে।
tedder42

উত্তর:


29

এটি হ্যাকার নিউজ বন্ধ করে চুরি করে এমন ব্যক্তির কাছ থেকে আস্কউবুন্টু থেকে এটি চুরি করেছেন। আমার জন্য দুটি পুরানো সার্ভারে কাজ করেছেন

mkdir src
cd src
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
#download all patches
for i in $(seq -f "%03g" 1 28); do wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i; done
tar zxvf bash-4.3.tar.gz 
cd bash-4.3
#apply all patches
for i in $(seq -f "%03g" 1 28);do patch -p0 < ../bash43-$i; done
#build and install
./configure --prefix=/ && make && make install
cd .. 
cd ..
rm -r src

আপডেট: আমি কেবল লক্ষ্য করেছি যে আপনি যদি --prefix=/কনফিগার কমান্ডটি যোগ না করেন তবে আপনি শেষ অবধি শেষ হয়ে যাবেন /usr/local/bin/bashএবং /bin/bashএখনও ঝুঁকিপূর্ণ হবেন।


স্ক্রিপ্টটিতে একটি ত্রুটি রয়েছে: "0 25" ক্রমটি "1 26" হওয়া উচিত। আপনি যদি এটি পড়ছেন এবং উত্তর সম্পাদনা করতে সক্ষম হন তবে দয়া করে এটি আপডেট করুন। ধন্যবাদ!
joelparkerhenderson

রানগুলি ./configure --prefix=/ && makeজরিমানা make installকরার sudo
স্টুয়ার্ট

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

@ রুবো It এটি এখন 1 27 হওয়া দরকার (নতুন 27 প্যাচটি সবচেয়ে গুরুত্বপূর্ণ)
joelparkerhenderson

1
যোগ করা হয়েছে প্যাচ 28. এই নেই জন্য CVE-2014-7186 / 7187 দুর্বলতার ফিক্স প্রদর্শিত হবে।
আনকিলবিগ

2

আপনার উত্সগুলি আপডেট করার একটি সমাধান রয়েছে list নতুনটিকে নতুন তালিকাতে তালিকা তৈরি করুন এবং তারপরে কেবল বাশকে আপগ্রেড করতে অ্যাপ-গেট ব্যবহার করুন। এটি সত্যিই দ্রুত এবং আমি এটি সম্পর্কে একটি নিবন্ধ লিখেছি । আপনি মূলত যা করেন তা এখানে:

সর্বশেষতম উবুন্টু 'বিশ্বাসযোগ্য' অ্যাপটি-গেট সংগ্রহস্থলগুলিতে আপগ্রেড করুন (আপনি যদি পুরানো-প্রতিবেদনসমূহ.উবন্টু.কম ইউআরএলগুলি ব্যবহার করতে পারেন তবে লিঙ্কযুক্ত নিবন্ধটি পরীক্ষা করুন):

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list

বাশ আপগ্রেড করুন / ফিক্স প্রয়োগ করুন:

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

এবং সম্ভবত এপ-গেট সংগ্রহস্থলগুলি পরিবর্তন করুন।


নিখুঁতভাবে কাজ করেছেন!
পিটার ক্রুইথফ

-1

কমান্ডটি হওয়া উচিত

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

2
এটি সাহায্য করবে না; ওপি যেমন বলেছে, এটি আর সমর্থিত নয়, তাই বাশের জন্য কোনও আপগ্রেড হবে না।
অ্যান্ড্রু ফেরিয়ার

-3

একটি সহজ বিকল্প কেবল ব্যাশ ব্যবহার না করা। নিশ্চিত করুন dashইনস্টল করা থাকে এবং যে /bin/shএকটি সিমবলিক লিঙ্ক হয় dashনা bash। (এটি ডেবিয়ানের কয়েকটি সংস্করণে ডিফল্ট, তবে আমি উবুন্টু সম্পর্কে নিশ্চিত নই)) আপনার যদি জোরপূর্বক কমান্ড সহ এসএসএস অ্যাক্সেসের জন্য ব্যবহারকারী অ্যাকাউন্ট থাকে তবে আপনাকে তাদের লগইন শেলগুলিও পরিবর্তন করতে হবে। আপনার কোনও স্ক্রিপ্টগুলি স্পষ্টভাবে ব্যাশ ব্যবহার করে পরীক্ষা করতে হবে; #!/bin/bashতাদের জন্য গ্রেপিং করা উচিত।


5
এটি কিছুটা বলার মতো, "আমরা পেয়েছি যে আপনি সি ++ তে
সেগফাল্টস রাখতে

3
আরও ঘনিষ্ঠ সাদৃশ্যটি কেউ কাউকে জিসিসিতে বাগের মুখোমুখি হওয়ার জন্য ঝাঁকুনির চেষ্টা করতে বলছে। উভয়ই একই ভাষা প্রয়োগ করে (কখনও কখনও নন-স্ট্যান্ডার্ড এক্সটেনশনের সেটগুলির ওভারল্যাপিং সেট সহ) এবং প্রকৃত প্রয়োজন "বাশ" এর পরিবর্তে "শেল ইন্টারপ্রিটার" এর ক্ষেত্রে সম্ভবত প্রয়োজন।
আর ..

যেমনটি আপনি বলেছেন, এমন স্ক্রিপ্ট রয়েছে যা স্পষ্টভাবে ব্যাশ ব্যবহার করতে পারে। এমনকি আপনি ব্যাশ ব্যবহারকারী বিদ্যমান ফাইলগুলির জন্য গ্রেপ করে থাকলেও ভবিষ্যতে কেউ ব্যাশকে স্পষ্টভাবে ব্যবহার করে এমন সিস্টেমে একটি নতুন স্ক্রিপ্ট যুক্ত করতে পারে। একই এম্বেড থাকা সিস্টেমে ব্যস্তবক্স (/ বিন / শ পয়েন্টগুলি ব্যস্তবক্সে) ব্যবহার করে তবে ব্যাশ ইনস্টল করা আছে। সবচেয়ে ভাল জিনিস হ'ল দুর্বল সিস্টেমে বাশ আপডেট করা।
jcarballo

বেশিরভাগ ইউনিক্স / লিনাক্স স্ক্রিপ্টগুলির জন্য বাশ বা কিছু অন্যান্য আধুনিক শেল যেমন ksh বা zsh প্রয়োজন। এগুলির একটি দুর্দান্ত অনেকগুলি কার্যকারিতা রয়েছে যা লোকেরা যে কোনও ভাষায় প্রত্যাশা করতে এসেছিল তবে (ব্যাসিবক্স) অ্যাশ / ড্যাশ / শ (মূল) এর মতো "নগ্ন-হাড়" শেলগুলিতে উপস্থিত নেই। এই সহজ শেলগুলির বড় শেলগুলির কার্যকারিতা কেবলমাত্র 20-30% থাকে যা এগুলিকে দ্রুত করে তোলে। তবে উন্নত স্ট্রিং-হ্যান্ডলিং এবং প্যাটার্ন-ম্যাচিংয়ের মতো অনেকগুলি সাধারণ ক্রিয়াকলাপের জন্য তাদের বাহ্যিক ইউটিলিটির ব্যাপক ব্যবহার প্রয়োজন। বাশ এবং এগুলি ছাই চালাতে পারে, ইত্যাদি। স্ক্রিপ্ট। তবে ভাইস-এ-বিপরীত নয়।
ডকসালভেজার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.