Почему нет разрешений, таких как Android или iOS?

Когда я устанавливаю такую ​​программу, как GIMP или LibreOffice в Linux, я никогда не спрашиваю о разрешениях. Установив программу на Ubuntu, я явно предоставляю этой программе полное разрешение на чтение /запись в любом месте на моем диске и полный доступ к Интернету?

Теоретически, может ли GIMP читать или удалять любую директорию на моем диске, не требуя пароля sudo-типа?

Мне просто любопытно, если это технически возможно, не так, если это возможно или нет. Конечно, я знаю, что это маловероятно.

25 голосов | спросил stackinator 26 MarpmMon, 26 Mar 2018 18:36:38 +03002018-03-26T18:36:38+03:0006 2018, 18:36:38

7 ответов


31

Здесь есть две вещи:

  • , когда вы устанавливаете программу стандартными средствами (системный установщик, такой как apt /apt-get на Ubuntu), он обычно устанавливается в какой-то каталог, где он доступен всем пользователям (/usr /bin ...) , Этот каталог требует, чтобы привилегии записывались так, чтобы во время установки вам нужны специальные привилегии.

  • , когда вы используете программу, она запускается с вашим идентификатором пользователя и может только читать или писать, где программы, выполненные с вашим идентификатором, могут читать или писать. В случае Gimp вы обнаружите, например, что вы не можете редактировать стандартные ресурсы, такие как кисти, потому что они находятся в общем /usr/share/gimp/ и что вы должны скопировать их в первую очередь. Это также показано в Edit>Preferences>Folders, где большинство папок попадают в пары, системный, который доступен только для чтения, и пользовательский, который можно записать в .

ответил xenoid 26 MarpmMon, 26 Mar 2018 18:54:34 +03002018-03-26T18:54:34+03:0006 2018, 18:54:34
20
  

Установив программу на Ubuntu, я явно предоставляю этой программе полное разрешение на чтение /запись в любом месте на моем диске и полный доступ к Интернету?

Да, если вы используете sudo или эквивалент, вы предоставляете полное разрешение для чтения /писать где угодно на вашем диске. Это в основном одно и то же. Существует также флаг, который установщик может установить, называемый setuid, который заставит программу иметь полные разрешения после установки тоже.

Даже если мы игнорируем установщик, и если программа не установлена ​​setuid (очень редко для программ используется setuid), при запуске программы у нее есть полный доступ ко всему, к чему может обращаться ваша учетная запись. Например, если вы вошли в свой онлайн-банк, это может гипотетически отправить все ваши средства в Нигерию.

  

Почему нет разрешений, таких как Android или iOS?

Модель безопасности - это означает, что система безопасности разработана - в Linux очень старо. Он унаследован от Unix, который относится к 1960-м годам. Тогда не было Интернета, и большинство людей в отделе использовали один и тот же компьютер. Большинство ваших программ поступали от крупных компаний, которым доверяли. Таким образом, система безопасности была разработана для защиты пользователей друг от друга, а не для защиты пользователей от программ, которые они запускают.

В настоящее время он довольно устарел. Android основан на Linux, но он работает, создавая отдельную «учетную запись пользователя» для каждого приложения, а не для каждого пользователя. Я не знаю, что использует iOS. Такие усилия, как Flatpak, в настоящее время пытаются принести такие же вещи на рабочий стол Linux.

ответил immibis 27 MaramTue, 27 Mar 2018 03:34:56 +03002018-03-27T03:34:56+03:0003 2018, 03:34:56
9

То, что вы хотите, предоставляется приложениями Flatpack. Это очень похоже на приложения для iOS, Android или Windows Store.

Я не использовал их, поэтому я не знаю, еще ли они реализовали графический интерфейс, чтобы увидеть разрешения, необходимые для каждого приложения, когда оно установлено.

https://blogs.gnome.org/alexl/2017/01/20/the-flatpak-security-model-part-2-who-needs-sandboxing-anyway/

  

Каждое приложение flatpak содержит манифест, называемый метаданные. Этот файл описывает детали приложения, такие как его идентификатор (app-id) и то, что он использует. В нем также перечислены разрешения, требуемые приложением.

     

