บันทึกทุก ๆ การร้องขอของโปรแกรม SUID ทุกครั้งหรือไม่


12

ฉันต้องการมีล็อกไฟล์ที่มีรายการทุกครั้งที่ผู้ใช้รันโปรแกรม suid ใด ๆ ที่มีชื่อผู้ใช้โปรแกรมและอาร์กิวเมนต์บรรทัดคำสั่งใด ๆ ที่ส่งผ่านไป มีวิธีมาตรฐานในการทำสิ่งนี้บน Linux หรือไม่?

คำตอบ:


7

คุณสามารถเข้าสู่ระบบสวดทั้งหมดของปฏิบัติการที่เฉพาะเจาะจง (setuid หรือไม่) ผ่านระบบย่อยการตรวจสอบ เอกสารค่อนข้างกระจัดกระจาย เริ่มต้นด้วยหน้าคน auditctlหรืออาจจะเป็นแบบฝึกหัดนี้ การแจกแจงครั้งล่าสุดจัดส่งauditdพัสดุภัณฑ์ ติดตั้งและตรวจสอบให้แน่ใจว่าauditddaemon กำลังทำงานอยู่จากนั้นทำ

auditctl -A exit,always -F path=/path/to/executable -S execve

และดูการโทรเข้าสู่ระบบ/var/log/audit/audit.log(หรือที่ใดก็ตามที่การกระจายของคุณตั้งค่านี้)


1
ฉันเดาว่าสามารถเขียนสคริปต์เพื่อรับไบนารี SUID ทั้งหมดพร้อมค้นหาแล้วใช้โซลูชันของคุณสำหรับแต่ละรายการ ไม่หรูหรา แต่ทำได้อย่างแน่นอน ขอบคุณ!
Kim

2
@ คิม: ฉันคิดว่าคุณสามารถบันทึกการร้องขอทั้งหมดของ setuid root ไบนารีโดยผู้ใช้ที่ไม่ใช่รูทโดยการแทนที่-F path=…ด้วย-F euid=0 -F 'uid!=0'หรืออะไรทำนองนั้น ฉันไม่สามารถเห็นเบ็ดในรหัส setxid เรียกโดยexecveมิได้เฉพาะ setxid ดูในระบบย่อยการตรวจสอบ หรือแน่นอนคุณสามารถเข้าสู่ระบบทุก ๆexecveหลังประมวลผล
Gilles 'หยุดความชั่วร้าย'

น่าสนใจ ไม่เคยได้ยินเรื่องนี้มาก่อน ฉันสงสัยว่ามันใช้กันอย่างแพร่หลาย Debian POPcon auditdไม่ได้มีรายการสำหรับ
Faheem Mitha

findคำสั่งเพื่อแสดงรายการไฟล์ SUID ทั้งหมด:find / -xdev \( -perm -4000 \) -type f -print

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