ค้นหาเว็บไซต์

การติดตามเหตุการณ์ Windows Server ที่เป็นอันตรายด้วย PowerShell


เซิร์ฟเวอร์ Windows อาจสามารถสร้างเหตุการณ์นับพันหรือหลายแสนเหตุการณ์ในแต่ละวันได้ ส่วนใหญ่สร้างขึ้นจากเหตุการณ์ที่ปลอดภัยอย่างสมบูรณ์แบบซึ่งผู้ดูแลระบบใช้เพื่อดูว่าเกิดอะไรขึ้น เหตุการณ์อาจถูกสร้างขึ้นเพื่อระบุว่าดิสก์มีพื้นที่ว่างเหลือน้อย เกิดข้อผิดพลาดกับ Active Directory หรือบางทีอาจมีการติดตั้งซอฟต์แวร์โดยผู้ดูแลระบบ ไม่มีอะไรต้องกังวลที่นี่ อย่างไรก็ตาม สิ่งที่ซ่อนอยู่เบื้องหลังเหตุการณ์ปกตินับพันเหล่านี้อาจเป็นตัวบ่งชี้ว่าอาจมีการโจมตีของแฮ็กเกอร์ ผู้ดูแลระบบควรจะค้นหาเข็มนี้ในกองหญ้าได้อย่างไร?

กำหนดสิ่งที่ต้องค้นหา

ก่อนที่ผู้ดูแลระบบจะสามารถเริ่มติดตั้งซอฟต์แวร์หรือเปิดโปรแกรมแก้ไขสคริปต์ได้ เขาต้องทำการวิจัยเบื้องหลังก่อน ภารกิจแรกคือการกำหนดสิ่งที่ต้องค้นหา Windows สร้างเหตุการณ์ต่างๆ นับพันเหตุการณ์ ผู้ดูแลระบบจำเป็นต้องพิจารณาว่าเหตุการณ์ใดที่อาจบ่งบอกถึงภัยคุกคามด้านความปลอดภัย

ในการทำเช่นนั้น เขาจะต้องอ้างอิงถึงตัวบ่งชี้ปัญหาด้านความปลอดภัยที่เป็นที่นิยม เช่น สิทธิ์ด้านความปลอดภัยที่เพิ่มขึ้น บัญชีผู้ใช้ถูกจัดอยู่ในกลุ่มสำคัญ หรือบันทึกความปลอดภัยที่ถูกล้าง ล้วนเป็นกิจกรรมที่เลวร้ายยอดนิยมของผู้ร้าย มีแหล่งข้อมูลมากมายที่ให้ข้อมูลนี้แก่คุณ

ค้นพบวิธีการนำเสนอข้อมูล

หลังจากที่ผู้ดูแลระบบตัดสินใจว่าต้องการดำเนินการใด ขั้นตอนต่อไปคือการค้นหาว่าการกระทำเหล่านี้ปรากฏบนเซิร์ฟเวอร์ Windows อย่างไร ภัยคุกคามด้านความปลอดภัยอาจแสดงตัวออกมาได้หลายวิธี แต่วิธีที่เรากำลังพูดถึงในปัจจุบันคือผ่านบันทึกเหตุการณ์ของ Windows การพิจารณาว่ารหัสเหตุการณ์ใดที่เกี่ยวข้องกับภัยคุกคามความปลอดภัยที่อาจเกิดขึ้นเหล่านี้ถือเป็นเรื่องสำคัญ สิ่งที่ยอดเยี่ยมที่ฉันเคยใช้คือคู่มือ Ultimate Windows Security ประกอบด้วยเหตุการณ์ที่เกี่ยวข้องกับความปลอดภัยส่วนใหญ่ที่สร้างขึ้นบนเซิร์ฟเวอร์ Windows พร้อมด้วยรหัสเหตุการณ์

ค้นหาข้อมูล

ตอนนี้เรามีบางอย่างที่ต้องดำเนินการด้วย เรามีการดำเนินการที่ต้องระวัง วิธีแสดงการกระทำเหล่านี้ และรหัสเหตุการณ์ที่แสดงถึงการกระทำเหล่านี้ ถึงเวลาดำเนินการค้นหาบนเซิร์ฟเวอร์เพื่อค้นหาเหตุการณ์เหล่านี้ นี่คือจุดที่ภาษา Windows PowerShell มีประโยชน์ PowerShell มอบวิธีที่สะดวกแต่มีประสิทธิภาพในการสืบค้นบันทึกเหตุการณ์บนเซิร์ฟเวอร์ Windows การใช้ PowerShell เพื่อสืบค้นบันทึกเหตุการณ์ จะทำให้กระจายการสืบค้นของคุณไปยังเซิร์ฟเวอร์หลายเครื่องได้อย่างง่ายดาย มาดูตัวอย่างวิธีทำให้สิ่งนี้เกิดขึ้น

