อัปเดต : มีอีก 2 สิ่งที่โผล่ขึ้นมาในความคิดเห็นและคำถามที่ตามมา:
- การใช้
auditd
วิธีนี้จะเพิ่มปริมาณการบันทึกของคุณอย่างมากโดยเฉพาะอย่างยิ่งหากระบบมีการใช้งานอย่างหนักผ่าน commandline ปรับนโยบายการเก็บบันทึกของคุณ
Auditd
บันทึกในโฮสต์ที่พวกเขาสร้างจะมีความปลอดภัยเท่ากับไฟล์อื่น ๆ ในกล่องเดียวกัน ส่งต่อบันทึกของคุณไปยังเซิร์ฟเวอร์รวบรวมบันทึกระยะไกลเช่น ELK หรือ Graylog เพื่อรักษาความสมบูรณ์ของบันทึกของคุณ นอกจากนี้เมื่อเพิ่มเข้าไปยังจุดด้านบนจะช่วยให้สามารถลบบันทึกเก่า ๆ ได้มากขึ้น
ตามที่ได้รับการแนะนำโดย Michael Hampton auditd
เป็นเครื่องมือที่ถูกต้องสำหรับงานที่นี่
ฉันทดสอบสิ่งนี้ในการติดตั้ง Ubuntu 12.10 ดังนั้นระยะของคุณอาจแตกต่างกันไปตามระบบอื่น ๆ
ติดตั้งauditd
:
apt-get install auditd
เพิ่ม 2 บรรทัดเหล่านี้ไปที่/etc/audit/audit.rules
:
-a exit, เสมอ -F arch = b64 -F euid = 0 -S execve
ออก -a เสมอ -F arch = b32 -F euid = 0 -S execve
สิ่งเหล่านี้จะติดตามคำสั่งทั้งหมดที่รันโดย root ( euid=0
) ทำไมต้องมีกฎสองข้อ? execve
syscall จะต้องได้รับการติดตามทั้งในรหัส 32 และ 64 บิต
ในทุกไฟล์ PAM การตั้งค่าที่เกี่ยวข้องกับการเข้าสู่ระบบ ( /etc/pam.d/{login,kdm,sshd}
) แต่ไม่ได้อยู่ในแฟ้มที่มีความเกี่ยวข้องกับหรือsu
sudo
นี้จะช่วยauditd
ให้ได้รับการใช้งานการโทรuid
อย่างถูกต้องเมื่อเรียกหรือsudo
su
$ id -u
1000
$ sudo ls /
bin data data dev และอื่น ๆ ในบ้าน
$ sudo su -
# ls / etc
[ ... ]
สิ่งนี้จะให้สิ่งนี้ใน/var/log/audit/auditd.log
:
----
time->Mon Feb 4 09:57:06 2013
type=PATH msg=audit(1359968226.239:576): item=1 name=(null) inode=668682 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1359968226.239:576): item=0 name="/bin/ls" inode=2117 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1359968226.239:576): cwd="/home/user"
type=EXECVE msg=audit(1359968226.239:576): argc=2 a0="ls" a1="/"
type=SYSCALL msg=audit(1359968226.239:576): arch=c000003e syscall=59 success=yes exit=0 a0=10cfc48 a1=10d07c8 a2=10d5750 a3=7fff2eb2d1f0 items=2 ppid=26569 pid=26570 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key=(null)
----
time->Mon Feb 4 09:57:06 2013
type=PATH msg=audit(1359968226.231:575): item=1 name=(null) inode=668682 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1359968226.231:575): item=0 name="/usr/bin/sudo" inode=530900 dev=08:01 mode=0104755 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1359968226.231:575): cwd="/home/user"
type=BPRM_FCAPS msg=audit(1359968226.231:575): fver=0 fp=0000000000000000 fi=0000000000000000 fe=0 old_pp=0000000000000000 old_pi=0000000000000000 old_pe=0000000000000000 new_pp=ffffffffffffffff new_pi=0000000000000000 new_pe=ffffffffffffffff
type=EXECVE msg=audit(1359968226.231:575): argc=3 a0="sudo" a1="ls" a2="/"
type=SYSCALL msg=audit(1359968226.231:575): arch=c000003e syscall=59 success=yes exit=0 a0=7fff327ecab0 a1=7fd330e1b958 a2=17cc8d0 a3=7fff327ec670 items=2 ppid=3933 pid=26569 auid=1000 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=1 comm="sudo" exe="/usr/bin/sudo" key=(null)
----
time->Mon Feb 4 09:57:09 2013
type=PATH msg=audit(1359968229.523:578): item=1 name=(null) inode=668682 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1359968229.523:578): item=0 name="/bin/su" inode=44 dev=08:01 mode=0104755 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1359968229.523:578): cwd="/home/user"
type=EXECVE msg=audit(1359968229.523:578): argc=2 a0="su" a1="-"
type=SYSCALL msg=audit(1359968229.523:578): arch=c000003e syscall=59 success=yes exit=0 a0=1ceec48 a1=1cef7c8 a2=1cf4750 a3=7fff083bd920 items=2 ppid=26611 pid=26612 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="su" exe="/bin/su" key=(null)
----
time->Mon Feb 4 09:57:09 2013
type=PATH msg=audit(1359968229.519:577): item=1 name=(null) inode=668682 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1359968229.519:577): item=0 name="/usr/bin/sudo" inode=530900 dev=08:01 mode=0104755 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1359968229.519:577): cwd="/home/user"
type=BPRM_FCAPS msg=audit(1359968229.519:577): fver=0 fp=0000000000000000 fi=0000000000000000 fe=0 old_pp=0000000000000000 old_pi=0000000000000000 old_pe=0000000000000000 new_pp=ffffffffffffffff new_pi=0000000000000000 new_pe=ffffffffffffffff
type=EXECVE msg=audit(1359968229.519:577): argc=3 a0="sudo" a1="su" a2="-"
type=SYSCALL msg=audit(1359968229.519:577): arch=c000003e syscall=59 success=yes exit=0 a0=7fff327ecab0 a1=7fd330e1b958 a2=17cc8d0 a3=7fff327ec670 items=2 ppid=3933 pid=26611 auid=1000 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=1 comm="sudo" exe="/usr/bin/sudo" key=(null)
----
time->Mon Feb 4 09:57:09 2013
type=PATH msg=audit(1359968229.543:585): item=1 name=(null) inode=668682 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1359968229.543:585): item=0 name="/bin/bash" inode=6941 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1359968229.543:585): cwd="/root"
type=EXECVE msg=audit(1359968229.543:585): argc=1 a0="-su"
type=SYSCALL msg=audit(1359968229.543:585): arch=c000003e syscall=59 success=yes exit=0 a0=13695a0 a1=7fffce08a3e0 a2=135a030 a3=7fffce08c200 items=2 ppid=26612 pid=26622 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="bash" exe="/bin/bash" key=(null)
----
time->Mon Feb 4 09:57:11 2013
type=PATH msg=audit(1359968231.663:594): item=1 name=(null) inode=668682 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=PATH msg=audit(1359968231.663:594): item=0 name="/bin/ls" inode=2117 dev=08:01 mode=0100755 ouid=0 ogid=0 rdev=00:00
type=CWD msg=audit(1359968231.663:594): cwd="/root"
type=EXECVE msg=audit(1359968231.663:594): argc=3 a0="ls" a1="--color=auto" a2="/etc"
type=SYSCALL msg=audit(1359968231.663:594): arch=c000003e syscall=59 success=yes exit=0 a0=7fff8c709950 a1=7f91a12149d8 a2=1194c50 a3=7fff8c709510 items=2 ppid=26622 pid=26661 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="ls" exe="/bin/ls" key=(null)
auid
คอลัมน์มีผู้ใช้โทรศัพท์ของuid
ซึ่งจะช่วยให้คุณกรองสำหรับคำสั่งดำเนินการโดยผู้ใช้รายนี้ด้วย
ausearch -ua 1000
นี่จะแสดงรายการคำสั่งที่ผู้ใช้รันในฐานะรูท
แหล่งที่มา:
auditd
คุณจำเป็นต้อง