Какой вред может нанести Linux программа на C / asm, запущенная непривилегированным пользователем?

Я думал о сценарии, в котором можно позволить пользователям (может быть кто угодно, возможно, с плохими намерениями) отправлять код, который запускается на ПК с Linux (назовем его эталонным узлом). цель - создать что-то вроде автоматизированной среды тестирования для однопоточных программ. Допустим, веб-сайт отправляет код на прокси-сервер. Этот прокси передает этот код тестовой ноде, а эталонная нода имеет только соединение Ethernet с прокси, но не сам Интернет.

Если разрешить запускать код C / asm любого пользователя на тестовом узле, с какими проблемами безопасности он столкнется? Сделаны следующие предположения:

  • Программа запущена от имени непривилегированного пользователя
  • Прокси-сервер будет иметь возможность убить процесс на тестовом узле (например, возьмем сценарий бесконечного цикла)
  • Прокси-сервер может перезапустить тестовый узел (если он отвечает ...)

Итак, возможно ли на практике, что эта программа пользовательского пространства может вызвать сбой ОС или сделать машину недоступной для прокси? С помощью сборки программист может делать в основном все, что хочет (например, манипулировать указателем стека), и мне интересно, насколько ограничительным / надежным является Linux в этом отношении. Я также знаю о возможности для процессов запрашивать области разделяемой памяти с другими процессами (shm), что также может здесь сыграть роль?

Любая литература или статьи на эту тему приветствуются.

Решения «песочницы» также могут быть интересны, но важно, чтобы ЦП выполнял 100% своих возможностей во время теста (по крайней мере, на ядре, на котором выполняется тест).

5
задан Yngve Sneen Lindal 29 February 2012 в 21:14
поделиться