В чем опасность запуска ненадежного программного обеспечения обычным пользователем?

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

Допустим, мы установили специальное приложение в / opt / software , затем запустим его как обычный пользователь (без sudo, gksudo и т. Д.).

  • Я знаю, что когда мы запускаем программу, она может подключаться к Интернету, контролировать X, нажатия клавиш, собирать пользовательские данные и т. Д.
  • Он не может ничего изменить в системе или заразить систему (из-за системы разрешений Linux).
  • Программа может добавить некоторый плагин / расширение в браузер пользователя (поскольку профили браузера доступны в домашнем каталоге пользователя).
  • После закрытия программы и перезагрузки она больше не может ничего делать. Неправильно, потому что:
    • Программа может добавить себя в каталог shell / file /, который выполняет процесс автозапуска, поэтому она будет работать при любом входе в систему.
  • Если мы считаем процесс автозапуска чистым, без перезагрузки есть вероятность, что процесс программы все еще активен.
  • Программы могут удалять или изменять любой файл в домашнем каталоге пользователя (или любой другой файл, к которому у пользователя есть разрешение на запись).

Итак, что мы должны делать?

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

Я прав? Я что-то упускаю?

6
задан 10 August 2017 в 07:49

1 ответ

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

  • Много файлов и устройств можно считать чувствительным, читаемы миром. Как раз когда непривилегированный пользователь, можно извлечь большую информацию из системы (обычно, можно читать /etc для запуска).

  • Вам нельзя было настроить Ваш собственный материал правильно. Например, Вы сделали абсолютно уверенными, что этот файл "super-secret-passwords.txt" не читаем всеми? И что относительно этой ошибочной части старого программного обеспечения, работающего как самостоятельно или корень - действительно ли Вы уверены, что это не пишет ничего чувствительного к диску?

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

  • Иногда сокет в Вашей локальной системе (сокет домена Unix) используемый для предает коммуникацию процесса земле, может не быть защищен правильно (иногда на серьезном основании), и любой процесс может читать и записать на нем.

Практически, существуют вещи, которые можно сделать.

можно абсолютно проверить, что программа ничего не запускает во время начальной загрузки. Это будет утомительно, и необходимо понять систему действительно хорошо все же. Существует много способов, которыми сервис может быть запущен автоматически. (Отметьте: если программа когда-нибудь работала как корень, все ставки прочь, так как это, возможно, изменило init систему для сокрытия)

, Главные подсказки для выполнения ужасного программного обеспечения

  1. не выполняют его.
    , Если можно избежать его вообще, не выполняйте ничего, чему Вы не можете доверять. По крайней мере, удостоверьтесь, что Вы делаете звуковой компромисс. Сложность является врагом безопасности. Единственная строка кода это, как гарантируют, будет безопасно, является строкой, которую Вы никогда не выполняете. :)
  2. Запущенный программа в виртуальной машине.
    Установка VMs довольно легка (VirtualBox является большим, если Вы не хотите настраивать какую-либо инфраструктуру виртуализации). Это означает, что у Вас будет машина, которая не содержит уязвимых данных (необходимо было бы поместить ее там), и можно управлять ресурсами, которые она использует. Это не дает Вам полную защиту, конечно (Она могла сделать, вещам нравится, лавинно рассылают Ваш веб-сервер с запросами, входят в систему Ваших лампочек с помощью telnet, и так далее)
  3. Запущенный программа в контейнере.
    Контейнеры (LXD, Докер) предложение приблизительно безопасность для выполнения кода Вашей локальной машины. Они не прекрасны. Но непривилегированный контейнер обеспечивает изоляцию файловой системы для Вашей программы, которая является чем-то. Обеспечение контейнеров правильно является искусством и наукой, но это становится быстро легче.
  4. Сделали, чтобы кто-то еще запустил программу для Вас.
    Это незначительно относится к Вашему вопросу, но можно иногда стараться не запускать старое, ужасное программное обеспечение или программное обеспечение, которое является просто сложным и трудным защитить правильно, при помощи стороннего сервиса. Электронная почта является хорошим примером этого. Я не доверял бы мне, чтобы иметь терпение и свободное время, чтобы разместить и поддержать мой собственный почтовый сервер. Это - большая работа для хранения вещей как это, защищают.
  5. Выполнение это как отдельный пользователь.
    Как последнее прибежище, и если Вы чувствуете, компромисс стоит того, запустите программу с новой учетной записью пользователя, особенно созданной с этой целью. Я делаю это с программным обеспечением, которому я доверяю.

Опция 1 является лучшей. :)

Общие рекомендации

  • Ваша ОС довольно безопасна. Не абсолютно безопасный, конечно, но Ubuntu имеет довольно хороший послужной список. Другое программное обеспечение, которое Вы устанавливаете на нем, не может быть настолько хорошим. Так, запустите свое программное обеспечение на большом количестве разделенных, изолированных машин. Это гарантирует, что ошибка в одной программе не означает, что другая программа, потенциально более чувствительная, становится годной для использования.
  • Переходят к сети. Сегодня, большая часть программного обеспечения конечного пользователя имеет хорошие альтернативы, которые находятся в сети. На моей машине я в значительной степени выполняю Chrome и Emacs, и вот именно. Используя веб-сервисы имеет свои собственные последствия безопасности, конечно.
  • Переходят к облаку (для программного обеспечения сервера). Вы уверены, что необходимо выполнить собственный почтовый сервер? Веб-сервер? База данных? Перейдите к облаку и позвольте кому-то еще сделать весь тот утомительный материал безопасности для Вас.
0
ответ дан 10 August 2017 в 07:49
  • 1
    IMO в в наше время системах (откуда не представлен аппаратный Выключатель как в системы 80-х) операционная система могла играть значительную роль, когда система закрывается. Например, на моем ThinkPad X230, в то время как в tlp порог остановки батареи устанавливается к 80%, этот порог остановки все еще активный, в то время как ноутбук, выключаются. – pa4080 20 November 2017 в 20:11

Другие вопросы по тегам:

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