Estoy haciendo un servidor de prueba de C ++ y quiero hacer que los programas compilados:
- no tiene acceso para leer o escribir archivos.
- no tiene acceso para abrir o conectarse a través de sockets.
- no podrá trabajar con CUALQUIER biblioteca no estándar de C ++ (por ejemplo, el sistema)
- tiene acceso completo a la CPU (no se pierde ninguna o muy poco rendimiento).
- tienen memoria RAM limitada.
- tienen un tiempo de ejecución limitado.
Espero no haber olvidado nada, pero lo que quiero hacer es hacer un sistema de prueba normal sin posibilidad de ser hackeado a través del programa compilado.
¿Algún consejo, enlaces, lo que sea? ¿Alguna opción de compilador?
Aquí está lo que será el sistema actual:
SO: Ubuntu
Compilador: GCC
Editado :
¿Sabe si es posible deshabilitar TODAS las bibliotecas del sistema en el compilador? Eso ayudaría mucho :)
Editado (de nuevo):
Esto es lo que se me ocurrió: hago un programa que se forja a sí mismo y el proceso principal realiza un seguimiento de la prueba de los límites de tiempo (aunque todavía puedes usar algún comando del sistema para eso) y el proceso secundario se limita a sí mismo (recursos, seccomp) y ejecuta el software que no es de confianza.