ไทย

เครื่องมือสำหรับนักพัฒนา · เครื่องคิดเลข Chmod

สิ่งที่ chmod ไม่สามารถแสดงได้: ความสามารถ, ไฟล์ที่ไม่เปลี่ยนรูป และ MAC

· พื้นหลัง

chmod ยูนิกซ์ การควบคุมการเข้าถึง

ขีดจำกัดเกินบิตของโหมดที่แสดงเป็นไดอะแกรมบิตสิทธิ์ Unix ที่แตกต่างกัน
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

บิตของโหมดเป็นหนึ่งในหลายเลเยอร์ที่ตัดสินว่าการดำเนินการจะสำเร็จหรือไม่ โพสต์นี้จะแนะนำคุณสมบัติอื่นๆ (ความสามารถของไฟล์, ธง Chattr, SELinux และ AppArmor) และวิธีการจดจำการปฏิเสธของแต่ละคน

รูทไม่สามารถเขียนไฟล์ 644 ได้ โหมดบอกว่าใช่ chmod ไม่เปลี่ยนแปลงอะไรเลย และข้อผิดพลาดยังคงอยู่

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

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

การดำเนินการที่เข้ากันได้กับโหมดยังคงล้มเหลวสำหรับเลเยอร์ที่เครื่องมือนี้ไม่สามารถมองเห็นได้

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

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

เครื่องคิดเลขไม่ได้สร้างแบบจำลองการเรียงลำดับระหว่างเลเยอร์การบังคับใช้ภายนอก

ความสามารถของไฟล์อยู่นอกเหนือหลักฐานที่มีอยู่ การใช้งานไม่มีชื่อความสามารถ ตัวแยกวิเคราะห์ข้อมูล คำสั่งการตรวจสอบ หรือบัญชีของการโต้ตอบกับ setuid มันสามารถเข้ารหัส setuid เป็น 4000 และอธิบายไฟล์ปกติที่ปฏิบัติการได้ นั่นไม่ควรเป็นการเปรียบเทียบกับระบบสิทธิพิเศษที่มีรายละเอียดปลีกย่อยกว่าที่พื้นที่เก็บข้อมูลนี้ไม่ใช่ทั้งแบบจำลองหรือเอกสาร

สิ่งที่เพจพิสูจน์ให้เห็นเป็นรูปธรรม โหมด 4755 กลายเป็น rwsr-xr-x ชื่อสรุป setuid และการมอบหมายต่อท้าย u+s โหมด 4644 ใช้ตัวพิมพ์ใหญ่ S เนื่องจากเจ้าของการดำเนินการไม่มีอยู่ เผยให้เห็นชุดค่าผสมที่เรียกว่าเกือบเข้าใจผิดเสมอ การทดสอบจะสร้างข้อเท็จจริงของโหมดเหล่านั้น เครื่องมือภายนอกจะต้องพิจารณาว่ามีความสามารถ อนุญาตการเข้าถึง หรือเสนอการออกแบบที่ดีกว่าหรือไม่

ความสามารถของไฟล์อยู่นอกชุดแหล่งที่มา

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

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

แอ็ตทริบิวต์ที่ไม่เปลี่ยนรูปและแบบต่อท้ายเท่านั้นอยู่นอกชุดซอร์ส

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

ตัวเลือกไฟล์หรือไดเร็กทอรีช่วยเสริมขอบเขตนี้ โดยจะเปลี่ยนคำกริยา เช่น เรียกใช้ แสดงรายการ สร้าง ลบ ป้อน และเข้าถึง แต่ไม่เปลี่ยนแปลงจำนวนเต็มหรืออ่านป้ายกำกับนโยบาย โปรแกรม 755 และไดเร็กทอรีใช้ rwxr-xr-x ร่วมกันในขณะที่อธิบายการดำเนินการทั่วไปต่างๆ ไม่มีคำอธิบายใดที่คาดการณ์ผลลัพธ์ของนโยบายบังคับได้ ดังนั้นให้คงโหมดที่ตรวจสอบแล้วและปรึกษาบันทึกของแพลตฟอร์ม

บริบทและบันทึกการควบคุมการเข้าถึงที่บังคับอยู่นอกชุดแหล่งที่มา

โหมดที่ให้มาไม่สามารถเปิดเผยตัวเลือกการเมานท์ได้ เครื่องคิดเลขยอมรับข้อความฐานแปดหรือสัญลักษณ์และเส้นทางเสริมที่ใช้สำหรับการแสดงคำสั่งเท่านั้น มันไม่เคยเปิดเส้นทางนั้น ระบุการเมานต์ หรืออ่านการกำหนดค่า แหล่งที่มาแสดงรายการพฤติกรรมแบบอ่านอย่างเดียว ไม่มีการดำเนินการ และไม่มีการตั้งค่าเป็นข้อกังวลภายนอก แต่ไม่มีรายละเอียดแพลตฟอร์มสำหรับการวิเคราะห์นโยบายเหล่านั้น

ข้อความที่สร้างขึ้นอาจมีโหมดฐานแปด เส้นทางที่ยกมา และแสดงแฟล็ก -R แต่ก็ไม่มีใครพิสูจน์ได้ว่าระบบไฟล์จะปฏิบัติตามคำขอนี้ แม้แต่ค่าบิตพิเศษที่การเดินทางไปกลับอย่างสมบูรณ์แบบอาจไม่ได้ผลภายใต้กฎที่มองไม่เห็น ปฏิบัติต่อคำสั่งเสมือนเป็นสิ่งประดิษฐ์การตรวจสอบ จากนั้นตรวจสอบระบบไฟล์เป้าหมายก่อนที่จะอ้างสิทธิ์การเปลี่ยนแปลงสิทธิ์หรือดำเนินการได้

ไม่พบตัวเลือกการเมานต์จากโหมดที่ให้มา

เนมสเปซและตัวกรอง syscall ไม่ปรากฏในโมเดลโหมด อินพุตไม่มีข้อมูลประจำตัวของกระบวนการ บริบทของคอนเทนเนอร์ รายการ syscall หรือการกำหนดค่ารันไทม์ เพจไม่สามารถทราบได้ว่ากระบวนการเห็นเส้นทางเดียวกัน เข้าถึงออบเจ็กต์ที่คาดหวัง หรือมีการกรองการโทรหรือไม่ คำถามเหล่านั้นแตกต่างโดยพื้นฐานจากการเพิ่ม 4, 2 และ 1 ภายในสิทธิ์สามเท่า

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

เนมสเปซและตัวกรอง syscall จะไม่ถูกนำเสนอ

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

ต่อด้วยหลักฐานจากระบบจริงเท่านั้น ไม่พบความเป็นเจ้าของ, ACL, คุณลักษณะ, นโยบายบังคับ, การเมาท์, ความสามารถ, เนมสเปซ, ตัวกรอง และกฎของแอปพลิเคชันที่นี่ การแสดงตัวอย่างจะไม่อ่านหรือเปลี่ยนแปลงไฟล์ ข้อสรุปที่มีระเบียบวินัยนั้นแคบ: ชำระเลขคณิตของโหมดที่ให้มาภายในเครื่อง จากนั้นตรวจสอบการบังคับใช้ภายนอกแทนที่จะวนผ่านค่า chmod ที่กว้างขึ้นโดยไม่ทราบถึงการปฏิเสธ