Dropbox на macOS використовує прийоми malware, щоб отримати привілеї, які йому не потрібні

Якщо у вас встановлений Dropbox, загляньте в
Системні налаштування
Захист і безпека
Конфіденційність
.

TL;DR: Dropbox
  • Показує фальшиве системне вікно macOS, щоб отримати пароль користувача
  • Додає себе в привілейовані процеси без обов'язкового для всіх права
  • Ставить у систему backdoor, щоб відновити дозволу, якщо їх явно відберуть
  • Ці дозволи толком не використовує <irony/>
Помітили що-небудь незвичайне на цій картинці? Замислювалися коли-небудь, як вона тут опинилася? Подумали — може ви додали його самі, коли Dropbox попросив дозволу управляти комп'ютером?
Ні, ваша пам'ять вас не підводить. Ви не пам'ятаєте, як дозволяли це, тому що Dropbox ніколи не показував вам діалог, запитуючи дозволу — ось такий:

Це єдина офіційно дозволена можливість потрапити у цей список, але Dropbox ніколи не питав у вас цього дозволу. Пізніше я розповім, чому це важливо, але зараз проведіть дивовижний експеримент: спробуйте видалити.
«Легко!» — скажете ви. Спосіб всім відомий: натиснути
«Замок»
, виділити рядок з Dropbox, видалити його кнопкою «—». І ось, дивіться: його більше немає, вірно?
Невірно. У нього є погана звичка кожен раз повертатися. Спробуйте заново зайти в систему (або перезапустити програму), і Dropbox знову додасть себе в список дозволених програм і галочка навпроти нього буде встановлена. Це справжнє диво!
Якщо ж вам не хочеться пробувати, подивіться, як я пробую вимкнути цю можливість у Dropbox:

Тут виникає два питання:
  • Чому це важливо?
  • чи Можна якось зняти цю галочку, але продовжити користуватися Dropbox?
Чому це важливо?
Це важливо як мінімум з трьох причин:
Перший, і найголовніша: тому що Dropbox навіть не просив дозволу керувати вашим комп'ютером. «Керування комп'ютером» в macOS значить натискати на кнопки, меню, запускати програми, видаляти файли… Це загроза безпеці, і тому програми повинні вимагати введення пароля і явного дозволу на потрапляння в той список.
І «пояснення» від Dropbox не пояснює, чому вони роблять цей трюк (англ.)Interlude: Contrary to Dropbox's completely spurious «explanation»/obfuscation here, Accessibility has nothing at all to do with granting permissions to files. Accessibility frameworks were first introduced in Mac OS X 10.2 and expanded in 10.3 to allow control of user interface items via System Events and the Processes suite. As anyone can readily see what is that allows GUI control just as if the program or script was clicking buttons and menu items.
Але, наприклад, ви довіряєте Dropbox, і вважаєте, що вони — велика компанія, яка не хоче засмучувати своїх користувачів і не буде робити речей, не гідних свого чесного імені?
Якщо ви міркуєте так, ви допускаєте дві помилки:
  • Чим більше компанія, тим менше вона страждає від засмучених користувачів. Все просто: якщо 1000 людей прочитають цю статтю і перестане користуватися сервісом, за великим рахунком, нічого не зміниться. Нерозумно вважати, що велика компанія не пошле вас до біса від того, що боїться втратити всіх клієнтів і бізнес. Ще дурніші, якщо згадати, що ви у них на безкоштовному тариф. Вот(англ.) докладний розбір, чому великі компанії рідко замислюються про те, чи етично вони надходять).
  • Що важливіше, у вас вже серйозне доказ того, що Dropbox-у довіряти не можна: він тільки що отримав контроль над системою в обхід захисту macOS, і не питаючи вас. Крім того, як ви побачили в тому дивному експерименті, навіть коли ви явно відбираєте у нього контроль, він ігнорує ваше рішення і відновлює його. Як він це робить — ми скоро дізнаємося. (Є й інші серйозні причини не вірити Dropbox — наприклад, — прим. пер.)
