Как выяснить то, что изменения, которым регистрирует данную команду, делают или даже прерывают их?

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

3
13.11.2013, 09:33
2 ответа

Контролирующая часть (без игры в песочнице) может быть выполнена путем простого выполнения

strace -o file.log -e trace=file /path/to/your/binary

Конечно, это немного 'болтливо'. Таким образом, Вам, вероятно, придется постобработать немного. strace обычно существует пакета того же имени. Существует также специальная версия на 64 бита.

5
27.01.2020, 21:11
  • 1
    Аккуратный, и с -p PID можно даже присоединить его к уже рабочему процессу –  Tobias Kienzler 13.11.2013, 12:56

Вы могли использовать что-то как Systrace, который позволит Вам запускать программу в песочнице без полномочий. Можно затем использовать ptrace для наблюдения, какие дескрипторы файлов программа пытается открыть.

Ваша другая опция при использовании SELinux состоит в том, чтобы использовать Песочницу SELinux. Оттуда можно ограничить, какие файлы это может открыть, сделайте его так, чтобы это не могло открыть файлы вообще и т.д.

Я предполагаю, что существует способ выполнить эти вещи с AppArmor, но к сожалению у меня нет знакомства с AppArmor, чтобы смочь обеспечить любые значимые предложения.

3
27.01.2020, 21:11
  • 1
    Следует иметь в виду, что приложение может попытаться обнаружить среду песочницы и вести себя по-другому в таких случаях. –  scai 13.11.2013, 10:27
  • 2
    , можно ли объяснить мне, как приложение пошло бы об обнаружении среды песочницы SELinux? Я не могу думать ни о каком способе, которым приложение могло знать, что было в этой среде, если это просто не ведет себя по-другому, если SELinux включен. –  Franz Kafka 13.11.2013, 10:36
  • 3
    Существует много вещей, которые это могло проверить. Среды песочницы обычно обеспечивают только ограниченные полномочия. Таким образом, это могло просто проверить на определенные полномочия, которые абсолютно независимы от плохих вещей, это на самом деле хочет сделать. –  scai 13.11.2013, 10:42
  • 4
    Это действительно не помогает. Можно настроить среду Песочницы SELinux таким способом, которым определяет пользователь, какой privs программа имеет, динамично. В сущности нет никакой реальной разницы между этим и Вашей регулярной средой. Поэтому из интереса, я задаюсь вопросом точно, как программа может обнаружить, что это находится в этой среде, так как Вы заявили, что это может. (Я на самом деле прошу некоторый код здесь.) –  Franz Kafka 13.11.2013, 11:57
  • 5
    Нет, я просто заявил, что это может попытаться обнаружить среду песочницы. Я ничего даже не заявил о SELinux, который только что был одним из Ваших примеров среди других. Важная информация здесь просто, что приложение может вести себя по-другому в измененной среде и что Вы не можете предсказать ее поведение для своей фактической среды, не зная исходный код. –  scai 13.11.2013, 12:11

Теги

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