Як виправити вразливість безпеки Shellshock в тестуванні debian / jessie?


24

Команда тесту

x='() { :;}; echo vulnerable' bash

показує, що моя установка Debian 8 (Jessie) є вразливою, навіть з останніми оновленнями. Дослідження показують, що існує патч для стабільного та нестабільного, але тестування не має чітких змін.

Я думаю, що патч зробить тестування через пару днів, але це насправді виглядає досить неприємно, щоб бути параноїком. Чи є спосіб отримати пакет з нестабільного та встановити його, не порушуючи мою систему? Оновлення до нестабільного виглядає так, що це спричинить більше проблем, ніж вирішує.


За словами Боба, існує друга вразливість Shellshock, яка фіксується у другому патчі. Тест для нього повинен бути:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

Але я недостатньо кваліфікований в Bash, щоб розібратися, що це означає чи чому це проблема. У будь-якому випадку це робить щось дивне, що перешкоджає bash_4.3-9.2_amd64.deb у 64-бітних системах, які під час редагування знаходяться у стабільній та нестабільній, але не в Джессі / тестуванні.

Щоб виправити це для Джессі , дістаньте останній Bash з нестабільного та встановіть його dpkg -i.

Jemenake пропонує

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

як команда, яка отримає версію 4.3-9.2 для вашої машини.

І ви можете слідувати цьому за допомогою:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

щоб встановити його.

Якщо вам потрібні додаткові виправлення від нестабільної для вашої системи Джессі , це явно шлях ( mutatis mutandis ).

Відповіді:


5

Завантажте пакет з нестабільної за цим посиланням . Ви також можете перевірити залежності там, хоча, схоже, нестабільний баш має ті ж залежності, що і баш від тестування. Встановіть завантажений деб із наступним.

dpkg -i

1
Дякую, я це зробив і вирішив проблему, не помітно знищивши нічого. Імовірно, він з часом перезаписується в звичайному ході оновлень?
— Джон Лоуренс Аспден

3
Наведене вище посилання чудово, якщо ви користуєтесь браузером у графічному інтерфейсі. Менше, якщо ви запустите рись у сеансі оболонки. Якщо ви хочете щось, що можна вставити прямо у свій командний рядок, щоб схопити його, спробуйте: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb Це отримає правильну архітектуру для вашого поля.
— Jemenake

1
@Jemenake Це слід опублікувати як окрему відповідь.
— Excellll

Це, безумовно, відповідь, яку я хотів, але тепер, коли оновлення зробило це Джессі, я думаю, що краще, якщо прийнята відповідь - це той, хто зараз шукає, тому я рухаю галочку. Дякую, хоча!
— Джон Лоуренс Аспден

