2010-02-09 16 views
6

La mia app Web viene eseguita in IIS 6.0 in Windows Server 2003 e tutti sappiamo che in questa situazione, l'account utente "Servizio di rete" viene utilizzato da IIS.Aggiunta di account "Servizio di rete" al gruppo degli amministratori

Mi capita di dover consentire a determinati utenti di eseguire alcune azioni sulla mia pagina Web e tale azione richiede privilegi di amministratore.

La soluzione più pigra per me sembra aggiungere "Servizio di rete" al gruppo di amministratori e in realtà funziona.

LA MIA DOMANDA è, come DANGEROUS questa soluzione è, e in che modo può compromettere la sicurezza del mio server web?

+1

Potrebbero esserci un paio di cose che puoi fare che sono più pericolose di così. Ma ne dubito. – SLaks

risposta

5

Questa è generalmente "una cattiva idea". Se si tratta di un server pubblico, questa è una pessima idea.

Che cosa si dovrebbe fare, e questo è il modo in cui affrontiamo problemi come questo, è sandbox le attività di amministrazione specifiche che è necessario eseguire in un altro processo come un servizio di Windows che ha diritti elevati.

Ospitiamo quindi un server remoto nel servizio di Windows e comunichiamo con il servizio tramite una named pipe o TCP/IP (se machine to machine e questo è su una rete privata back end).

Per ulteriori informazioni, si prega di consultare questa risposta che ho lasciato per un altro utente per quanto riguarda un problema simile:

Windows User Account that executes only IIS7 Provisions

Un approccio ancora migliore sarebbe quella di non avere una comunicazione diretta tra il web applicazione e il servizio Windows, ma passano attraverso un intermediario come un lavoro o una coda di messaggi. L'applicazione con privilegi limitati inserisce la richiesta di esecuzione dell'attività di amministrazione, il servizio con privilegi elevati legge queste attività dalla coda e le esegue.

In entrambi i casi, è necessario assicurarsi di non esagerare con la responsabilità di ogni attività. Ad esempio, assicurati che se l'attività consiste nel creare un nuovo account Windows sul server, allora non consentire a quel nuovo account di ottenere più diritti del necessario.

2

Se dovessi scrivere alcune funzioni web che richiedevano l'amministrazione a livello di box, avrei fatto in modo che fosse la propria applicazione nel proprio pool di app, bloccando l'applicazione il più strettamente possibile, dando a quel pool di app un account con nome (una risorsa di dominio, se in una Active Directory), e quindi dare i privilegi di amministratore di questo account sulla scatola. Mantenerlo nel proprio pool di applicazioni lo blocca in modo efficace dalla normale applicazione.

NT Authority/Servizio di rete interagisce con un sacco di cose sulla vostra macchina. Non riesco a trovare alcun valido motivo per ottenere i privilegi di amministratore del servizio di rete.

1

In nessun caso fare questo.

Se si aggiunge Servizio di rete al gruppo di amministratori, tutti gli utenti anonimi che accedono alla propria app Web saranno amministratori per impostazione predefinita e il potenziale di danni è enorme.

Per la tua domanda

mi capita di avere per permettere certi all'utente di eseguire una certa azione sulla mia pagina web, e che l'azione richiede privilegi di amministratore.

va bene - Usa autenticazione di Windows su quella pagina web e rendere l'utente un normale amministratore di Windows. Ora loro e tutti gli altri amministratori possono eseguire i compiti che hai impostato.

Problemi correlati