Linux日志分析场景(一)文末有彩蛋
随着《网络安全法》正式成为法律法规,等级保护系列政策更新,“安全” 对于大部分企业来说已成为“强制项”。然而,网络空间安全形势日趋复杂和严峻。席卷全球的勒索病毒在全球范围大爆发,对企业的正常工作,造成巨大影响。高级持续性威胁(APT攻击)、鱼叉攻击、内部员工和外包人员的越权操作,也在不断的威胁着企业核心数据安全。
如何检测安全威胁事件?通过海量日志分析能有效发现安全威胁事件的蛛丝马迹,触发告警,防患于未然。分析的准确性取决于是否制定了行之有效的告警规则,告警规则与攻击思路是否吻合。攻防一体,只有了解尽可能多的攻击思路与攻击方式,才能制定出合理的防御检测思路,完善丰富的告警知识库。
本期我们梳理了linux日志中5类常见的安全威胁场景:Linux的iptables被关闭、权限重置、用户的增加、删除、更改的行为审计、指定目录创建、删除、修改文件、linux用户su至root多次失败。我们从告警发生场景、攻击方式、检测思路、日志来源、如何分析等角度,了解在企业日常场景中如何有效检测可能的安全威胁,减少安全风险,降低安全损失。后面我们会持续推出其他的日志分析场景,敬请关注。
一、为什么要对linux日志进行分析
随着企业规模的发展,企业部署的服务器越来越多,在众多服务器中linux服务器使用的越来越广泛,而且很多服务器都是无人值守,如果不加以防范,很有可能会出现安全问题,这些问题可能来自内部,也可能来自外部。正如安全行业的一句话:“世界上只有两种人,一种是知道自己被黑了的,另外一种是被黑了还不知道的”
定期对Linux巡检是一个比较重要的防范过程,在巡检的内容中除了关注账号,启动项,任务,进程,端口等信息,对Linux的日志进行的安全性分析也是一个很重要的内容。通过对历史Linux日志分析最直接明显的几个目的,一为机器进行安全自检查,了解服务器上正在发生和已经发生的事情;二为应急事件中的分析取证。
在Linux系统中,Linux系统的常见日志放在/var/log的目录下。常见日志文件如下:
/var/log/message 内核消息及各种应用程序的公共日志信息
/var/log/secure 用户认证相关的安全事件信息
/var/log/cron Crond周期性计划任务产生的时间信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
/var/log/dmesg引导过程中的各种时间信息
/var/log/maillog 进入或发出系统的电子邮件活动
/var/log/lastlog 每个用户最近的登录事件
通过Linux系统的相关日志基于账号登陆异常(Linux的iptables被关闭,Linux用户su至root多次失败)、账号异常行为(权限重置,用户的增加、删除、更改,短时间创建账号删除)、数据泄露/篡改(指定目录创建、删除、修改文件,删除、修改、移动审计日志)等分析策略可有效检测安全威胁事件,避免安全威胁进一步扩大化,有效降低安全损失。
二、安全威胁如何检测
1. Linux的iptables被关闭
告警发生场景:攻击者或者内部员工,登录服务器后,关闭iptables,企图掩盖后续的一些高危操作行为,如端口扫描探测、密码猜测等。
攻击方式:员工或者攻击者关闭了iptables。
检测思路:通过查看系统日志,分析是否执行了关闭iptables命令。
日志来源:以/var/log/messages日志为例
Dec 1 15:45:11 secisland2 systemd: Stopping IPv4 firewall with iptables...
Dec 1 15:45:12 secisland2 systemd: Stopped IPv4 firewall with iptables.
人工分析:在查看系统服务日志时,发现在某个时间,系统的iptables被关闭或者被永久禁止。
工具分析:集中采集linux系统相关日志,解析关键字段:被关闭的服务是否是iptables。如果是iptables被执行关闭或开机禁止开启,则触发告警。
2. 权限重置
告警发生场景:攻击者或者内部员工,登录服务器后对文件或者对文件夹更改原有的权限,通过提权获得管理员权限达到窃取机密数据等目的。
攻击方式:攻击者对自己上传的脚本进行了权限最大化,可能会是留有后门的脚本,来给后续重新入侵服务器留下渠道。内部员工赋予文件普通用户可执行、可修改、可读的权限,极大可能会造成数据的丢失或泄露。
检测思路:通过系统日志查看,是否对文件或文件夹的原有权限进行更改。
日志来源:修改/etc/profile文件,将操作日志输出到文件中,进行查看分析。如下:
Oct 19 16:05:15 root: secisland user=root client=192.168.1.190 61629 22 path=/root command: chmod -R 755 test2
Oct 19 16:03:27 root: secisland user=root client=192.168.1.190 61629 22 path=/root command: chown hopeful.root JZZS/
人工分析:查看系统日志,发现某时间内某个文件或文件夹原有的权限发生了修改。
工具分析:集中采集linux系统日志,解析关键字段:事件名称为重置权限命令,文件或文件夹权限更改成功。满足相应告警规则,触发告警
3. 用户的增加、删除、更改的行为审计
告警发生场景:系统中有新增用户、删除已有用户、修改已有用户属组等行为都是比较危险的操作。
攻击方式:攻击者或者内部员工,对原有的系统进行了增加或者删除用户,再或者更改原有用户或新增用户的权限。
检测思路:查看系统日志,分析系统是否进行了增删改用户。
日志来源:以/var/log/secure日志为例:
Oct 19 17:16:22 root: secisland user=root client=192.168.1.190 61629 22 path=/root command: useradd test2
Oct 19 17:10:11 root: secisland user=root client=192.168.1.190 61629 22 path=/root command: usermod -G hopeful
Oct 19 17:05:44 root: secisland user=root client=192.168.1.190 61629 22 path=/root command: userdel test
人工分析:查看系统日志,分析发现新增了用户,而且还有修改用户权限的行为,以及删除了相应的用户。
工具分析:集中采集linux系统日志,过平台内置的日志分析模块,以及定义的用户的增加、删除、更改的行为审计的操作告警提示,满足定义的告警规则,则会第一时间进行触发告警。同时分析出操作者执行命令的时间,创建出用户的名称等。
4. 指定目录创建、删除、修改文件
告警发生场景:用户在指定目录下创建、删除、修改文件。
攻击方式:在指定的目录中,员工或者攻击者进行了创建、修改、删除文件的操作,可能会造成数据的泄露或者被篡改。
检测思路:可以通过人工查看原始的系统日志进行分析,或者通过日志审计工具解析原始日志,获取命令的名称,执行了touch、vi、rm的命令,同时是在指定的目录。
日志来源:修改/etc/profile文件,将操作日志输出到文件中,进行查看分析。如下:
Oct 19 11:00:51 root: secisland user=root client=192.168.1.190 61629 22 path=/home command: touch quail
Oct 19 11:42:32 root: secisland user=root client=192.168.1.190 61629 22 path=/home command: vi quail
Oct 19 11:43:18 root: secisland user=root client=192.168.1.190 61629 22 path=/home command: rm -rf quail
人工分析:在某个时间,查看系统日志,通过原始日志中的命令操作touch、vi、rm,以及在home目录下进行的操作,属于危险的操作行为。
工具分析:通过日志分析工具统一采集系统登录日志,通过平台内置的日志分析模块,以及定义的指定目录的操作告警提示,满足定义的告警规则,则会第一时间进行触发告警。同时分析出操作者执行命令的时间,修改,创建,删除文件的名称等。
5. linux用户su至root多次失败
告警发生场景:10分钟以内同一主机su至root连续失败5次以上。
攻击方式:恶意员工或者黑客获取员工账号后,通过su的方式获得root权限。
检测思路:可以通过人工查看原始的系统日志进行分析,某一时间段内su多次失败,或者通过日志审计工具解析原始日志,分析出有su的行为,并且失败多次,来进行告警。
日志来源:以/var/log/secure日志为例:
Oct 20 15:00:09 hopeful-01 su: FAILED SU (to root) hopeful on pts/1
Oct 20 14:59:59 hopeful-01 su: FAILED SU (to root) hopeful on pts/1
多条失败日志
人工分析:通过原始日志中的su行为,并且多次都是FAILED,如果运维人员不能及时发现,可能会造成极大的损失。
工具分析:通过平台内置的日志分析模块,以及定义的事件数量su的操作以及失败的告警提示,满足定义的告警规则,则会第一时间进行触发告警。同时分析出操作者su的时间和登录的主机名等。
三、总结
以上介绍了目前常用的安全威胁检测手段,包括:基于账号登陆异常(Linux的iptables被关闭,Linux用户su至root多次失败)的检测,基于账号异常行为(权限重置,用户的增加、删除、更改,短时间创建账号删除)的检测,基于数据泄露/篡改(指定目录创建、删除、修改文件)的检测等。
通过这些检测手段,再辅以工具,能及时发现账号的异常操作行为,从而避免安全威胁进一步扩大化,有效降低安全损失。