Используйте libfaketime:
FTPL прерывает различные системные вызовы который использование программ получить текущую дату и время. Это может затем сообщить о фальсифицируемых датах и времени (как указано Вами, пользователем) к этим программам. Это означает, что можно изменить системное время, которое программа видит, не имея необходимость изменять время в масштабе всей системы.
Если Вы - единственный пользователь на машине, это хорошо, пока Вы знаете то, что Вы делаете. Общее беспокойство то, что при наличии Вашего текущего каталога в PATH
, Вы не видите команды как постоянный список. Если необходимо запустить скрипт из текущего каталога, можно всегда явно выполнять его путем предварительного ожидания ./
к его имени (Вы говорящий систему "Я хочу петлять из своего текущего каталога").
Скажите, теперь у Вас есть все эти небольшие сценарии на всем протяжении Вашей файловой системы; однажды Вы выполните неправильный наверняка. Так, наличие Ваш PATH
поскольку предопределенный список статических путей - все о порядке и сохранении себя от потенциальной проблемы.
Однако, если Вы собираетесь добавить .
к Вашему PATH
, Я предлагаю добавить его в конец списка (export PATH=$PATH:.
). По крайней мере, Вы не переопределите двоичные файлы в масштабе всей системы этот путь.
Если Вы - корень в системе и выставили систему учетным записям других пользователей, имея .
в PATH
огромная угроза безопасности: Вы можете cd
к каталогу некоторого пользователя, и неумышленно запущенный злонамеренный скрипт там только потому, что Вы ввели с опечаткой вещь или сценарий, который имеет то же имя как двоичный файл в масштабе всей системы.
Риск - кто-то, поместил злонамеренный исполняемый файл в каталог, которые, оказывается, Ваш текущий.
Худший случай происходит когда:
.
в начале Вашего ПУТИ, поскольку стандартные команды могут быть переопределены без Вас замечающий его (обычно ls
который мог спрятаться из списка). Риск намного ниже, если Вы зарегистрированы как обычный пользователь и имеете .
в конце Вашего ПУТИ, но это все еще существует:
Обратите внимание, что в любом случае, риск все еще там, даже если Вы - единственный пользователь машины. Вредоносное программное обеспечение было бы установлено, если, например, Вы, оказывается, извлекаете архив, загруженный с поставленного под угрозу сайта.
Даже если вы всегда очень внимательно относитесь к тому, что вы печатаете, ставя .
к вашему PATH
, даже в конце,по-прежнему небезопасно, потому что некоторые программы изменяют текущий каталог на /tmp
(, который доступен для записи всем ), а также могут попытаться выполнить утилиты, которые на самом деле не установлены, таким образом, по умолчанию используется то, что находится в /tmp
. Если это происходит, это вектор атаки.
Также обратите внимание, что отсутствие .
в PATH
не является большим недостатком, потому что ./
легко набрать (, особенно на таких клавиатурах, как QWERTY, где эти символы находятся на последовательных клавишах и не нужен Shift )и использование ./
также поможет завершению, таким образом потенциально экономя нажатия клавиш в конце.
Если вы действительно хотите иметь возможность вводить команды из текущего каталога, то современные оболочки (, такие как zsh, с егоcommand_not_found_handler
)могут предоставлять функции для безопасного выполнения этой задачи, т. е. позволяющие добавлять все необходимые проверки безопасности. хотите в обработчике, прежде чем команда будет выполнена.
ls
в Вашем текущем каталоге. затем Вы работаетеls
для осмотра извлеченных файлов и Вы уже выполнили вредоносный код. – lesmana 10.02.2017, 10:26