Есть такая задача - пользователи присылают некоторые исходные коды программ, написанных на одном из нескольких заданных языков. Для компилируемых языков происходит компиляция в обычный Linux ELF бинарник. После чего бинарники и интерпретируемые программы выполняются. Пользователи могут быть очень небезопасными и прилагать все усилия для взлома системы. Какой лучший вариант защиты применять? Граничные условия - очень критична производительность, то есть запускать под bochs каждую программу абсолютно невозможно.
Для некоторых скриптовых языков есть sandbox'ы. А как решать задачу в общем случае? Запускать под пользователями с минимальными правами, в chroot, под vserver? Есть ли возможность безопасной компиляции Си кода? Например, не допускающую применение ассемблера, выполнения сегмента данных и модификации сегмента кода и линкующегося с урезанной libc, без опасных функций?
Относительно безопасной libc - программы носят вычислительный характер, так что нужен только основной ввод/вывод, потоки, синхронизация. Точнее на данный момент требования сказать не могу. Систему только проектирую.