Чи вразливі Маки до помилки Bash?


58

Нещодавно Red Hat оголосив про велику помилку, пов’язану з безпекою, в оболонці Bash. Деякі називають це помилкою "оболонки". Оскільки ОС X побудована за допомогою Unix, чи вона вразлива для атак, які експлуатують цю помилку?

Як кінцевий користувач, чи потрібно хвилюватися про негайне виправлення? Або краще мені чекати офіційного оновлення програмного забезпечення від Apple?



Щоб дізнатися, які дії впливають на OSX, див. Security.stackexchange.com/questions/68123/…
користувач151019,

Оновлено питання, щоб менше не обдурити і більше просити поради для непрофесійних людей.
шерсть

1
Apple , випустила виправлення в даний час: support.apple.com/kb/DL1769
AT

Відповіді:


46

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

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

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

Тож ця проблема в основному хвилює системних адміністраторів на серверах Mac OS X & Unix / Linux, що піддаються впливу світу, а не користувачів настільних ПК, які не дозволяють ділитися SSH.

Можливо, існує великий ризик створення шкідливих програм або вірусів Mac для використання цього ризику, але я сумніваюся.

EDIT: І лише для того, щоб уточнити, як ця проблема - на мою скромну думку - насправді не є проблемою для більшості пересічних користувачів, так, я можу виконати наступну команду з bashMac OS X 10.9.5:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

І я це бачу:

vulnerable
hello

Вгадай що? Це жахливо лише, якщо ви не раціонально продумуєте це. Мені вже довелося ввійти в свій Mac, щоб навіть відкрити Термінал. І щоб відмовитись від того, що я говорив про SSH вище, щоб навіть дійти до того, що я можу запустити цей тест, навіть якщо SSH увімкнено, я все одно повинен був увійти до системи. І тоді - скажімо, я отримую доступ через SSH - команда не дозволяє мені робити що-небудь раніше моїх звичайних прав користувача, таких як ця:

env x='() { :;}; echo vulnerable' bash -c 'cat /etc/ssh_host_rsa_key'

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

Це викликає занепокоєння із загального питання контролю та прав, оскільки це потенціал дозволити ненавмисний доступ, оскільки поведінка виходить за рамки очікуваних норм. Але, на мою скромну думку, це не ризик нарівні з OpenSSL або сортом саду, "дозвольте мені залишити свій пароль на замітці, записаній на мій екран".

Наприкінці дня я все ще виправляю всі мої сервери Linux / Unix, які я запускаю як стандартну процедуру. І з радістю буде виправити Macs, яким я керую, як тільки виправлення вимкнеться. Але для практичного щоденного використання я відчуваю себе прекрасно, не переживаючи про це, оскільки не розумію, як недолік, який не дозволяє отримати підвищені привілеї користувача, ні до чого.

ОНОВЛЕННЯ: Офіційне слово від Apple, розміщене тут ; акцент міна:

"Переважна більшість користувачів OS X не загрожує нещодавно повідомленим вразливим уявленням, - заявив прес-секретар Apple iMore." Bash, командна оболонка UNIX і мова, що входить в OS X, має слабкість, яка може дозволити стороннім користувачам віддалено отримувати контроль вразливих систем. З ОС X системи за замовчуванням безпечні і не піддаються віддаленим подвигам bash, якщо користувачі не налаштують розширені послуги UNIX. Ми працюємо над тим, щоб швидко забезпечити оновлення програмного забезпечення для наших досвідчених користувачів UNIX. "

Переклад: Що я говорив вище про те, що це проблема сервера, а не проблема клієнта? Саме так.

ЗАКЛЮЧНЕ ПОДРОБНЕ: Для тих, хто бореться зі збиранням з джерела, станом на 29 вересня Apple офіційно випустила патчі для Mac OS X 10.9.5, 10.8.5, а також 10.7.5:

ІНШИЙ ЗАКЛЮЧНИЙ ОНОВЛЕННЯ: І тепер, Apple щойно випустила комбіноване оновлення безпеки, яке включає і bashоновлення !

Примітка. Оновлення безпеки 2014-005 включає вміст безпеки OS X bash Update 1.0


7
"або веб-сервер, який виконує скрипт на стороні сервера" - або працює програма, слухаючи на відкритому порту, який дозволяє робити дзвінки RPC, які закінчуються запуском команд оболонки. Це може бути будь-яка кількість речей, оскільки існує маса стандартних додатків, які виконують свій RPC. Я думаю, що ця відповідь дуже наївна. Це дуже просто ненароком "запустити веб-сервер" під час роботи програми, яка робить щось із типу "клієнт-сервер".
Ян C.

