Auditarea serviciilor Windows
Un audit nu este o listă a ceea ce se află pe mașină. Este diferența dintre ce se află pe mașină și ce trebuia să se afle - iar a doua jumătate nu o înregistrează nimic pe un Windows obișnuit.
Trei întrebări și ce le răspunde
Ce s-a schimbat de când a fost construită această mașină?
Un instantaneu făcut la implementare și o comparație cu mașina în această seară. Configurația este raportată separat de ceea ce doar a pornit sau s-a oprit, așa că singurul tip de pornire pe care l-a schimbat cineva nu este îngropat sub patruzeci de servicii care se întâmplă să ruleze.
bws snapshot diff baseline.json --live
De ce diferă mediul de testare de producție?
Faceți un instantaneu pe fiecare și comparați cele două fișiere - oriunde, fără ca vreuna dintre mașini să fie prezentă. Fișierele poartă numele mașinii și contul care le-a făcut.
bws snapshot diff staging.json production.json
Ce se află aici și n-ar trebui?
Interogări care găsesc formele care merită privite: un serviciu al cărui executabil a dispărut, unul nesemnat, unul care rulează deși este dezactivat, unul care cere drepturi de depanare.
file:missing, signed:no, mismatch:running
Forma nocturnă
# ziua în care mașina intră în serviciu
bws snapshot create C:\baselines\web01.json --note "after the build"
# în fiecare noapte, dintr-o sarcină programată
bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
# 0 - nicio derivă de configurație
# 5 - configurația a derivat, iar drift.json spune ce
# 3 - a rulat și n-a putut citi totul, deci răspunsul este parțial
Codul de ieșire 5 este ceea ce face din asta un audit și nu un raport pe care nu-l citește nimeni: sarcina tace până când mașina derivă, iar în noaptea în care se întâmplă, cineva este alertat.
Luați starea de referință dintr-o sesiune cu drepturi ridicate. Fără drepturi de administrator, managerul listează mai puține intrări și refuză mai multe din ce listează. Instantaneul consemnează dacă contul care l-a făcut era administrator, astfel încât comparația poate spune asta în loc să raporteze ca eliminate intrări pe care nimeni nu le-a eliminat - dar o stare de referință căreia îi lipsește jumătate din mașină rămâne o stare de referință căreia îi lipsește jumătate din mașină.
Cât valorează un instantaneu ca dovadă
- Este JSON cu un câmp pe rând, deci intră într-un depozit și
git diffîl citește. Un auditor care nu are acest instrument poate totuși citi fișierul, iar un sistem de control al versiunilor răspunde deja la când. - Conține ce n-a arătat niciodată snap-in-ul: calea de lansare și argumentele, hash-ul și semnatarul fișierului, dependențele în ambele sensuri, declanșatoarele, privilegiile necesare, tipul SID și descriptorul de securitate.
- Spune ce n-a putut citi. Un câmp la care această sesiune nu avea drepturi este consemnat ca necitit - niciodată ca gol - astfel încât o comparație ulterioară poate spune not compared în loc să-l numească în tăcere neschimbat.
- Este o descriere a întregii mașini. Arhivați-l în consecință: este scris cu permisiunile pe care directorul său le are deja, iar instrumentul nu restrânge nimic.