csrss.exe: cosa c’è dietro il processo di runtime client server?
I moderni sistemi operativi sono prodotti complessi. Nel 1982, quando Microsoft lanciò sul mercato MS-DOS, il precursore dell’odierno Windows, il sistema operativo era ancora costituito da appena sette file con una dimensione complessiva di 400 kilobyte. All’avvio si vedeva soltanto una riga di comando con un cursore lampeggiante ad attendere l’immissione dei comandi.
Quando oggi si avvia un sistema operativo Windows, nella memoria di lavoro viene caricato un lungo elenco di programmi eseguibili. Diverse decine di processi e servizi sono attive ancor prima che possiate eseguire l’accesso al sistema. Uno di questi importanti programmi di sistema è il programma csrss.exe, la cui funzione all’interno del sistema Windows verrà analizzata più da vicino in questo articolo.
Cos’è csrss.exe?
L’abbreviazione “csrss” fa riferimento al programma “Client Server Runtime Subsystem”. Nelle precedenti versioni di Windows, l’applicazione fungeva da server per la chiamata delle interfacce utente grafiche. Successivamente questo ambito funzionale critico è stato spostato nel nucleo del sistema operativo (kernel). Ciò nonostante, il csrss.exe continua a fungere da server e svolge compiti di importanza fondamentale nel sistema. Il processo, tra le altre cose, è responsabile dell’avvio e della chiusura di molti altri processi di sistema. Inoltre gestisce la riga di comando, che ad oggi è solo uno dei tanti programmi del sistema operativo. In ragione di queste importanti funzioni, il csrss.exe viene classificato anche come processo critico.
Il Client Server Runtime Subsystem viene avviato una volta per ciascuna sessione, laddove nelle istanze Windows avviate sono sempre presenti almeno due sessioni, una sessione “0” per tutti i servizi (services) e una sessione per i processi utente. Il file csrss.exe viene pertanto avviato sempre almeno due volte.
Le sessioni avviate possono essere visualizzate tramite la riga di comando, lanciando il comando “query SESSION”. Qui vengono visualizzati anche gli ID individuali delle sessioni. In questo modo potete verificare se il numero dei processi csrss.exe corrisponde al numero delle sessioni nel Task Manager.
Cosa fa csrss.exe?
Ciascun processo csrss.exe carica diverse DLL (librerie dinamiche), come basesrv.dll, winsrv.dll o csrsv.dll. Queste svolgono, tra le altre, le seguenti funzioni:
- avvio e chiusura di processi
- avvio e chiusura di thread
- gestione della finestra della console (riga di comando)
- arresto del sistema
Queste funzioni possono essere richiamate e utilizzate da altri programmi e processi proprio grazie a csrss.exe; questo processo riveste pertanto un’importanza chiave: se csrss.exe non viene eseguito correttamente o addirittura viene terminato, vengono improvvisamente a mancare funzioni importanti del sistema operativo. Anche i processi già attivi smetterebbero di funzionare non appena non fosse più possibile avviare thread.
Come verificare lo stato attuale di csrss.exe
Esistono diverse possibilità di analizzare più da vicino il processo csrss.exe. Il metodo più comodo consiste nell’utilizzare la Gestione attività integrata nel sistema. La Gestione attività può essere richiamata con la combinazione di tasti [Ctrl] + [Shift] + [Esc] oppure utilizzando il campo di ricerca di Windows. La Gestione attività, denominata anche Task Manager, fornisce in diverse schede informazioni sull’utilizzo del sistema, nonché sui processi e sui servizi attivi.
A partire da Windows 10, il file csrss.exe si trova nella scheda della Gestione attività denominata “Processi” ed è indicato con il nome “Processo runtime client server”. Nelle versioni precedenti era ancora elencato in questa scheda con il nome dell’applicazione (ossia “csrss.exe”). Facendo clic con il tasto destro sul processo vengono proposte varie opzioni. Le opzioni utili per l’analisi del processo sono:
- Apri percorso file: apre una finestra di Esplora risorse con il percorso di csrss.exe. Il percorso deve essere “Windows\System32\”. In caso contrario, non si tratta del processo corretto.
- Vai ai dettagli: oltre all’ID di processo, qui viene indicato anche se il processo è in esecuzione e da quale utente viene eseguito. Nel caso di csrss.exe, l’utente dovrebbe sempre essere “System”, poiché si tratta di un processo di sistema.
- Proprietà: nella scheda “Dettagli” è possibile visualizzare i dettagli sull’applicazione. Nella scheda “Firme digitali” è possibile richiamare il certificato del programma. L’autore del certificato relativo a csrss.exe deve sempre essere la società Microsoft.
Un’alternativa ormai consolidata per eseguire una verifica generale dei processi di sistema come csrss.exe sono i programmi del guru di Windows Mark Russinovich. Quest’ultimo ha pubblicato un’ampia raccolta di software utili denominata “Sysinternals Suite”, in cui è contenuto anche il programma Process Explorer che permette di creare una rappresentazione gerarchica dei processi. Il software offre inoltre un collegamento diretto alla piattaforma Virustotal.com, che permette di eseguire una verifica rapida dei processi.
È possibile terminare o eliminare il processo csrss.exe?
Sui forum Internet viene regolarmente posta la domanda sulla possibilità di terminare i processi come csrss.exe o di eliminare il software. Terminare csrss.exe avrebbe tuttavia come conseguenza l’immediato spegnimento del sistema. Già solo per questo motivo, terminare questo processo non presenta alcuna reale utilità. Nella Gestione attività, il processo non può essere terminato poiché l’utente non dispone dei diritti necessari.
Se il processo causa problemi, ad esempio un elevato utilizzo della CPU, il vostro compito è piuttosto quello di individuare quali componenti sono responsabili del problema. Inoltre è bene verificare se il processo csrss è quello “legittimo”.
La completa cancellazione dell’applicazione csrss.exe dalla cartella di sistema renderebbe impossibile il funzionamento del sistema.
Se si sospetta che il file csrss.ex sia un virus
Poiché il processo csrss.exe è sempre attivo, è inevitabile che salti all’occhio a un’analisi dei processi in esecuzione. Inoltre, il suo nome criptico induce gli sviluppatori di malware a programmare applicazioni con nomi simili come ad es. “crss.exe” oppure “cssrs.exe” e infiltrarli nei sistemi scarsamente protetti. Contrariamente ai malware con nomi completamente diversi, a un’analisi poco attenta questi virus possono facilmente passare inosservati o essere scambiati per il file originale.
Pertanto, è sempre necessario verificare che il software presenti la corretta denominazione e il corretto percorso. Con tutta probabilità, l’applicazione csrss.exe che si trova nella cartella di sistema .\Windows\System32\ non è un malware. Se, contrariamente alle attese, dovesse persistere il sospetto di una manipolazione, è in ogni caso consigliabile eseguire una nuova installazione, poiché in questi casi tutto il sistema dovrebbe essere considerato non sicuro.
csrss.exe è uno dei processi di sistema più importanti di Windows e viene sempre eseguito almeno in due sessioni. Poiché assolve a funzioni cruciali come l’avvio e la chiusura dei processi, viene classificato come processo critico e, pertanto, non può essere terminato. Se il processo è stato avviato dalla directory di sistema .\Windows\System32\, è generalmente possibile escluderlo come causa di processi dannosi.