Чи є дозвіл ARDAgent дійсно безпечним?


1

Я біжу Ель-Капітан 10.11.6 , виправлені останніми оновленнями безпеки під час написання.

Нещодавно я запустив відновлення дозволу на кореневий том:

sudo /usr/libexec/repair_packages --verify --standard-pkgs /

Я помітив наступний запис журналу:

Попередження: файл SUID 'System / Library / CoreServices / RemoteManagement / ARDAgent.app / Contents / MacOS / ARDAgent' був змінений і не буде відремонтовано.

Заінтригований, я досліджував на двійковому, і приземлився це (серед інших).

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

Оскільки я трохи упертий, я перевірив фактичну власність / дозволи на цей двійковий файл у моїй системі:

-rwsr-xr-x 1 root wheel 1.1M Mar 6 19:15 ARDAgent

Схоже на групу ( колесо ) і всі інші може виконувати двійковий файл.

Моє запитання: чи дійсно це безпечно, для додатків, уразливих до довільного / шкідливого та ескалаційного виконання коду?

Я б не хотів chmod це до a-x?

Відповіді:


1

tl; dr Немає нічого незвичайного, або по суті небезпечного, з вашим ARDAgent виконуваним файлом або його правами. Запропонована вами виправлення дійсно зробить вашу систему трохи безпечнішою, але може завдати більше шкоди, ніж користі. Ймовірно, це не варто.

С chmod a-x, виграш у безпеці був би дійсно малий; оновлення програмного забезпечення може просто скинути прапор, залишивши вас помилковим почуттям безпеки; ви обов'язково зламаєте ARD; Ви можете також забути повторно ввімкнути SIP або навіть припинити оновлення системи.

Що сталося

Давайте перше підсумуємо, що сталося з ARDAgent в минулому.

  • Ще в 2008 році бібліотеки OSA (частина Mac OS X) мали проблему ескалації привілеїв root ( CVE-2008-2830 ), що дозволить зловмисникам виконувати довільний AppleScript за допомогою привілейованого додатка.

  • Один із популярних способів демонстрації CVE-2008-2830 - використання програми ARDAgent як заплутався депутат виконувати довільний код AppleScript з підвищеними привілеями.

  • Цей експлуатат був можливий тому, що ARDAgent використовував бібліотеки OSA (містять в той час помилку) і оскільки він призначений для роботи з правами суперкористувача.

  • Попереджувальне повідомлення SUID на Disk Utility, швидше за все, викликане незначним контролем, введеним в OS X 10.5. Попередження SUID звикли турбувати Користувачі Mac ще в 2007 році ; перші звіти з'явилися в день 10.5 був випущений, і CVE-2008-2830 навіть не з'явився. Тому я не вважаю, що попередження пов'язане з помилкою, експлуататом або з наступним патчем Apple.

  • В даний час CVE-2008-2830 було зафіксовано майже десять років. З тих пір я не бачив звітів про будь-яку іншу вразливість, пов'язану з ARDAgent.

Ваша модель загрози

Відкинувши всю цю історію, давайте перейдемо до роз'яснення сценарію загрози, який ви, швидше за все, маєте на увазі; Ви можете редагувати своє запитання, якщо я помиляюся.

  • Заради моделювання загроз припустимо, що ARDAgent 3.9.2 (версія, яка постачається з El Capitan) має інший незв'язана вразливість, яка не є загальновідомою на сьогодні, але може бути виявлена ​​і використана зловмисником.

  • У найгіршому випадку, ця уразливість буде проблемою віддаленого виконання коду (RCE); тоді зловмисник зможе скористатися помилкою через мережу, щоб отримати кодове виконання (через помилку) і привілеї суперкористувача (через біт setuid) за один раз. Це дещо реалістична загроза.

  • Якщо зловмисник вже має локальне виконання коду з нормальними привілеями, ескалація може бути досягнута тим самим засобом.

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

Зменшення ризиків

Якщо ви працюєте chmod a-x проти виконуваного файлу згідно з вашою пропозицією (що можливо тільки з SIP вимкнено), зловмисник втрачає: launchd більше не буде керувати агентом, а також місцевий зловмисник. Ви успішно зменшили поверхню атаки - хоча і лише невеликою часткою.

Вплив виправлення

На macOS, є багато процесів з привілеями суперкористувача, будь то з або без setuid. Той факт, що в ARDAgent було десять років тому помилка, не робить її за своєю природою менш безпечною, ніж інші програми. У середньому інші процеси є такими ж ймовірними як ARDAgent мати невідкриту критичну вразливість.

Ти будеш втратити функції віддаленого робочого стола від Apple (якщо їх увімкнено). Ви також можете зіткнутися з випадковим Невдале оновлення MacOS оскільки прапори могли стати частиною попереднього підтвердження підпису (не на відміну від попередження SUID десять років тому, але на цей раз Apple може вибрати помилку). Швидше за все, ви забудете виправлення, щоб перевстановити.

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

Існує також ризик забувши повторно включити SIP (що призведе до набагато більшого ризику, ніж ви тільки що пом'якшили). І, нарешті, існує невеликий ризик зробити невелику помилку chmod наприклад, rwsrw-rw- - що означає, що кожен користувач безкоштовно отримує привілеї root.

Альтернативи

Декілька пропозицій щодо більш безпечного зниження ризику:

  • Зменшіть поверхню атаки, відключивши послуги, які вам не потрібні. Хоча це може не завжди захищати від ескалаційних атак (зловмисник з локальним виконанням коду може просто запустити агента безпосередньо), це допоможе запобігти RCE.

  • Повторно ввімкніть SIP якщо вона вимкнена, та залиште його ввімкненим.

  • Шукати та видаляти несистемні файли, що належать кореню, мають біти setuid / setgid без поважної причини. Якщо вам абсолютно потрібно залишити біти включеними, переконайтеся, що файли ніколи не можуть бути груповими чи світлими.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.