当前位置:   article > 正文

Linux系统安全--安全审计audit_/sbin/auditd

/sbin/auditd

1、audit

         The Linux Audit Subsystem is a system to Collect information regarding events occurring on the system(s) ,Kernel events (syscall events), User events (audit-enabled programs)。syslog记录的信息有限,主要目的是软件调试,跟踪和打印软件的运行状态,而audit的目的则不同,它是linux安全体系的重要组成部分,是一种“被动”的防御体系。在内核里有内核审计模块,记录系统中的各种动作和事件,比如系统调用,文件修改,执行的程序,系统登入登出和记录所有系统中所有的事件,它的主要目的是方便管理员根据日记审计系统是否允许有异常,是否有入侵等等,说穿了就是把和系统安全有关的事件记录下来。

2、原理

          从图 可以看到 audit 是内核中的一个模块,内核的运行情况都会在 audit 中记录,当然这个记录的规则是由超级用户来设置的。内核的 audit 模块是由应用层的一个应用程序 auditd 来控制的。audit 产生的数据都会传送到 auditd 中,然后再由 auditd 进行其它操作。auditd.conf 是 auditd 的配置文件,确定 auditd 是如何启动的,日志文件放在哪里等等。audit.rules 是 audit 的规则文件,确定 audit 的日志中记录哪些操作。它通过一个对 audit 进行控制的应用程序 auditctl 进行操作。root 用户也可以直接调用 auditctl 进行操作。auditd 收到的数据后会有两个去处。默认的是将日志保存在 audit.log 文件中,默认路径/var/log/audit/audit.log。另一个通过 audispd 将日志进行分发。要使用安全审计系统可采用下面的步骤:首先安装软件包。然后设置配置文件、配置常用命令,添加审计规则,然后启用 audit 守护进程并开始进行日志记录,最后通过生成审计报表和搜索日志来周期性地分析数据。

3、相关配置文件

       audit 安装后会生成 2 个配置文件: /etc/audit/auditd.conf 和/etc/audit/audit.rules 。/etc/audit/auditd.conf 是守护程序的默认配置文件。/etc/audit/audit.rules 是记录审计规则的文件。首次安装 audit 后, 审计规则文件是空的。

  1. [root@VM_0_11_centos pam.d]# cat /etc/audit/auditd.conf
  2. #
  3. # This file controls the configuration of the audit daemon
  4. #
  5. local_events = yes
  6. write_logs = yes
  7. log_file = /var/log/audit/audit.log #audit日志存储位置
  8. log_group = root
  9. log_format = RAW
  10. flush = INCREMENTAL_ASYNC
  11. freq = 50
  12. max_log_file = 8 #日志文件的最大值,以M为单位
  13. num_logs = 5 #日志文件轮询的数目,它是 0~99 之间的数。如果设置 为小于 2,则不会循环日志。如果没有设置 num_logs 值,它就默认为 0,意味着从来不循环日志文件
  14. priority_boost = 4
  15. disp_qos = lossy
  16. dispatcher = /sbin/audispd
  17. name_format = NONE
  18. ##name = mydomain
  19. max_log_file_action = ROTATE #设置日志文件到达最大值后的动作,这里选择 ROTATE(轮询)
  20. space_left = 75
  21. space_left_action = SYSLOG
  22. verify_email = yes
  23. action_mail_acct = root
  24. admin_space_left = 50
  25. admin_space_left_action = SUSPEND
  26. disk_full_action = SUSPEND
  27. disk_error_action = SUSPEND
  28. use_libwrap = yes
  29. ##tcp_listen_port = 60
  30. tcp_listen_queue = 5
  31. tcp_max_per_addr = 1
  32. ##tcp_client_ports = 1024-65535
  33. tcp_client_max_idle = 0
  34. enable_krb5 = no
  35. krb5_principal = auditd
  36. ##krb5_key_file = /etc/audit/audit.key
  37. distribute_network = no
  38. [root@VM_0_11_centos pam.d]#
  1. [root@VM_0_11_centos rules.d]# cat audit.rules
  2. ## First rule - delete all
  3. -D
  4. ## Increase the buffers to survive stress events.
  5. ## Make this bigger for busy systems
  6. -b 8192
  7. ## Set failure mode to syslog
  8. -f 1
  9. [root@VM_0_11_centos rules.d]#

可以通过 auditctl 命令设置。监控文件系统行为(依靠文件、目录的权限属性来识别)

规则格式:

-w 路径

-p 权限

-k 关键字

其中-p 权限的动作分为四种

r — 读取文件或者目录。

w — 写入文件或者目录。

x — 运行文件或者目录。