Є друга проблема з цим трюком Dropbox-а.
Уявімо на хвилину, що розробники не бажають зла і не хочуть зробити з вами нічого поганого. Але, тим не менш, можливість цього процесу Dropbox є. Отже, зловмисник може знайти помилку в коді Dropbox і використовувати її, щоб захопити контроль над вашим комп'ютером. Поки це лише потенційна погроза; але, як і всі загрози, вона стане реальною, як тільки який-небудь зловмисник використовує її.
Вся суть системи безпеки ОС — і головне завдання системи дозволів macOS — в тому, що програма не повинна мати більше повноважень, ніж їй потрібно для виконання завдання. Dropbox або зберігає пароль адміністратора в явному вигляді (це дуже погано), або запускає свій процес з привілеями суперкористувача (не менше кепсько) — інакше йому довелося б запитувати пароль кожного разу, коли ви видаляєте його з дозволених.
По-моєму, ця міра не тільки скритна (так як я не дав явного дозволу на таке), але ще й надмірна.
третя проблема: для нормальної роботи Dropbox-у не потрібні права суперкористувача, ані доступ до
Accesibility API
. (Як припустили в коментарях до оригінальної статті(англ.), Dropbox таким чином хоче знати, коли ви робите знімок екрана; хоча вони могли не городити весь цей город, не вимагати привілеїв і стежити за каталогом знімків екрану з допомогою
FSEvents
).
Я провів тривалий тест, щоб переконатися в його працездатності, використовуючи його на 3 Маках і Айфоні протягом 10 місяців, і не виявив ніяких проблем. Я не міг перевірити всі можливості служби — я використовував Dropbox звичайним чином на звичайній OS X. Повторю: не було жодних проблем, і, навіть якщо б вони виникли, тоді б Dropbox і повинен був запитати додаткові дозволи — як всі інші програми — і поважати моє рішення, якщо я це дозвіл відніму.
Крім того, я повідомив про свої знахідки службі Apple Product Security, і чекав, чи зможуть вони примусити розробників змінити поведінку програми (поки безрезультатно)
Тоді у нас залишився тільки одне питання:
це все відключити, але зберегти Dropbox.app?
  • Зупиніть Dropbox (Значок Dropbox в рядку меню → контекстне меню →
    «Шестірня»
    Закрити Dropbox
    )
  • Видалити теку
    /Library/DropboxHelperTools
  • Видаліть Dropbox з
    Захист і безпека
    Універсальний доступ
Якщо вам це здається складним, просто видаліть Dropbox звичайним методом. Потім:
  • Завершіть сеанс і знову увійдіть у систему.
  • Якщо ви видалили Dropbox — перевстановіть його.
  • Спробуйте запустити, і побачите це вікно:

Як ми вже з'ясували, що це діалогове вікно бреше (все ще вірите великий серйозній фірмі?), коли говорить, що Dropbox не буде правильно функціонувати; але головний обман в тому, що це не те вікно, яке повинна показувати програма, яка бажає доступ до
Accessibility API
. Насправді, навіть з паролем користувача вона не повинна потрапляти в дозволені в
Універсальний доступ
. Схоже, хлопцям з Dropbox платять зарплату за придумування хаків для macOS.
І тут невелика заковика: якщо ви не дасте програмі свій пароль, вона не потрапить в
Універсальний доступ
, і буде працювати без нього — так само добре, як раніше. Але при кожному своєму запуску вона буде знову і знову вимагати ваш пароль.
Тепер вам потрібно буде дивитися, хто просить пароль, і не давати який потрапило програмі. Звичайно, ви і без моїх порад не повинні так робити — але це діалогове вікно виглядає майже як справжнє системне вікно самої macOS — і, можливо, вже привчило вас писати в нього все, що просять.
Цей запит кожен раз неприємний, але не так неприємний, як програма, хакнувшая ваш Мак.
Зауваження: докладний розбір технології, яку використовують Dropbox для впровадження в систему: Discovering How Dropbox Hack's Your Mac(англ.)

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.