Windows सेवाओं का ऑडिट
ऑडिट इस बात की सूची नहीं है कि मशीन पर क्या है। वह मशीन पर जो है और जो होना चाहिए था उसके बीच का अंतर है, और स्टॉक Windows पर कुछ भी दूसरे हिस्से को दर्ज नहीं करता।
तीन सवाल, और उनके जवाब देने वाली चीज़ें
इस मशीन के बनने के बाद क्या बदला?
डिप्लॉयमेंट पर लिया गया स्नैपशॉट, और आज रात मशीन के विरुद्ध एक diff। कॉन्फ़िगरेशन को उससे अलग बताया जाता है जो सिर्फ़ शुरू या बंद हुआ, इसलिए जो एक स्टार्टअप प्रकार किसी ने बदला वह उन चालीस सेवाओं के नीचे नहीं दबता जो संयोग से चल रही हैं।
bws snapshot diff baseline.json --live
स्टेजिंग प्रोडक्शन से अलग क्यों है?
हर एक पर एक स्नैपशॉट लें और दोनों फ़ाइलों की तुलना करें, कहीं भी, किसी भी मशीन के मौजूद हुए बिना। फ़ाइलें मशीन का नाम और उन्हें लेने वाला खाता साथ रखती हैं।
bws snapshot diff staging.json production.json
यहाँ ऐसा क्या है जो नहीं होना चाहिए?
ऐसी क्वेरी जो देखने लायक आकृतियाँ खोजती हैं: ऐसी सेवा जिसकी बाइनरी गायब है, जो हस्ताक्षरित नहीं है, जो Disabled होने पर भी चल रही है, जो डीबग अधिकार माँग रही है।
file:missing, signed:no, mismatch:running
रात की व्यवस्था
# जिस दिन मशीन सेवा में जाती है
bws snapshot create C:\baselines\web01.json --note "after the build"
# हर रात, शेड्यूल किए गए टास्क से
bws snapshot diff C:\baselines\web01.json --live --exit-code --json > C:\logs\drift.json
# 0 - कोई कॉन्फ़िगरेशन ड्रिफ्ट नहीं
# 5 - कॉन्फ़िगरेशन ड्रिफ्ट हुआ, और drift.json बताता है कि क्या
# 3 - यह चला और सब कुछ नहीं पढ़ सका, इसलिए जवाब आंशिक है
एग्ज़िट कोड 5 ही इसे ऑडिट बनाता है, ऐसी रिपोर्ट नहीं जिसे कोई नहीं पढ़ता: टास्क तब तक चुप रहता है जब तक मशीन ड्रिफ्ट नहीं करती, और जिस रात वह करती है, किसी को अलर्ट भेजा जाता है।
बेसलाइन उन्नत अधिकारों वाले सत्र से लें। व्यवस्थापक अधिकारों के बिना प्रबंधक कम प्रविष्टियाँ सूचीबद्ध करता है और जो सूचीबद्ध करता है उसमें से ज़्यादा को मना करता है। स्नैपशॉट दर्ज करता है कि उसे लेने वाला खाता व्यवस्थापक था या नहीं, ताकि तुलना यह कह सके, ऐसी प्रविष्टियाँ हटाई हुई बताने के बजाय जिन्हें किसी ने हटाया नहीं। पर आधी मशीन के बिना बेसलाइन फिर भी आधी मशीन के बिना बेसलाइन है।
स्नैपशॉट सबूत के तौर पर कितना मूल्यवान है
- यह JSON है जिसमें हर पंक्ति में एक फ़ील्ड है, इसलिए यह रिपॉज़िटरी में रखा जा सकता है और
git diffइसे पढ़ लेता है। जिस ऑडिटर के पास यह टूल नहीं है वह भी फ़ाइल पढ़ सकता है, और एक वर्ज़न कंट्रोल सिस्टम पहले से कब का जवाब देता है। - इसमें वह है जो snap-in ने कभी नहीं दिखाया: लॉन्च पथ और आर्ग्युमेंट, फ़ाइल का हैश और हस्ताक्षरकर्ता, दोनों दिशाओं की निर्भरताएँ, ट्रिगर, ज़रूरी विशेषाधिकार, SID प्रकार और security descriptor।
- यह बताता है कि वह क्या नहीं पढ़ सका। जिस फ़ील्ड के अधिकार इस सत्र के पास नहीं थे वह पढ़ा नहीं गया के रूप में दर्ज होता है, खाली कभी नहीं, ताकि बाद की तुलना चुपचाप उसे अपरिवर्तित कहने के बजाय तुलना नहीं की गई कह सके।
- यह पूरी मशीन का वर्णन है। इसे उसी हिसाब से रखें: यह उन्हीं अनुमतियों के साथ लिखा जाता है जो उसकी डायरेक्टरी में पहले से हैं, और टूल कुछ भी सीमित नहीं करता।