3
@IanC. Чи можете ви навести приклад того, коли поза коробкою ОС X була б справді вразлива? Наприклад, щось на кшталт WebEx чи GotoMeeting навіть наблизиться до можливостей Bash? Справа в тому, що я не можу придумати звичайний сценарій встановлення OS X, який би справді викрив речі. Можеш ти?
JakeGould

8
Гостьовий аккаунт НЕ доступний для SSH. Насправді, навіть неможливо зробити це доступним для ssh, IIRC. Справа в тому, що для переважної більшості користувачів OS X вразливість bash взагалі не є проблемою. Для тих із нас, де це проблема, нам потрібно перекомпілювати bash, як тільки з’явиться перевірена помилка, але це не зараз.
lbutlr

3
@IanC. Гаразд, справедливі приклади. Але ви все ще пропускаєте думку: Як можна використовувати таку вразливість у кожному наданому вами прикладі? У кожному випадку користувачеві буде потрібен доступ до системи для початку, а потім чого? Я не переймаюся цим питанням, але все одно не розумію, який би ризик був насправді? Хтось, наприклад, повинен був пройти шлях через API Plex, щоб потім зробити що саме в башті, щоб зробити щось поза межами звичайних прав користувача та привілеїв доступу?
JakeGould

6
@danielAzuelos "Усі вразливі, доки відкритий обліковий запис гостя: [!" Обліковий запис гостя не має нічого спільного bash. Тож базується страх на чому саме? Крім того, навіть якщо гостьовий рахунок відкритий і якось bashкорисний, то що? З того, що я бачу, здогадка, що використовує цей подвиг, не мала б підвищених привілеїв чи нічого навіть близького до цього. Якщо говорити серйозно, я готовий відмовитися від своєї позиції, але це здається більше схожим на паніку, що базується не так багато, тоді як OpenSSL був справжньою проблемою.
JakeGould

37

Так!

Наберіть це у своїй оболонці

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Якщо це говорить, vulnerableто ви вразливі.

Якщо це говорить

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello

тоді ти хороший.

Редагувати: посилання на виправлення


4
Дякую. Я оновив питання - якщо ми виявимо, що ми вразливі, як користувач Mac може це виправити?
шерсть

3
@abbyhairboat Опублікував мою відповідь. Якщо ви не працюєте з сервером, що потрапляє до зовнішнього світу, практичного ризику немає. Адміністратори сервера - це ті, кому потрібно переживати з цього приводу.
JakeGould

1
→ abby: див. Відповідну відповідь: apple.stackexchange.com/a/146851/22003 .
дан

2
Спробуйте це env X="() { :;} ; echo busted" /bin/sh -c "echo completed"- Навіть після виправлення моєї системи, цей відкашлює «розбитого» в командному рядку. Ба.
Trane Francks

1
@ Marark nope, zsh є безпечним. вам потрібно замінити "bash -c" на "zsh -c", щоб перевірити його.
ismail

3

Як кінцевий користувач , переконайтесь, що:

  • ваш гостьовий рахунок вимкнено:

    Налаштування системи> Користувачі та групи> Гість користувача
    
  • ваш sshдоступ вимкнено:

    Налаштування системи> Обмін> Віддалений вхід
    

За замовчуванням вони обидва вимкнено на Mavericks.

Як кінцевий користувач , безпечніше чекати офіційного оновлення безпеки Apple, яке виправить цю bashвразливість.


1
Це не мають значення. Будь-яка з них, за своєю суттю, надає користувачам доступ до запуску команд у системі, тому, якщо у вас їх увімкнено, тоді ви маєте намір дозволити користувачам виконувати команди. Помилка Shellshock - це засіб для користувачів, яким ви не мали наміру виконувати команди, щоб мати змогу це зробити, EG користувач веб-сервера, який ви запускаєте. Отже, у вашій відповіді слід сказати «Вимкнути спільний доступ до Інтернету» (але це лише одне, що потрібно перевірити)
Джош,

Мене дратує Apple, не радила вимикати ці налаштування. Хто б їх дозволив? Я б. Я користувач Mac з 1986 року, штатний розробник веб-додатків (так що ssh - це моє життя) і тато (так що гостьовий обліковий запис для дітей - не така погана ідея). Я знаю безліч людей, подібних до мене, якими користуються ноутбуки Apple. Хочете втратити нас? Залишити цю вразливість відкритим - хороший спосіб.
мінопрет

2

Всі машини Mac OS X технічно вразливі до "Shellshock", поки Apple не випустить оновлення безпеки, яке виправляє удари, але ..

Ваше запитання має бути таким: Чи можна мене віддалено зламати?

