มูลค่าที่แท้จริงของโมเดล MAC ใน Linux

Sep 12 2020

ฉันได้อ่านเกี่ยวกับ MAC เทียบกับ DAC ในอินเทอร์เน็ตแล้ว แต่ฉันยังไม่เข้าใจว่าการโจมตีแบบใดที่ไม่สามารถป้องกันได้หากใช้เพียงความสามารถ DAC + เมื่อเปรียบเทียบกับความสามารถของ MAC + DAC + หากกระบวนการไม่ทำงานในฐานะรูทและขาด CAP_DAC_OVERRIDE, CAP_FOWNER และความสามารถที่เป็นอันตรายอื่น ๆ กระบวนการจะไม่สามารถเอาชนะความเป็นเจ้าของที่กำหนดไว้แล้วและ ACL ของทรัพยากรที่ใช้ ในทางกลับกันถ้ากระบวนการทำงานในฐานะรูทและมี CAP_MAC_ADMIN ก็สามารถเขียนทับบริบทความปลอดภัยที่บังคับใช้โดย MAC

MAC จึงเป็น "ชั้นการป้องกันเพิ่มเติม" โดยไม่มีข้อได้เปรียบที่แท้จริงในระบบ Linux สมัยใหม่หรือไม่?

Update1ฉันจะเพิ่ม "คำตอบ" ของฉันให้กับอาร์กิวเมนต์เฉพาะที่นี่ ฉันถือว่าไม่มีกระบวนการใดที่รันในฐานะรูทและมีความสามารถที่ไม่จำเป็น (ยกเว้นกระบวนการ / สคริปต์เริ่มต้นระบบ)

อาร์กิวเมนต์ : คุณสามารถป้องกันเว็บเซิร์ฟเวอร์จากการเรียกใช้คำสั่งเชลล์โดยพลการ

คำตอบ : (การวางแอปพลิเคชันเว็บที่มีคอนเทนเนอร์ไว้ต่างหาก) เราสามารถเพิ่ม ACL ที่อนุญาตสำหรับคำสั่งทั้งหมดที่เซิร์ฟเวอร์ UID / GID สามารถเข้าถึงได้และการห้าม ACL ไปยังคำสั่งที่เหลือบนโฮสต์

อาร์กิวเมนต์ : ผู้ใช้สามารถมีไฟล์ที่มีสิทธิ์ 0777 [และปล่อยให้ทุกคนในระบบรั่วไหลเป็นหลัก]

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

คำตอบ

ManuelHerrera Sep 13 2020 at 23:06

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

Saustin Sep 21 2020 at 06:03

DAC ไม่ครอบคลุมสถานการณ์การอนุญาตด้านความปลอดภัยทั้งหมดที่อาจเกิดขึ้นกับ MAC ACL มีความยืดหยุ่นมากเมื่อเทียบกับ DAC

เพื่อความเรียบง่าย DAC อนุญาตให้คุณควบคุม rwx ได้ใช่ไหม? ด้วย DAC คุณสามารถมีความชัดเจนมากขึ้นและในการควบคุมระดับ syscall สิ่งที่อนุญาต ตัวอย่างเช่นคุณสามารถอนุญาตให้บุคคลอื่นต่อท้ายไฟล์ได้ แต่ไม่สามารถเขียนทับ / ลบไฟล์ได้