Добрый день.
Писал программку — тестер для задач по спортивному программированию с правилами ACM (
www.acm.org) Встал вопрос обеспечения безопасности системы с точки зрения возможности атаки со стороны тестируемого приложения. Отсюда вопрос: "как запретить доступ дочернему процессу к памяти, которая ему не принадлежит, к файловой системе, за исключением дозволенных файлов, к внешним устройствам, короче, оставить возможность решения лишь вычислительных задач и блокировать остальные возможности?"
Здравствуйте, rdancy, Вы писали:
R>Добрый день.
R>Писал программку — тестер для задач по спортивному программированию с правилами ACM (www.acm.org) Встал вопрос обеспечения безопасности системы с точки зрения возможности атаки со стороны тестируемого приложения. Отсюда вопрос: "как запретить доступ дочернему процессу к памяти, которая ему не принадлежит, к файловой системе, за исключением дозволенных файлов, к внешним устройствам, короче, оставить возможность решения лишь вычислительных задач и блокировать остальные возможности?"
А какая система? Решение "в лоб" — создать безопасный аккаунт с сильно урезанными правами и запускать процесс из под него.
Здравствуйте, rdancy, Вы писали:
R>Писал программку — тестер для задач по спортивному программированию с правилами ACM (www.acm.org) Встал вопрос обеспечения безопасности системы с точки зрения возможности атаки со стороны тестируемого приложения. Отсюда вопрос: "как запретить доступ дочернему процессу к памяти, которая ему не принадлежит, к файловой системе, за исключением дозволенных файлов, к внешним устройствам, короче, оставить возможность решения лишь вычислительных задач и блокировать остальные возможности?"
limited account конечно полезно создать, как
правильно посоветовалиАвтор: TarasCo
Дата: 23.10.06
, но еще можно глянуть
CreateRestrictedToken +
CreateProcessAsUser
see
Authorization Restricted Tokens — то же самое можно получить динамически.
PS Если нужно коммерческое решение — класс скажем автоматизировать, то могу немного рекламы дать продукта который все запрошенное умеет делать равно как и многое другое

... << RSDN@Home 1.2.0 alpha rev. 653>>
Есть еще вариант использовать виртуальную машину — пусть тестируемая программа делает все, что угодно — даже если она завалит систему, виртуальная машина очень быстро воосстанавливается.