sandboxing คืออะไรและวิธีการ sandbox โปรแกรม

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

ในโลกคอมพิวเตอร์ปัญหาเดียวกันนี้เกิดขึ้นกับโปรแกรมต่างๆ โปรแกรมที่ทำงานบนคอมพิวเตอร์ของคุณแบ่งปันทรัพยากรของคอมพิวเตอร์เครื่องนั้น โปรแกรมทั้งหมดของคุณใช้ที่จัดเก็บข้อมูลแบบคงที่เช่นดิสก์ไดรฟ์หน่วยความจำเดียวกันและหน่วยประมวลผลกลาง (CPU) เดียวกัน เมื่อทรัพยากรทั่วไปเช่นนี้ถูกแชร์คุณสามารถจบลงด้วยปัญหาทราย โปรแกรมสิ้นสุดทั่วคอมพิวเตอร์ของคุณเพราะมันเขียนข้อมูลไปยังทุกส่วนของดิสก์เข้าถึงหน่วยความจำจากทุกพื้นที่ของหน่วยความจำของคุณและส่งคำขอไปยัง CPU พร้อมกับโปรแกรมอื่น ๆ เราเก็บทรายไว้ในกล่องทรายด้วยเหตุผลเดียวกันกับที่เราใช้โปรแกรมคอมพิวเตอร์ sandbox: เพื่อบรรจุทราย – หรือโปรแกรม – – เพื่อขอบเขตที่จัดการได้.

การออกแบบคอมพิวเตอร์ขั้นพื้นฐานช่วยให้ใช้ทรัพยากรร่วมกันได้ง่ายขึ้น ด้วยการอนุญาตให้โปรแกรมแชร์ทรัพยากรคอมพิวเตอร์ดูเหมือนว่าจะมีหลายงานและดูเหมือนจะทำหลายอย่างพร้อมกัน นี่เป็นพฤติกรรมที่เราต้องการจากคอมพิวเตอร์โทรศัพท์แท็บเล็ตและการเฝ้าดูในช่วงหลายปีที่ผ่านมา แต่ความสามารถเหล่านี้อาจทำให้เกิดผลข้างเคียงที่ไม่พึงประสงค์ โปรแกรมสามารถทำงานได้ไม่ดีและล้มเหลวหรือทำให้โปรแกรมอื่น ๆ ขัดข้อง พวกเขาสามารถพึ่งพาแอพพลิเคชั่นอื่น ๆ ในคอมพิวเตอร์ที่ขัดแย้งกับความต้องการของโปรแกรมอื่น และยิ่งโปรแกรมมีอันตรายมากขึ้นและพยายามเข้าถึงพื้นที่นอกขอบเขตเพื่อทำสิ่งที่ไม่ดี.

เบราว์เซอร์ sandboxing

เวิลด์ไวด์เว็บ (www) มีอยู่จริงในปี 1989 และเป็นครั้งแรกที่เบราว์เซอร์ที่ได้รับความนิยมอย่างแท้จริง Mosaic ได้ผลักดันให้อินเทอร์เน็ตกลายเป็นวัฒนธรรมยอดนิยม เว็บถูกออกแบบมาเพื่อแบ่งปันเอกสาร ไม่เคยได้รับการออกแบบมาเพื่อรองรับสิ่งที่เรามีอยู่ในขณะนี้: ระบบนำส่งทางอินเทอร์เน็ตซึ่งซอฟต์แวร์ทำงานในระบบคลาวด์ ช่องว่างระหว่างการออกแบบและการใช้งานจริงนี้สร้างโอกาสมากมายให้กับคนเลวที่จะใช้เว็บเบราว์เซอร์เป็นกลไกในการส่งมัลแวร์.

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

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

Google Chrome ได้รับการ sandboxed ตั้งแต่เริ่มต้น.
Mozilla Firefox ใช้เวลานานกว่าในการติดตั้งแซนด์บ็อกซ์ แต่ตอนนี้เกือบ 100% แล้ว.
Internet Explorer เปิดตัว sandboxing ระดับหนึ่งในปี 2549 ด้วย IE 7 และ Microsoft Edge sandbox กระบวนการทั้งหมดตอนนี้.
เบราว์เซอร์ Safari ของ Apple จะรันเว็บไซต์ในกระบวนการแยกกันเช่นกัน.

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

