Как файлы взаимно ненадежного приложения защищены в Linux

Надеются быть 2 способа, которыми можно сделать это.

Метод № 1: вручную создайте .desktop файл

Да необходимо создать пользовательское .desktop средство запуска для него. Вот общие шаги:

  1. Создайте *.desktop файл в /usr/local/share/applications (или /usr/share/applications в зависимости от Вашей системы).

    $ gksudo gedit 
    
  2. Вставка ниже текста

    [Desktop Entry]
    Type=Application
    Terminal=false
    Name=IntelliJ IDEA
    Icon=/path/to/icon/icon.svg
    Exec=/path/to/file/idea.sh
    

    Править Icon= и Exec= и Name=. Также Terminal=True/false определяет погоду, терминал открывает окно и отображает вывод или выполнения в фоновом режиме.

  3. Поместите .desktop файл в панель Unity Launcher. Для этого шага необходимо будет перейти в файловом браузере туда, где .desktop файл - то, что Вы создали на предыдущих шагах. После определения местоположения файла перетащите файл к панели Средства запуска Единицы на стороне. После создания выполнения этого Вы, возможно, должны выполнить следующую команду, чтобы заставить Вашу систему распознавать недавно добавленный .desktop файл.

    $ sudo update-desktop-database
    

Метод № 2: метод GUI

Вместо того, чтобы вручную создать .desktop файл можно вызвать GUI, чтобы помочь помочь в выполнении этого.

  1. панель гнома установки

    $ sudo apt-get install --no-install-recommends gnome-panel
    
  2. запустите .desktop генератор GUI

    $ gnome-desktop-item-edit ~/Desktop/ --create-new
    

                      ss of editor

Ссылки

5
30.03.2015, 02:55
2 ответа

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

Типичные настольные операционные системы, такие как Unix и Windows, и типичные мобильные операционные системы, такие как Android и iOS, имеют разные модели безопасности. Unix - это многопользовательская операционная система с взаимно недоверенными пользователями. Приложения считаются доверенными: все приложения пользователя работают в одном и том же контексте безопасности. Службы, с другой стороны, являются несколько менее доверенными: они обычно выполняются под выделенной учетной записью, чтобы уменьшить последствия в случае уязвимости безопасности.

Есть две основные причины, почему модель безопасности Unix работает именно так:

  • Негативная причина - история: когда Unix была разработана, приложения создавались небольшим набором программистов и были подкреплены репутацией поставщика или предоставлялись в виде исходного кода, или и то, и другое. Бэкдоры в приложениях редко вызывали опасения. Кроме того, лишь немногие приложения обменивались данными по сети, поэтому было относительно мало возможностей для запуска и использования уязвимостей. Поэтому не было сильного стимула изолировать приложения друг от друга.
  • Положительной причиной является функциональность: изоляция приложений делает невозможным многие вещи. Если каждое приложение имеет свою собственную область данных, это затрудняет обмен данными между приложениями. В типичной системе Unix очень часто одни и те же данные обрабатываются несколькими приложениями. Это особенно верно, поскольку в Unix нет четкого разделения между "приложениями" и "операционной системой". Веб-браузер - это приложение. Невозможность загрузить файл в выбранный вами каталог, потому что браузер ограничен своим собственным каталогом, раздражает. Программа, которая отображает меню и иконки при входе в систему, также является приложением. Файловые менеджеры, которым по определению нужен доступ ко всем вашим файлам. Так же как и оболочки и другие интерпретаторы, которые выполняют скрипты повсюду. Когда вы печатаете документ из текстового процессора, это может включать приложение для преобразования документа в формат для печати и другое приложение для отправки данных на принтер.

Хотя сейчас авторов приложений гораздо больше, чем 40 лет назад, приложения по-прежнему обычно распространяются по доверенным каналам, которые несут в себе указание на репутацию. (Это в большей степени относится к Linux, чем к Windows, что является одной из причин, почему вирусы чаще встречаются под Windows). Обнаруженное приложение с бэкдором будет быстро удалено из репозиториев программного обеспечения Linux.

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

Изоляция приложений начинает пробивать себе дорогу в настольные Unix-системы. Некоторые дистрибутивы запускают определенные программы в рамках системы безопасности, такой как AppArmor или SELinux, которые ограничивают возможности приложения. Цена этих ограничений безопасности заключается в том, что они иногда делают невозможным желаемое использование, например, не позволяя приложению с ограничениями открывать файлы в определенных каталогах.

Шифрование было бы совершенно бесполезным. Шифрование защищает данные только при передаче (по сети) или в состоянии покоя (хранятся на диске), оно не защищает данные на живой системе - если подсистема A расшифровывает свои данные, то ОС должна предотвратить доступ подсистемы B к расшифрованным данным, и поэтому не имеет значения, были ли данные расшифрованы A или хранились в незашифрованном виде. Операционная система может зашифровать данные, но только для того, чтобы защитить их в случае кражи носителя.

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

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

14
27.01.2020, 20:32

Мне нравятся ответы Жиль, но есть еще один аспект:

принцип Unix заключается в том, что каждая программа должна «делать одно хорошо».

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

В крайнем примере принципа: один из старых MailReaders Unix, которые больше никто не использует, ELM , просит ваше одобрение перед созданием каталогов, которые он будет использовать для проведения файла конфигурации ( ~ / .elm / ) и почтовые папки ( ~ / mail / ). Если вы скажете, нет, это отвечает

Very well, but you may run into difficulties later.

, противоположный край был продемонстрирован некоторой программой, я пытался пройти недавно (извините, я забыл, какой из них), который отказался начать и не дал никакой подсказки относительно того, что было не так. STRACE показано, что он хотел создать каталог ~ / .config / и не мог, потому что у меня был обычный файл с помощью этого имени. (Я когда-то сделал CP .Config ~ из дерева исходного дерева ядра, поэтому у меня будет резервное копирование.), Очевидно, теперь сейчас он считается разумным, чтобы спровоцировать очень общее имя в домашнем каталоге пользователя без уведомления (гораздо меньше одобрения) или даже минимальная проверка ошибок.

прогресс.

2
27.01.2020, 20:32

Теги

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