Sto facendo un server di test C ++ e voglio fare i programmi compilati:
- non ha accesso per leggere o scrivere file.
- non ha accesso per aprire o connettersi tramite i socket.
- non essere in grado di lavorare con QUALSIASI librerie C ++ (ad esempio di sistema) non standard
- ha pieno accesso alla CPU (nessuna o pochissima perdita di prestazioni).
- ha una memoria RAM limitata.
- ha un tempo di esecuzione limitato.
Spero di non aver dimenticato nulla, ma quello che voglio fare è creare un normale sistema di test senza possibilità di essere hackerato attraverso il programma compilato.
Qualche consiglio, link o altro? Qualche opzione del compilatore?
Ecco quale sarà il sistema attuale:
Sistema operativo: Ubuntu
Compilatore: GCC
Modificato:
Sai se è possibile disabilitare TUTTE le librerie di sistema nel compilatore? Ciò aiuterebbe molto:)
Modificato (di nuovo):
Ecco cosa mi è venuto in mente: creo un programma che si auto-incolla e il processo genitore tiene traccia del testee per i timelimits (mentre è ancora possibile usare qualche comando di sistema anche per quello) e il processo figlio limita se stesso (risorse, seccomp) ed esegue il software non attendibile.