แซนด์บ็อกซ์เปิดตัวในปี 2550 และต้องใช้ในปี 2555 เป็นเครื่องมือที่ macOS ใช้เพื่อจำกัดความเสียหายที่แอปที่ถูกแย่งชิงสามารถทำได้ Apple กล่าวว่า "แม้ว่า App Sandbox จะไม่ป้องกันการโจมตีแอปของคุณ แต่ก็ลดอันตรายที่จะเกิดขึ้นให้เหลือน้อยที่สุด แซนด์บ็อกซ์ของแอป macOS ปกป้องผู้ใช้โดยจำกัดปัญหาที่แอปพลิเคชันอาจทำให้เกิด
การทำแซนด์บ็อกซ์ของแอป macOS คืออะไร
แต่ละแอปจะมีพื้นที่ของตัวเองให้เล่น:"แซนด์บ็อกซ์" หากแอปพลิเคชันต้องการเข้าถึงนอกแซนด์บ็อกซ์ จะต้องขออนุญาตจากระบบปฏิบัติการ ขึ้นอยู่กับการตั้งค่าแซนด์บ็อกซ์ ระบบปฏิบัติการจะปฏิเสธหรืออนุมัติคำขอของแอปพลิเคชันในขณะที่ให้ข้อมูลที่เฉพาะเจาะจงน้อยที่สุดเพื่อดำเนินการตามคำขอให้เสร็จสิ้น
คิดถึงรถ. คนขับได้รับการปกป้องด้วยคุณสมบัติด้านความปลอดภัยหลายอย่าง เช่น ระบบป้องกันล้อล็อก ถุงลมนิรภัย โซนยู่ยี่ และอื่นๆ ในปี 2550 ในช่วงเวลาของการเปิดตัว App Sandboxing ไม่มีระบบคอมพิวเตอร์ที่คล้ายคลึงกัน เมื่อถามถึงการนำเสนอ เข็มขัดนิรภัยสำหรับคอมพิวเตอร์อยู่ที่ไหน แซนด์บ็อกซ์ปกป้องผู้ใช้ เช่น รถยนต์ปกป้องผู้ขับขี่:พบกับความล้มเหลวด้วยระบบลดความเสียหาย ไม่ว่าจะเกิดจากกิจกรรมที่เป็นอันตรายหรือข้อผิดพลาดในการเข้ารหัส ความเสียหายจะลดลง
เนื่องจากแซนด์บ็อกซ์จำกัดสิ่งที่แอปสามารถทำได้ จึงสามารถจำกัดเสรีภาพของนักพัฒนาได้ แอปแซนด์บ็อกซ์ทำงานช้าลงและใช้เวลานานกว่าในการพัฒนา ด้วยความสามารถมหาศาลของ Mac ขีดจำกัดของแซนด์บ็อกซ์สามารถส่งผลกระทบอย่างมากต่อความเข้ากันได้ของแอพต่างๆ ด้วยเหตุนี้ ผู้ใช้ระดับสูงมักถูกกระตุ้นให้เลือกแอปที่ทำงานนอกแซนด์บ็อกซ์ ไม่ว่าจะเป็นปัญหาด้านประสิทธิภาพหรือคุณลักษณะ
แซนด์บ็อกซ์ของแอปทำงานอย่างไร
แซนด์บ็อกซ์ใช้หลักการของสิทธิ์น้อยที่สุด กล่าวโดยย่อ ระบบสามารถทำสิ่งที่พวกเขาต้องการทำ แต่ไม่มากไปกว่านั้น การจำกัดแต่ละส่วนของระบบให้สำเร็จตามเป้าหมายที่ประกาศไว้เท่านั้น คุณจะลดโอกาสที่แอปของคุณจะถูกไฮแจ็ก ตัวอย่างเช่น ไม่มีเหตุผลใดที่แอปไฟฉายจะเข้าถึงรายชื่อผู้ติดต่อของคุณได้
แอปสามารถเข้าถึงภายนอกแซนด์บ็อกซ์ได้ แต่ต้องได้รับอนุญาตจากระบบปฏิบัติการเท่านั้น ใช้กล่องโต้ตอบ "บันทึกและเปิด" ใน macOS แอปภายในแซนด์บ็อกซ์ไม่สามารถเข้าถึงทรัพยากรระบบไฟล์บนฮาร์ดไดรฟ์ของคุณได้โดยตรง ตัวอย่างเช่น ไม่สามารถวาดแผงเปิดที่ “~/Documents” แอปต้องถาม Powerbox API ด้วย NSOpenPanel
และ NSSavePanel
ชั้นเรียนเพื่อเข้าถึงแผง
แอปพลิเคชันไม่สามารถมองเห็นสิ่งที่เกิดขึ้นภายใน Powerbox ได้โดยตรง แอปจะเข้าถึงได้เฉพาะไฟล์ที่เปิดหรือบันทึกเท่านั้น วิธีนี้ทำให้แอปสามารถทำงานที่สำคัญได้โดยไม่มีความเสี่ยง
ฟังก์ชันดังกล่าวเปิดใช้งานโดยการให้สิทธิ์ (โดยเฉพาะ com.apple.security.files.user-selected.read-write
). นักพัฒนาแอพตั้งค่าการให้สิทธิ์ซึ่งประกาศสิ่งที่แอพทำ ตามการให้สิทธิ์ที่ประกาศไว้ ระบบปฏิบัติการอนุญาตให้แอปพลิเคชันมีระดับการทำงานที่จำกัดอย่างเหมาะสม
กระบวนการคิดนี้รองรับโมเดลและกลไกแซนด์บ็อกซ์ของแอปทั้งหมด:แอปต้องประกาศความตั้งใจและขออนุญาตจากหัวหน้าระดับ OS เพื่อทำสิ่งที่เป็นอันตรายให้สำเร็จ
แอปแซนด์บ็อกซ์กับแอปที่ไม่ใช่แซนด์บ็อกซ์
ตั้งแต่วันที่ 1 มิถุนายน 2555 แอปพลิเคชันของบริษัทอื่นทั้งหมดที่เผยแพร่ผ่าน Mac App Store จะต้องอยู่ในแซนด์บ็อกซ์ แม้ว่าการทำแซนด์บ็อกซ์จะอนุญาตให้มีฟังก์ชันการทำงานของแอปจำนวนมาก คุณจะพบว่าแอปของ Mac App Store มักถูกจำกัดมากกว่าส่วนประกอบที่ไม่ใช่แซนด์บ็อกซ์ นักพัฒนาบางคนยังรักษาสองเวอร์ชัน:แอปที่มีคุณลักษณะครบถ้วนสำหรับการดาวน์โหลดโดยตรงและเวอร์ชัน gimped สำหรับ Mac App Store ด้วยความซับซ้อนที่มากขึ้นของการพัฒนาแซนด์บ็อกซ์ การเพิ่มฟังก์ชันการทำงานใหม่ให้กับแอปพลิเคชันจึงยากขึ้น หากระบบปฏิบัติการยังอนุญาตให้ใช้ฟังก์ชันดังกล่าวได้
แม้ว่าแอปแบบแซนด์บ็อกซ์จะได้รับประโยชน์จากการแจกจ่าย Mac App Store แต่คุณสามารถเดาได้ว่าเราคิดว่านั่นมีค่าเพียงใด แซนด์บ็อกซ์สามารถขยายได้ด้วยการอนุญาตด้านความปลอดภัย แม้ว่าแอปจะไม่สามารถเปิดการอนุญาตการเข้าถึงสำหรับตัวเองได้ แต่ก็สามารถขอให้ผู้ใช้ดำเนินการได้
หากต้องการดูว่าแอปใดอยู่ในแซนด์บ็อกซ์ ให้เปิดตัวตรวจสอบกิจกรรม แล้วคลิกขวาที่ชื่อคอลัมน์เพื่อเพิ่ม “แซนด์บ็อกซ์” ลงในหน้าต่าง
มีแอพบางตัวที่ไม่เคยมีอยู่ในแซนด์บ็อกซ์ อันที่จริงแล้ว กรณีการใช้งานที่มีคุณค่ามากมายได้รับการป้องกันโดยการทำแซนด์บ็อกซ์ แซนด์บ็อกซ์ป้องกันการสื่อสาร การสังเกต หรือการปรับเปลี่ยนระหว่างแอปพลิเคชัน ซึ่งจะจำกัดวิธีที่แอปพลิเคชันสามารถโต้ตอบได้อย่างมาก ทางลัดทั้งระบบ เช่น TextExpander เป็นสิ่งต้องห้ามโดยสิ้นเชิง เนื่องจากแซนด์บ็อกซ์อาจอนุญาตระดับการทำงานนั้นได้
บทสรุป
ในขณะที่มีแนวโน้มว่าแซนด์บ็อกซ์ของแอพ macOS นั้นทำงานได้ไม่ดี มันจำกัดจุดขายที่เป็นเอกลักษณ์ของแอพ Mac เช่น ความเร็วและฟังก์ชันที่ได้รับการปรับปรุง แอพที่ทำงานนอกแซนด์บ็อกซ์นั้นมีความสามารถและเร็วกว่าเกือบทุกครั้ง จากมุมมองของผู้ใช้ระดับสูงรายนี้ แอปที่ใช้บ่อยที่สุดของฉันจะไม่อยู่ในแซนด์บ็อกซ์ แอปอย่าง TextExpander, SnagIt และ TotalFinder ล้วนมีความสำคัญต่องานประจำวันของฉัน เพื่อหลีกเลี่ยงการหลีกเลี่ยงในลักษณะเดียวกันนี้ ระบบรักษาความปลอดภัยในอนาคตจึงต้องการความยืดหยุ่นและพลังที่สมดุลกับความโปร่งใส