ทำไม chroot ถึงไม่ปลอดภัย?


12

ฉันเล่นกับกล่อง CentOS มาสองสามปีแล้ว ดังนั้นฉันจึงค่อนข้างสบายกับเทอร์มินัล อย่างไรก็ตามฉันอ่านบล็อกโพสต์จำนวนมากโดยอ้างว่า chroot ไม่ปลอดภัยและจำนวนโพสต์เหล่านั้นน่ากลัว เป็นเช่นนั้นจริงเหรอ? ทำไม?

ฉันใช้ chroot เพื่อล็อคผู้ใช้ SFTP เท่านั้นในบริบทเฉพาะโดยไม่มีเชลล์หรือคำสั่งใด ๆ เลย จริงๆแล้วปัญหาด้านความปลอดภัยกับสิ่งนั้นคืออะไร?

คำถามที่ถูกเนรเทศออกจากStackOverflow


1
ครั้งแรก: คำถามไม่ได้ถูกปิด / ย้ายไปที่Stack Overflowแต่เป็น OT อย่างชัดเจน การกระทำที่เหมาะสมจะเป็นการรอจนกว่าจะมีการโยกย้ายหรือตั้งค่าสถานะและขอให้ mod ทำไม่ข้ามโพสต์ในเว็บไซต์อื่น แต่ข้อที่สอง: ถ้าคุณ "เล่นกับ CentOS" คุณก็ผิดที่นี่เช่นกัน เว็บไซต์นี้มีไว้สำหรับผู้บริหารระบบมืออาชีพมือสมัครเล่นไม่ได้ - โปรดดูคำถามที่พบบ่อย
สเวน

2
@SevenW ขอบคุณฉันจะจำเคล็ดลับของคุณในอนาคต และเกี่ยวกับ 'วินาที' ดีขอโทษ แต่ฉันไม่เห็นว่าคำถามของฉันละเมิดคำถามที่พบบ่อยอย่างไร หลังจากอ่านมันสองครั้งฉันสามารถพูดได้ว่าไม่ จากวลี "เล่นกับ CentOS" ฉันคิดว่ามันค่อนข้างชัดเจนว่าผู้ใช้ chrooting และ SFTP เท่านั้นและการพิจารณาเกี่ยวกับความปลอดภัยเป็นหัวข้อที่สำคัญมากที่ผู้เชี่ยวชาญสามารถได้รับประโยชน์จากองค์กรของพวกเขาหรือในที่อื่น ๆ " สภาพแวดล้อม "มืออาชีพ"
Aleksandr Makov

1
@sven ในกรณีที่คุณไม่รู้ SF ถูกลบออกจากรายการโยกย้ายของ SO เนื่องจากมีคำถามที่ไม่ดีจำนวนเท่าใดที่พวกเขาส่งมาให้เรา
MDMarra

คำตอบ:


9

เพราะในกรณีส่วนใหญ่กระบวนการรูทสามารถออกจาก chroot ได้อย่างง่ายดาย นี่คือการออกแบบเนื่องจาก chroot ไม่เคยตั้งใจให้เป็นอุปกรณ์ความปลอดภัย

Alan Cox ค่อนข้างมีชื่อเสียงว่าเป็นนักพัฒนาที่ส่งเคอร์เนลแพทช์ไปที่ "แก้ไข" พฤติกรรมนี้โดยอ้างว่า chroot ถูกใช้เป็นอุปกรณ์ความปลอดภัย แต่ก็ไม่เคยตั้งใจที่จะเป็นหนึ่งเดียว


ที่สมบูรณ์แบบ! ขอบคุณมาก. ดังนั้นนี่คือเรื่องของกระบวนการรูทที่มีอยู่ในรูทหรือสามารถเข้าถึงได้จากมัน ขอบคุณ
Aleksandr Makov

ฉันเพิ่งตรวจสอบแล้วว่าการรันโปรแกรม C ที่แสดงบนunixwiz.net/techtips/mirror/chroot-break.htmlในฐานะ root บน Linux 4.18 เป็นไปได้ที่จะหลบหนี chroot
pts

ดังนั้นอย่าแจกจ่ายสิทธิ์พิเศษรูท แม้แต่ระบบ "ปลอดภัย" ทั่วไปก็มีบัญชีรูท
Cees Timmerman

6

ฉันรู้อย่างน้อยหนึ่งตัวอย่างว่าทำไมจึงถือว่าไม่ปลอดภัย สภาพแวดล้อม chroot /procไม่ได้แยกดังนั้นจึงค่อนข้างง่ายในการเข้าถึงทรัพยากรที่ไม่ได้เป็นเจ้าของโดยกระบวนการที่เริ่มต้นใน chroot ของคุณ

การใช้สภาพแวดล้อม chrooted สำหรับ SFTP นั้นดีและปรับปรุงระดับความปลอดภัยอย่างมีนัยสำคัญ อย่าทำผิดเป็นการใช้ระบบเสมือนบนตู้คอนเทนเนอร์ซึ่งให้ความปลอดภัยในระดับที่มากกว่า ในนี้ฉันขีดเส้นใต้สิ่งที่อยู่ในคำตอบของ @ MDMarra


ขอบคุณ. ดังนั้นตอนนี้มันชัดเจนมากขึ้น chroot นั้นไม่ปลอดภัย แต่ความปลอดภัยขึ้นอยู่กับสภาพแวดล้อมที่ติดตั้ง
Aleksandr Makov

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

MDMarra ดังนั้นโดยทั่วไป chroot ไม่ได้มีไว้สำหรับการจับการเชื่อมต่อ SSH จากนั้นในความคิดของคุณ "chrooting การเชื่อมต่อ SSH ขาเข้า" เสียงค่อนข้างไม่เป็นมืออาชีพกับคุณและควรหลีกเลี่ยง?
Aleksandr Makov

ไม่ไม่จำเป็นเพียงแค่ตระหนักว่าการหาประโยชน์ใด ๆ ที่อาจนำไปสู่การยกระดับสิทธิ์หรือกระบวนการใด ๆ ที่ทำงานในฐานะรูทใน chroot จะไม่สำคัญที่จะแยกออกจากกัน แน่นอนมันอาจเป็นชิ้นส่วนในปริศนา แต่มันไม่ควรเป็นเรื่องทั้งหมด
MDMarra
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.