日志安全分析之文件监控
作者: 日期:2020年11月09日 阅:3,634

一、背景介绍

在Linux操作系统中,所有内容都是以文件的形式保存和管理的,包括普通文件、目录、网络通信资源等都是文件,即“一切皆文件”。基于这种机制,针对Linux系统层的攻击方式,本质上往往是通过各种方式,对某些敏感文件进行篡改,使入侵得以进一步进行。例如,著名的脏牛提权漏洞(CVE-2016-5195)是get_user_page内核函数在处理Copy-on-Write的过程中,可能产出竞态条件造成Copy-on-Write过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。最终,通过修改su或者passwd文件就可以达到root的目的。所以,Linux的文件监控在Linux的安全防护中是一个至关重要的环节。

通过对文件的监控,可以发现操作系统中敏感目录异常新增文件、敏感文件篡改、执行恶意文件或恶意命令等。在ATT&CK矩阵中,篡改文件达到权限提升的技术有T1548.001、T1548.003、T1546.004等;篡改文件达到持久化的技术有T1098.004、T1053.001等;篡改文件达到获取凭证的技术有T1003.008、T1552.003等;篡改文件达到绕过防御的技术有T1564.001、T1070.002等,在各个阶段都有需要对文件进行篡改的攻击技术。

二、使用audit监控文件

Linux audit是Linux中审计系统与安全相关信息的服务。根据预先配置的规则,audit将生成日志项,从而记录在系统中发生的安全事件。audit可以审计是否有人访问、篡改、执行某个文件或者目录,也可以审计是否有人更改了文件的属性。定义文件监控的语法如下:

auditctl -w path_to_file -p permissions -k key_name
path_to_file是需要审计的文件或目录、permissions是记录的权限,“r”是读取、“w”是写入、“x”是执行、“a”为修改文件attribute属性。key_name是可选参数,产生一个易标识的日志入口关键字如监控“/etc/passwd”文件的读取。可以配置如下audit规则:

auditctl -w /etc/passwd -p r -k passwd_read

三、针对MITRE ATT&CK各阶段攻击手段,文件监控的应用

1.权限提升检测场景的文件监控

1.) ~/.bash_profile是包含shell命令的shell脚本,当用户通过用户名密码登录时都会执行这个脚本。攻击者可以通过对这个文件插入可执行文件来执行任意的shell命令。例如,插入一个木马程序,当用户登录shell时,会以用户的权限去执行这个木马程序,最终导致攻击者可以使用木马远程控制系统。

通过audit实现对~/.bash_profile写入的监控

auditctl -w /root/.bash_profie -p w -k privilege-escalation

2.)执行“echo ‘python script.py’ >> /root/.bash_profile”。当登录操作系统后,会在执行主目录下的script.py文件。

3.)通过SIEM检测权限提升的监控。

2.持久化检测场景的文件监控

1.)crond是Linux系统中用来定期执行命令或者指定程序任务的一种服务或者软件,攻击者可能滥用crond来执行任务调度,以开始执行或重复执行恶意代码。例如,插入挖矿程序,在系统中定时执行挖矿程序,利用系统进行挖矿。

通过audit实现对/var/spool/cron目录写入的监控
auditctl -w /var/spool/cron -p w -k persistence

2.)执行crontab -e,编辑定时任务,将恶意代码执行的时间及执行方式写入crontab中,并保存。

3.)通过SIEM检测持久化的监控。

3.登录凭证访问检测场景的文件监控

1.)在Linux操作系统中,/etc/passwd和/etc/shadow两个文件分别记录了用户的基本属性和用户的密码信息,攻击者可以尝试获取这两个文件,并对/etc/shadow的密码哈希值进行离线爆破,可以获取到用户的凭证信息。

通过audit实现对/etc/passwd和/etc/shadow目录下文件读取的监控
auditctl -w /etc/passwd -p r -k credential_access
auditctl -w /etc/shadow -p r -k credential_access

2.)当操作系统上的用户用户对/etc/passwd和/etc/shadow进行访问。

3.)通过SIEM检测凭证访问的监控。

四、建议

由于Linux的“一切皆文件”思想,在对Linux进行入侵分析时,监控文件就等于监控整个系统。根据ATT&CK矩阵各阶段的攻击手段,建议对相关的文件添加对应的监控规则,找出异常事件!

关键词:

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章