Stavo leggendo proprio in questi minuti della notizia di un clamoroso furto ai danni dei clienti svedesi della banca Nordea.
I pirati informatici, infettati i pc dei clienti con un rootkit ben conosciuto – Haxdoor – hanno controllato le attività online rubando i dati di accesso ai conti bancari. Sono stati circa 250 gli utenti afflitti, per un totale di circa 1.1 milioni di dollari e una truffa portata avanti per circa tre mesi.
Sono tre i punti fondamentali che si potrebbero evidenziare in questo accaduto, ma vorrei focalizzarmi più sull’argomento rootkit e account limitati.
Pochi utenti sono a conoscenza di tutte le funzionalità che il sistema operativo Microsoft offre, tra cui la gestione degli utenti. Se ne è parlato tanto, tutti sanno che con un account amministratore ogni malware ha la strada libera verso la conquista del pc. Pochi sono quelli che si sono cimentati nell’utilizzo di un account limitato in Windows, lavorando con l’account di amministratore esclusivamente quando strettamente necessario.
Bisogna dirlo, Microsoft non ha scelto certo la strada più facile per far capire agli utenti come si possano sfruttare queste caratteristiche di Windows. La creazione di gruppi personalizzati, con l’editing di regole personalizzate che vadano oltre il semplice “account limitato” che viene settato nelle configurazioni degli account utente, in alcuni casi non è banale. Se, in molti ambiti casalinghi, l’account limitato con i setting standard possa bastare, in ambito aziendale risulta già leggermente più difficile riuscire a configurare il pc in modo tale che tutti i software – magari alcuni sviluppati da piccole società per una specifica azienda e non ottimizzati nel codice – riescano a girare sotto un account limitato. Per tal motivo è possibile ricorrere a delle modifiche dei permessi personalizzate, che però non sempre sono alla portata – in termini di semplicità – di qualunque persona che debba configurarli. Non sono, insomma, così immediati.
Certo è che un account limitato al momento fornirebbe molta protezione da grandissima parte di malware attuali – molti rootkit compresi.
Gran parte dei malware si copia all’interno delle directory di sistema di Windows, necessita di scrivere all’interno del registro di sistema per avviarsi all’avvio del sistema e altre caratteristiche che vanno a toccare parti delicate del sistema operativo. Parti che un un account limitato non può editare per assenza di privilegi.
Sarebbero veramente pochi i malware esistenti che potrebbero infettare il pc da account limitato. Parlando di rootkit, sarebbe praticamente impossibile l’installazione di rootkit kernel mode e di gran parte di rootkit user mode.
Quindi abbiamo trovato la soluzione a tutto? Account limitato e possiamo buttare via ogni software antivirus? Beh, non proprio. Torniamo a parlare proprio dei rootkit in questione.
Come si è detto sopra, vediamo prima i rootkit kernel mode. Sono rootkit che vanno ad installare solitamente un device driver (o kernel driver) nel sistema per aver accesso alla zona di memoria virtuale dedicata al kernel – i 2GB alti, da 0x80000000 a 0xFFFFFFFF. Per far ciò necessitano di essere registrati attraverso il Service Control Manager. Permesso negato per un account limitato. Potrebbero tentare di accedere alla memoria direttamente attraverso DevicePhysicalMemory. Accesso negato per un account limitato. Un rootkit kernel mode avrà difficoltà nel venire installato.
Parliamo ora dei rootkit user mode. Rootkit che solitamente tendono a reindirizzare le chiamate effettuate dalle applicazioni alle API di Windows. Per fare ciò solitamente vanno a modificare la IAT (Import Address Table) di un determinato file in memoria o si occupano di modificare in tempo reale le funzioni stesse (inline hooking/code patching). Senza scendere nei dettagli tecnici delle tecniche, per fare questo il rootkit deve esistere nello spazio in memoria relativo al processo target.
Per poter esistere in tutti i processi attivi nel sistema, il rootkit deve avere alcuni privilegi particolari (SeDebugPrivilege) che gli permettono di poter avere accesso alle zone di memoria dei processi di cui l’utente non è owner – nel caso dell’account administrator l’accesso alle zone di memoria dei processi di sistema.
Inoltre, per essere inserito nei processi all’avvio, molti rootkit user mode modificano la chiave di registro APPInit_DLLs, la quale istruisce il sistema operativo a caricare il rootkit nel momento in cui ogni applicazione utilizzante la libreria User32.dll viene caricata.
Sia la modifica della chiave di registro APPInit_DLLs che il SeDebugPrivilege sono esclusi da un account limitato, bloccando di conseguenza gran parte dei rootkit user mode a priori.
Quindi, in altre parole, chi utilizza un account limitato sembrerebbe al sicuro da rootkit e malware. Niente più software antivirus.
In realtà la questione non sta proprio così. É vero, gran parte dei rootkit e dei malware attuali verrebbero tagliati fuori, ma non è vero che si possa essere al sicuro.
Un programma lanciato da account limitato può avere accesso alle zone di memoria di tutti gli altri processi che vengono lanciati con diritti dello stesso account limitato in uso. Una volta ricavato l’handle del processo con l’API OpenProcess() e flag PROCESS_VM_WRITE è possibile andare a scrivere nelle zone di memoria degli altri processi con diritti simili.
Lo scopo del rootkit è quello di nascondersi agli occhi degli utenti. Lo faccia in modo complesso (DKOM, SSDT/IDT hooking), lo faccia a livello più semplice e completo (rootkit user mode con diritti administrator) o lo faccia a livello di account limitato (modifica solo dei processi lanciati da account limitato) può comunque farlo. Certo, è più facile l’individuazione – basta lanciare uno scanner antivirus con permessi administrator (RunAs) o avere comunque un monitor antivirus in realtime che dovrebbe partire con diritti di SYSTEM – ma se nessuno pensasse di fare una scansione il rootkit svolgerebbe comunque il proprio lavoro.
Senza considerare – ipotesi più rara e “fantascientifica” – che se un giorno venisse scoperto un bug in qualche processo di sistema che viene lanciato con diritti di amministratore o ancora più alti, anche da account limitato potrebbe partire una privilege escalation. Blaster e Sasser, per un certo senso, insegnano.
Ecco perché, seppure un account limitato riduca *drasticamente* il rischio di infezioni, uno scanner antimalware/antivirus/HIPS o qualunque software sia sarebbe comunque consigliato.
Nel caso della news riportata ad inizio articolo, Haxdoor non avrebbe funzionato con account limitato e gli utenti sarebbero stati tutti più felici probabilmente.
Ciao e complimenti per l’articolo ed in generale il sito. Ti pongo una domanda: il sistema UAC adottato in Windows Vista come si pone rispetto a questo discorso?
Aspettavo da tempo una analisi di questo tipo, e hai cinfermato un po’ i miei sospetti.
Da sysarmin anche windwos, purtroppo, oltre a dire che la MS non ha semplificato la vita, aggiungo anche che le case sw per quanto riguarda qualche periferica ci mettono del loro.
Non starò a fare marche, ma in ufficio abbiamo numerose schede per la comunicazione mobile. Ebbene puoi giocare con le GPO e le SECPOL, ma non c’è verso di farle funzionare se non con un account come amministratore locale della macchina.
A domanda ben precisa richiesta a questa casa madre, questa mi ha dato parecchie aggiustature pur di usare la scheda come uno User, ma non c’è stato niente da fare. Admin locale e stop è stata la “sokuzione” finale.
Questo è un solo esempio, potrei parlare delle chiavette usb, di alcuni produttori anche famosi, che non funzionano neanche se l’utente ha i privilegi di fare “Attach a Device”…
Poi basti pensare, che Office 2000 SBE, per funzionare il primo avvio, ha bisogno di essere un power user, per scrivere su alcune chiavi di registro.
Insomma sugli ambienti windows, ci son troppi fattori che rendono intrinsecamente più insicuro il sistema. Dai software scritto con i piedi, all’hw che non funziona se non sei il god supremo..
Insomma, più faccio sto mestiere, più mi rendo conto che è quasi una lotta contro i mulini a vento…
Si pone che dovrebbe essere più efficace. Sempre che l’utente utonto di turno stanco degli avvisi non lo disabiliti del tutto.
ehm….mi sono accorto solo ora del nuovo articolo che mi leggerò con grande interesse…appena ritorno dallo stadio…. LOL
🙂
Ciao e grazie di tutti i tuoi contrinuti!
Ciao Marco, preciso, chiaro e puntuale come al solito.
Ottimo articolo, e confermo quello che dice
Fabrizio.
Ciò non toglie che bisogna provarci. A me fin’ora è andata bene, un centinaio di postazioni e nessun admin, molte ore in totale perse per far funzionare i sw recalcitranti.
Mitico il crapware per le fotocamere Kodak che vuole i diritti amministrativi.
NB: alla faccia dei “bassi costi amministrativi di Windows”…
Faccio notare una cosa: l’alternativa non è necessariamente tra utente sempre admin e utente sempre non admin.
In molti casi si può mettere a disposizione dell’utente un account admin se le attività che devono essere svolte in questa modalità sono sporadiche.
Non è l’ideale ma può salvare capra e cavoli.
O.T.
Scusate se come al solito vado fuori tema ma c’è una cosa troppo “divertente”. Volevo sottolineare la eccezionalita0 del nuovo motore di ricerca LIVE di microsoft. Inserita parola RIEDUCAZIONE POSTURALE e 4 siti su 5 della ricerca sono quelli civetta di gromozon con sfondo la bandiera tricolore 🙂 🙂
Grande microsoft.
maverick beh, prova a cercare su MSN le parole giubbotto milano (o giubbotto piacenza). Per non parlare di robe forse piu’ ovvie tipo “fotti” e “fottilo” dove siamo, credo, oltre il 95%.
ma i siti civetta di gromozon ancora girano ?
Buon inizio di settimana a tutti..
Rispondendo a Pietro, è ovvio che il dovere del buon sysadmin, è non solo provarci, ma imho, fare anche l’impossibile. Quello sul quale razionalizzavo e mi soffermavo io, è che nonostante tutti gli sforzi che si possano compiere, hai nel bene o nel male, un “mattoncino” fuori norma, che rischia di fare il crollo di tutta l’impalcatura.
Ecco perchè dico che si trattta di una battaglia contro i mulini a vento. Imho l’UAC di Vista non porterà a nulla per i medesimi motivi…
C’è voluta l’insurrezione popolare dei “linari” per far “ideare” da microsoft l’idea del “Low Rights IE”, ovverosia far girare Internet Explorer con privilegi utente molto bassi, onde farsi attaccare qualsiasi pattume.
Ma siamo lontani anni luce, perchè tali sistemi siano intrinsecamente sicuri.
Mi stavo dimenticando.. A proposito di malaware.. Na dell’ondata del trojan Small.DAM?
http://www.f-secure.com/weblog/archives/archive-012007.html#00001086
Io a casa qualcuno, in ufficio nessuno per ora..
Purtroppo non ho avuto tempo di aggiornare tutto, come dicevo sono giorni un pò movimentati 🙂 Comunque, a occhio e croce (sinceramente non ho approfondito troppo, verificherò a breve), non mi sembra che l’Italia sia stata particolarmente colpita da questa nuova minaccia.
Eppure.. Sarà che il mio dominio risiede su un hoster con connettività estera. Eppure almeno 4 ne ho ricevute solo ieri.
@Fabrizio: notare che anche su MS Technet si trovano articoli riguardo al problema dei diritti amministrativi, e se ne stigmatizza la gravità.
Forse questo è il vero grande bug di Windows.. 🙂
@Piero: avessi tempo a disposizione, vi posterei alcune discussioni e-pistolari (fredduraaaaa) che ho avuto con diverse case HW e la stessa MS su questo aspetto.
Alcune di queste, sono state oggetto di risoluzione di certi “contratti” di hardware.
Sarò cocciuto, ma per certe cose non transigo. Quando vengo pure coinvolto in analisi di sviluppo di nuovi programmi per l’azienda dove lavoro *PRETENDO* che il programma funzioni con diritti User, senza alcuna esplicita policy.
Alla fine, convengo con la tua ultima battuta: è questo il vero bug di Windows, ovvero il non riconoscere e far ammenda di certi problemi.
@Marco-CC:All: riguardo il trojan pare che ci sia comunque una bella invasione a giudicare da alcuni “blog commerciali”:
http://blog.trendmicro.com/
http://www.f-secure.com/weblog/
Staremo a vedere.. Io per ora sto abbastanza tranquillo, gli eseguibili si cancellano automaticamente.
Personalmente, sui miei account italiani non ho ricevuto niente. Comunque, in generale, essendo un worm abbastanza diffuso soprattutto sotto l’occhio di tutti i ricercatori, non dovrebbe avere vita particolarmente lunga. I server di posta filtrano le e-mail infette, gli engine antivirus utilizzati solitamente sui server già riconoscono buona parte delle varianti. Più che da pc dell’utente, la bonifica viene effettuata a priori dal server di posta – o perlomeno “dovrebbe” farlo.
Francesco, girano eccome. Peggio che mai, ora ci sono sia quelli di Gromozon sia quelli di Rustock. 🙁
Ciao a tutti !!
Scusatemi, ma in definitiva x quanto riguarda Gromozon esiste un link per sapere esattamente come e cosa rubava o perche’ era stato creato ?
Rubava informazioni dal pc ? Utilizzava AD nascosto x far guadagnare in qualche modo i suoi creatori ?? Come esattamente ?
Purtroppo non ho trovato nulla di preciso in tal senso… mentre x i rootkit piu’ recenti questo tipo di info si trovano…
Byezz
Ci sono documentazioni “chiare e leggibili” su come blindare al massimo il PC a livello di utenza ? Ho provato a giocare con le policy ma non sono andato molto oltre…. perché i parametri sono tanti e non ho trovato una guida chiara
@francesco l’unica come ho scritto più sopra è giocare con le group policy e le security policy.
Di documentato c’è poco, in qualche technet di microsoft se ne parla, ma come dice piero, “sorpassano” il problema quasi fregandosene.
Se hai qualche dubbio in paticolare, postalo pure, vediamo se c’ho o c’abbiamo già sbattuo il naso.
Riguardo le guide conosciute posso indicarti questi link:
http://www.bol.it/libri/scheda/ea978880454109.html
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/directory/activedirectory/stepbystep/gpfeat.mspx
Bada bene, se il primo libro, lo trovi in inglese invece che in italiano, è meglio.
@Francesco: semplice, sposta gli utenti dal gruppo “Administrators” al gruppo “Users” (oppure verifica che il gruppo “Domain users” faccia parte solo di “Users” nel caso di un dominio).
Dopodichè inizia a verificare quello che non funziona più e a metterci delle pezze 🙂
Una risorsa utile:
http://blogs.msdn.com/aaron_margosis/default.aspx
@Piero: bel link, bookmarcato.
Per tutti, faccio notare a chi non lo sapesse una funzionalità introdotta in caso di scenario Server 2003 e XP Professional minimo come client: Le “SOFTWARE RESTRICTION POLICIES”.
Date un occhio direttamente vedendo i primi argomenti che escono sul web, non solo quelli in italiano:
http://www.google.it/search?q=software+restriction+policies
La cosa è interessante, anche per chi amministra pochi pc di pochi utenti, oppure vuole inchiavardare il proprio PC di casa, ad altri utenti, inibendo l’installazione anche di software malevolo..
@piero:
ok, questo è il minimo, ma mi sembra di aver capito dall’articolo che questo potrebbe non bastare. In ogni caso ci sono molte policy che possono essere personalizzate con appositi editor e distribuite con vari metodi. Voci configurabili e metodi di distribuzione variano a seconda dell’accopppiata server/client. Io con server sambra e client 2k posso abbastanza poco…..
ma quel poco che posso, le opzioni che posso modificare, secondo me, non sono spiegate molto bene, o quantomeno non sono riuscito a capirle…
Di pezze, poi, ce ne vorrebbero parecchie ! Alcuni prog vogliono power user! Ora vado a leggere il link.
@francesco: mah, non direi che è il minimo, dal punto di vista della sicurezza è molto vicino al massimo “per default”. In teoria potresti avere dei problemi in caso di bug che abilitano degli exploit basati su privilege escalation, per questo bisogna applicare comunque e puntualmente gli aggiornamenti di sicurezza.
Il problema è appunto mettere selettivamente le pezze.. forse ti conviene iniziare con qualche utente e sbattere il naso contro i problemi uno alla volta.
Mi permetto di segnalare un libro piuttosto ben fatto che e` assolutamente attinente all’argomento di cui stiamo parlando:
http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764599909.html