ที่ฉันสามารถทำได้
auditctl -a always,exit -S all -F pid=1234
ในการบันทึกการโทรของระบบทั้งหมดโดย pid 1234 และ:
auditctl -a always,exit -S all -F ppid=1234
สำหรับลูกหลานของฉัน แต่ฉันจะครอบคลุมเด็กผู้ยิ่งใหญ่และลูกหลานของพวกเขาได้อย่างไร (ปัจจุบันและอนาคต)
ฉันไม่สามารถพึ่งพา (e) uid / (e) gid ที่เปลี่ยนแปลงได้
(โปรดทราบว่าการใช้strace
ไม่ใช่ตัวเลือกอย่างใดอย่างหนึ่ง)
เคล็ดลับที่คุณอาจใช้ (อีกครั้งฉันไม่ทราบ specifics ของ auditd และไม่สามารถลองได้ในขณะนี้): ระบุตัวแปร environnement เฉพาะเมื่อเรียกใช้ parent สูงสุดและตรวจสอบกระบวนการทั้งหมดที่มีชุดตัวแปรนี้หรือไม่
—
Olivier Dulac
@ OlivierDulac ทำเครื่องหมายกระบวนการในบางวิธี (นั่นคือการสืบทอดจากเด็ก) เป็นสิ่งหนึ่งที่ฉันมีอยู่ในใจ แต่รายการสิ่งที่กฎการตรวจสอบสามารถจับคู่ได้นั้นค่อนข้างบาง (ไม่ใช่แม้แต่ sid, pgid ... ) อาจเป็น SELinux แต่ฉันไม่รู้สิ่งแรกเกี่ยวกับ SELinux อาจจะทำการเว้นวรรคชื่อ?
—
Stéphane Chazelas
บางทีผู้ปกครองสูงสุดสามารถอยู่ในกลุ่มกระบวนการของตัวเอง? ( en.wikipedia.org/wiki/Process_group )
—
Olivier Dulac
ฉันคิดว่าอาจใช้โปรแกรมของคุณในที่เก็บเฉพาะถ้านั่นเป็นตัวเลือกสำหรับคุณ หากฉันเข้าใจข้อผิดพลาดของเธรดนี้อย่างถูกต้องนั่นควรใช้กับเคอร์เนล≥3.13 อื่น ๆ กว่าที่ฉันไม่เห็นวิธีการอื่นที่ไม่ใช่ SELinux และใด ๆการตรวจสอบ UID AUID จะสามารถใช้ได้กับกรณีการใช้งานของคุณหรือไม่?
—
Gilles 'SO- หยุดความชั่วร้าย'
strace -s
^^ แต่แล้วฉันก็เห็นว่าใครกำลังถามและรู้ทันทีว่า "เขารู้แล้ว!") ... Stephane คุณช่วยได้ไหม อาจจะ: 1) สร้างรายการ pids โดยใช้ตัวเลือก "tree" ของ ps, 2) เรียกใช้ auditctl (s) บน pids ทั้งหมดที่อยู่ใน tree (เช่นคุณสามารถมีหลาย "pid = .... " หรือหลาย auditctl แต่ละต่อหนึ่งได้อย่างไร) หรือ "โง่" วิธี: auditctl ทุกอย่างและ egrep บางอย่างใน "pid | pid | pid" ถ้า พวกเขาปรากฏในแต่ละบรรทัด?) (ข้อแม้: ฉันไม่สามารถเข้าถึงลินุกซ์ atm ดังนั้นฉันจึงไม่ทราบว่าข้อมูลจะปรากฏขึ้นอย่างไร)