Mengaudit layanan Windows
Audit bukan daftar apa yang ada di mesin. Audit adalah selisih antara apa yang ada di mesin dan apa yang seharusnya ada - dan tidak ada apa pun pada Windows standar yang mencatat bagian kedua.
Tiga pertanyaan, dan apa yang menjawabnya
Apa yang berubah sejak mesin ini dibangun?
Snapshot yang diambil saat penerapan, dan perbandingan dengan mesin malam ini. Konfigurasi dilaporkan terpisah dari apa yang sekadar mulai atau berhenti, sehingga satu tipe startup yang diubah seseorang tidak terkubur di bawah empat puluh layanan yang kebetulan berjalan.
bws snapshot diff baseline.json --live
Mengapa staging berbeda dari produksi?
Ambil snapshot di masing-masing dan bandingkan kedua berkas - di mana saja, tanpa kehadiran salah satu mesin. Berkas membawa nama mesin dan akun yang mengambilnya.
bws snapshot diff staging.json production.json
Apa yang ada di sini yang seharusnya tidak ada?
Kueri yang menemukan bentuk-bentuk yang layak dilihat: layanan yang berkas eksekusinya hilang, yang tidak bertanda tangan, yang berjalan padahal dinonaktifkan, yang meminta hak debug.
file:missing, signed:no, mismatch:running
Bentuk malam hari
# hari mesin mulai beroperasi
bws snapshot create C:\baselines\web01.json --note "after the build"
# setiap malam, dari tugas terjadwal
bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
# 0 - tidak ada penyimpangan konfigurasi
# 5 - konfigurasi menyimpang, dan drift.json menyatakan apa
# 3 - berjalan tetapi tidak bisa membaca semuanya, jadi jawabannya sebagian
Kode keluar 5 adalah yang menjadikan ini audit dan bukan laporan yang tidak dibaca siapa pun: tugas itu diam sampai mesin menyimpang, dan pada malam hal itu terjadi, seseorang dipanggil.
Ambil acuan dasar dari sesi dengan hak tinggi. Tanpa hak administrator, manajer mencantumkan lebih sedikit entri dan menolak lebih banyak dari yang dicantumkannya. Snapshot mencatat apakah akun yang mengambilnya adalah administrator, sehingga perbandingan dapat menyatakannya alih-alih melaporkan entri sebagai dihapus padahal tidak ada yang menghapusnya - tetapi acuan dasar yang kehilangan separuh mesin tetaplah acuan dasar yang kehilangan separuh mesin.
Apa nilai snapshot sebagai bukti
- Berupa JSON dengan satu bidang per baris, sehingga bisa masuk ke repositori dan
git diffmembacanya. Auditor yang tidak memiliki alat ini tetap bisa membaca berkasnya, dan sistem kontrol versi sudah menjawab kapan. - Memuat apa yang tidak pernah ditampilkan snap-in: jalur peluncuran dan argumen, hash dan penandatangan berkas, dependensi dua arah, pemicu, hak istimewa yang dibutuhkan, tipe SID, dan deskriptor keamanan.
- Menyatakan apa yang tidak bisa dibacanya. Bidang yang tidak dihakkan sesi ini dicatat sebagai tidak terbaca - tidak pernah sebagai kosong - sehingga perbandingan kemudian dapat menyatakan not compared alih-alih diam-diam menyebutnya tidak berubah.
- Ini adalah gambaran seluruh mesin. Simpan sesuai itu: ia ditulis dengan izin apa pun yang sudah dimiliki direktorinya, dan alat ini tidak mempersempit apa pun.