Я думал о сценарии, в котором можно позволить пользователям (может быть кто угодно, возможно, с плохими намерениями) отправлять код, который запускается на ПК с Linux (назовем его эталонным узлом). цель - создать что-то вроде автоматизированной среды тестирования для однопоточных программ. Допустим, веб-сайт отправляет код на прокси-сервер. Этот прокси передает этот код тестовой ноде, а эталонная нода имеет только соединение Ethernet с прокси, но не сам Интернет.
Если разрешить запускать код C / asm любого пользователя на тестовом узле, с какими проблемами безопасности он столкнется? Сделаны следующие предположения:
Итак, возможно ли на практике, что эта программа пользовательского пространства может вызвать сбой ОС или сделать машину недоступной для прокси? С помощью сборки программист может делать в основном все, что хочет (например, манипулировать указателем стека), и мне интересно, насколько ограничительным / надежным является Linux в этом отношении. Я также знаю о возможности для процессов запрашивать области разделяемой памяти с другими процессами (shm), что также может здесь сыграть роль?
Любая литература или статьи на эту тему приветствуются.
Решения «песочницы» также могут быть интересны, но важно, чтобы ЦП выполнял 100% своих возможностей во время теста (по крайней мере, на ядре, на котором выполняется тест).