По умолчанию, после установки, приложение получает все разрешения, которые он запрашивал. Тем не менее, вы можете переопределять разрешения каждый раз, когда вы вызываете flatpak run или глобально для каждого приложения, используя переопределение flatpak (подробности см. В manpages for flatpak-run и flatpak-override). Обработка прав на приложения в настоящее время несколько скрыта в интерфейсе, но долгосрочный план заключается в отображении разрешений во время установки и упрощении их переопределения.

Я также не использовал альтернативу Ubuntu, Snappy, чтобы узнать, обладает ли она такой функцией, видимой в графическом интерфейсе.

ответил sourcejedi 26 MarpmMon, 26 Mar 2018 18:48:33 +03002018-03-26T18:48:33+03:0006 2018, 18:48:33
6

Это технически возможно, и решения включают apparmor, selinux и firejail или даже полные контейнеры, такие как LXC или полная виртуальная машина (например, VirtualBox, kvm или vmware). Для сетей есть opensnitch, который является клоном littlesnitch из OSX.

Причины, по которым нет широко распространенной модели безопасности с разрешениями, предоставленными пользователем, - это то, что традиционно вы внимательно следите за тем, что вы запускаете на своем компьютере. 90% того, что находится в апплетах мобильных систем, будет считаться вредоносным ПО на ПК.

Существуют сканеры для рекламного ПО (например, adaware или Spybot D & D), которые будут классифицировать поведение, например, как подключение Facebook, Google Analytics и рекламных сетей в качестве вредоносного ПО на ПК. Мобильная экосистема - это как бы полная перезагрузка вычислений, когда дело доходит до этих вещей. Все связывают рекламное ПО, просто потому, что это легко и добавляет аналитику, просто потому, что он любопытен. Побочными эффектами являются снижение конфиденциальности и безопасности. Часть безопасности учитывается с помощью модели sandbox, часть конфиденциальности остается открытой проблемой.

Еще одна причина недолгого отсутствия этого на ПК - сложность песочницы, а это значит, что они могут быть слишком медленными для старых ПК некоторое время назад и потребовали больше инжиниринга для чего-то, у которого было мало преимуществ.

Сегодня мы видим попытки использовать песочницу в новых форматах пакетов, таких как snap и flatpak, и браузеры используют его для своих расширений. Chromium использует модель разрешения с самого начала, и Firefox использует один для всех веб-расширений (с 57 - только расширения, которые вы можете установить). Это вполне разумно, потому что люди устанавливают расширения браузера от неизвестных авторов, как приложения от людей, о которых они никогда не слышали, думая, что они не опаснее веб-сайта, который они посещают, что является фатальным заблуждением, когда для защиты их нет. /р>

ответил allo 27 MarpmTue, 27 Mar 2018 12:18:28 +03002018-03-27T12:18:28+03:0012 2018, 12:18:28
3

Android использует модель безопасности «рынка»: разные приложения исходят от разных (полупринтеров) поставщиков и должны быть изолированы от защищенных ресурсов и друг от друга. Большинство приложений распространяются на основе прибыли: они продаются (оплачиваются), показывают платную рекламу или «монетизируют» своих пользователей, продавая свои данные третьим лицам. Существует высокая мотивация участвовать в незаконном доступе к данным, даже если их поймают.

Большинство приложений в Debian, Red Hat и подобных «классических» дистрибутивах Linux распространяются в исходной форме: после того, как приложения с открытым исходным кодом получат достаточное сцепление с дорогой, он выбирается вручную для включения разработчиками дистрибутива. Существует мало мотивации для осуществления незаконного доступа к данным, - потенциальные выгоды не оправдывают усилий.

Стоит отметить, что продвинутая модель безопасности Android - одна из причин, почему она приобрела столь большую тягу, легко преодолевая iOS на мобильных рынках. Современные настольные Linux-дистрибутивы не просто «разные», они действительно хорошо отстают от своих моделей безопасности и распространения.