a — 改变在文件或者目录中的属性。

也可以自己将上述内容加入到文件/etc/audit/rules.d/audit.rules 中即可实现对该文件的监视。

4、使用

1)安装

[root@VM_0_11_centos pam.d]# yum -y install audit*

2)开启服务

  1. [root@VM_0_11_centos rules.d]# systemctl start auditd
  2. [root@VM_0_11_centos rules.d]# systemctl status auditd
  3. ● auditd.service - Security Auditing Service
  4. Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
  5. Active: active (running) since Thu 2020-01-09 09:03:41 MST; 2 days ago
  6. Docs: man:auditd(8)
  7. https://github.com/linux-audit/audit-documentation
  8. Process: 608 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS)
  9. Process: 581 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
  10. Main PID: 591 (auditd)
  11. Memory: 34.4M
  12. CGroup: /system.slice/auditd.service
  13. └─591 /sbin/auditd

3)添加规则

  1. 添加临时规则
  2. [root@VM_0_11_centos rules.d]# auditctl -w /bin/rm -p x -k removefile
  3. -w #指定所要监控的文件或命令
  4. -p #监控属性(如x执行)
  5. -k #指定关键词(方便在日志中查询)
  6. -D #清除规则(临时,不会清除配置文件规则)
  7. 添加永久规则的话将规则写入/etc/audit/rules.d/audit.rules文件

4) 查看规则

  1. [root@VM_0_11_centos rules.d]# auditctl -l
  2. -w /bin/rm -p x -k removefile
  3. [root@VM_0_11_centos rules.d]#

5)查看日志/var/log/audit/audit.log

  1. 4d:dd:ab:87:bd:8c:03:3c:fd:0e:05:5c:f1:0e:21:8b:a2 direction=? spid=29965 suid=0 exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
  2. type=CRYPTO_KEY_USER msg=audit(1578819766.382:759162): pid=29965 uid=0 auid=0 ses=3891 msg='op=destroy kind=server fp=SHA256:40:70:c4:27:c1:6f:0d:de:0d:6c:2d:6d:14:62:36:f7:d4:fc:81:39:04:5b:da:a9:7b:c4:c8:31:7f:5d:e3:ab direction=? spid=29965 suid=0 exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
  3. type=CRED_REFR msg=audit(1578819766.382:759163): pid=29965 uid=0 auid=0 ses=3891 msg='op=PAM:setcred grantors=pam_unix acct="root" exe="/usr/sbin/sshd" hostname=47.74.209.185 addr=47.74.209.185 terminal=ssh res=success'
  4. type=CONFIG_CHANGE msg=audit(1578819767.034:759164): auid=0 ses=3891 op=add_rule key="removefile" list=4 res=1
  5. type=USER_END msg=audit(1578819767.724:759165): pid=17156 uid=0 auid=0 ses=3891 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=47.74.209.185 addr=47.74.209.185 terminal=ssh res=success'
  6. type=USER_START msg=audit(1578819767.909:759166): pid=17156 uid=0 auid=0 ses=3891 msg='op=login id=0 exe="/usr/sbin/sshd" hostname=47.74.209.185 addr=47.74.209.185 terminal=ssh res=success'

6)ausearch命令

  1. ausearch
  2. -i #显示信息更清晰,比如显示日期而不是时间戳
  3. -k #指定关键词(auditctl -k指定的关键词)
  4. -c commond #只显示与指令相关日志(如-c rm)
  1. [root@VM_0_11_centos audit]# ausearch -c rm
  2. ----
  3. time->Sun Jan 12 02:07:01 2020
  4. type=PROCTITLE msg=audit(1578820021.730:761644): proctitle=726D002D69002D7266002F746D702F746573742E747874
  5. type=PATH msg=audit(1578820021.730:761644): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=21366 dev=fd:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
  6. type=PATH msg=audit(1578820021.730:761644): item=0 name="/usr/bin/rm" inode=4699 dev=fd:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
  7. type=CWD msg=audit(1578820021.730:761644): cwd="/etc/audit/rules.d"
  8. type=EXECVE msg=audit(1578820021.730:761644): argc=4 a0="rm" a1="-i" a2="-rf" a3="/tmp/test.txt"
  9. type=SYSCALL msg=audit(1578820021.730:761644): arch=c000003e syscall=59 success=yes exit=0 a0=101e330 a1=10200c0 a2=f33da0 a3=7ffccaf81360 items=2 ppid=17165 pid=2023 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3891 comm="rm" exe="/usr/bin/rm" key="removefile"

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/204819
推荐阅读
相关标签
  

闽ICP备14008679号