Каков принцип работы сайта Codepad.org?

Мне интересно принцип работы сайта Codepad.org. (Принцип работы онлайн-компилятора Си)

Я думаю, что принцип следовать этим шагам.

  1. Пользователь отправляет код C.

  2. Сайт отправляется в GCC, установленный на сервере.

  3. GCC скомпилировать код.

  4. GCC вернуть строки и отправить на веб-сайт (веб-сервер)

  5. Веб-сервер возвращает строки пользователю.

Это правильные шаги? Затем, как защитить от злокачественного кода, такого как удаление всех файлов с сервера?

1 ответ

Решение

С http://codepad.org/about:

Выполнение кода осуществляется супервизором на основе geordi. Стратегия состоит в том, чтобы запускать все под ptrace, при этом многие системные вызовы запрещены или игнорируются. Компиляторы и финальные исполняемые файлы выполняются в изолированной тюрьме со строгими ограничениями ресурсов. Руководитель написан на Хаскеле.

Также:

паранойя

Когда ваше приложение выполняет удаленное выполнение кода, вы должны ожидать проблем с безопасностью. Вместо того, чтобы полагаться только на супервизор chroot и ptrace, я принял некоторые дополнительные меры предосторожности:

  • Процессы супервизора выполняются на виртуальных машинах, которые защищены брандмауэром, так что они не могут устанавливать исходящие соединения.

  • Машины, на которых работают виртуальные машины, также сильно защищены брандмауэром и периодически восстанавливаются из их исходных образов.

Другие вопросы по тегам