mercoledì 16 aprile 2014

Controllare i processi che si avviano automaticamente in Windows (PARTE 1)

Tutte le versioni di Windows (come tutti i sistemi operativi) caricano all'avvio una serie di programmi (un programma in esecuzione si chiama processo) e di servizi (o processi di sistema). La funzionalità di avvio automatico è disponibile, oltre che ai tipici processi del sistema operativo, anche ad altre applicazioni, come driver installati dall'utente o componenti installati dalle applicazioni: per esempio firewall e/o antivirus di terze parti installano le loro componenti di controllo per essere caricate al boot (in assenza delle quali sarebbero inutili). Sfortunatamente questa funzionalità può essere sfruttata anche dai malware (virus, trojan, spyware ecc.) e dagli odiosi crapware (i programmi inutili installati dai produttori di computer, oppure le malefiche toolbar aggiuntive che inviano pubblicità indesiderata al browser). 

Questo comporta nel "migliore" dei casi un rallentamento (anche consistente) della fase di avvio del sistema, nel caso peggiore il furto o la perdita di dati e perfino l'impossibilità di usare il computer. È quindi necessario abituarsi a tenere sotto controllo i processi che si avviano automaticamente con il sistema operativo e ad individuare differenze o anomalie che possono verificarsi dopo l'installazione delle applicazioni. Per esempio se è plausibile che Adobe Reader o Adobe Flash Player aggiungano un servizio Adobe <xyz> Update Service, un programma in avvio automatico come uyxwswhf.exe, deve far scattare un campanello d'allarme. I nomi dei file eseguibili (.exe) dei malware sono anche più insidiosi, perché cercano di ingannare l'utente con nomi di applicazioni note oppure "mascherandosi" da software Microsoft, per esempio ms-netspoolsv.exe. Non esiste un servizio con questo nome, ma se non si ha l'occhio allenato si rischia di allevare una serpe in seno perché probabilmente si tratta di un virus!

Windows ha diverse posizioni da cui possono avviarsi programmi in modo automatico: bisogna conoscerle e controllarle di tanto in tanto, soprattutto se si sta per installare un'applicazione sconosciuta. La procedura da seguire è semplice: si dà un'occhiata ai processi in avvio automatico, si installa la nuova applicazione, infine si dà una nuova occhiata ai processi in avvio automatico per vedere se è cambiato qualcosa (in caso affermativo annotarsi cosa è stato aggiunto).

Programmi in Esecuzione Automatica

Una delle principali posizioni ove cercare è la cartella Esecuzione automatica che si raggiunge nel modo seguente:
  • cliccare sul pulsante START e selezionare (Tutti i) Programmi;
  • nell'elenco dovreste vedere una cartella chiamata Esecuzione Automatica; in tale cartella si trovano i collegamenti ad una parte dei programmi che parte all'avvio del sistema. Se non si vuole che determinate applicazioni partano all'avvio, in genere (ma non sempre) è sufficiente eliminare il collegamento corrispondente.
Non è ancora finita:
  • se usate Windows 8 o 8.1 il metodo precedente non è applicabile poiché, fino a quando Microsoft non proporrà un update per ricrearlo, non esiste il menù di avvio classico con tutti i programmi: sembra che tale update verrà proposto entro la fine del 2014 ma, nel frattempo, è necessario installare un'utility apposita come Classic Shell;
  • il metodo indicato in precedenza mostra solo la cartella di Esecuzione automatica dell'utente corrente, tuttavia nel sistema ne esiste più di una ed è necessario controllarle tutte, come indicato di seguito.
Le cartelle di esecuzione automatica sono "pubbliche" ed immediatamente identificabili. Esiste sempre un percorso di Esecuzione automatica che riguarda tutti gli utenti (i programmi ivi contenuti riguardano tutti gli utilizzatori del sistema), ed uno riservato all'utente corrente (i programmi ivi contenuti riguardano solo l'utente che effettua il login). Nel seguito supporremo che Windows sia installato nella partizione C del disco.

