macOS Sierra ได้มาพร้อมเทคโนโลยีความปลอดภัยมากมาย ซึ่งหนึ่งในนั้นที่น่าสนใจคือเทคโนโลยีของ Gatekeeper ซึ่งเป็นเหมือนกำแพงป้องกันแอพบน Mac ไม่ให้เปิดตามอำเภอใจ

โดยปกติแล้วในการลงแอพบน macOS นั้นมีอยู่ 2 ทาง คือ App Store และจากภายนอก ซึ่งการติดตั้งแอพจากภายนอกในบางครั้งแอพอาจจะไม่สามารถใช้ประสิทธิภาพของแพลตฟอร์ม Apple ได้ทั้งหมด แถมบางครั้งนักพัฒนาภายนอกก็ไม่ได้ติดตั้ง Gatekeeper ไว้ด้วย ซึ่งจะมี Developer ID สำหรับนักพัฒนาเอาไว้ยืนยันตัวตนกับ Apple เพื่อปล่อยแอพให้ดาวน์โหลดนอก App Store แล้ว Gatekeeper มันดีอย่างไรแล้วจะช่วยป้องกันให้เกิดความปลอดภัยของระบบได้อย่างไร

Gatekeeper คือระบบป้องกันแอพไม่ให้รันบน macOS โดยไม่ผ่านการอนุญาตจากผู้ใช้ก่อน โดยจะช่วยป้องกันการรันแอพที่ไม่พึงประสงค์ได้ในระดับหนึ่ง Gatekeeper ช่วยให้การดาวน์โหลดแอพมีความปลอดภัยยิ่งขึ้น โดยจะปกป้องคุณจากการติดตั้งซอฟต์แวร์อันตรายใน Mac โดยไม่ตั้งใจ และสถานที่ที่ปลอดภัยที่สุดในการดาวน์โหลดแอพสำหรับ Mac ของคุณก็คือ Mac App Store นั่นเอง โดย Apple จะตรวจสอบแอพทุกตัวก่อนที่จะอนุญาตให้เข้ามาอยู่ใน Store ซึ่งหากมีปัญหาใดๆ กับแอพนั้น Apple ก็สามารถถอดออกจาก Store ได้ทันที นอกจากนี้ Gatekeeper ก็ยังช่วยให้คุณดาวน์โหลดซอฟต์แวร์ จากที่อื่นบนอินเทอร์เน็ตได้อย่างปลอดภัยกว่าเดิมด้วยเช่นกัน เพราะนักพัฒนาจะได้รับ Developer ID เฉพาะตัวจาก Apple เพื่อใช้ในการเซ็นแอพที่พัฒนาขึ้นแบบดิจิตอล โดย Developer ID จะช่วยให้ Gatekeeper สามารถบล็อคแอพที่นักพัฒนาโปรแกรมมัลแวร์สร้างขึ้น และยังใช้ยืนยันว่าแอพต่างๆ ไม่ได้ถูกดัดแปลงโดยไม่ได้รับอนุญาต ซึ่งหากว่าแอพนั้นสร้างขึ้นโดยนักพัฒนาที่ไม่ทราบชื่อและไม่มี Developer ID แอพดังกล่าวจะถูก Gatekeeper บล็อคไม่ให้ติดตั้ง เพื่อปกป้อง Mac ของคุณให้ปลอดภัย

706_whats_new_in_security_Page128

