ข้อความเคอร์เนลต่อไปนี้หมายความว่าอย่างไร


12

ข้อความต่อไปนี้ปรากฏขึ้น / var / log / ข้อความหมายความว่าอะไร?

  Feb 19 22:51:20  kernel: [  187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0)

มันเกิดขึ้นเมื่องาน cron กำลังจะทำงาน


คำตอบ:


9

กระบวนการที่มีสิทธิ์พิเศษสามารถถูกหลอกให้เขียนทับไฟล์สำคัญ (/ etc / passwd, / etc / shadow ฯลฯ ) โดยชี้ symlink ที่มัน ตัวอย่างเช่นหากคุณรู้ว่ารูทจะรันโปรแกรมที่สร้างไฟล์ใน / tmp คุณสามารถวางกับดักโดยคาดเดาว่าชื่อไฟล์จะเป็นแบบใด (โดยปกติแล้ว / tmp / fooXXX โดยที่ foo เป็นชื่อโปรแกรมและ XXX เป็น ID กระบวนการ) และเติม / tmp โดยผู้สมัครที่มีแนวโน้มชี้ไปที่ / etc / shadow ในภายหลังรูทจะเปิดไฟล์ใน / tmp ตัดทอนและเขียนทับ / etc / shadow และไม่มีใครสามารถเข้าสู่ระบบได้อีกต่อไป มีการโจมตีที่เกี่ยวข้องที่ใช้ประโยชน์จากสภาพการแข่งขันระหว่างการตรวจสอบการมีอยู่ของไฟล์ temp และการสร้างไฟล์

มีวิธีที่จะหลีกเลี่ยงปัญหานี้รวมถึงการใช้อย่างระมัดระวังของ mktemp () และ mkstemp () แต่ผู้เขียนโปรแกรมและผู้ใช้ทั้งหมดจะไม่ตระหนักถึงความเสี่ยงนี้ เป็นผลให้มีการเสนอแพตช์เคอร์เนล Linux เมื่อเร็ว ๆ นี้และเห็นได้ชัดว่ามันถูกนำไปใช้กับเคอร์เนลที่คุณใช้ แพตช์ป้องกันการเชื่อมโยงสัญลักษณ์ต่อไปนี้ในหนึ่งในสถานการณ์ทั่วไปที่ลิงก์ที่เป็นอันตรายอาจถูกสร้างขึ้น: ไดเรกทอรีที่เขียนได้ทั่วโลกพร้อมชุดบิตเหนียวซึ่งเป็นวิธี / tmp ถูกกำหนดค่าตามปกติในระบบ Unix แทนที่จะติดตาม symlink การเรียกใช้ระบบที่พยายามล้มเหลวด้วย EACCES และเคอร์เนลจะบันทึกข้อความที่คุณเห็น

บางคนพูดคุยเกี่ยวกับลิสต์การส่งเมลเคอร์เนล

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