Comments 75
P.S.: Dropbox'ом не пользуюсь.
Смена пароля не поможет, т. к. Dropbox не запоминает пароль пользователя.
Он распаковывают в папку /Library/DropboxHelperTools/
набор мелких утилит (которые выполняют операции по добавлению Dropbox'а в список Accessibility и др.) и устанавливают им бит suid. С этого момента эти утилиты периодически запускаются Dropbox'ом и отрабатывают с правами суперпользователя.
Смена пароля не снимет suid-бит, и, соответственно, не отберет у Dropbox'а права.
ulltor@orion /Library/DropboxHelperTools/Dropbox_u501 $ ls -l
total 528
drwxr-xr-x 4 root wheel 136 Sep 19 2014 DropboxBundle.bundle
-r-s--x--x 1 root wheel 139220 Sep 15 16:50 FinderLoadBundle
-r-s--x--x 1 root wheel 9632 Sep 15 16:50 dbaccessperm
-r-s--x--x 1 root wheel 116668 Sep 15 16:50 dbfseventsd
drwxr-xr-x 4 root wheel 136 Sep 15 16:50 mach_inject_bundle_stub.bundle
А система, типа SELinux или AppArmor, там есть?
Если бы они могли работать в песочнице — опубликовались бы в App Store.
Песочница — одно из главных требований для App Store-приложений
Как мне кажется, тут все дело в желании разработчиков и прочих ответственных.
В демонстрационном видео показали, что десктопный клиент Dropbox предоставляет прямой доступ к облачному хранилищу файлов на уровне файловой системы, без необходимости запускать браузер. Локальный диск «увеличивается» на размер облачного хранилища, файлы доступны напрямую. Облачное хранилище может быть больше по размеру, чем локальный диск.
Dropbox Infinite интегрируется на уровне ядра.
https://habrahabr.ru/company/rootwelt/blog/301826/
Дата публикации: 26 мая 2016.
Автор статьи говорит, что обратил внимание на это поведение 10 месяцев назад — за пол-года до Dropbox Infinite
Кстати, деинсталлятора у dropbox нет, а после ручного удаления (в корзину) папка /Library/DropboxHelperTools остаётся (по очевидным причинам). Её тоже снёс.
И что касается «они — большая компания [...] вы допускаете две ошибки»
Хочу добавить третью — именно большие компании более всего жаждут выкачать из вас персональных данных, потому что у них есть достаточно ресурсов, чтобы их обработать и как-то монетизировать.
Если я маленький частный сайт, то даже если я соберу каким-то образом со своих клиентов персональные данные, то не очень-то и понятно, как мне их использовать (при условии, что явный и заведомый криминал отбрасываем)? Продать кому-то статистику я не могу, потому что жалкие несколько тысяч клиентов мало кому интересны.
Или, например, я могу через приложение следить за всеми перемещениями своих пользователей. И дальше что? Чтобы всё это хранить и обрабатывать, нужны куча ресурсов, сервера, трудоемкая разработка анализирующего софта и так далее.
А у больших компаний это есть.
После удаления DropboxHelperTools
не работает сохраниеие скриншотов в облако, видимо, действительно именно для этой фичи всё и замутили.
Дополнительные меры защиты:
sudo touch /Library/DropboxHelperTools
sudo chflags schg /Library/DropboxHelperTools
sudo chflags hidden /Library/DropboxHelperTools
После запуска Dropbox ожидаемо попросил больше прав, я отказался.
Сделал скриншот — он залился в облако и скопировал мне ссылку в буфер обмена.
Кстати да, теперь заработало вдруг и у меня. Тогда совсем непонятна цель изощрений. На всякий случай пароль учётки тоже сменил. =)
Во второй статье приводится ответ Dropbox на вопрос на похожую тему:
we need to request all the permissions we need or even may need in the future.
(выделение моё).
То есть — возможно — когда-то это стало не нужно, но код оставили и просят пароль просто на будущее.
Ниже пишут, что права могут быть нужны в некоторых случаях конфликтов (конечно, всё остальное это не оправдывает)
Ему без такой привилегии никуда: он должен перехватывать нажатия клавиш, нажимать клавиши за вас, переключать раскладку.
Совершенно ожидаемо просит разрешить это — но, надеюсь, явно просит, без пароля и установки backdoor-а
Определённо, нет:
Установкой и обновлением программ должна заниматься единая системная служба от разработчиков ОС (не обязательно от них, но крайне желательно. Главное, чтобы она была единой).
Обновления всех программ должны идти по единому сценарию, и, возможно, из единого репозитория. Так было устроено в Linux примерно всегда, и так устроены почти все современные ОС.
Тоже не обязательно.
В Макоси далеко не весь софт в магазине (особенно туда не пускают opensource). Остальные программы (большинство) при каждом запуске скачивают appcast, загружают обновление (если есть), и только после этого просят эскалацию прав для установки (если она нужна).
У автора статьи главное правило ИБ было приведено только наполовину. Полностью оно звучит так:
Программа должна иметь только те полномочия, которые ей требуются для выполнения задачи, и только на то время, на которое они нужны.
Конечно, для ожидания в фоне и загрузки appcast-ов каждые сутки не нужны права суперпользователя. Они нужны только для установки.
Но каждый разработчик под винду желает повесить свою резидентную службу (а лучше — не одну, а десяток), чтобы они постоянно крутились в системе и отжирали память. И отдельная служба следила бы за тем, что пользователь вручную поудалял или позапрещал ненужные иму процессы, и восстанавливала их.
Тут такого механизма (достаточно развитого), по сути, нет.
Отсюда, например, mozilla maintenance service болтается в службах.
Если ставить её с админскими правами.
Решает проблему обновления фаерфокса глобально по операционке из под учётки без админских прав.
Увы, тут само построение системы такое.
Вы винду выкинули из современных ОС.
Тут такого механизма (достаточно развитого), по сути, нет.
Есть Windows Store, NuGet / chocolatey, и система развёртывания софта через Active Directory — что ещё для счастья надо?
Увы, тут само построение системы такое.
А как Google Chrome справляется? Он знаменит был тем, что ставился без доп. привилегий, из-под простого пользователя, даже когда прав нет вообще. И, наверняка, без всяких прав и сервисов обновляется
Это плохое решение, но не более того(тем более TV права таки нужны).
Грязно — это захватывать права тайком от пользователя. Нужны они или не нужны — тут вообще вторично.
Вообще не вижу других причин тратить столько сил.
Здесь автор допускает логическую ошибку в словах, ведь Dropbox ничего не говорит, что не дав пароль, программа не будет функционировать. Значит, окно не «врёт».
Далее, разбирая непосредственно слова из окна: «чтобы правильно функционировала» — это определение весьма расплавчато. Для нас правильное функционирование означает обычные базовые функции, а для них(dropbox) это может означать вовсе другое. В данном конкретном случае — не дав пароль, программа каждый раз запрашивает заново пароль. Это ли не «неправильное функционирование»? Вполне попадает под это, так-что окно в целом, не врёт.
Другое дело, конечно, что ни в статье, ни сама компания Dropbox(что очень печально с их стороны) не раскрывают, зачем ей всё-же нужен доступ к таким функциям.
Где-то, кажется, была статья на хабре, кажется от mail.ru с их облаком, или я.диск — так вот, там была тема, что на макось им не хватает нормальных доступов для стабильной работы, и чтобы не перегружать систему, они устанавливаются глубже в систему, чтобы отслеживать изменения на жестком диске в обход ОС. Сорри, статью найти не могу, но была в этом году.
upd: нашел: https://habrahabr.ru/company/mailru/blog/307412/ «Особенности файловых систем, с которыми мы столкнулись при разработке механизма синхронизации Облака Mail.Ru»
> Дело в том, что под macOS нельзя с уверенностью сказать, какое именно событие пришло от файловой системы. Поэтому приходится использовать дополнительные механизмы проверки событий для понимания, что именно произошло с файлом или директорией.
раньше на странице вакансий у них была эта картинка
Как мы уже выяснили, это диалоговое окно врёт (всё ещё верите большой серьёзной фирме?), когда говорит, что Dropbox не будет правильно функционировать;
Как это определяется? На своем форуме (по ссылке в статье) они говорят, что это нужно для спорных ситуаций с расшареными файлами, когда прав может не хватать. Вы пробовали именно эти сценарии?
но главный обман в том, что это не то окно, которое должна показывать программа, желающая доступ к Accessibility API.
Окошко на скриншоте выше этого текста вроде про accessibility и не говорит, просто спрашивает пароль. То, что он на основании него добавился в ac. список — частность.
Вы пробовали именно эти сценарии?
Если вам хочется это узнать, стоит спросить в комментариях статьи-оригинала.
Я (переводчик) замечал эту галочку раньше, снимал, и не мог через месяц понять, как она возвращается. Теперь узнал. Поставил альтернативный клиент, и в нём всё работает без доп. привилегий и без потерь данных.
То, что он на основании него добавился в ac. список — частность.
Похоже, существенная частность: продолжение статьи посвящено целиком тому, как Dropbox смог туда попасть. Им нужно было решить парадокс: даже root
не может попасть в список Accesibility
— для этого нужно щёлкнуть мышкой по нужным окнам, а, чтобы щёлкать, нужен Accessibility API
ODrive (они и раньше хвастались, что грязными трюками не занимаются), но не рекомендую его сильно. В меру бесплатный, но тормозит, и не хватает функций по мелочам.
Тут важнее психологический момент: без Dropbox вполне можно жить, и другие системы (хуже, но) не сильно хуже. И — он поддерживает несколько сервисов; можно, не меняя программу-клиент, свалить на Яндекс-диск (например), или купить себе Amazon S3, или уже посмотреть на opensource (Syncthing, Owncloud)
Загляните в App Store (там есть несколько систем / клинетов, и там точно никаких грязных трюков), посмотрите на Alternativeto.net, или на штатный iCloud — он не так плох, как все привыкли думать (смайлик), особенно в macOS 10.12
OS X тянет файлы с webdav-сервера напрямую, что очень медленно и неудобно.
Хотелось бы полную локальную копию всех файлов иметь, как это сделано в Dropbox.
Человек, который устанавливает программу не из appStore должен дважды подумать — почему ее там нет.
Хочешь безопасности и паранойи — ставь arch и запускай все программы в контейнере, закриптовав при этом все дериктории и разрешив файрволу только 2 порта на вход — 80 и 443, а остальные запретить. Ну и конечно же VPN по отпечатку пальца.
Да, при установке спросил пароль, мне и в голову не пришло, что это не системный запрос. Синхронизация работает, в боковом меню файндера присутствует, скриншоты снимаются.
Единственное отличие, которое вижу — версия ОС — у меня 10,12 sierra, и ставил ее с нуля.
Вот например этот твит был сделан 6 дней назад.
Показывает как именно Dropbox «включает» универсальный доступ для себя.
Команда покажет запрос к базе который использует Dropbox для манипуляций
sudo strings /Library/DropboxHelperTools/Dropbox_u501/dbaccessperm | grep INSERT
А тут 5 дней назад написали объяснение как отключить только «фичу» авто включения универсального доступа, и оставить сервис мониторинга файловой системы рабочим.
Remove executable and suid bits and lock dbaccessperm file.
cd /Library/DropboxHelperTools/Dropbox_u502
sudo chmod -sx dbaccessperm
sudo chflags uchg dbaccessperm
Remove (just uncheck) accessibility permission for Dropbox via System Settings.
А тут ответы от Dropbox/
Dropbox на macOS использует приёмы malware, чтобы получить привилегии, которые ему не нужны