Sto lavorando su un sistema di tipo Ideone in cui il codice utente non attendibile deve essere eseguito in modalità sandbox.Come impedire che una chiamata di sistema venga eseguita con ptrace
Per questo ho cercato le possibilità di ptrace
per un primo livello di protezione. Tuttavia, dopo alcuni esperimenti sembra che:
- Posso intercettare una chiamata di sistema prima che venga chiamata e modificare gli argomenti di input.
- Posso intercettare una chiamata di sistema dopo che è stata chiamata e modificare il valore di ritorno.
- Tuttavia, non sembra esserci alcun modo per evitare che la chiamata si interrompa del tutto (tranne che per uccidere l'intera applicazione).
Desidero intercettare determinate chiamate di sistema e restituire un codice risultato falso senza che la chiamata si verifichi effettivamente. C'è un modo per implementare questo?
PTRACE_SYSEMU? Secondo la manpage: "Questa chiamata è usata dalla modalità utente come Linux che vuole emulare tutte le chiamate di sistema del bambino" – Krumelur