2012-06-16 16 views
5

Ho un problema a cui non riesco a trovare la risposta, anche se sono sicuro che sia là fuori. C'è un modo per disabilitare il registro e l'accesso ai file per un processo appena creato? Sto usando oggetti Job (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682409(v=vs.85).aspx) e dice di impostare le autorizzazioni per ogni nuovo processo di lavoro, e in alcuni libri ho letto che cose come il registro e l'accesso ai file possono essere controllate.Disabilitare l'accesso al registro per un processo specifico (WinAPI)

Mentre cercavo la mia risposta, ho visto che avevo bisogno di aggiungere LUID per cose come SE_BACKUP_NAME e simili (o come si chiama) ma nessuna di quelle costanti di privilegio sembra riflettere il tipo di controllo che voglio .. Quindi, il mio la domanda esatta è: come potrei fare per disabilitare il registro/accesso ai file di scrittura per un processo appena creato in un lavoro?

Sto cercando di creare un'applicazione sandbox, btw. Questo è così che posso impedirgli di apportare modifiche al registro o scrivere qualsiasi file mentre è in esecuzione.

Qualsiasi aiuto sarebbe apprezzato!

+0

+1 per una domanda ben scritta su un argomento interessante. Non sono un ragazzo di Windows quindi non ho idea di come rispondere, ma buona fortuna e benvenuto in SO! –

risposta

3

Windows accede a molte risorse durante l'avvio del processo, quindi se si è disabilitato l'accesso al file system e al registro, il processo non si avviava.

Idealmente, si desidera che l'accesso venga limitato dopo che l'inizializzazione del processo è stata completata, ma Windows non ha un meccanismo per farlo per processi arbitrari. La sandbox nel browser Chrome si basa sulla cooperazione del processo sandbox.

Il documentation for the Chrome sandbox ha una buona panoramica dei vari meccanismi di sicurezza disponibili in Windows e spiega come vengono utilizzati in Chrome. È una buona soluzione se stai provando a sandbox il tuo codice.

+0

Si noti che la parte "intercettazione" della libreria sandbox di Chrome potrebbe probabilmente essere imposta dal processo di avvio utilizzando l'iniezione DLL. L '"intercettazione" si basa sull'appoggio dell'API per limitare ulteriormente ciò che il processo sandbox può fare. –

0

Non penso che si possa disabilitare l'accesso come molti sussystems fanno affidamento su di esso (COM, shell, inizializzazione di alcune DLL, debugging, ecc.) Un'alternativa sarebbe consentire l'accesso, ma a un sandbox limitato che può essere fatto con lo integrity system. Impostandolo su low integrity si bloccherà la maggior parte dell'accesso in scrittura e verrà utilizzato dalla modalità protetta IE.

Problemi correlati