应 急 响 应

2024-01-07 22:29:13

一.应急响应事件分类

二.导致应急事件的原因

1.企业防护薄弱

大型企业的业务模式多,对外暴露的服务多,导致被攻击的面扩大

2.黑客团伙威胁激增

黑产团伙每天都会利用秒杀型漏洞批量扫描全网IP

3.APT组织太厉害

除了做黑产的大佬们,还有可能会遇到传说中的APT组织

三.应急响应的目的

应急响应的目标主要是为了阻断黑客攻击对整个安全事件发生的过程进行还原,找到问题发生的根源,并采取相应的补救措施,避免类似事件的再次发生

1.判断应急是否是被成功入侵的安全事件

2.阻断黑客的攻击

3.找到攻击者的第一入口点,提取到恶意样本

4.帮助客户梳理攻击者的攻击路线并提供其漏洞修补方案

四.应急响应流程

事件判断:判断是否为安全事件,判断安全事件的类型,例如勒索,挖矿,断网,DDoS等

临时处置:给出客户临时处置建议,断网隔离,保护现场环境

信息收集分析:收集客户信息和中毒主机信息,包括样本,日志分析,进程分析,启动项分析,样本分析。

清理处置:直接杀掉进程,删除文件,打补丁,或者修复文件

产出报告:整理并输出完整的安全事件报告

五.攻击者常用的web漏洞

六.攻击者常用组件漏洞

七.攻击和应急响应的过程

八.应急响应的场景

1.web攻击事件

相关表现:页面被篡改,恶意推广,黑词黑页,webshell

相关危害:导致搜索引擎告警,微信等APP分享警告,首页敏感信息,拖库,内网沦陷等

排查要点:恶意文件是否确实存在于服务器上,确定相关资产是否丢失

操作要点:备份文件,webshell后门查杀,web日志分析,web中间件缓存处理,web中间件配置检查,重启web中间件,服务器后门检查

防护措施:加固相关web应用,修改相关系统的所有用户密码

2.链路劫持

相关表现:区域性服务不可用或返回异常内容

相关危害:导致搜索引擎警告,微信等APP分享警告,首页敏感内容等

排查要点:能否多个环境下复现异常现象,确定相关资产是否存在,恶意文件是否确实存在于服务器上

操作要点:跨地区,运营商进行测试,确实受影响范围,在能复现的环境中判断是DNA劫持还是HTTP劫持

防护措施:重要业务部署https

3.代理隧道

相关表现:持续性或间断性外连行为,通常为tcp协议,对内网多个主机有访问行为

相关危害:作为跳板机攻击其他内网资产

排查要点:确实存在代理隧道的跳板机,通常为某时间段集中访问内网

多种资源的机器,判断隧道类型

防护措施:完善内网acl,服务器按业务需要通过白名单策略访问外网

4.替换系统命令

相关表现:无明显表现

相关危害:将后门,木马持久化在系统中,窃取账号,密码等重要凭证

排查要点:使用包管理自带的包校验功能验证文件完整性,分析恶意文件行为,确定影响面

操作要点:使用静态链接的busybox,重新安装被替换的包

命令:rmp -Va :校验所有的RPM软件包,查找丢失的文件

dpkg --verify :扫描系统上所有已安装软件包的文件,并与软件包数据库中的信息进行比较。如果发现文件已更改或被删除,会显示相应的警告或错误消息。

5.ld.so.preload动态链接库劫持

相关表现:无明显表现

相关危害:将后门,木马持久化在系统中,窃取账号,密码等重要凭证

排查要点:检查/etc/ld.so.preload,ld.so(如/lib/x86_64-linux-gnu/ld-2.27.so)

操作要点:使用静态链接的busybox,重启被注入恶意模块的进程,必要时直接重启系统

6.内核态rootkit

相关表现:无明显表现

相关危害:将后门,木马持久化在系统中:隐藏文件,进程等信息

排查要点:确定是否存在无法使用常规命令查看的文件,进程

操作要点:使用tyton内核态rootkit检测工具检测,检查/etc/modules是否有未知的内核模块

7.计划任务

相关表现:特定时间间隔触发木马,后门,网络链接,DNS请求,篡改页面等行为

相关危害:将后门,木马持久化在系统中,周期性篡改页面,拉取数据等

排查要点:判断是否存在周期性出现的异常现象,检查/var/spool/cron/crontabs/,/etc/cron.*等常用计划任务配置文件