กล่องทรายด้วยตนเอง

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

เครื่องเสมือน

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

มีแอปพลิเคชั่นการจำลองเสมือนจำนวนมากซึ่งแต่ละแอปพลิเคชั่นนั้นมุ่งเน้นไปที่ประเภทการใช้งานเฉพาะ แอปพลิเคชั่นการจำลองเสมือนสำหรับเดสก์ท็อปที่เป็นที่นิยมและเป็นผู้ใหญ่ที่สุดที่ผู้ใช้ทั่วไปสามารถจัดการได้คือ VirtualBox และ Parallels.

พื้นหลัง: การจำลองเสมือนประกอบด้วยสองส่วนหลัก ระยะเวลา เจ้าภาพ อ้างถึงคอมพิวเตอร์จริงที่ใช้งานซอฟต์แวร์การจำลองเสมือน ระยะเวลา แขก อ้างถึงระบบปฏิบัติการที่ทำงานภายในแอปพลิเคชันการจำลองเสมือน.

VirtualBox

VirtualBox เป็นของ Oracle และมีลูกค้าสำหรับทุกระบบปฏิบัติการที่สำคัญ หลังจากติดตั้ง VirtualBox คุณสามารถสร้างเครื่องเสมือนโดยใช้ปุ่มใหม่ คุณจะต้องให้สื่อการติดตั้งระบบปฏิบัติการเพราะ VirtualBox ไม่ได้มาพร้อมกับสิ่งนั้น ลีนุกซ์รุ่นลีนุกซ์พบได้ง่ายบนอินเทอร์เน็ต – รายการที่ดีคือ distrowatch เว็บไซต์และสำหรับระบบปฏิบัติการที่เป็นกรรมสิทธิ์เช่น Windows คุณจะต้องมีแผ่นซีดีติดตั้งของคุณ.

Parallels

Parallels นั้นคล้ายกับ VirtualBox โดยมีข้อยกเว้นที่น่าสังเกตว่ามันทำงานบน macOS เท่านั้นและสร้างขึ้นเป็นพิเศษเพื่อใช้งาน Windows ในเครื่องเสมือน หากคุณกำลังมองหาชุดค่าผสมนั้นคือการใช้งาน Windows บนเดสก์ท็อป macOS ของคุณ Parallels อาจเป็นทางออกที่ดีที่สุดสำหรับคุณ Parallels ไม่ฟรี แต่มีการทดลองใช้ฟรี 30 วัน.

Sandboxie

คำขวัญของ Sandboxie คือ Trust No Program มันทำงานบน Windows เพียงอย่างเดียวและอ้างสิทธิ์ในการแยกโปรแกรมที่กำลังเรียกใช้ออกจากระบบปฏิบัติการพื้นฐาน แผงควบคุม Sandboxie ใช้เพื่อเสนอโปรแกรมเฉพาะเพื่อเรียกใช้ในแซนด์บ็อกซ์ โปรแกรมที่พบบ่อยที่สุดที่แสดงการคุกคามที่ใหญ่ที่สุดเช่นเบราว์เซอร์และโปรแกรมอีเมลจะแสดงรายการเป็นตัวเลือกการกำหนดค่าตามค่าเริ่มต้นและสามารถเพิ่มแอปพลิเคชันอื่น ๆ ได้ตามต้องการ.

ข้อมูลภายใน Sandboxie ถูกทำลายเมื่อปิด sandbox แต่มีความเป็นไปได้ที่จะกำหนดค่า sandboxie ให้ปล่อยให้ข้อมูลสำคัญไม่เปลี่ยนแปลง โฟลเดอร์ที่มีอีเมลและบุ๊กมาร์กเว็บเบราว์เซอร์เป็นตัวอย่างของข้อมูลที่สามารถอยู่รอดได้ด้วยการลบกล่องจดหมาย.

Sandboxie ถูกออกแบบมาสำหรับผู้ใช้ตามบ้านและสะท้อนให้เห็นในราคาที่ไม่แพง.

Qubes OS