Windows มีบันทึกเหตุการณ์ต่างๆ มากมายเพื่อบันทึกกิจกรรมประเภทต่างๆ มากมาย สิ่งที่เราจะเน้นที่นี่คือบันทึกความปลอดภัย บันทึกการรักษาความปลอดภัยคือที่ที่บันทึกเหตุการณ์ด้านความปลอดภัยทั้งหมด (เชื่อหรือไม่) แต่วิธีที่เรากำลังจะใช้จะทำงานได้ดีพอๆ กันกับบันทึกเหตุการณ์อื่นๆ เช่นกัน

สมมติว่าผู้ดูแลระบบค้นพบกิจกรรมที่แตกต่างกันสามกิจกรรม:

  1. บันทึกความปลอดภัยเต็ม - รหัสเหตุการณ์ 1104
  2. บันทึกการตรวจสอบถูกล้าง - รหัสเหตุการณ์ 1102
  3. มีการเพิ่มสมาชิกในกลุ่มส่วนกลางที่เปิดใช้งานการรักษาความปลอดภัย - รหัสเหตุการณ์ 4728

จะเริ่มตรงไหน? ขั้นตอนแรกคือการใช้ PowerShell cmdlet ชื่อ Get-WinEvent Get-WinEvent เป็นเวอร์ชันขั้นสูงของ Get-EventLog หากคุณเคยได้ยินเรื่องนี้มาก่อน Get-WinEvent แม้ว่าการใช้งานจะซับซ้อนกว่า แต่ก็มีประสิทธิภาพมากกว่าและทำงานได้เร็วกว่า Get-EventLog มาก มาดูตัวอย่างการใช้ Get-WinEvent เพื่อค้นหารหัสเหตุการณ์เดียวบนเซิร์ฟเวอร์เดียว

ในตัวอย่างนี้ คุณจะเห็นว่าฉันกำลังค้นหาชื่อเซิร์ฟเวอร์ labdc.lab.local ฉันใช้พารามิเตอร์ FilterHashtable เพื่อจำกัดเหตุการณ์ให้แคบลงเฉพาะบันทึกเหตุการณ์ด้านความปลอดภัยและรหัสเฉพาะที่ฉันต้องการ ซึ่งก็คือ 1102 ในกรณีนี้

ค่อนข้างง่ายใช่มั้ย? จะเกิดอะไรขึ้นหากฉันต้องการค้นหา ID เหตุการณ์หลายรายการ ดังที่ฉันอ้างถึงก่อนหน้านี้ ไม่มีปัญหา!

คุณสามารถดูได้ในตัวอย่างว่าฉันยังคงค้นหาเซิร์ฟเวอร์เดียวกัน แต่คราวนี้ฉันกำลังมองหารหัสเหตุการณ์ที่แตกต่างกันสามรหัส และฉันก็สามารถค้นหาอินสแตนซ์ของรหัสเหตุการณ์ 4728 และ 1102 ได้

นี่เป็นเพียงเซิร์ฟเวอร์เดียว คุณอาจมีเซิร์ฟเวอร์มากกว่าหนึ่งเครื่อง เรามาขยายการเข้าถึงและค้นหารายการเซิร์ฟเวอร์กันดีกว่า

ทำได้ง่ายเพียงแค่เพิ่มลูป foreach ดังที่คุณเห็นจากตัวอย่าง ฉันสามารถค้นหารหัสเหตุการณ์ 4728 และ 1102 บนหนึ่งในเซิร์ฟเวอร์แค็ตตาล็อกส่วนกลางของ Active Directory ไม่พบกิจกรรมบนเซิร์ฟเวอร์อีกสามเครื่อง

นี่เป็นเพียงตัวอย่างประเภทของการตรวจสอบบันทึกเหตุการณ์ที่คุณสามารถทำได้ด้วย PowerShell PowerShell เหมาะอย่างยิ่งสำหรับการแก้ไขอย่างรวดเร็วและการตรวจสอบเฉพาะกิจ หากคุณต้องการโซลูชันการตรวจสอบที่มีประสิทธิภาพมากกว่านี้ ฉันขอแนะนำเครื่องมืออย่าง Netwrix Auditor Netwrix Auditor สร้างขึ้นใหม่ทั้งหมดโดยคำนึงถึงการตรวจสอบ และมันก็ใช้งานได้ดี หากคุณไม่เชี่ยวชาญเรื่อง PowerShell มากนัก ไม่ต้องกังวลไป Netwrix ได้นำเอาความชาญฉลาดมาใส่ไว้ในผลิตภัณฑ์ Auditor ของตนแล้ว ไม่จำเป็นต้องเป็นภาระกับการเขียนสคริปต์

บทความที่เกี่ยวข้อง