操作要点:停止计划任务服务后再操作,注意辨别利用\r回车符的障眼法

8.远控木马

相关表现:有持续或间断性的对外网络链接或DNS请求等通信行为

相关危害:窃取系统资料,作为跳板进一步攻击内网其他机器

排查要点:关注tcp,udp,icmp等一切网络行为,检查注册表,服务,开机目录,计划任务等一系列常见的持久化点

操作要点:检查网络连接,以及IDS设备上的异常远控告警

九.应急响应-Linux

1.关键目录

2.常用命令

查看系统内存使用情况:free -h

查看当前目录下所有文件并排序:ls -alt

查看系统进程及子进程:ps auxf ,top

查看网络连接:netstat -antpl

查询端口打开的文件:lsof -i:port

查询进程打开文件:lsof -p pid

查询用户打开的文件:lsof -u root

修改文件属性:chattr

显示文件属性:lsattr

排查启动项:cat /etc/rc.local

??????????????????? ls -alt /etc/profile.d/*.sh

查找符合条件的字符串:grep

查看定时任务:

cat /etc/passwd | cut -f 1 -d : |xargs -l {} crontab -l -u {}

ls -altr /var/spool/cron/*

more /etc/crontab

more /etc/cron.d/*

more /etc/cron.daily/*

more /etc/cron.hourly/*

more /etc/cron.monthly/*

more /etc/cron.weekly/

more /etc/anacrontab

more /var/spool/anacron/*

查看历史命令:history,cat ~/.bash_history

校验RPM软件包:rpm -Va,dpkg -verify

?????????????? S:表示对应文件的大小不一致
?????????????? M:表示对于文件权限和所有权不一致:
?????????????? 5:表示对应文件的MD5不一致;
?????????????? D:表示文件的设备号和驱动程序不一致;???????????????????????????????????????????????????????????????????????????? ?? ? ? ? ? ? ? L:? 表示文件的符号连接内容不一致;.
?????????????? U:表示文件所有者不一致;
?????????????? G:表示文件群组不一致;
?????????????? T:表示文件的修改时间不一致;

查询文件或文件夹详细信息:stat

查找当前目录下,指定天数内修改的指定类型(or名称)文件:find / -mtime 0 -name *.jsp

查找当前目录下,指定天数内新增的指定类型(or名称)文件:find / -ctime 0 -name *.jsp

查找隐藏进程:

ps -ef | awk '{print $2}' | sort -n | uniq > ps.p

ls /proc | sort -n |uniq > proc.p

diff ps.p proc.p

查看用户登录历史记录:last

查看用户登录失败记录:lastb

查看用户最近一次登录信息:lastlog

3.日志分析

Linux日志类型大致可以分为三类,内核和系统日志,用户日志,应用日志

内核和系统日志:这种日志主要由syslog管理,根据其配置文件/etc/syslog.conf中的设置决定内核消息和各种系统程序信息记录到哪个位置

用户日志:用户日志主要记录系统用户登录或者退出的信息,包括用户名账号,登录时间,源IP等

应用日志:记录应用程序运行过程中的各种事件信息

Apr 17 10:25:37 VM-0-17-centos sshd[18083]: Accepted publickey for root from 45.79.126.79 port 5729 ssh2: RSASHA256:av1LZEMVmLIn1gDyaaMc8LWygx6KGLzjRa57Zvx7+ac
- Apr 17 10:25:37: 事件发生的日期和时间,以月、日、小时和分钟的格式表示
- VM-0-17-centos: 事件发生的机器的主机名
- sshd[18083]: 服务的名称 (sshd) 和与事件相关的进程ID (18083)
- Accepted publickey: 公钥身份验证成功。
- for root: 验证的用户帐户是root。
- from 45.79.126.79 port 5729 ssh2: 来自IP地址45.79.126.79且SSH连接的端口是5729。

查找每个IP地址的失败登录次数:
sudo awk '/sshd.*Failed/ {print $(NF-3)}' /ar/log/secure l sort | unig -c I sort -nr
查找特定IP地址的失败登录:
sudo grep "sshd.*Failed.*from <IP_ADDRESS>" /var/log/secure | awk '{print $1,$2,$3,$7,$11}'
查找特定IP地址的成功登录:
sudo grep "sshd.*Accepted.*from <IP_ADDRESS>" /var/log/secure l awk '{print $1,$2,$3,$7,$11}'

文章来源:https://blog.csdn.net/lin__ying/article/details/135391048
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。