WMI and Registry scripts


În cadrul misiunilor de auditare a sistemelor informaționale există două activități de colectare a datelor de pe sistemele de calcul care asigură suportul, la momentul auditului, pentru luarea unei decizii de conformitate cu cerințele sistemului auditat. Prima activitate este aceea de documentare a sistemului auditat iar cea dea doua de extragere a informațiilor despre diferite configurări specifice în funcție de rolul sistemului auditat.

Rolul principal în procesul de documentare și colectare a configurațiilor îl are tot auditorul pentru că el decide care sunt elementele necesare a căror rezultat ar oferi cea mai corectă imagine despre securitate sistemului auditat.

Pentru realizarea acestor activități fiecare auditor are la îndemână o serie de instrumente specifice sau folosește pur și simplu metode de observare directă a configurațiilor direct de pe un terminal al sistemului auditat. În sensul realizării dosarului de audit trebuie să avem în vedere și modul în care sunt stocate probele electronice. De asemenea, o aplicabilitate a operațiunilor de documentare și colectare a configurațiilor este des întâlnită în activitățile de investigație a fraudelor informatice, dar aici plaja de aplicații disponibile este mult mai generoasă decât a aplicațiilor pentru audit.

clip_image002

Articolul curent are drept obiectiv prezentarea unui model de colectare a informațiilor despre sistemele de calcul cu sisteme de operare Windows, generațiile de după versiunea 2000, aplicabil atât sistemelor de operare de tip client cât și celor de tip server, membre ale unui domeniu sau workgroup.

Formatul de tip proces (intrare/prelucrare/ieșire) permite auditorului să definească, în cunoștință de cauză care sunt elementele unui sistem de calcul pe care dorește să le documenteze sau interogheze, apoi pe baza deciziei sale se realizează extragerea datelor din sistem și generarea ieșirilor care permit auditorului să-și motiveze opinia.

Documentarea

Din punct de vedere tehnic, datele de intrate pentru documentarea sistemului de calcul au la bază clasele de WMI[1] (Windows Management Instrumentation), principala sursă de stocare a informațiilor despre sistemele de operare Windows. Fiecare clasă este specificată în documentul XML de intrare sub forma unei secțiuni noi, auditorul având la dispoziție posibilitatea de a comenta sau chiar elimina anumite clase din fișierul de intrări.

Structura fișierului XML de intrare (wmiClassInput.xml) este prezentată în imaginea de mai jos:

clip_image004

Elementul rădăcină este winDokm iar fiecare clasă de registry este prezentată în elementele repetitive Section. Pentru sistemele de operare de tip Windows 2008 Server și ulterioare există o clasă WMI specifică, Win32_ServerFeature, folosită pentru extragerea rolurilor curente configurate pe serverele respective.

Aspectul inovativ al acestui model este reprezentat de aspectul deschis al fișierului de date de intrare care permite actualizarea ușoară a versiunilor, eliminarea și adăugarea de clase WMI în funcție de evoluția versiunilor sistemului de operare.

Fișierul de prelucrare (winDokm v1.vbs) se bazează pe limbajul de scripting VB Script, care se regăsește în toate versiunile sistemelor de operare Windows. Logica de prelucrare constă în specificarea fișierului de intrare a claselor WMI și pe bază de funcții specifice generarea unui fișier XML de ieșire.

Provocarea pentru noi în realizarea acestui script a fost de a interoga în mod dinamic WMI pe baza datelor dinamice de intrare. În atingerea acestui obiectiv am creat o funcție parametrizată (imagine) care generează secțiuni în fișierul de ieșire în funcție de valorile rezultate din interogările WMI.

clip_image006

Interogările WMI nu generează obiecte de tip recordset ci o formă particulară de arrays cunoscută și sub numele de SWbemObject [2]care poate conține valori liniare sau în stivă multidimensională.

Fișierul de ieșire, care are numele asemănător sistemului de calcul pentru care se realizează documentarea, conține toate datele accesibile din clasele WMI specificate în fișierul de intrare, prezentate în format XML.

clip_image008

În mod formatat cu XSL (winDokmFOut) fișierul de ieșire poate arăta în formatul următor:

clip_image010

Fișierul de formatare are drept scop doar o prezentare a datelor într-un format mai accesibil citirii decât formatul XML. În același timp, datele de ieșire pot fi prelucrate în aplicații de calcul tabelar, precum Microsoft Excel, sau importate în baze de date și interogate sau prelucrate după necesarul fiecărui obiectiv al misiunii.

Extragerea configurațiilor din regiștrii Windows

Folosind aceeași tehnică a datelor de intrare, prelucrare și date de ieșire se pot realiza aplicații de colectare a unor serii de configurații de pe calculatoarele Windows. Principala sursă de date vizată în acest paragraf este reprezentată de regiștrii Windows care stochează majoritatea datelor de configurare, informații despre produse și servicii din Windows, informații despre configurările de securitate și politicile aplicate.

Fișierul XML pentru a specifica clasele de ieșire are o structură pe secțiuni oarecum diferită, incluzând și o parte documentară, preluată de pe siturile oficiale MSDN[3] și TechNet[4] de la Microsoft.

clip_image012

Foarte importante în structura acestui fișier de intrare sunt primele trei valori:

  • · regHive – Specificarea locației rădăcină din registry
  • · regClass – adresa completă a cheii de registry fără rădăcină
  • · regData – numele configurației din registry folosită pentru a extrage valoarea.

Fișierul de prelucrări folosește metode specifice de conectare la registry prin apelarea la o funcție de interogare și generare a ieșirilor pe baza datelor de intrare.

Apelul funcției:

clip_image014

Conectarea la registry, extragerea valorilor din cheile de registri specificate și generarea output-ului:

clip_image016

Fișierul XML de ieșire:

clip_image018

Formatat via XSL fișierul de ieșire ar arăta ca în graficul:

clip_image020

Câmpurile winPolicy și Description din documentul de intrare sunt folosite doar cu rol documentar pentru acest fișier de ieșire.

Pentru o mai bună interpretare a datelor de ieșire, noi recomandăm utilizarea aplicațiilor de calcul tabelar. Un model de reprezentare a unui fișier de ieșire în Microsoft Excel puteți vedea mai jos.

clip_image022

În cazul în care avem deja un set de date dorite, pe baza celor mai bune practici, putem realiza grafice comparative de tip Radar pentru a putea raporta către managementul non-tehnic o stare concretă a configurărilor identificate în cadrul unei rețele.

Aplicații concurente

Instrumente concurente sunt multe (Sidy-Server), dar sunt mai greu de utilizat și în special pe servere pe care nu există Word instalat. De asemenea, MBSA și SCCM.

Dezvoltări viitoare

Pornind de la acest concept al datelor de intrare, prelucrari si ieșiri, ne propunem ca la viitoarele versiuni să putem realiza fișiere XML de intrare cu mai multe calculatoare pentru documentarea unei rețele.

Download and feedback


[1] Win32 Classes, http://msdn.microsoft.com/en-us/library/aa394084(v=vs.85).aspx

[2] SWbemObject object (Windows), http://msdn.microsoft.com/en-us/library/windows/desktop/aa393741(v=vs.85).aspx

[3] Group Policy Registry Table, http://msdn.microsoft.com/en-us/library/ms815238.aspx

[4] Auditing Policy, http://technet.microsoft.com/en-us/library/cc779526(v=ws.10).aspx

Anunțuri

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s