วันที่: 27/06/2016 | หมวด: Apple, Article, Featured | แท็ก: , , , , ,

gate_keeper

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

ปกติแล้ว วิธีการส่งซอฟต์แวร์ให้ผู้ใช้ macOS นั้นจะมีอยู่ 2 ทาง คือ App Store หรือการดาวน์โหลดจากเว็บทั่วไปนอก App Store

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

Gatekeeper คืออะไร

Gatekeeper คือระบบป้องกันแอพไม่ให้รันบน macOS โดยไม่ผ่านการอนุญาตจากผู้ใช้ก่อน โดยจะช่วยป้องกันการรันแอพที่ไม่พึงประสงค์ได้ในระดับหนึ่ง

อ่านเพิ่มเติมได้ที่ [OS X Tips #5] รันแอพไม่ได้ ทำไงดี

ปัจจุบัน Gatekeeper จะมีตัวเลือกให้อนุญาตแอพเป็นค่าเริ่มต้น 3 แบบคือ

  • Mac App Store
  • Mac App Store และนักพัฒนาที่มีตัวตน
  • รันแอพได้จากทุกที่

ซึ่งบน macOS Sierra นั้น Gatekeeper จะถูกตัดตัวเลือกที่ 3 ออก เหลือเพียงตัวเลือกที่ 1 และ 2 เท่านั้น ฉะนั้นถ้าเป็นแอพที่ไม่มีการยืนยันตัวตนนักพัฒนา ผู้ใช้จะต้องอนุญาตด้วยตัวเองทุกครั้ง

Repackaging Problem

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

Apple จะแก้ปัญหานี้ โดยแนะนำให้นักพัฒนาใส่แอพและ resource ทั้งหมดไว้ใน Disk Image เดียวกันเป็น dmg และ Apple จะรับรองโดยใช้ codesign และ Apple แนะนำนักพัฒนาว่าถ้าเป็นไปได้ให้แพ็ค resource ทั้งหมดใส่ไว้ใน bundle ของแอพเลยทีเดียวจะดีกว่า

gatekeeper-path-randomization

Gatekeeper Path Randomization

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

เมื่อ Gatekeeper สุ่มสถานที่เก็บข้อมูลแล้ว แอพที่เรียกใช้ resource ที่ไม่ได้อยู่ภายในตัวของแอพ จะไม่สามารถผ่าน Gatekeeper ไปได้ ถ้าไม่ได้ใช้ Disk Image หรือ Apple Installer ที่ผ่านการยืนยันจาก Apple

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

เรียบเรียงโดย
ทีมงาน MacThai

บทความต้นฉบับจาก 9to5Mac, Apple Developer

About nutmos

สนใจ Apple ชอบ Apple รัก Apple
Blog : nutmos.com
Social Media : Twitter

Leave a Reply