Linux主机安全检查与应急响应

我们在做主机安全检查或安全事件处置时,避免不了要去检查系统的安全情况。在进行Linux安全检查时,需要使用相关的脚本对系统的安全情况进行全面分析,一方面需要尽可能的收集系统的相关信息,另一方面在数量较多的时候尽可能的提高效率。

由于在多次的安全检查中遇到检查时都是几十台服务器要做一个全面检查的情况,如果人工手写脚本的话,一方面效率较低另一方面需要安全检查者熟悉所需要检查的项。

在这种情况下,本人写了一个Linux安全检查的脚本,该脚本主要在以下场景使用:

1.Linux主机安全检查时;

2.Linux主机发生安全事件需要全面分析时。

该脚本完成有一段时间,最近在应急响应群里讨论,发现这块的安全检查是大家的一个强需求,因此把该检查脚本共享给大家,共享的目的主要以两个:一是提高大家在Linux安全检查时的效率,释放大家的精力;另一方面希望大家在使用的过程中可以不断地发现问题,不断的总结缺少的安全检查项,协助完善该检查脚本。所以大家在使用过程中有任何问题或建议欢迎及时同步给我。

检查内容

整体框架

关于Linux安全检查,这里面我总结主要需要检查以下内容:

1.系统安全检查(进程、开放端口、连接、日志等)

这一块是目前个人该脚本所实现的功能;

2.Rootkit

建议使用rootkit专杀工具来检查,如rkhunter;

3.Webshell

这一块查杀技术难度相对较高,不是本脚本所需要实现的功能,针对这一块的检查可以使用D盾来检查 (Linux下可以将web目录挂载到Windows下进行检查);

4.Web日志

5.流量这一块主要侧重主机的长期的流量分析,目前个人使用tshark实现了基础的流量分析,后期会进行相应的完善。流量这一块可以提取流量五元组、DNS流量、HTTP流量再结合威胁情报的数据进行深度分析。这个后期个人会进行相关的尝试,可能的话会进行相应内容的分享。中国菜刀

系统安全检查框架

 

image.png

image.png

功能实现

功能设计

V1.0 主要功能用来采集信息 

V1.1 主要功能将原始数据进行分析,并找出存在可疑或危险项

V1.2 增加基线检查的功能

V1.3 可以进行相关危险项或可疑项的自动处理

目前到V1.2版本,后期完善V1.3相关的功能。

另外,操作上可以实现一键进行安全检查,并将检查后的结果保存到本机。只需要在hosts文本中输入相应的IP、账号、密码。操作上人工参与最小化。

各脚本功能说明

下载后相关整个脚本的目录结构如下所示:天空彩

checkrulues: 部分判断逻辑,这里面目前仅有端口的判断逻辑,后期可以将进程、应用程序是否有漏洞等,逻辑放在这里面进行安全检查,比较简单的判断逻辑直接在buying_linuxcheck.sh中可以实现;

buying_linuxcheck.sh: 核心检查逻辑;

del.exp: 删除远程服务器上的脚本与检查结果;

get.exp: 获取远程服务器上安全检查的结果;

hosts.txt:需要被检查的服务器列表;

login.sh:一键进行登录检查,安全检查时只需要运行该脚本即可;

put.exp:将安全检查脚本上传到远程服务器上;

readme.txt:使用相关说明文档;

sh.exp:在远程服务器上执行安全检查脚本;

下面针对其中部分脚本进行介绍。

Ø Checkrules

判断逻辑主要放在两个文件中:一个是checkrules中,格式为dat,这里面建议将比较复杂的判断逻辑放在这里,如下面的TCP危险端口这块,因为比较多,如果放在buying_linuxcheck.sh中则代码有些冗长,下面是TCP高危端口的判断逻辑,主要还是根据木马默认使用的端口号,这里面判断的逻辑相对简单,可能会存在误报的情况,所以后续需要人工介入分析。

image.png

Ø buying_linuxcheck.sh

核心的功能收集与判断逻辑,比较简单的判断逻辑可以放在这里面进行判断。

image.png

使用

使用比较简单,将本脚本拷贝到自己一台Linux主机上,可以使用虚拟机,将需要被检查的服务器的IP、账号、密码放到hosts.txt目录中,直接运行即可实现一键安全检查。

相关操作

1.将需要被检查的服务器IP、账号、密码写入到hosts.txt文件中,格式为:

 

IP:port:user:userpassword:rootpassword

其中user为普通用户的账号,port为ssh登录端口,uesrpassword为普通账号的密码,rootpassword为root的密码,只所以加个普通用户是因为有的系统做了安全策略,不允许root直接登录,如果被检查的服务器允许root直接登录,可以直接把user和userpassword写成root以及root密码。二四六

image.png

这里面被检查的服务器允许root直接登录,因此直接写root账号和密码。

2.运行安全检查脚本:sh login.sh

安全检查脚本就在后台运行了,稍等…….

image.png

3.看到删除远程服务器上的检查脚本与检查结果,就说明检查结束了。

image.png

4.检查结束后,会将远程服务器上的结果保存到本地主机上:

image.png

检查结果说明

检查结束后,将相应的结果解压后目录结构如下所示:

image.png

Ø Check_file

保存的是检查的最终结果,长这个样子……

image.png

Ø Log

目录中保存的是Linux系统日志,web日志这块目前脚本没有实现自动打包的功能,原因就是web日志经常太大,并且保存的日志可能从运行到现在的所有日志,很多日志并不需要进行检查与分析,因此在检查时相关人员可以根据具体情况进行打包相应的日志。

image.png

Ø danger_file.txt

保存的是在安全检查过程中发现的问题:

image.png

Ø sysfile_md5.txt

保存的是系统关键文件或系统文件的MD5值,之所以将这些关键文件的MD5记录下来主要有两个功能:一是周期性的检查时,可以与第一次的结果进行对比,若有变动会提示;另一个是可以将这些关键文件的MD5值跑一下威胁情报库或virustotal以发现可能存在的系统文件被替换的情况。

image.png

代码下载

相关代码已上传到github,有需要可自行下载,有问题也可以直接联系:

 

https://github.com/T0xst/linux

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux安全应急响应是指在发生安全事件或遭受攻击时,对Linux系统进行紧急处置和响应的过程。以下是一些常见的Linux安全应急响应步骤: 1. 确认安全事件:首先要确定是否发生了安全事件,包括检查系统日志、网络流量分析和异常行为检测等。 2. 隔离受影响的系统:如发现受到攻击的系统,应立即将其隔离,以防止攻击扩散或进一步损害其他系统。 3. 收集证据:在处理安全事件之前,应收集相关证据,包括攻击日志、恶意文件和异常配置等。这些证据对于后续调查和分析非常重要。 4. 分析攻击:对收集到的证据进行深入分析以确定攻击类型、攻击者的目的和方法。这有助于加强安全防御和预防类似攻击再次发生。 5. 恢复系统:在确保已经理解并清除了安全威胁之后,可以开始恢复受损系统的正常运行。这可能包括修复被攻击的漏洞、移除恶意软件和重新配置受损的系统。 6. 安全加固:在响应安全事件后,应加强系统的安全防御机制,包括更新补丁、加强访问控制、安装防火墙以及加强账户和密码管理等措施。 7. 审查和改进:对安全事件的响应过程进行审查和改进,以提高安全性和应急响应的效率。这包括分析事件的原因和教训,制定更好的安全策略和流程。 请注意,这只是一个基本的安全应急响应框架,实际情况可能因事件类型和具体环境而有所不同。在面临安全事件时,建议寻求专业的安全团队或专家的帮助来进行处理和恢复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值