อ่าน 3 นาที
แซนด์บ็อกซ์ (ความปลอดภัยทางคอมพิวเตอร์)
ใน ด้านความปลอดภัยของคอมพิวเตอร์ แซ นด์บ็อกซ์ เป็นกลไกความปลอดภัยสำหรับการแยกโปรแกรมที่กำลังทำงาน โดยปกติแล้วมีจุดประสงค์เพื่อลดความล้มเหลวของระบบและ/หรือ ช่องโหว่ ของซอฟต์แวร์...
แซนด์บ็อกซ์ (ความปลอดภัยทางคอมพิวเตอร์)
ในด้านความปลอดภัยของคอมพิวเตอร์แซนด์บ็อกซ์เป็นกลไกความปลอดภัยสำหรับการแยกโปรแกรมที่กำลังทำงาน โดยปกติแล้วมีจุดประสงค์เพื่อลดความล้มเหลวของระบบและ/หรือช่องโหว่ ของซอฟต์แวร์ ไม่ให้แพร่ กระจาย แนวคิดของ แซนด์บ็อกซ์มาจากแนวคิดของสนามเด็กเล่น ซึ่งเป็นพื้นที่เล่นที่เด็กๆ สามารถสร้าง ทำลาย และทดลองได้โดยไม่ก่อให้เกิดความเสียหายในโลกแห่งความเป็นจริง[ 1 ]มักใช้ในการวิเคราะห์โปรแกรมหรือโค้ดที่ยังไม่ได้ทดสอบหรือไม่น่าเชื่อถือ ซึ่งอาจมาจากบุคคลที่สาม ซัพพลายเออร์ ผู้ใช้ หรือเว็บไซต์ที่ไม่ได้รับการตรวจสอบหรือไม่น่าเชื่อถือ โดยไม่เสี่ยงต่ออันตรายต่อเครื่องโฮสต์หรือระบบปฏิบัติการ [ 2 ] โดย ทั่วไป แซนด์บ็อกซ์จะจัดเตรียมทรัพยากรที่ควบคุมอย่างเข้มงวดสำหรับโปรแกรมแขกในการทำงาน เช่น พื้นที่จัดเก็บและหน่วยความจำชั่วคราวการเข้าถึงเครือข่าย ความสามารถในการตรวจสอบระบบโฮสต์ หรือการอ่านจากอุปกรณ์อินพุตมักจะไม่ได้รับอนุญาตหรือถูกจำกัดอย่างมาก
ในแง่ของการจัดสภาพแวดล้อมที่มีการควบคุมสูง แซนด์บ็อกซ์สามารถเปรียบเทียบได้กับเวอร์ชวลไลเซชัน แซนด์บ็อกซ์มักใช้เพื่อทดสอบโปรแกรมที่ยังไม่ได้รับการตรวจสอบซึ่งอาจมีไวรัสหรือโค้ดที่เป็นอันตราย อื่นๆ โดยไม่ทำให้ซอฟต์แวร์เป็นอันตรายต่ออุปกรณ์โฮสต์[ 3 ]
การนำไปใช้
แซนด์บ็อกซ์ถูกนำไปใช้โดยการเรียกใช้ซอฟต์แวร์ในสภาพแวดล้อมระบบปฏิบัติการที่จำกัด ซึ่งควบคุมทรัพยากร (เช่นตัวอธิบายไฟล์ หน่วยความจำ พื้นที่ระบบไฟล์ ฯลฯ) ที่กระบวนการอาจใช้ได้[ 4 ]
ตัวอย่างของการใช้งานแซนด์บ็อกซ์ ได้แก่:
- การจำกัดการเข้าถึงแอ ป พลิเคชัน ใน Linuxสร้างขึ้นบน คุณสมบัติ seccomp , cgroupsและnamespaces ของเคอร์เนล Linux โดยเฉพาะอย่างยิ่งถูกใช้งานโดยSystemd , Google Chrome , FirefoxและFirejail
- Androidเป็นหนึ่งในระบบปฏิบัติการหลักระบบแรกๆ ที่ใช้การแซนด์บ็อกซ์แอปพลิเคชันแบบเต็มรูปแบบ โดยสร้างขึ้นจากการกำหนดรหัสผู้ใช้ Linux ให้กับแต่ละแอปพลิเคชัน[ 5 ] GrapheneOSเสริมความแข็งแกร่งให้กับการแซนด์บ็อกซ์แอปนี้เพื่อเพิ่มระดับความปลอดภัยและหลีกเลี่ยงแอปที่อาจเป็นอันตราย และแตกต่างจาก Android เวอร์ชันมาตรฐานตรงที่อนุญาตให้มีการแซนด์บ็อกซ์ทุกแอปในระบบปฏิบัติการ[ 6 ]
- Apple App Sandbox จำเป็นสำหรับแอปที่เผยแพร่ผ่านMac App Store ของ Apple และApp Store ของ iOS / iPadOS และแนะนำสำหรับแอปที่ลงนามอื่นๆ[ 7 ] [ 8 ]
- Windows Vistaและรุ่นต่อมามีกระบวนการทำงานในโหมด "ต่ำ" ซึ่งเรียกว่า"การควบคุมบัญชีผู้ใช้" (UAC ) [ 9 ]
- Google Sandboxed API [ 10 ]
- เครื่องเสมือน (Virtual Machine) จำลองคอมพิวเตอร์โฮสต์อย่างสมบูรณ์ ซึ่งระบบปฏิบัติการทั่วไปสามารถบูตและทำงานได้เหมือนกับบนฮาร์ดแวร์จริง ระบบปฏิบัติการของเครื่องเสมือนจะทำงานในสภาพแวดล้อมที่จำกัด กล่าวคือ ไม่ได้ทำงานบนโฮสต์โดยตรง และสามารถเข้าถึงทรัพยากรของโฮสต์ได้ผ่านทางโปรแกรมจำลองเท่านั้น
- คุก:ข้อจำกัดในการเข้าถึงเครือข่าย และเนมสเปซของระบบไฟล์ที่ถูกจำกัด คุกมักใช้ใน การโฮส ติ้งเสมือน[ 11 ]
- การดำเนินการตามกฎช่วยให้ผู้ใช้ควบคุมได้อย่างเต็มที่ว่ากระบวนการใดจะเริ่มต้น สร้างขึ้น (โดยแอปพลิเคชันอื่น) หรือได้รับอนุญาตให้แทรกโค้ดลงในแอปพลิเคชันอื่นและเข้าถึงเครือข่ายได้ โดยระบบจะกำหนดระดับการเข้าถึงสำหรับผู้ใช้หรือโปรแกรมตามชุดของกฎที่กำหนดไว้[ 12 ]นอกจากนี้ยังสามารถควบคุมความปลอดภัยของไฟล์/รีจิสทรี (โปรแกรมใดสามารถอ่านและเขียนไปยังระบบไฟล์/รีจิสทรีได้) ในสภาพแวดล้อมเช่นนี้ ไวรัสและโทรจันจะมีโอกาสน้อยลงในการแพร่เชื้อไปยังคอมพิวเตอร์ เฟรมเวิร์กความปลอดภัย SELinuxและApparmor เป็นสอง ตัวอย่างของการใช้งานดังกล่าวสำหรับLinux
- นักวิจัยด้านความปลอดภัยพึ่งพาเทคโนโลยีแซนด์บ็อกซ์อย่างมากในการวิเคราะห์พฤติกรรมของมัลแวร์ ด้วยการสร้างสภาพแวดล้อมที่เลียนแบบหรือจำลองเดสก์ท็อปเป้าหมาย นักวิจัยสามารถประเมินได้ว่ามัลแวร์แพร่เชื้อและบุกรุกโฮสต์เป้าหมายได้อย่างไร บริการ วิเคราะห์มัลแวร์ จำนวนมาก ใช้เทคโนโลยีแซนด์บ็อกซ์เป็นพื้นฐาน[ 13 ]
- Google Native Clientเป็นแซนด์บ็อกซ์สำหรับเรียกใช้โค้ด C และ C++ ที่คอมไพล์แล้วในเบราว์เซอร์ได้อย่างมีประสิทธิภาพและปลอดภัย โดยไม่ขึ้นอยู่กับระบบปฏิบัติการของผู้ใช้[ 14 ]
- ระบบ ความสามารถ (Capability systems) อาจมองได้ว่าเป็นกลไกการจำกัดสิทธิ์แบบละเอียด (fine-grained sandboxing mechanism) ซึ่งโปรแกรมจะได้รับโทเค็นที่ไม่โปร่งใสเมื่อถูกสร้างขึ้น และมีความสามารถในการทำสิ่งต่างๆ ที่เฉพาะเจาะจงตามโทเค็นที่โปรแกรมนั้นถืออยู่ การใช้งานระบบความสามารถสามารถทำงานได้ในหลายระดับ ตั้งแต่ระดับเคอร์เนล (kernel) ไปจนถึงระดับผู้ใช้ (user-space) ตัวอย่างของการจำกัดสิทธิ์ระดับผู้ใช้โดยใช้ระบบความสามารถ ได้แก่ การแสดงผล HTML ในเว็บเบราว์เซอร์ไม่ว่าจะเป็นChromiumหรือWebKitก็ตาม
- โหมดการประมวลผลที่ปลอดภัย (seccomp)โหมดเข้มงวด seccomp อนุญาตเฉพาะการเรียกใช้ระบบ
write(),read(),exit(), และ เท่านั้นsigreturn() - HTML5มีแอตทริบิวต์ "sandbox" สำหรับใช้กับ iframe [ 15 ]
- เครื่องเสมือน Java (Java virtual machines)มีระบบแซนด์บ็อกซ์เพื่อจำกัดการทำงานของโค้ดที่ไม่น่าเชื่อถือ เช่น แอปเพล็ ตJava
- .NET Common Language Runtimeมีระบบรักษาความปลอดภัยการเข้าถึงโค้ด (Code Access Security ) เพื่อบังคับใช้ข้อจำกัดกับโค้ดที่ไม่น่าเชื่อถือ
- การแยกความผิดพลาดของซอฟต์แวร์ (SFI) [ 16 ]อนุญาตให้เรียกใช้โค้ดเนทีฟที่ไม่น่าเชื่อถือโดยการสร้างแซนด์บ็อกซ์คำสั่งแอสเซมบลีสำหรับการจัดเก็บ อ่าน และกระโดดทั้งหมดไปยังส่วนของหน่วยความจำที่แยกออกจากกัน
ตัวอย่างการใช้งานแซนด์บ็อกซ์บางส่วน ได้แก่:
- ระบบ ตัดสินออนไลน์สำหรับทดสอบโปรแกรมในการแข่งขันเขียนโปรแกรม
- บริการวางโค้ดรุ่นใหม่ที่ช่วยให้ผู้ใช้สามารถเรียกใช้โค้ด ที่วางไว้ บนเซิร์ฟเวอร์ของบริการนั้นได้
ดูเพิ่มเติม
- คุก FreeBSD
- Qubes OSใช้ระบบแซนด์บ็อกซ์ที่เข้มงวด โดยใช้เทคโนโลยีเวอร์ชวลไลเซชันXen hypervisor
- แซนด์บ็อกซี่
- seccomp
- แท่นทดสอบ
- ทอร์ (เครือข่ายนิรนาม)
ลิงก์ภายนอก
- ความปลอดภัยเชิงลึกสำหรับซอฟต์แวร์ Linux: การป้องกันและลดความเสี่ยงจากช่องโหว่ด้านความปลอดภัย
- Sandbox – โครงการ Chromium
- หน้าคู่มือ FreeBSD capsicum(4) – ความสามารถของระบบปฏิบัติการน้ำหนักเบาและกรอบงานแซนด์บ็อกซ์
- หน้าคู่มือ OpenBSD pledge(2) – วิธีการจำกัดการทำงานของระบบ
- ความสำคัญของการทดสอบแซนด์บ็อกซ์เก็บถาวรเมื่อ 2021-04-26 ที่Wayback Machineความสำคัญของแซนด์บ็อกซ์ในช่องโหว่ Zero Day
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ แซนด์บ็อกซ์ (ความปลอดภัยทางคอมพิวเตอร์)
ใน ด้านความปลอดภัยของคอมพิวเตอร์ แซ นด์บ็อกซ์ เป็นกลไกความปลอดภัยสำหรับการแยกโปรแกรมที่กำลังทำงาน โดยปกติแล้วมีจุดประสงค์เพื่อลดความล้มเหลวของระบบและ/หรือ ช่องโหว่ ของซอฟต์แวร์...
การนำไปใช้
แซนด์บ็อกซ์ถูกนำไปใช้โดยการเรียกใช้ซอฟต์แวร์ในสภาพแวดล้อมระบบปฏิบัติการที่จำกัด ซึ่งควบคุมทรัพยากร (เช่น ตัวอธิบายไฟล์ หน่วย ความจำ พื้นที่ระบบไฟล์ ฯลฯ) ที่กระบวนการอาจใช้ได้ [ 4 ]
ดูเพิ่มเติม
คุก FreeBSD Qubes OS ใช้ระบบแซนด์บ็อกซ์ที่เข้มงวด โดยใช้เทคโนโลยีเวอร์ชวลไลเซชัน Xen hypervisor แซนด์บ็อกซี่ seccomp แท่นทดสอบ ทอร์ (เครือข่ายนิรนาม)
ลิงก์ภายนอก
ความปลอดภัยเชิงลึกสำหรับซอฟต์แวร์ Linux: การป้องกันและลดความเสี่ยงจากช่องโหว่ด้านความปลอดภัย Sandbox – โครงการ Chromium หน้าคู่มือ FreeBSD capsicum(4) – ความสามารถของระบบปฏิบัติการน้ำหนักเบาและกรอบงานแซนด์บ็อกซ์ หน้าคู่มือ OpenBSD pledge(2) –...