Gatekeeper ช่วยให้คุณควบคุมสิ่งที่คุณติดตั้งลงในเครื่องได้มากยิ่งขึ้น Gatekeeper มีความปลอดภัย 3 ระดับให้เลือก โดยคุณสามารถดาวน์โหลดและติดตั้งแอพจากที่ใดก็ได้บนเว็บ หรือคุณอาจเลือกความปลอดภัยระดับสูงสุดเพื่อดาวน์โหลดและติดตั้งแอพจาก Mac App Store เท่านั้น หรือจะใช้ค่าเริ่มต้นซึ่งอนุญาตให้คุณดาวน์โหลดได้ทั้งแอพจาก Mac App Store และแอพที่เซ็น Developer ID เอาไว้แล้วซึ่งหากว่าแอพนั้นไม่ผ่านการเซ็น Gatekeeper ก็จะบล็อคไม่ให้ทำการติดตั้งแอพดังกล่าว และจะเตือนให้คุณทราบว่าแอพนั้นมาจากผู้พัฒนาที่ไม่ทราบตัวตน แต่ถ้าคุณแน่ใจว่าแอพนั้นปลอดภัย คุณสามารถเพิกถอน Gatekeeper ด้วยตนเองได้โดยกด Control พร้อมคลิกที่แอพนั้นแล้วเลือกเปิดขึ้นมาก็ได้เช่นกัน

706_whats_new_in_security_Page136

ปัญหาอย่างหนึ่งของการหลีกเลี่ยง Gatekeeper คือตัวแอพจะไปเรียก resource ส่วนอื่นที่อาจมีโค้ดที่อันตรายขึ้นมา โดยแอพประเภทที่จะพบปัญหานี้ ก็จะเป็นแอพที่มาเป็นไฟล์ zip, dmg, iso หรือแอพที่ใช้ตัวติดตั้งตัวอื่นนอกจาก Apple Installer Apple จะแก้ปัญหานี้ โดยแนะนำให้นักพัฒนาใส่แอพและ resource ทั้งหมดไว้ใน Disk Image เดียวกันเป็น dmg และ Apple จะรับรองโดยใช้ codesign และ Apple แนะนำนักพัฒนาว่าถ้าเป็นไปได้ให้แพ็ค resource ทั้งหมดใส่ไว้ใน bundle ของแอพเลยทีเดียวจะดีกว่า Apple จะแก้ปัญหานี้ โดยแนะนำให้นักพัฒนาใส่แอพและ resource ทั้งหมดไว้ใน Disk Image เดียวกันเป็น dmg และ Apple จะรับรองโดยใช้ codesign และ Apple แนะนำนักพัฒนาว่าถ้าเป็นไปได้ให้แพ็ค resource ทั้งหมดใส่ไว้ใน bundle ของแอพเลยทีเดียวจะดีกว่า Gatekeeper Path Randomization

706_whats_new_in_security_Page171

Apple จะเริ่มใช้วิธีการสุ่มสถานที่เก็บข้อมูลของ Gatekeeper บนตัวเครื่อง เพื่อไม่ให้แอพภายนอกเข้ามาลักลอบใส่ข้อมูลใน Gatekeeper ได้ ฉะนั้นแอพที่เคยรันมาแล้วบน macOS หรือแอพจาก App Store จะไม่พบปัญหานี้ แอพที่จะพบปัญหานี้คือแอพที่โหลดใหม่มาจากภายนอกเท่านั้นเมื่อ Gatekeeper สุ่มสถานที่เก็บข้อมูลแล้ว แอพที่เรียกใช้ resource ที่ไม่ได้อยู่ภายในตัวของแอพ จะไม่สามารถผ่าน Gatekeeper ไปได้ ถ้าไม่ได้ใช้ Disk Image หรือ Apple Installer ที่ผ่านการยืนยันจาก Apple วิธีการสุ่ม Gatekeeper นี้จะป้องกันกรณีที่นำโค้ดอันตรายไปไว้ในนอกแอพ คือสามารถเรียกใช้ตัวแอพได้ แต่แอพก็จะไปเรียกใช้โค้ดที่อันตรายอีกที ซึ่งเมื่อ Gatekeeper ได้สุ่มสถานที่เก็บข้อมูลแล้วเรื่องเหล่านี้จะเกิดขึ้นยากกว่าเดิม

ขอบคุณข้อมูลจาก Apple Developer, 9to5Mac, Apple