У меня есть небольшая программа, которая отображает потенциально опасный исполняемый код (с PROT_EXEC), вызывает prctl (PR_SET_SECCOMP, 1)
, а затем выполняет это mmap'd код. Это все хорошо и позволяет мне «сохранить» состояние оценки, синхронизируя область mmap с диском, и перезагрузить ее позже (скорее всего, на другой машине для балансировки нагрузки).Однако этот метод не всегда работает - потому что этот код мог внести изменения в программу, которые не находятся в области mmap, и эта информация будет потеряна.
Итак, что я хотел бы сделать, это сделать абсолютно все (кроме этой mmap'd области) доступным только для чтения перед вызовом кода. Таким образом, у меня есть гарантия, что исполняемый код не может изменить состояние чего-либо, кроме области mmap'd, которую я могу сериализовать / десериализовать по своему желанию.
Кстати, это Linux на x86_64
Спасибо