Windows XP

In Windows XP ci sono 3 cartelle di Esecuzione automatica che corrispondono rispettivamente all'utente corrente, all'utente standard (Default User) e a tutti gli utenti del sistema (All Users). I relativi percorsi da controllare sono:
  • C:\Documents and Settings\<nome Utente>\Menu Avvio\Programmi\Esecuzione automatica
  • C:\Documents and Settings\Default User\Menu Avvio\Programmi\Esecuzione automatica
  • C:\Documents and Settings\All Users\Menu Avvio\Programmi\Esecuzione automatica

Windows Vista / 7 / 8.x

In Windows Vista/7/8/8.1 ci sono 2 cartelle di Esecuzione automatica che corrispondono rispettivamente all'utente corrente e a tutti gli utenti. I relativi percorsi da controllare sono:
  • C:\Utenti\<nome Utente>\AppData\Roaming\Microsoft\Windows\Menu Start\Programmi\Esecuzione automatica
  • C:\ProgramData\Microsoft\Windows\Menu Start\Programmi\Esecuzione automatica
Se non volete usare Esplora Risorse per raggiungere tali cartelle, potete inserire in START/Esegui (eventualmente in Classic Shell) o nella relativa casella di ricerca le seguenti stringhe:
  • per l'utente corrente:
    %AppData%\Microsoft\Windows\Start Menu\Programs\StartUp
  • per tutti gli utenti:
    %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp
Si possono inserire le stesse stringhe direttamente nel campo Ricerca di Windows 8 e 8.1.

Avvio automatico dal Registro di Windows

Il registro di sistema di Windows (nel seguito Registro) è una struttura dati che contiene le impostazioni di Windows e delle applicazioni installate. All'interno del Registro esistono alcune aree chiamate chiavi Run, progettate per consentire l'avvio automatico di programmi ogni volta che un utente esegue l'accesso al sistema. Per visualizzare il contenuto di tali chiavi bisogna aprire l'Editor del Registro di sistema:
  • cliccare sul pulsante START e selezionare Esegui;
  • digitare regedit e premere OK.
Il Registro viene mostrato con una struttura ad albero, simile a quello delle cartelle a cui ci ha abituato Esplora Risorse. In modo analogo alla cartelle di Esecuzione automatica, esistono 2 tipi fondamentali di "cartelle" (chiamate chiavi) nel registro:
  • HKEY_LOCAL_MACHINE (abbreviata in HKLM): contiene le impostazioni comuni a tutti gli utenti del sistema;
  • HKEY_CURRENT_USER (abbreviata in HKCU): contiene le impostazioni dell'utente che ha effettuato l'accesso. Si tratta di un collegamento simbolico alla chiave relativa all'utente, contenuta nella chiave generale HKEY_USERS (questa chiave generale contiene tutte le chiavi HKEY_CURRENT_USER di tutti gli utenti definiti nel sistema).
Le (sotto)chiavi che consentono l'avvio automatico (comuni a tutte le versioni di Windows) e che occorre controllare sono le seguenti:
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
Per quanto detto relativamente alla chiave generale HKEY_USERS, come ulteriore scrupolo, accedendo a Windows come amministratori di sistema, controllare anche la chiave di Run (generalmente vuota, ma non si sa mai!):
  • HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run
Nelle versioni di Windows a 64 bit esistono 2 ulteriori chiavi:
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\RunOnce
In ciascuna chiave esistono una serie di valori, che corrispondono a comandi che vengono eseguiti in fase di avvio. Nell'esempio in figura si evidenziano i programmi di avvio per una scheda audio ed un firewall di terze parti:
HKLM - Run
Questa tecnica potrebbe essere usata da malware, crapware e toolbar aggiuntive indesiderate: una volta individuata la chiave di avvio, spesso (ma non sempre) è sufficiente selezionarla e cancellarla per rendere inoffensiva la rispettiva componente maligna.

