windows security - La differenza tra l'account "Sistema locale" e l'account "Servizio di rete"?





essential microsoft (2)


Dato che c'è molta confusione sulla funzionalità degli account di servizio standard, cercherò di dare una rapida interruzione.

Prima i conti reali:

  • Account LocalService (preferito)

    Un account di servizio limitato che è molto simile al servizio di rete e destinato a eseguire servizi standard con privilegi minimi. Tuttavia, a differenza del servizio di rete, non ha la possibilità di accedere alla rete poiché la macchina accede alla rete come utente anonimo .

    • Nome: NT AUTHORITY\LocalService
    • l'account non ha password (qualsiasi informazione sulla password che fornisci viene ignorata)
    • HKCU rappresenta l'account utente LocalService
    • ha privilegi minimi sul computer locale
    • presenta credenziali anonime sulla rete
    • SID : S-1-5-19
    • ha il proprio profilo sotto la chiave di registro HKEY_USERS\S-1-5-19 ( HKEY_USERS\S-1-5-19 )

  • Account NetworkService

    Account di servizio limitato destinato all'esecuzione di servizi privilegiati standard. Questo account è molto più limitato di Local System (o anche Administrator), ma ha ancora il diritto di accedere alla rete come la macchina (vedi avvertenza sopra).

    • NT AUTHORITY\NetworkService
    • l'account non ha password (qualsiasi informazione sulla password che fornisci viene ignorata)
    • HKCU rappresenta l'account utente di NetworkService
    • ha privilegi minimi sul computer locale
    • presenta le credenziali del computer (ad es. MANGO$ ) ai server remoti
    • SID : S-1-5-20
    • ha il proprio profilo sotto la chiave di registro HKEY_USERS\S-1-5-20 ( HKEY_USERS\S-1-5-20 )
    • Se si sta tentando di pianificare un'attività che lo utilizza, immettere NETWORK SERVICE nella finestra di dialogo Seleziona utente o gruppo

  • Account LocalSystem (pericoloso, non usare!)

    Account completamente fidato, più che l'account dell'amministratore. Non c'è nulla su una singola scatola che questo account non può fare e ha il diritto di accedere alla rete come macchina (questo richiede Active Directory e garantisce le autorizzazioni dell'account della macchina a qualcosa)

    • Nome:. .\LocalSystem (può anche utilizzare LocalSystem o ComputerName\LocalSystem )
    • l'account non ha password (qualsiasi informazione sulla password che fornisci viene ignorata)
    • SID : S-1-5-18
    • non ha alcun profilo ( HKCU rappresenta l'utente predefinito )
    • ha ampi privilegi sul computer locale
    • presenta le credenziali del computer (ad es. MANGO$ ) ai server remoti

Sopra, quando si parla di accesso alla rete, ciò si riferisce esclusivamente a SPNEGO (Negotiate), NTLM e Kerberos e non a qualsiasi altro meccanismo di autenticazione. Ad esempio, l'elaborazione in esecuzione come LocalService può ancora accedere a Internet.

Il problema generale con l'esecuzione come account standard out-of-box è che se si modifica una delle autorizzazioni predefinite si sta espandendo l'insieme di cose che tutto ciò che è in esecuzione come quell'account può fare. Quindi, se si assegna DBO a un database, non solo il servizio in esecuzione come servizio locale o servizio di rete può accedere a quel database, ma anche tutto il resto in esecuzione come tali account. Se ogni sviluppatore fa ciò, il computer avrà un account di servizio che ha le autorizzazioni per fare praticamente qualsiasi cosa (in particolare il superset di tutti i diversi privilegi aggiuntivi concessi a quell'account).

È sempre preferibile da un punto di vista della sicurezza eseguire come il proprio account di servizio che ha esattamente le autorizzazioni necessarie per eseguire ciò che fa il servizio e nient'altro. Tuttavia, il costo di questo approccio è la configurazione del tuo account di servizio e la gestione della password. È un atto di bilanciamento che ogni applicazione deve gestire.

Nel tuo caso specifico, il problema che probabilmente stai vedendo è che l'attivazione di DCOM o COM + è limitata a un determinato insieme di account. In Windows XP SP2, Windows Server 2003 e versioni successive il permesso di attivazione è stato limitato in modo significativo. È necessario utilizzare lo snap-in MMC Servizi componenti per esaminare il proprio oggetto COM specifico e visualizzare le autorizzazioni di attivazione. Se non si sta accedendo a nulla sulla rete come account della macchina, si dovrebbe prendere seriamente in considerazione l'utilizzo di Servizio locale (non il sistema locale che è fondamentalmente il sistema operativo).

In Windows Server 2003 non è possibile eseguire un'attività pianificata come

  • NT_AUTHORITY\LocalService (noto anche come account del servizio locale) o
  • NT AUTHORITY\NetworkService (ovvero l'account Servizio di rete).

Questa funzionalità è stata aggiunta solo con Task Scheduler 2.0 , che esiste solo in Windows Vista / Windows Server 2008 e versioni successive.

Un servizio in esecuzione come NetworkService presenta le credenziali della macchina sulla rete. Ciò significa che se il tuo computer fosse chiamato mango , si presenterebbe come account macchina MANGO$ :

Ho scritto un servizio di Windows che genera un processo separato. Questo processo crea un oggetto COM. Se il servizio viene eseguito con l'account "Sistema locale", tutto funziona correttamente, ma se il servizio viene eseguito con l'account "Servizio di rete", il processo esterno viene avviato ma non riesce a creare l'oggetto COM. L'errore restituito dalla creazione dell'oggetto COM non è un errore COM standard (penso che sia specifico per l'oggetto COM creato).

Quindi, come posso determinare in che modo i due account, "Sistema locale" e "Servizio di rete" differiscono? Questi account integrati sembrano molto misteriosi e nessuno sembra sapere molto su di loro.




I tuoi URL saranno facilmente determinati. Dovresti avere una lista nera di indirizzi IP e quando un indirizzo IP agisce in modo sospetto, basta aggiungerlo alla lista nera. Si definisce cosa sospetto, ma se non si è sicuri, è possibile iniziare con quanto segue:

Creare qualcosa come una tabella di database con questo schema:

ip_addresses (ip, is_suspicious, login_attempts, register_attempts)

Dove is_suspicious significa che è nella lista nera. login_attemtps e register_attempts dovrebbero essere valori json, mostrando la cronologia di quell'indirizzo IP che prova ad accedere / registrare. Se gli ultimi 20 tentativi non hanno avuto esito positivo ed erano entro un minuto, l'indirizzo IP dovrebbe essere inserito nella lista nera. Gli indirizzi IP in blacklist dovrebbero ricevere una risposta in cui sono inseriti nella blacklist qualunque sia la loro richiesta. Quindi, se negano i tuoi servizi o tentano di hackerare le cose, allora neghi i tuoi servizi da loro.

Proteggi le password usando sha1, per esempio. Questo algoritmo è abbastanza sicuro ed è più veloce di sha256, ad esempio, che potrebbe essere eccessivo. Se la tua API coinvolge conti bancari o qualcosa di estremamente importante come questo, è abbastanza importante per i malintenzionati usare i server park per hackerarlo, quindi costringere gli utenti a creare password molto lunghe, inclusi numeri, caratteri speciali, lettere grandi e piccole.





windows security