Ограничение системных вызовов с помощью Systrace
Наиболее впечатляющей новинкой в ОС NetBSD и OpenBSD является systrace — диспетчер доступа к системным вызовам. С помощью systrace системный администратор может указать, какие системные вызовы может использовать конкретная программа и как эти вызовы могут выполняться. Разумное использование systrace в значительной степени сокращает риски, исходящие от некорректно написанных или взламывающих (разрушающих) программ. Политики systrace позволяют ограничить деятельность пользователя совершенно независимо от разрешений Unix. Имеется возможность даже определить ошибки, возвращаемые системными вызовами при запрете доступа, что позволит программам завершаться более корректно. Использование systrace требует практического понимания сути системных вызовов, а также функциональных возможностей программы, которые они определяют.
Прежде всего, разберемся в том, что представляет собой системный вызов. Системный вызов — это функция, позволяющая вам общаться с ядром операционной системы. Если вы хотите выделить память, открыть TCP/IP-порт или выполнить операцию записи/чтения диска, необходимо использовать системные вызовы. Системные вызовы описаны в разделе 2 справочной системы (manpages).