ขณะนี้การแยกแอป Win32 อยู่ในการแสดงตัวอย่างสาธารณะ นี่คือสิ่งที่ทำ

การแยกแอป Win32 เป็นความสามารถด้านความปลอดภัยที่ดีที่ Microsoft เปิดตัวใน Windows 11 เมื่อเดือนที่แล้ว นี่คือวิธีการทำงาน

ในการประชุม Build ประจำปีเมื่อเดือนที่แล้ว Microsoft ได้ประกาศความสามารถในการ รันแอพ Win32 แบบแยกบน Windows 11. บริษัทไม่ได้ให้รายละเอียดมากนักในโพสต์บล็อกเริ่มต้น แต่เน้นตัวเลือกในการเรียกใช้ Win32 แอปในสภาพแวดล้อมแบบ Sandbox เพื่อให้ระบบปฏิบัติการที่เหลือปลอดภัยจากอันตรายที่อาจจะเกิดขึ้น ซอฟต์แวร์. ขณะนี้ได้เปิดเผยข้อมูลเพิ่มเติมเกี่ยวกับความสามารถเฉพาะนี้ รวมถึงวิธีการทำงานและความเหมาะสมในโครงสร้างพื้นฐานด้านความปลอดภัยที่เหลือของ Windows

David Weston รองประธานฝ่าย OS Security และ Enterprise ของ Microsoft เขียนยาว โพสต์บล็อกอธิบายลักษณะของการแยกแอป Win32 คุณลักษณะนี้เป็นอีกหนึ่งตัวเลือกความปลอดภัยแบบแซนด์บ็อกซ์ Windows แซนด์บ็อกซ์ และ Microsoft Defender Application Guard แต่ใช้ AppContainers ไม่ใช่ซอฟต์แวร์ที่ใช้การจำลองเสมือนเหมือนกับมาตรการรักษาความปลอดภัยอีกสองรายการ สำหรับผู้ที่ไม่ทราบ AppContainers ทำหน้าที่เป็นวิธีควบคุมการดำเนินการของกระบวนการโดยการห่อหุ้มและตรวจสอบให้แน่ใจว่ารันในระดับสิทธิ์และความสมบูรณ์ที่ต่ำมาก

Microsoft ได้แนะนำอย่างยิ่งให้ใช้ การควบคุมแอปอัจฉริยะ (SAC) และการแยกแอป Win32 ควบคู่ไปกับการรักษาความปลอดภัยสภาพแวดล้อม Windows ของคุณจากแอปที่ไม่น่าเชื่อถือซึ่งใช้ช่องโหว่ 0 วัน กลไกความปลอดภัยเดิมจะหยุดการโจมตีด้วยการติดตั้งเฉพาะแอพที่เชื่อถือได้ ในขณะที่กลไกหลังสามารถทำได้ ใช้เพื่อเรียกใช้แอพในสภาพแวดล้อมที่แยกและปลอดภัยเพื่อจำกัดความเสียหายที่อาจเกิดขึ้นและปกป้องผู้ใช้ ความเป็นส่วนตัว. นี่เป็นเพราะแอป Win32 ที่ทำงานแยกจากกันไม่มีระดับสิทธิ์เดียวกันกับผู้ใช้ระบบ

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

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

ข้อดีอีกประการของการแยกแอป Win32 คือลดความพยายามของนักพัฒนาเนื่องจากผู้สร้างแอปสามารถใช้ประโยชน์จาก Application Capability Profiler (ACP) พร้อมใช้งานบน GitHub เพื่อทำความเข้าใจว่าพวกเขาต้องการสิทธิ์ใดกันแน่ พวกเขาสามารถเปิดใช้งาน ACP และเรียกใช้แอปใน "โหมดเรียนรู้" ในการแยกแอป Win32 เพื่อรับบันทึกเกี่ยวกับความสามารถเพิ่มเติมที่พวกเขาต้องการในการเรียกใช้ซอฟต์แวร์ ACP ขับเคลื่อนโดยแบ็กเอนด์ชั้นข้อมูล Windows Performance Analyzer (WPA) และ Event Trace Logs (ETL) ข้อมูลจากบันทึกที่สร้างโดยกระบวนการนี้สามารถเพิ่มลงในไฟล์รายการแพ็คเกจของแอปพลิเคชันได้

สุดท้าย การแยกแอป Win32 มีเป้าหมายเพื่อมอบประสบการณ์การใช้งานที่ราบรื่น การแยกแอป Win32 ช่วยอำนวยความสะดวกโดยกำหนดให้แอปใช้ความสามารถ "แยก Win32-promptForAccess" เพื่อแจ้งผู้ใช้ในกรณีที่ต้องการเข้าถึงข้อมูล เช่น ไลบรารี .NET และรีจิสทรีที่ได้รับการป้องกัน กุญแจ ข้อความแจ้งควรมีความหมายต่อผู้ใช้ที่ได้รับความยินยอม เมื่อได้รับสิทธิ์เข้าถึงทรัพยากรแล้ว สิ่งต่อไปนี้จะเกิดขึ้น:

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

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

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