Існує стільки програмного забезпечення, яке bashневміло використовує, що відповісти на це питання надзвичайно важко. Якщо ви хвилюєтесь, я б запропонував кілька змін, System Preferencesщоб запобігти віддаленим подвигам:

  • Вимкнути ВСІ сервіси спільного використання в розділі Налаштування спільного доступу.
  • Увімкніть брандмауер у розділі Безпека та конфіденційність.

Якщо ви особливо переживаєте, натисніть кнопку Firewallпараметрів, щоб:

  • Зніміть прапорець Automatically allow signed software to receive incoming connections.
  • Перевірка Block all incoming connections.

Все ще є шановний шанс, що ви вразливі до атаки рівня за допомогою DHCP, Bonjour тощо. Але, ей, якщо вам потрібна інша послуга, тоді, очевидно, ви можете залишити її, поки ви сподіваєтесь, що вона не буде використана. І вам також потрібно буде залишити брандмауер більш відкритим. Ймовірно, буде добре, якщо машина працює за іншим брандмауером.

Крім того, чи є локальні атаки ескалації привілеїв, які ввімкнено програмою "Shellshock?". Так, майже напевно. Я б не хвилювався, хоча у Mac OS X є досить подібних атак. Apple не швидко виправляє місцеві помилки ескалації привілеїв. І Apple створює їх часто за допомогою служб Apple Script. Просто припустимо, що всі машини Mac OS X завжди вразливі до локальних атак. Якщо вам потрібно відвідувати хакерські конференції типу DEFCON, тоді купіть собі для цього скриньку Linux.

Оновлення: Є інструкції щодо перекомпіляції власного фіксованого bash та інші питання, які також стосуються цього . Я зроблю це самостійно, але IMHO це надмірно, якщо ви не запускаєте жодних серверів і не вмикаєте брандмауер Apple.

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

Нарешті, Apple не дуже добре стосується виправлення вразливих місць безпеки, але вони чудово підходять до PR, так що це буде виправлене відносно швидко. Тому доцільно думати: "Мені не потрібно бігати швидше, ніж ведмідь, мені потрібно бігти швидше, ніж величезна кількість легко експлуатованих серверів в Інтернеті". :)


2
Немає шансів, що Маки вразливі до нападу за допомогою DHCP, оскільки він не використовує Bash.

1
Як ви знаєте, що? Початкові консультації були вразливим клієнтом DHCP. І багато статей припускають, що клієнти Mac OS X та / або iOS DHCP можуть бути вразливими. Усі сервери слід вважати вразливими, якщо не доведено інше.
Jeff Burdges

1
Ні, їх не повинно бути; це абсолютно FUD. Ви можете перевірити код відкритого коду на реалізацію dhcp OS X і вимірювати виклики системи, щоб перевірити себе.

3
@JeffBurdges, OS X не використовує оболонку exec з DHCP з 10.3, а до цього bash не був встановлений у системі. DHCP в OS X - це не проблема для Shellshock. (Одна менша річ, про яку потрібно хвилюватися. :))
Trane Francks

1
→ Джефф: врахуйте: strings /usr/libexec/bootpd | egrep '/bin|bash'і nm -a /usr/libexec/bootpd | egrep 'fork|exec'. Читаючи ці вихідні команди на різних версіях MacOS X, ви можете переглянути свій аналіз ризику з - за dhcpdна MacOS X ... але тільки цей один :(.
дан

2

Я зробив цей інструмент, як тільки почув про цю вразливість. Він надасть вам посилання на статтю, щоб виправити свою оболонку, якщо інструмент визначить, що ви вразливі.

Потрібна Mac OS X 10.6 і новіша версія.


3
Можливо, це лише я ... але ідея запустити якийсь код випадкової людини для перевірки на експлуатацію просто здається дійсно поганою ідеєю, коли ти можеш так само легко вставити рядок (це очевидно лише запуск тесту та нічого більше) у термінальне вікно.
Джо

Я погоджуюся, тому джерело знаходиться на code.google.com/p/shellshock-check
Thomas Jones,

Однак іноді він може запропонувати зручність для тестування декількох систем.
Томас Джонс

Я не бачу в цьому користі. Перевірка вразливості набагато простіше зробити, вставивши простий командний рядок у вікно терміналу.
Альберт Годфрінд

Проте при тестуванні декількох машин, особливо в моєму випадку, тому що я це роблю, вставити флешку та відкрити Shellshock Check.app набагато простіше, ніж відкривати Safari, шукати команду bash для перевірки, а потім відкривати термінал, вставляючи це натисніть клавішу Enter, а потім натисніть клавішу Enter. Набагато швидше підключити флешку та відкрити одну програму.
Томас Джонс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.