คำนำ
ฉันได้ยินผู้คนคงย้ำความเข้าใจผิดจากทั่วทุกมุมอินเทอร์เน็ต .. ดังนั้นฉันจะพยายามชี้แจงให้ฟัง
ก่อนออก; มีการค้นพบโดยบังเอิญกี่ครั้งซึ่งเกิดจากสาเหตุและผลกระทบถูกใช้เพื่อวัตถุประสงค์อื่นนอกเหนือจากที่ตั้งใจไว้
คืออะไรและอะไรคือคุก Chroot
Chroot ถูกออกแบบมาเพื่อเปลี่ยนไดเรกทอรีหลักสำหรับกระบวนการหรือผู้ใช้ (เหมาะสำหรับการรวบรวมซอฟต์แวร์จากแหล่งที่ไม่รู้จัก) สิ่งนี้ให้ความปลอดภัยกับระบบฐานเช่นเดียวกับอุปกรณ์ทดสอบเตียงอย่างรวดเร็วรวมถึงทำความสะอาดง่าย หลายปีผ่านไปและแนวคิดและการใช้งานโดยนัยก็เปลี่ยนไปเช่นกัน
chroot ถูกใช้อย่างมีประสิทธิภาพและอยู่ในฐานรหัสสำหรับหลาย ๆโปรแกรมและไลบรารี (เช่น openSSHd, apache2 + mod_security2 / mod_chroot, dovecot, sendmail, openVPN, pam_chroot และอื่น ๆ อีกมากมาย ) สมมติว่าแอพพลิเคชั่นหลักเหล่านี้ได้ติดตั้งระบบความปลอดภัยที่ผิดพลาดนั้นไม่เป็นความจริง
chroot เป็นวิธีแก้ปัญหาการจำลองเสมือนของระบบไฟล์: ไม่น้อยไปกว่านี้ไม่มีอะไรเพิ่มเติม การสันนิษฐานว่าคุณสามารถแยก chroot ออกจากกันได้อย่างง่ายดายนั้นไม่เป็นความจริง ... ตราบใดที่คุณปฏิบัติตามแนวทางของกระบวนการทำงานในคุก chroot
บางขั้นตอนในการรักษาความปลอดภัย chroot คุกของคุณ
นั่นคือไม่ได้เรียกใช้กระบวนการเป็นราก สิ่งนี้สามารถเปิดเวกเตอร์การเลื่อนระดับรูท (ซึ่งเป็นจริงทั้งในและนอก chroot) ห้ามรันกระบวนการภายใน chroot โดยใช้ผู้ใช้เดียวกันกับกระบวนการอื่นนอก chroot แยกแต่ละกระบวนการและผู้ใช้ออกเป็น Chroot ของตนเองเพื่อ จำกัด พื้นผิวการโจมตีและให้ความเป็นส่วนตัว ติดตั้งไฟล์ไลบรารีและอุปกรณ์ที่จำเป็นเท่านั้น ท้ายที่สุด chroot ไม่ใช่สิ่งทดแทนความปลอดภัยของระบบฐาน รักษาความปลอดภัยระบบอย่างครบถ้วน
หมายเหตุสำคัญอื่น ๆ :ผู้คนจำนวนมากคิดว่า OpenVZ เสียหรือว่ามันไม่เท่ากันเมื่อเทียบกับระบบเสมือนจริงเต็มรูปแบบ พวกเขาทำให้สมมติฐานนี้เพราะมันเป็น Chroot โดยมีตารางกระบวนการที่ผ่านการฆ่าเชื้อ ด้วยมาตรการรักษาความปลอดภัยในฮาร์ดแวร์และอุปกรณ์ ซึ่งส่วนใหญ่คุณสามารถใช้ใน chroot
ไม่ใช่ผู้ดูแลระบบทุกคนที่มีระดับความรู้ที่จำเป็นในการรักษาความปลอดภัยพารามิเตอร์เคอร์เนลที่จำเป็นทั้งหมดบนเซิร์ฟเวอร์เฉพาะหรือภายใต้ระบบเสมือนจริงเต็มรูปแบบ นี่หมายความว่าการปรับใช้ OpenVZ หมายความว่าลูกค้าของคุณจะมีพื้นผิวการโจมตีน้อยลงเพื่อพยายามปกปิดและปลอดภัยก่อนที่จะปรับใช้แอปพลิเคชันของตน โฮสต์ที่ดีจะทำงานได้ดีในการรักษาพารามิเตอร์เหล่านี้และในทางกลับกันสิ่งนี้จะดีกว่าสำหรับทุกคนใน Node หรือในศูนย์ข้อมูล แต่สำหรับอินเทอร์เน็ตโดยรวม ...
ตามที่ระบุไว้ chroot จัดเตรียมการจำลองเสมือนของระบบไฟล์ คุณต้องตรวจสอบให้แน่ใจว่าไม่มีไฟล์ปฏิบัติการที่เรียกใช้ setuid, แอปพลิเคชันที่ไม่ปลอดภัย, ห้องสมุด, การเชื่อมโยงที่ไม่มีเจ้าของห้อย ฯลฯ หากผู้โจมตีสามารถประนีประนอมผูกมัดพวกเขาจะต้องกัดเซาะระบบไฟล์เสมือน ในทางอื่นประนีประนอมบางสิ่งบางอย่างที่อาศัยอยู่ภายใน chroot- หนีคุกมักจะผ่านการเพิ่มสิทธิหรือฉีดของเขาหรือเธอเข้าสู่ระบบฐาน
ถ้าเกิดเหตุการณ์นี้มักจะผลของการปรับปรุงที่ไม่ดีเป็นศูนย์วันประโยชน์หรือผิดพลาดของมนุษย์สำนวน
เหตุใดจึงยังคงใช้ chroot เมื่อเทียบกับการจำลองเสมือนระบบเต็มรูปแบบ
พิจารณาสถานการณ์สมมตินี้: คุณกำลังเรียกใช้เซิร์ฟเวอร์ส่วนตัวเสมือนกับโหนดโฮสต์ที่ใช้ OpenVZ คุณไม่สามารถเรียกใช้สิ่งใดก็ได้ที่ทำงานในระดับเคอร์เนล นี่หมายความว่าคุณไม่สามารถใช้การจำลองเสมือนของระบบปฏิบัติการเพื่อแยกกระบวนการและให้ความปลอดภัยเพิ่มเติม ดังนั้นคุณต้องใช้ chroot เพื่อจุดประสงค์นี้
ยิ่งไปกว่านั้น chroot นั้นยั่งยืนในทุกระบบโดยไม่คำนึงถึงทรัพยากรที่มีอยู่ กล่าวง่ายๆก็คือมันมีค่าใช้จ่ายอย่างน้อยที่สุดของประเภทการจำลองเสมือนใด ๆ นี่หมายความว่ายังคงมีความสำคัญต่อกล่องระดับล่างจำนวนมาก
พิจารณาสถานการณ์อื่น: คุณมี apache ที่ทำงานอยู่ในสภาพแวดล้อมเสมือนจริง คุณต้องการแยกผู้ใช้แต่ละคน การจัดเตรียมระบบไฟล์เสมือนผ่าน chroot เพิ่มเข้าสู่ apache (mod_chroot, mod_security และอื่น ๆ ) จะเป็นตัวเลือกที่ดีที่สุดเพื่อให้มั่นใจถึงความเป็นส่วนตัวสูงสุดระหว่างผู้ใช้ สิ่งนี้ยังช่วยป้องกันการรวบรวมข้อมูลของ Intel และมอบความปลอดภัยอีกชั้นหนึ่ง
เพียงแค่ใส่ก็เป็นสิ่งสำคัญในการดำเนินการรักษาความปลอดภัยในชั้น Chroot อาจเป็นหนึ่งในนั้น ไม่ใช่ทุกคนและทุกระบบมีความหรูหราในการเข้าถึงเคอร์เนลดังนั้น chroot STILL จึงมีจุดประสงค์ มีแอปพลิเคชั่นที่หลากหลายซึ่งความเป็นจริงของระบบเต็มรูปแบบเป็นสิ่งที่เกินความจำเป็น
เพื่อตอบคำถามของคุณ
ฉันไม่ได้ใช้ CentOS เป็นพิเศษ แต่ฉันรู้ว่าตอนนี้ Bind จะลดสิทธิ์ของมันก่อนดำเนินการ ฉันจะถือว่าอย่างไรก็ตามการผูกนั้นถูก chrooted เนื่องจากประวัติของเวกเตอร์การโจมตีและช่องโหว่ที่อาจเกิดขึ้น
นอกจากนี้ ... มันเหมาะสมกว่าที่จะ chroot แอปพลิเคชันนี้โดยอัตโนมัติมากกว่าที่จะไม่เพราะทุกคนไม่สามารถเข้าถึงการจำลองเสมือนระดับระบบ / ระบบปฏิบัติการทั้งหมด สิ่งนี้ในทางกลับกันและในทางทฤษฎีช่วยให้มีความปลอดภัยแก่ฐานผู้ใช้ CentOS:
ผู้ให้บริการระบบปฏิบัติการไม่ได้คิดว่าทุกคนกำลังใช้ระบบเดียวกัน ด้วยวิธีนี้พวกเขาสามารถช่วยเพิ่มระดับความปลอดภัยให้มากขึ้น ...
มีเหตุผลว่าทำไมแอปพลิเคชันจำนวนมากใช้สิ่งนี้และทำไมระบบปฏิบัติการของคุณทำโดยค่าเริ่มต้น: เพราะมันถูกใช้เป็นคุณลักษณะด้านความปลอดภัยและมันทำงานได้ ด้วยการเตรียมอย่างระมัดระวังดังที่ได้กล่าวไว้ก่อนหน้านี้มันเป็นอุปสรรคอีกอย่างหนึ่งที่ผู้โจมตีที่มีศักยภาพจะต้องเอาชนะ - ส่วนใหญ่แล้วจะจำกัดความเสียหายที่ต้องทำกับคุก chroot เท่านั้น