QubesOS (ออกเสียงว่า “Cubes”) ควรกล่าวถึงเป็นพิเศษสำหรับ virtualization Qubes ใช้ Xen hypervisor แทน VirtualBox มันเปิดตัวระบบปฏิบัติการของแขกหลายคนและแต่ละคนก็แยกจากกัน วิธีนี้ช่วยให้การทำแซนด์บ็อกซ์ของแต่ละแอปพลิเคชั่นแต่ละตัวอยู่ในเครื่องเสมือนของตัวเองแทนที่จะเป็นเพียงแค่แซนด์บ็อกซ์ทั้งระบบปฏิบัติการแขก ความแตกต่างที่โดดเด่นของ QubesOS คือ Xen เป็นระบบปฏิบัติการของตัวเอง ไม่มีระบบปฏิบัติการ“ โฮสต์” ที่ทำงานภายใต้ ฉันเขียนเกี่ยวกับ Qubes และการแจกแจงลินุกซ์ที่ไม่เปิดเผยชื่ออื่น ๆ เพิ่มเติมที่นี่.

สละเวลาในการ sandbox ระบบของคุณสามารถให้การป้องกันที่มั่นคงต่อมัลแวร์หลายประเภทและช่วยในการพัฒนาซอฟต์แวร์ ไม่มีการใช้แทนความหวาดระแวงที่ดีต่อสุขภาพเมื่อใช้อินเทอร์เน็ต แต่การแยกแอปพลิเคชันที่มีความเสี่ยงมากขึ้นของคุณสามารถช่วยได้.

ประเภทของปัญหาโปรแกรมที่ไม่ใช่แซนด์บ็อกซ์อาจทำให้เกิด

โปรแกรมชนกัน

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

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

โปรแกรมที่มีการขึ้นต่อกันที่แตกต่างกัน

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

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

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

โปรแกรมเมอร์ส่วนใหญ่พยายามอย่างเต็มที่เพื่อให้มั่นใจ เข้ากันได้ย้อนหลัง, ซึ่งหมายความว่าแม้ว่าแอปพลิเคชันรุ่นที่ใหม่กว่าจะไม่มีฟังก์ชั่นที่เคยมีมาในอดีต แต่ก็ยังคงจัดการคำขอสำหรับฟังก์ชันนั้นได้อย่างงดงามเพื่อให้แอปพลิเคชันอื่น ๆ อย่างไรก็ตามมีข้อยกเว้นที่น่าสังเกตเช่น Java และ Python ที่รู้จักกันดีว่าทำงานได้ยากมากในระหว่างการอัพเกรด ในโลกลินุกซ์วลีที่รู้จักกันดี“ พึ่งพานรก” หมายถึงปัญหาที่เกิดขึ้นจากการอัพเดทระบบครั้งใหญ่ ในบางกรณีโปรแกรมการพึ่งพามีการขึ้นต่อกันของตัวเองและมันก็ไม่เคยได้ยินที่จะจบลงในสถานการณ์การอัพเกรดที่มันเป็นไปไม่ได้ที่จะตอบสนองต่อการพึ่งพาทั้งหมด ตัวอย่างเช่นหากโปรแกรม Puppy Vet Tracker ของฉันต้องการเวอร์ชัน 2.0 ของบางโปรแกรมที่ขึ้นต่อกัน แต่โปรแกรม Daily Star Wars Quote ของฉันต้องการเวอร์ชัน 1.0 ของโปรแกรมขึ้นอยู่กับโปรแกรมเดียวกันมันไม่สามารถตอบสนองความต้องการนั้นสำหรับทั้งสองโปรแกรม.

นักพัฒนามักประสบปัญหาประเภทนี้และการใช้แซนด์บ็อกซ์เป็นวิธีหนึ่งในการแก้ไขปัญหา การสร้างแซนด์บ็อกซ์และติดตั้ง Puppy Vet Tracker ของฉันลงในนั้นจะอนุญาตให้โปรแกรมที่ต้องพึ่งพาถูกอัพเกรดเป็นเวอร์ชั่น 2.0 ระบบคอมพิวเตอร์หลักจะยังคงอยู่กับโปรแกรมรุ่นที่ 1 และดังนั้นฉันยังสามารถรับใบเสนอราคา Star Wars ทุกวันได้ win-win.

โปรแกรมที่เป็นอันตราย

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

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

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

About the author