Насправді є два помилки, і виправлення другого тепер знаходиться в sid, але не в Джессі, тому це насправді все-таки правильна відповідь (обов'язково отримайте 4.3-9.2!), Хоча, безсумнівно, ситуація вирішиться скоро.
— Джон Лоуренс Аспден

25

Я відредагував цю відповідь для додаткових виправлень bash, випущених у понеділок.

Для Ubuntu 12.04 я запустив оновлення, але також довелося запустити інсталяцію для bash, щоб позбутися вразливості.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Ця команда показує, що система вразлива, тому запустіть оновлення.

apt-get update && apt-get -y upgrade

Перевірте ще раз.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Досі вразливі.

apt-get install -y bash

Перевірте ще раз.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

Правка: Після випуску додаткових патчів вихід змінився.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

Так! Виправлено. Це має працювати для інших версій, але я не перевіряв його після 12.04.

Також відповідь runamok нижче працює добре, тому дайте йому підсумок!


6
Просто, apt-get update && apt-get install -y bashздається, працює.
— runamok

Виходячи з відповіді @JabawokJayUK, я все-таки провалюю перший тест після оновлення bash в Ubuntu 12.04.
— Бірла

Я лише отримую, this is a testале не помилку та попередження. У своїй локальній машині я отримую помилку, але на своєму сервері - ні. Що це за міра? Мій сервер виправлений? Дякую.
— ElBaulP

Здається, сховище зараз оновлено, тому що мені не довелося виконувати apt-get install -y крок, проблема була вирішена Alredy після оновлення.
— користувач316566

1
Це дійсно не відповідає на питання про тестування / jessie Debian . Ubuntu - це різний дистрибутив з незалежними сховищами пакетів та графіками виправлення.
— Боб

16

Альтернатива Debian 6.0 (Squeeze) без отримання пакунків з Debian 7 (Wheezy):

Використовуйте сховище безпеки LTS, яке підтримує патч.

Додайте це до /etc/apt/sources.list:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

Потім бігайте apt-get update && apt-get install bash.

Через: linuxquestions


Працює для debian 6. Ми завжди зберігаємо безпеку LTC у списку!
— stanleyxu2005

4

apt-get updateраніше, apt-get dist-upgradeі ви отримаєте пластир. Просто зробив це сам, і там відбулося баш оновлення, яке виправляє проблему.


2
Проблема полягала в тому, що тестування Debian ще не мали оновленого пакету, тому завантажували його вручну з нестабільної та встановлювали, що було найпростішим виправленням на той час; рішення, дане у цій відповіді, не спрацювало б. (Можливо, зараз це станеться, тому що пакет міг перейти на тестування.)
— wurtel

Це не дає відповіді на початкове запитання, але це те, що люди повинні робити зараз, тому я приймаю це так, що це перше, що люди побачать. "Справжня" відповідь на мою складність (вона є нестабільною і стабільною, але не є тестуючою) - це відповідь wurtel, використовуючи завантаження нового bash - ????. Deb і dpkg -i вручну.
— Джон Лоуренс Аспден

Я також думаю, що це відповідь для Ubuntu, тепер, коли вони належним чином натиснули свої виправлення, і, ймовірно, для будь-якого іншого дистрибутиву на основі debian, який все ще підтримується до тих пір, коли люди висунули виправлення.
— Джон Лоуренс Аспден

Насправді є два помилки, і виправлення другого ще не зробило це Джессі.
— Джон Лоуренс Аспден

Це все ще вірне рішення, і воно залишатиметься до тих пір, поки команда з тестування Debian надсилатиме оновлення; вони, можливо, не мали цього при тестуванні під час питання про ОП. Ще один варіант - налаштувати всіх користувачів на використання Dash. Це, головним чином, проблема сервера, а не
— MGD_Toronto


1

Я написав статтю про те, як це зробити за допомогою apt-get на старих версіях Ubuntu. Ви в основному оновлюєте свій source.list до найновішого, а потім запускаєте apt-get update та update bash. Ви можете прочитати його крок за кроком або скопіювати його звідси .

Підсумок:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

Прочитайте статтю, якщо ви використовуєте old-releases.ubuntu.com і не забувайте, що ви можете змінити її:

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

е-е ... це залишить вашу систему з Trusty в source.list. наступного разу, коли ви будете оновлені, система оновиться до Trusty. це СЕВЕРЕЛЬНО порушить вашу систему.
— strugee

1

Фіксована версія (див. Журнал змін ) для пакета Bash зараз знаходиться в Debian 8 (Jessie) (див. Інформацію про пакет ) станом на 26.09.2014 14:18 UTC.

Другий виправлення, згаданий у коментарях нижче, зараз також знаходиться у сховищі Джессі . Не потрібно встановлювати з нестабільних. Дивіться посилання з інформацією про пакет вище.

Встановлювати з нестабільної вже не потрібно.

Просто запустіть:

# aptitude update

далі:

# aptitude upgrade

Потім перевірте, що вразливість зникла (у щойно відкритій оболонці):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'

Поки не виправлено наступний CVE-2014-7169
— Боб

@Bob, я думаю, це стосується лише Ubuntu? І, мабуть, Ubuntu це вже виправили.
— Джон Лоуренс Аспден

@JohnLawrenceAspden Nope. Спробуйте запустити env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- якщо він друкує still vulnerable, то остання vuln ще не виправлена. AFAIK, Джессі все ще вразлива. Зауважте, що ця команда створить файл, названий echoу поточному каталозі, якщо він успішний, і вам потрібно буде видалити його перед повторним запуском тесту.
— Боб

@ Боб, я не можу зробити це головою чи хвостом, що стосується крапки з комою?
— Джон Лоуренс Аспден

@Bob, але що б він не робив, ти маєш рацію, що оновлення до версії 4.3-9.2 у нестабільній зупиняє це!
— Джон Лоуренс Аспден
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.