В некоторых дистрибутивах Linux улучшаются системы распространения программного обеспечения: централизованные сторонние программные репозитории (AUR), специализированные форматы пакетов для распространения стороннего программного обеспечения (AppImage, Snappy, Flatpack), вторичных систем репозитория (Docker) , К сожалению, с тех пор эти улучшения немного ухудшились: AppImage был изобретен в 2004 году, первая версия AUR была выпущена в 2005 году, но ни один из современных дистрибутивов Linux официально не использовал свои функции после> 10 лет.

ответил user1643723 28 MaramWed, 28 Mar 2018 06:04:42 +03002018-03-28T06:04:42+03:0006 2018, 06:04:42
3
  

Когда я устанавливаю такую ​​программу, как GIMP или LibreOffice в Linux, я никогда не спрашиваю о разрешениях.

Эти приложения установлены в привилегированной части файловой системы, которую вы и большинство пользователей обычно не имеете доступа к изменениям.

В основных дистрибутивах, настроенных для использования на настольных компьютерах, один пользователь, изначально настроенный при установке, обычно имеет права администратора. Все, что они обычно просят, это их собственный пароль для входа в систему, и не всегда это.

После установки программное обеспечение по умолчанию будет настроено на выполнение обычными пользователями и позволит считывать файлы данных. Это все, что нужно.

  

Установив программу на Ubuntu, я явно предоставляю этой программе полное разрешение на чтение /запись в любом месте на моем диске и полный доступ к Интернету?

Не программа. Случается, что учетная запись пользователя принадлежит к разным группам, а разные группы предоставляют доступ к разным ресурсам.

Модель безопасности Linux - это то, что ваша учетная запись пользователя имеет определенные права, а группы, к которым принадлежит ваша учетная запись, имеют определенные права. Для права на на любую часть файловой системы требуются привилегии root, которые обычно не предоставляются пользователям. Даже если вы используете sudo , вы не получаете все права.

Обычные учетные записи пользователей обычно имеют доступ к ресурсам, которые им ожидаются, например, к Интернету.

  

Теоретически, может ли GIMP читать или удалять любую директорию на моем диске, не требуя пароля sudo-типа?

Любой каталог или файл, к которому вы, как пользователь, имеете права доступа, может быть доступен приложением, которое вы запускаете, поскольку оно обычно наследует ваши права. Обычно зарегистрированный пользователь по умолчанию не имеет права изменять большинство критических системных файлов или общих файлов.

  

Мне просто любопытно, если это технически возможно, не так, если это возможно или нет. Конечно, я знаю, что это маловероятно.

Имейте в виду, что большинство пользователей обычно устанавливают приложения из репозиториев, которые хорошо контролируются, а риск недействительного кода низкий.

Я бы предложил некоторые дополнительные чтения, чтобы справиться с разрешениями Linux.

Модель безопасности Android развивается в соответствии с потребностями пользователей, которые не только ничего не понимают в отношении базовой модели безопасности ОС, но почти не понимают что-либо о компьютерах.

Модель Linux (что я, откровенно говоря, больше) предназначена для того, чтобы пользователи (и, в частности, администраторы) могли более эффективно контролировать безопасность в системе (в пределах допустимых разрешений).

Я думаю, что с точки зрения пользователя лучше всего описывать разницу между полноавтоматическим и полуавтоматическим или ручным управлением. Современные потребители хотят полного авто. Linux имеет полуавтоматическое и ручное управление. Большинство пользователей Linux никогда не должны знать о модели безопасности в эти дни, но элемент управления есть, если вам нужно или нужно.

ответил StephenG 28 MaramWed, 28 Mar 2018 08:52:45 +03002018-03-28T08:52:45+03:0008 2018, 08:52:45
2

При установке некоторых программ вы можете установить их в своем собственном пользовательском пространстве (то есть автономно в своем домашнем каталоге), а не общесистемно. Таким образом, вас не спрашивают о привилегиях суперпользователя, потому что вам не нужны они для установки программы для собственного использования пользователем. Программа, установленная таким образом, действительно могла бы not иметь доступ к файлам, которые не были предоставлены «членам, не являющимся членами группы, которые могут читать это», при отсутствии эскалации привилегий.

ответил DopeGhoti 26 MarpmMon, 26 Mar 2018 18:40:38 +03002018-03-26T18:40:38+03:0006 2018, 18:40:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132