Ci sono delle volte in cui determinati programmi si rifiutano di funzionare correttamente qualora vengano eseguiti da un utente che non possiede diritti amministrativi sul sistema. Questo comportamento normalmente avviene quando una applicazione, definita "Legacy" (obsoleta), pretende di scrivere e modificare alcune aree del sistema operativo che non risultano però disponibili all'interno del contesto di sicurezza in cui si trova l'utente che le esegue.
In questo articolo vedremo come "rilassare" la sicurezza di un sistema operativo Microsoft Windows al fine di permettere l'esecuzione di queste applicazioni problematiche.
Nozioni Fondamentali
Nei moderni sistemi operativi Microsoft (Windows 2000/XP) un utente possiede il diritto di scrivere e modificare soltanto le informazioni contenute in due posizioni ben definite
- all'interno della sua cartella di profilo utente, situata in C:\Documents And Settings\Utente
- all'interno della chiave di registro HKEY_CURRENT_USER (HKCU) che equivale in realtà al contenuto del file NTUSER.DAT riposto sempre all'interno della medesima cartella di profilo utente
Quanto appena detto, semplificando estremamente l'argomento, si traduce nel "contesto di sicurezza" che contraddistingue un utente limitato.
Sebbene non sia rilevante ai fini di questo articolo ci tengo a sottolineare che il "contesto di sicurezza", oltre a quanto già detto, include anche alcuni diritti che l'utente può vantare sulle funzioni del sistema operativo (come ad esempio il diritto di "spegnere il computer") ed inoltre anche particolari privilegi su tutti quegli oggetti dei quali esso risulta essere il creatore e quindi il proprietario (come ad es. file e cartelle, oppure un processo in esecuzione).
Utilizzare il gruppo Power Users
Qualcuno dei lettori avrà sicuramente notato che inserire l'utente nel gruppo locale "Power Users" nella maggior parte dei casi sembra risolvere il problema preso in esame e questa pratica normalmente diventa in breve tempo una soluzione a qualsiasi male. Bisogna tenere però presente che il gruppo "Power Users" è molto permissivo e rende possibile ai propri membri di compiere operazioni che possono mettere a repentaglio la sicurezza del sistema operativo.
I "Power users" possono ad esempio condividere cartelle oppure modificare porzioni del registro e librerie di sistema, ma non solo... per capire a cosa mi riferisco date un occhiata a questo articolo [1] della knowledge base di Microsoft.
Un membro del gruppo Power Users potrebbe essere in grado di ottenere autorizzazioni e diritti aggiuntivi, o perfino credenziali amministrative complete, sul computer dell'amministratore, ed esporre tale computer ad altri rischi di protezione, come l'esecuzione di un virus o di un programma trojan horse.
Risoluzione: per prevenire questo problema, utilizzare i metodi descritti di seguito: non utilizzare il gruppo Power Users.
Occorre forse aggiungere altro?
Prima di tutto: come eseguire le installazioni software
Una volta assodato il fatto che è sempre meglio non concedere eccessivi diritti agli utenti vediamo i tre comportamenti che, da un mio punto di vista, è sempre buona norma mantenere quando si sta installando un software che potrebbe essere "a rischio" di incompatibilità con il livello di sicurezza impostato nel sistema operativo.
- Se possibile eseguire l'installazione del software utilizzando l'account dell'utente utilizzatore al quale concederete temporaneamente i diritti amministrativi. Questo poiché quando un utente crea un oggetto (file o cartella) ne diviene proprietario e ne avrà sempre il pieno controllo anche quando i diritti amministrativi verranno rimossi.
- Alla cartella di installazione del programma (usualmente è situata in Programmi oppure Program Files e File Comuni) assegnare diritti di modifica-lettura-esecuzione-scrittura per il gruppo Users. Il gruppo locale Users include infatti tutti gli utenti autenticati, compresi quelli di dominio.
- Molte installazioni software generano inoltre una serie di chiavi di registro, la più importante normalmente è situata in HKEY_LOCAL_MACHINE\Software. Quando ci troviamo in presenza di programmi obsoleti normalmente può essere utile assegnare a questa chiave i diritti di modifica-lettura-esecuzione-scrittura per il gruppo Users. Ripeto nuovamente che il gruppo locale Users include tutti gli utenti autenticati, compresi quelli di dominio.
"Rilassare" le impostazioni di sicurezza
Alcuni programmi particolarmente complessi potrebbero comunque non funzionare correttamente nonostante abbiate mantenuto le precauzioni di cui sopra. In questi casi è possibile diminuire il livello di protezione predefinito ricorrendo al modello (template) di sicurezza compatws.inf.
Grazie al comando secedit.exe potrete infatti modificare le impostazioni di sicurezza del sistema operativo applicando le variazioni definite all'interno di un file che prende il nome di "Security Template". Microsoft ha incluso nei sistemi operativi alcuni modelli predefiniti e li potete trovare all'interno della cartella %windir%\security\templates.
Uno di questi file risulta di grande utilità per la nostra causa, si tratta del modello denominato compatws.inf.
Avvalendoci dello strumento per l'analisi dei modelli di sicurezza possiamo dare uno sguardo a quali cambiamenti verrebbero effettivamente applicati al nostro sistema se decidessimo di applicare le modifiche indicate da compatws.inf.
Mi sembra piuttosto chiaro che verrebbero principalmente modificate le impostazioni assegnate a determinate porzioni del registro di sistema. Vi posso assicurare che questo metodo permette l'esecuzione di moltissimi software problematici senza influire particolarmente sull'integrità del sistema.
Il comando da eseguire attraverso un prompt dei comandi è il seguente
%windir%\system32\secedit.exe /configure /cfg %windir%\security\templates\compatws.inf /db compat.sdb
La procedura, dopo qualche minuto di attesa, ha raggiunto il completamento senza restituire gravi errori. E' possibile invece che voi non siate altrettanto fortunati, si potrebbero verificare degli errori che ne causeranno l'arresto ed in tal caso dovrete consultarne il log (situato in %windir%\security\logs\secsrv.log) al fine di correggere il problema e rieseguire nuovamente il comando.
Nella quasi totalità delle mie esperienze l'errore riportato nel log mostrava l'impossibilità di modificare i descrittori di sicurezza assegnati a determinate chiavi di registro, nei seguenti screenshot potete vedere come si presenta normalmente tale problema.
La schermata "Avanzate" relativa alle autorizzazioni delle chiavi di registro risulta completamente vuota. Il sintomo del problema è proprio questo comportamento piuttosto anomalo: sembra che i descrittori di sicurezza abbiano perso la loro integrità e si dovrà perciò ripristinarli. A tal fine è sufficiente apporre il segno di spunta sull'opzione "Eredita dall'oggetto padre le autorizzazioni...." e premere il pulsante applica.
Quando sarete riusciti ad applicare con successo il modello compatws.inf avrete ottenuto un contesto di sicurezza molto più elastico che dovrebbe permettere l'esecuzione di tutte quelle applicazioni obsolete oppure che non sono pienamente compatibili con gli standard introdotti da Microsoft Windows 2000
Autore
Mirko Iodice
mirko -at- notageek (.dot) it