Что же действительно делает программа?
Изучая политику, можно разобраться, что же действительно делает программа. Просмотрите каждый системный вызов, используемый программой, и решите, как можно ограничить дальнейший доступ. Как правило, политики, сгенерированные автоматически, приходится еще больше ограничивать. Однако они являются хорошим отправным моментом.
Применение политики к программе подобно созданию политики. Просто запустите программу в качестве аргумента systrace с использованием ключа -а:
# systrace -a /usr/sbin/inetd
Если программа попытается выполнить системные вызовы, не перечисленные в ней, они завершатся неудачей. Это может привести к непредсказуемому поведению программы. Сведения о неудачных попытках systrace записывает в Дат/ log/messages.
Для редактирования политики просто добавьте необходимое выражение в конец списка правил. Разумеется, это можно сделать вручную, но systrace имеет средство, позволяющее редактировать политики в реальном времени, прямо при выполнении системного вызова. Это отличный вариант для использования в центре сетевых операций, где лицо, ответственное за мониторинг сети, также будет заниматься просмотром системных вызовов и привлекать внимание соответствующего персонала. С помощью ключа -р можно указать программу, за которой необходимо наблюдать. Это называется присоединением к программе. Например, раньше мы видели два процесса, относящиеся к inetd. Один из них является самим процессом inetd, а другой — systrace-процессом, управляющим inetd. Подключитесь к процессу systrace, а не к действительной программе (это должен быть PID 12929) и в качестве аргумента укажите полный путь к управляемой программе:
# systrace -р 12929 /usr/sbin/inetd
Вроде ничего не случилось. Но когда программа попытается сделать несанкционированный системный вызов, откроется GUI. Будут предоставлены следующие варианты: разрешить/запретить выполнение системного вызова, а также всегда разрешать/всегда запрещать его выполнение. Выполнение программы будет приостановлено до принятия решения, однако решение необходимо принимать быстрей.
Обратите внимание на то, что эти изменения относятся только к выполняемому в текущий момент процессу. При перезапуске программы необходимо также запускать и присоединяемый монитор systrace, а любые изменения, установленные в мониторе, будут сброшены. Для того чтобы изменения стали постоянными, их необходимо добавить в политику.