ฉันต้องการเรียกใช้โปรแกรมที่ไม่น่าเชื่อถือขนาดเล็ก แต่ จำกัด พวกเขาจากการเข้าถึงไฟล์ใด ๆ นอกโฟลเดอร์การเข้าถึงเครือข่ายและทุกอย่างที่พวกเขาไม่ต้องการจริงๆ วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คืออะไร?
ฉันต้องการเรียกใช้โปรแกรมที่ไม่น่าเชื่อถือขนาดเล็ก แต่ จำกัด พวกเขาจากการเข้าถึงไฟล์ใด ๆ นอกโฟลเดอร์การเข้าถึงเครือข่ายและทุกอย่างที่พวกเขาไม่ต้องการจริงๆ วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คืออะไร?
คำตอบ:
หากพวกเขาไม่น่าเชื่อถือจริงๆและคุณต้องการให้แน่ใจว่าคุณได้ตั้งค่ากล่องแยกต่างหาก ทั้งจริงหรือจริง
นอกจากนี้คุณไม่ต้องการให้กล่องนั้นอยู่ในเครือข่ายเดียวกับสิ่งสำคัญของคุณหากคุณหวาดระแวงมากพอ ในโซลูชันทั้งหมดคุณจะตั้งค่าผู้ใช้แยกต่างหากโดยไม่มีสิทธิ์ดังนั้นอย่าเปิดเครื่องมือมากเกินไปสำหรับผู้ประนีประนอม
หากคุณมีข้อผูกมัดกับการใช้งานบนกล่องเดียวกันคุณมีตัวเลือกนี้เช่นกัน
chroot
. นี่เป็นตัวเลือกเริ่มต้นสำหรับการทำเช่นนี้กับผู้คนจำนวนมากและสำหรับภัยคุกคามที่ไม่เฉพาะเจาะจงมันอาจทำงานได้ แต่ไม่ใช่ตัวเลือกความปลอดภัยและสามารถแตกออกได้ค่อนข้างง่าย ฉันขอแนะนำให้ใช้สิ่งนี้ตามที่ตั้งใจไว้ไม่ใช่เพื่อความปลอดภัยในท้ายที่สุดคุณอาจจะต้องตั้งค่ารูปแบบการ sandboxing chroot
เฉพาะโดยไม่ต้องยุ่งยากในการทำงานแบบเสมือนหรือแยกต่างหากกล่องหรือยังที่มีความเสี่ยงของสถานการณ์ ฉันสงสัยว่านี่คือสิ่งที่คุณหมายถึง แต่ดูที่ลิงค์นี้สำหรับข้อมูลเชิงลึกเพิ่มเติม
Firejailค่อนข้างใหม่และมีการพัฒนาอย่างต่อเนื่อง ง่ายต่อการใช้.
คุณสามารถ:
sudo apt-get install firejail
firejail app
นักเทียบท่าจะช่วยคุณในการตั้งค่าคอนเทนเนอร์ที่คุณสามารถเรียกใช้จากเคอร์เนลปัจจุบันของคุณ แต่ยังเก็บอยู่ห่างจากส่วนที่เหลือของระบบของคุณ ดูเหมือนว่าจะทันสมัย แต่มี Ubuntu มุ่งเน้นเอกสารที่ดี
ทางออกหนึ่งที่เป็นไปได้คือซอฟต์แวร์การจำลองเสมือนเช่น VirtualBox ซึ่งคุณสามารถค้นหาได้ในศูนย์ซอฟต์แวร์
ตอนนี้คุณสามารถติดตั้งซอฟต์แวร์ที่คุณไม่เชื่อถือเพื่อดูว่ามันทำอะไร มันไม่สามารถทำให้โลกภายนอกไม่สบายใจหรือคุณโฮสต์ OS เพราะมันไม่สามารถเข้าถึงได้
มันอาจทิ้งเครื่องเสมือนของคุณ แต่ถ้าคุณสามารถกู้คืนจากสแน็ปช็อตของคุณได้
อาจมีวิธีอื่นเพื่อ จำกัด พลังการทำลายล้างของซอฟต์แวร์ที่ไม่น่าเชื่อถือ แต่นี่เป็นวิธีที่แข็งแกร่งที่สุดที่ฉันสามารถนึกได้
ตัวเลือกอื่นอาจเป็นLXCข้อมูลเพิ่มเติมที่นี่
LXC เป็นแพ็คเกจควบคุมผู้ใช้สำหรับ Linux Containers ซึ่งเป็นกลไกระบบเสมือนที่บางเบาซึ่งบางครั้งเรียกว่า“ chroot on steroids”
LXC สร้างขึ้นจาก chroot เพื่อใช้ระบบเสมือนที่สมบูรณ์เพิ่มการจัดการทรัพยากรและกลไกการแยกไปยังโครงสร้างพื้นฐานการจัดการกระบวนการที่มีอยู่ของ Linux
มีอยู่ในศูนย์ซอฟต์แวร์ อย่างไรก็ตามฉันไม่มีประสบการณ์
Mbox เป็นกลไก sandbox ที่มีน้ำหนักเบาซึ่งผู้ใช้สามารถใช้โดยไม่มีสิทธิ์พิเศษในระบบปฏิบัติการชุดสินค้า
ฉันใช้มันสองสามอย่างเชื่อถือได้
คุณสามารถใช้ subuser เพื่อแซนด์บ็อกซ์แอปพลิเคชันของคุณด้วย Docker สิ่งนี้ช่วยให้คุณทำสิ่งต่าง ๆ เช่นแอป sandbox GUI ซึ่งไม่สะดวกในการใช้ Docker โดยตรง
sudo apt install subuser
ฉันคิดว่าทางออกที่เป็นไปได้คือการสร้างผู้ใช้แยกต่างหากเพื่อวัตถุประสงค์ในการทดสอบและ จำกัด สิทธิ์ของเขา ด้วยวิธีนี้คุณจะไม่สูญเสียประสิทธิภาพการทำงานสิ่งที่จะเกิดขึ้นในเครื่องเสมือนจริง แต่ฉันคิดว่ามันปลอดภัยน้อยกว่าหากไม่ได้ตั้งค่าอย่างถูกต้องซึ่งฉันไม่สามารถให้คำแนะนำเกี่ยวกับวิธีการได้
ในกรณีที่คุณเพียงต้องการ sandbox กิจกรรมของผู้ใช้คุณสามารถใช้ "DoSH"
DoSH (ซึ่งย่อมาจาก Docker SHell) เป็นการพัฒนาเพื่อสร้างคอนเทนเนอร์ Docker เมื่อผู้ใช้ล็อกอินในระบบ Linux และรันเชลล์ลงในพวกเขาแทนที่จะสร้างเชลล์อย่างสมมาตร