рд╕рд┐рджреНрдзрд╛рдВрдд
рд▓реЗрдЦрд╛ рдкрд░реАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рдХрд░реНрдиреЗрд▓ рдХреЛ AUDIT рдФрд░ AUDITSYSCALL рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
$ grep AUDIT /boot/config-`uname -r`
# CONFIG_AUDIT_ARCH is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_AUDIT_GENERIC=y
AUDIT рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕рдордЧреНрд░ рдСрдбрд┐рдЯрд┐рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕реЗ SELinux рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред AUDITSYSCALL рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдСрдбрд┐рдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ SELinux рджреНрд╡рд╛рд░рд╛ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдСрдбрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- рдиреНрдпреВрдирддрдо рдУрд╡рд░рд╣реЗрдб, рд╕рдХреНрд░рд┐рдп рдФрд░ рдЕрдХреНрд╖рдо рджреЛрдиреЛрдВ рдСрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде
- рдиреНрдпреВрдирддрдо рд▓рд╛рдЧрдд рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рд╕реНрддрд░ рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ
- рдХрд╕реНрдЯрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдиреЗрдЯрд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рд╕реНрдерд╛рдкрдирд╛
Debian / Ubuntu рдХреЗ рд▓рд┐рдП рдСрдбрд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
$sudo apt-get install auditd
CentOS рдХреЗ рд▓рд┐рдП:
#yum install audit
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореБрдЦрдкреГрд╖реНрда:
people.redhat.com/sgrubb/auditрд╕рдорд╛рдпреЛрдЬрди
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдСрдбрд┐рдЯ /etc/audit/auditd.confред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдирд╛рдо рдФрд░ рдореВрд▓реНрдп рдХреЛ рдПрдХ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрджреЗрд╢ рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрджрдореА рдСрдбрд┐рдЯ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ редconfред
рдСрдбрд┐рдЯ рдирд┐рдпрдо
рдСрдбрд┐рдЯ рдирд┐рдпрдо рдлрд╝рд╛рдЗрд▓ /etc/audit/audit.rules рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИрдВред
рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрд╛ рдкрд░реАрдХреНрд╖рд╛-рдирд┐рдпрдореЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рд▓реЗрдЦрд╛ рдкрд░реАрдХреНрд╖рд╛-рдбреА рджреЗрдЦреЗрдВ
рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕реЗрд╕ рдСрдбрд┐рдЯ
рдлрд╛рдЗрд▓ рдПрдХреНрд╕реЗрд╕ рдСрдбрд┐рдЯ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рддрд░реНрдХ:
- -p [r | w | x | a] - рдкрд╣реБрдВрдЪ рдХреА рдкреНрд░рдХреГрддрд┐ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░
- -w рдкрде - рдирд┐рдЧрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде
/ Sys рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ
sudo auditctl -w /sys/ -p ra
рд╕реНрдХрд╛рдЗрдк рдЪрд▓рд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВ:
sudo aureport -f
/sbin/audispd permissions should be 0750
File Report
===============================================
# date time file syscall success exe auid event
===============================================
1. 16.01.2011 22:42:04 /sys/class/video4linux/video0/dev 5 yes /usr/bin/skype -1 23
2. 16.01.2011 22:42:03 /sys/devices/system/cpu 5 yes /usr/bin/skype -1 22
3. 16.01.2011 22:42:04 /sys/class/video4linux/video0/device/modalias 5 yes /usr/bin/skype -1 24
4. 16.01.2011 22:42:04 /sys/class/dmi/id/sys_vendor 5 yes /usr/bin/skype -1 25
5. 16.01.2011 22:42:04 /sys/class/dmi/id/product_name 5 yes /usr/bin/skype -1 26
6. 16.01.2011 22:42:04 /sys/class/dmi/id/product_version 5 yes /usr/bin/skype -1 27
7. 16.01.2011 22:42:04 /sys/class/dmi/id/board_vendor 5 yes /usr/bin/skype -1 28
8. 16.01.2011 22:42:04 /sys/class/dmi/id/board_name 5 yes /usr/bin/skype -1 29
9. 16.01.2011 22:42:04 /sys/class/dmi/id/board_version 5 yes /usr/bin/skype -1 30
рдСрдбрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- -рдП рд╕реВрдЪреА, рдПрдХреНрд╢рди рдФрд░ рдП-рд╕реВрдЪреА, рдПрдХреНрд╢рди рд╕реВрдЪреА рд╕реВрдЪреА рдХреЗ рдЕрдВрдд (-рдП рд╢реБрд░реВ рд╕реЗ) рддрдХ рдПрдХреНрд╢рди рдирд┐рдпрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрдкрд▓рдмреНрдз рд╕реВрдЪрд┐рдпрд╛рдБ рдореИрди рдСрдбрд┐рдЯрдХреНрд▓ рдореЗрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрднреА рднреА рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИрдВред
- -S [Syscall рдирд╛рдо рдпрд╛ рд╕рдВрдЦреНрдпрд╛ | рд╕рднреА] - рджреЗрдЦреА рдЧрдИ рдХреЙрд▓
- -рдПрдл [рдПрди = рд╡реА | n! = v | рдПрди <рд╡реА | рдПрди> рд╡реА | n <= v | n> = рд╡реА | рдПрди рдПрдВрдб рд╡реА | n & = v] рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд┐рд▓реНрдЯрд░
рдСрдбрд┐рдЯреИрдХреНрдЯ-рдП рдирд┐рдХрд╛рд╕, рд╣рдореЗрд╢рд╛ -S рдУрдкрди -F рд╕рдлрд▓рддрд╛ = 0 рд╕рднреА рдУрдкрди рдХреЗ рдСрдбрд┐рдЯ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ () 0 рд╕реЗ рдЕрдзрд┐рдХ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЖрдЙрдЯ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдИрд╡реЗрдВрдЯ рдЬрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред
#auditctl -a exit,always -S open -F success=0
# touch /tmp/foo
# tail -1 /var/log/audit/audit.log
type=SYSCALL msg=audit(1295200915.069:14977): arch=c000003e syscall=2 success=no exit=-2 a0=7ff2f0ad4f60 a1=0 a2=7ff2f0d05010 a3=7fff56687650 items=1 ppid=1915 pid=16551 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="tail" exe="/usr/bin/tail" key=(null)
рдЖрдк рд╢рд╛рдорд┐рд▓ / linux / unistd.h рд╕реЗ рдирдВрдмрд░ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд╛ рдирд╛рдо рдкрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред