Ghid

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.
Cum funcționează instantaneele și comparațiile