Вопрос или проблема
Насколько я понимаю, приложение, запущенное пользователем, будет, как правило, наследовать права доступа к файлам того пользователя, который его запустил.
Предположительно, это означает, что все пользовательские приложения, например, на настольном Ubuntu, могут получить доступ к содержимому .ssh
, включая закрытые ключи.
Я прав в этом, и если да, то какие решения существуют для повышения безопасности частично доверенных приложений?
Вы правы, пользователь, который запускает программу, будет иметь доступ ко всем файлам и каталогам в каталоге ~/
этого пользователя, согласно правам файловой системы.
Однако ваш вопрос касается каталога .ssh
:
Предположительно, это означает, что все пользовательские приложения, например, на настольном Ubuntu, могут получить доступ к содержимому
.ssh
, включая закрытые ключи.
Каталог .ssh
не должен содержать закрытых ключей, должны присутствовать только открытые ключи и файл доверенных хостов.
Закрытые SSH
ключи должны храниться в хранилище ключей демона ssh.
Существуют несколько методов (включая автоматизированные), позволяющих получить доступ к закрытым ключам, хранящимся таким образом.
То же самое касается любых других аналогичных учетных данных, их не следует хранить где-либо в вашем каталоге ~/
, их следует управлять с помощью приложений, которые управляют учетными данными безопасным образом.
Что касается решений для повышения безопасности частично доверенных приложений, я бы сказал, не используйте программное обеспечение, которому вы не доверяете, и ограничивайте его тем, что доступно в репозитории дистрибутива.
Ответ или решение
Да, вы правы. Программа, запущенная пользователем, наследует права доступа к файлам пользователя, который её запустил. Это значит, что все пользовательские приложения на, например, десктопной версии Ubuntu, могут получить доступ ко всем файлам и директориям в домашнем каталоге пользователя, включая каталог .ssh
, содержащий приватные ключи.
Однако важно понимать, что безопасное управление этими ключами требует более строгих мер предосторожности. Некоторые рекомендации по улучшению безопасности для частично доверенных приложений включают:
-
Правильное хранение приватных ключей: Приватные ключи SSH должны быть защищены, например, с использованием SSH-агента, который хранит ключи в памяти и предоставляет доступ к ним только авторизованным запросам. Таким образом, даже если приложение получит доступ к файлу
~/.ssh
, оно не сможет использовать ключ без соответствующей аутентификации. -
Использование разрешений на файлы: Убедитесь, что ваши директории и файлы имеют соответствующие права доступа. Директория
.ssh
должна иметь права700
, а файлы ключей —600
, что ограничивает доступ к ним только для самого пользователя. -
Бдительность при установке ПО: Ограничьте использование неподтвержденных или ненадежных разработчиков программного обеспечения. Установку следует производить только из доверенных источников, таких как официальные репозитории дистрибутивов.
-
Использование контейнеризации: Для запуска частично доверенных приложений можно использовать контейнеры (например, Docker). Это поможет изолировать приложение от системы и уменьшить потенциальные риски.
-
Применение систем контроля доступа: Используйте приложения, которые поддерживают управление доступом на основе ролей, такие как SELinux или AppArmor, для ограничения прав доступа, что поможет снизить риск несанкционированного доступа.
В целом, важно применять многоуровневую стратегию для защиты ваших данных и конфиденциальной информации, чтобы минимизировать риски, связанные с доступом приложений к вашим приватным ключам и другим чувствительным данным.