Ho scritto un servizio .NET di Windows che funziona come "Sistema locale". Recentemente ho letto che, in esecuzione come sistema locale potrebbe esporre le credenziali di sistema agli hacker consentendo loro di prendere in consegna il sistema. Quali sono i rischi coinvolti e come posso prevenirli quando eseguo il servizio come sistema locale.Quali sono i rischi per la sicurezza nell'esecuzione di un servizio Windows come "Sistema locale"?
Quali sono i rischi per la sicurezza nell'esecuzione di un servizio Windows come "Sistema locale"?
risposta
I servizi in esecuzione come LocalSystem
fanno parte dello spazio attendibile del sistema. Tecnicamente parlando, hanno il privilegio SeTcbName
. Questo significa, tra l'altro, che tali servizi possono alterare qualsiasi impostazione di sicurezza, concedere loro stessi privilegi e generalmente fare qualsiasi cosa che Windows può fare.
Come risultato, qualsiasi difetto nel servizio - input non pubblicizzato passato a funzioni di sistema, percorsi di ricerca di dll errati, sovraccarichi del buffer, qualsiasi cosa - diventa un buco di sicurezza critico. Questo è il motivo per cui nessun amministratore di sistema in un ambiente aziendale consentirà l'installazione del servizio se viene eseguito con LocalSystem
. Utilizzare gli account LocalService
e NetworkService
.
Con qualsiasi servizio eseguito o credo in qualsiasi applicazione, è necessario che l'applicazione rimuova le autorizzazioni non necessarie per ridurre l'impatto degli hacker.
Quindi, se il servizio non ha bisogno di scrivere nella directory locale, o eliminare, quindi rimuovere tale autorizzazione.
Inoltre, è possibile verificare se è necessario accedere alle chiavi del Registro di sistema.
Ci sono varie autorizzazioni che è possibile rimuovere per limitare il danno che si può fare.
Modifica: è possibile effettuare una ricerca per S2. Window Services per trovare ulteriori informazioni sui rischi dovuti al sistema locale. http://www.sans.org/top20/
Credo che il problema principale è che se qualcuno scoprirà un bug di sicurezza nel vostro servizio che gli permette di risorse di sistema di accesso e/o l'esecuzione di codice - l'accesso/esecuzione con diritti di sistema locale (che sono gli stessi di built negli amministratori). La domanda è: sei assolutamente sicuro che il tuo servizio sia a prova di hacker ?? : P
- 1. Quali sono i rischi delle sessioni PHP?
- 2. Quali sono i rischi per la sicurezza nell'utilizzo di XMLHttpRequest tra domini diversi?
- 3. Quali sono i rischi angolari di sicurezza per l'implementazione di aree di amministrazione restful?
- 4. Quali sono i rischi della comunicazione JSONP tra domini diversi?
- 5. Quali sono i rischi per la sicurezza nell'esporre il token di accesso utente di Facebook in javascript?
- 6. Quali sono i rischi concreti dell'uso di attributi HTML personalizzati?
- 7. Quali sono i rischi dell'utilizzo dei dati: image/jpeg; base64?
- 8. Rischi per la sicurezza di PermitUserEnvironment in ssh
- 9. Moduli del kernel Linux - Rischi per la sicurezza?
- 10. Quali sono i rischi nell'archiviazione dei dati in sessione?
- 11. Open Authentication 2.0 - Rischi per la sicurezza intrinseca
- 12. Modulo senza token CSRF: quali sono i rischi
- 13. Rischi per la sicurezza di includere un iFrame di terze parti
- 14. Quali sono i rischi di aumentare la "Dimensione massima del buffer di uscita"
- 15. Quali sono i modelli di progettazione di servizi Windows comuni?
- 16. Quali sono i rischi dell'esposizione della chiave oauth non-così-secret? Ci sono soluzioni alternative?
- 17. Quali sono i compromessi tra boost :: locale e std :: locale?
- 18. phpMyAdmin pone rischi per la sicurezza sulla produzione
- 19. Quali sono i pro/contro dell'utilizzo di SRVANY rispetto alla creazione di un servizio Windows?
- 20. Esecuzione di msiexec da un servizio (account di sistema locale)
- 21. Quali sono i vantaggi dell'utilizzo di Roslyn - compiler come servizio
- 22. Quali sono le differenze tra un servizio Web e un servizio Windows?
- 23. Rischi per la sicurezza dell'utilizzo di eval() per eseguire l'input dell'utente in JavaScript
- 24. Quali sono le chiamate di sistema/sistema operativo nativo di Windows e Linux eseguite da malloc()?
- 25. Quali metodi esistono per la chiamata di procedura remota locale?
- 26. Quali sono i vantaggi del compilatore come servizio
- 27. Quali sono i rischi associati con l'hosting di Javascripts di terze parti?
- 28. Come copiare il file dal sistema locale ad un altro sistema in C# (app di Windows)?
- 29. Console.WriteLine() all'interno di un servizio di Windows?
- 30. Quali sono i potenziali rischi della creazione di array generici con vararg in Java?
Gli amministratori incorporati non hanno 'SeTcbName' per impostazione predefinita dopo NT 4, quindi' LocalSystem' ha ancora più diritti degli amministratori locali. –