Vale la pena fare alcune considerazioni aggiuntive:
  • le chiavi Run vengono eseguite ad ogni accesso al sistema;
  • le chiavi RunOnce vengono eseguite una sola volta e poi cancellate: in genere si utilizzano per situazioni transitorie, per esempio per completare l'installazione di un'applicazione (l'installer dell'applicazione richiede esplicitamente all'utente di riavviare il sistema)
  • le chiavi Run vengono ignorate (per impostazione predefinita) quando il computer viene avviato in modalità provvisoria;
  • nelle chiavi RunOnce si può far precedere un valore da un asterisco (*) per consentire l'esecuzione del relativo programma anche in modalità provvisoria;
  • nelle chiavi RunOnce si può far precedere un valore da un punto esclamativo (!) per posticipare l'eliminazione del valore a dopo l'esecuzione del comando. Senza punto esclamativo come prefisso, un valore RunOnce verrebbe eliminato prima dell'esecuzione del comando; di conseguenza, se un'operazione RunOnce non è eseguita correttamente, non viene eseguito il programma associato al successivo avvio del computer.
All'interno di una chiave Run in genere viene avviato più di un programma ma l'ordine di esecuzine di tali programmi non è determinabile a priori; a questa regola fanno eccezione 2 vecchi tipi di chiave (RunEx e RunOnceEx) che eseguono i programmi in avvio in modo ordinato.

Per completezza di informazione si riportano gli altri tipi di chiavi Run definiti in versioni obsolete di Windows (Windows  95, 98/98SE, Millennium Edition - o ME -, NT 3.5/4.0, 2000), che potreste trovare nel Registro di Windows XP se installate applicazioni molto vecchie:
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunEx
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup
Il supporto alle chiavi e l'effettiva esecuzione dei programmi in modo automatico dipende dalla versione di Windows realmente in esecuzione (per esempio le chiavi RunServices, RunServicesOnce e Setup sono supportate solo da Windows 9x/ME).

Servizi di Windows

I Servizi di Windows sono programmi che svolgono compiti specifici; tra tutte le componenti di Windows sono i software che più sfuggono al controllo, perché progettati per lavorare "in silenzio", senza avere alcuna interazione con l'utente. In modo analogo alle cartelle di esecuzione automatica ed alle chiavi Run, i servizi da tenere sotto controllo sono quelli in avvio automatico. Si tratta di un'operazione molto semplice:
  • cliccare sul pulsante START e selezionare Esegui;
  • digitare services.msc;
  • nella tabella dei servizi che appare bisogna guardare nella colonna Tipo di avvio i servizi con valore Automatico.
Servizi
Per disabilitare un servizio è sufficiente fare doppio click sulla riga del servizio stesso e, nella successiva finestra pop-up, in Tipo di avvio selezionare Disabilitato. Si tratta della stessa tecnica utilizzata per disabilitare i cosiddetti "servizi inutili" (in realtà non esistono servizi inutili, al più ci sono servizi che non abbiamo necessità di utilizzare).
Servizio disabilitato
Da notare che è segnalato il percorso completo del file eseguibile responsabile dell'avvio del servizio; ciò torna utile, per esempio, quando non si riesce ad individuare il programma di disinstallazione di un crapware o di una toolbar: in tal caso per renderli innocui basta disabilitare il relativo servizio e contestualmente cancellarne il file eseguibile.

Cosa viene dopo?

A questo punto avete a disposizione (almeno in teoria) elementi a sufficienza per tenere sotto controllo i programmi che si avviano automaticamente al boot di Windows. Nella seconda parte della guida vedremo alcuni strumenti che possono facilitarci i controlli e semplificarci la gestione dell'avvio automatico.

POTREBBE INTERESSARTI ANCHE…