ไมโครซอฟท์ออกมาอธิบายรายละเอียดของปัญหาจอฟ้า BSOD จากกรณี CrowdStrike โดยอาศัยข้อมูล kernel crash dump ที่ผู้ใช้ส่งผ่าน Windows Error Reporting (WER) เข้ามาจำนวนมาก (4 ล้านครั้งในวันเกิดเหตุ) และวิเคราะห์ด้วยเครื่องมือมาตรฐานอย่าง WinDBG Kernel Debugger
ผลการวิเคราะห์ของไมโครซอฟท์ออกมาสอดคล้องกับรายงานเบื้องต้นของ CrowdStrike เอง ว่าตัวไดรเวอร์ CSagent.sys เข้าถึงข้อมูลหน่วยความจำในพื้นที่หวงห้าม (a read out-of-bounds access violation)
ไมโครซอฟท์อธิบายการทำงานว่า CrowdStrike เลือกใช้วิธีสร้างไดรเวอร์ file system filter ขึ้นมา เพื่อดักการเปลี่ยนแปลงของไฟล์ในเครื่อง (ซึ่งอาจโดนไวรัสหรือมัลแวร์) วิธีการนี้ใช้กันทั่วไปในหมู่ซอฟต์แวร์แอนตี้ไวรัส รวมถึงไมโครซอฟท์เองด้วย
CrowdStrike สร้างโมดูลไดรเวอร์ขึ้นมาทั้งหมด 4 ตัวทำงานแตกต่างกันไป โดยไดรเวอร์ตัวหนึ่งทำหน้าที่คอยรับอัพเดตจาก CrowdStrike ตามที่บริษัทเคยแถลงไว้ และเป็นไฟล์อัพเดต channel file ที่สร้างปัญหาจนทำเครื่องแครชในที่สุด
ไมโครซอฟท์ยังอธิบายว่าบริษัทความปลอดภัยเลือกใช้วิธีสร้างไดรเวอร์เคอร์เนล เพื่อคอยมอนิเตอร์การเปลี่ยนแปลงของไฟล์ในระบบ ด้วยเหตุผลทั้งหมด 3 ข้อคือ
ไมโครซอฟท์นั้นอนุญาตให้ซอฟต์แวร์ความปลอดภัยสามารถโหลดตัวเองเข้ามาตั้งแต่ช่วงบูตเครื่องแรกๆ มาตั้งแต่ยุค Windows 8 แล้ว ไดรเวอร์แบบนี้มีชื่อเรียกว่า Early Launch AntiMalware (ELAM) ซึ่ง CrowdStrike ทำตามกระบวนการถูกต้องทุกอย่าง
อย่างไรก็ตาม การรันงานที่ระดับเคอร์เนลไดรเวอร์ก็มีข้อเสียคือ มีสิทธิเข้าถึงเยอะมาก ผู้พัฒนาซอฟต์แวร์ความปลอดภัยจึงต้องระมัดระวังให้ดีๆ เพราะถ้าเกิดปัญหาขึ้น ไม่สามารถรีสตาร์ตใหม่เฉพาะแอพได้เหมือนกับแอพระดับ user ทั่วไป ต้องบูตระบบปฏิบัติการใหม่หมด ไมโครซอฟท์เองก็พยายามย้ายงานหลายอย่างจากระดับเคอร์เนลไปรันระบบ user mode แทน และออกระบบความปลอดภัยหลายอย่างที่รันใน user mode ด้วยเช่นกัน
ส่วนในระยะยาว ไมโครซอฟท์ระบุว่าจะทำงานร่วมกับบริษัทซอฟต์แวร์แอนตี้ไวรัส เพื่อให้บริษัทเหล่านี้ใช้ช่องทางหรือฟีเจอร์ความปลอดภัยสมัยใหม่มากขึ้น เพื่อเพิ่มเสถียรภาพและความน่าเชื่อถือ ลดการเข้าถึงไดรเวอร์เคอร์เนลลง แต่ยังรักษาระดับความปลอดภัยโดยรวมเอาไว้ได้ ผ่านมาตรการหลายๆ อย่างผสมผสานกันไปด้วย
ที่มา - Microsoft