Действительно ли безопасно добавить. к моему ПУТИ? Каким образом?

Используйте libfaketime:

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

См.: http://www.code-wizards.com/projects/libfaketime/

49
13.04.2017, 15:37
3 ответа

Если Вы - единственный пользователь на машине, это хорошо, пока Вы знаете то, что Вы делаете. Общее беспокойство то, что при наличии Вашего текущего каталога в PATH, Вы не видите команды как постоянный список. Если необходимо запустить скрипт из текущего каталога, можно всегда явно выполнять его путем предварительного ожидания ./ к его имени (Вы говорящий систему "Я хочу петлять из своего текущего каталога").

Скажите, теперь у Вас есть все эти небольшие сценарии на всем протяжении Вашей файловой системы; однажды Вы выполните неправильный наверняка. Так, наличие Ваш PATH поскольку предопределенный список статических путей - все о порядке и сохранении себя от потенциальной проблемы.

Однако, если Вы собираетесь добавить . к Вашему PATH, Я предлагаю добавить его в конец списка (export PATH=$PATH:.). По крайней мере, Вы не переопределите двоичные файлы в масштабе всей системы этот путь.

Если Вы - корень в системе и выставили систему учетным записям других пользователей, имея . в PATH огромная угроза безопасности: Вы можете cd к каталогу некоторого пользователя, и неумышленно запущенный злонамеренный скрипт там только потому, что Вы ввели с опечаткой вещь или сценарий, который имеет то же имя как двоичный файл в масштабе всей системы.

39
27.01.2020, 19:34
  • 1
    +Accept для базовой теории и для упоминания, что проблемы могут все еще существовать, даже когда Вы - единственный пользователь в системе. Оба ответа поднимают точные замечания. Я добавлю, что любое время, Вы совместно используете каталоги с другим пользователем, существует повышенный риск, являетесь ли Вы корнем или нет. –  Jander 25.02.2013, 16:48
  • 2
    , как раз когда единственный пользователь на машине: каждый раз Вы извлекаете недоверяемый tar, который это может поместить ls в Вашем текущем каталоге. затем Вы работаете ls для осмотра извлеченных файлов и Вы уже выполнили вредоносный код. –  lesmana 10.02.2017, 10:26

Риск - кто-то, поместил злонамеренный исполняемый файл в каталог, которые, оказывается, Ваш текущий.

Худший случай происходит когда:

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

Риск намного ниже, если Вы зарегистрированы как обычный пользователь и имеете . в конце Вашего ПУТИ, но это все еще существует:

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

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

35
27.01.2020, 19:34

Даже если вы всегда очень внимательно относитесь к тому, что вы печатаете, ставя .к вашему PATH, даже в конце,по-прежнему небезопасно, потому что некоторые программы изменяют текущий каталог на /tmp(, который доступен для записи всем ), а также могут попытаться выполнить утилиты, которые на самом деле не установлены, таким образом, по умолчанию используется то, что находится в /tmp. Если это происходит, это вектор атаки.

Также обратите внимание, что отсутствие .в PATHне является большим недостатком, потому что ./легко набрать (, особенно на таких клавиатурах, как QWERTY, где эти символы находятся на последовательных клавишах и не нужен Shift )и использование ./также поможет завершению, таким образом потенциально экономя нажатия клавиш в конце.

Если вы действительно хотите иметь возможность вводить команды из текущего каталога, то современные оболочки (, такие как zsh, с егоcommand_not_found_handler)могут предоставлять функции для безопасного выполнения этой задачи, т. е. позволяющие добавлять все необходимые проверки безопасности. хотите в обработчике, прежде чем команда будет выполнена.

4
27.01.2020, 19:34

Теги

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