Ywc's blog

应急响应笔记

Word count: 3.8kReading time: 14 min
2022/06/18

应急响应

应急响应概念

什么是应急响应

  • “应急响应”对应的英文是“Incident Response”或“Emergency Response”等,通常是指一个组织为了应对各种意外事件的发生所做的准备以及在事件发生后所采取的措施。
  • 应急响应的活动应该主要包括两个方面:
    第一、未雨绸缪,即在事件发生前事先做好准备,比如风险评估、制定安全计划、安全意识的培训、以发布安全通告的方式进行的预警、以及各种防范措施;
    第二、亡羊补牢,即在事件发生后采取的措施,其目的在于把事件造成的损失降到最小。这些行动措施可能来自于人,也可能来自系统,不如发现事件发生后,系统备份、病毒检测、后门检测、清除病毒或后门、隔离、系统恢复、调查与追踪、入侵者取证等一系列操作

原则和指导性思路3W1H

  • 原则:3W即Who、What、Why,1H即How,做应急响应要带着疑问来做事,一定要收集清楚这些信息。包括网络拓扑、应急响应的需求、发生的事件、如何处置、用户使用产品的详情,反病毒库版本多少?多少主机中了?主机是普通PC还是服务器?服务器是做什么的?……信息收集越多,对应急响应越有利。
    • 易失性原则:应急响应需要信息收集和取证,但这里是有一定的先后顺序的,即最容易丢失的数据,应该最先收集,其它的依次类推。
    • 要素原则:做应急响应,主要是抓关键证据,即要素,这些要素包括样本、流量、日志、进程及模块、内存、启动项。
    • 避害原则:做应急响应,要做到趋利避害,不能问题还没有解决,反而引入了新的问题。譬如,自己使用的工具被感染而不知情;给用户使用不恰当的工具或软件造成客户主机出现问题;给别人发样本,不加密,不压缩,导致别人误点中毒,最极端的场景就是给别人发勒索样本不加密压缩,导致别人误点中毒。

基本流程

应急响应大致可以分为五个部分,其基本流程包括收集信息、判断类型、深入分析、清理处置、产出报告。

  • 收集信息:收集客户信息和中毒主机信息,包括样本。
  • 判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DDoS等等。
  • 深入分析:日志分析、进程分析、启动项分析、样本分析。
  • 清理处置:直接杀掉进程,删除文件,打补丁,抑或是修复文件。
  • 产出报告:整理并输出完整的安全事件报告。

安全应急演练内容

● 配合用户定期开展安全应急演练工作,目的是检验用户安全保障体系是否具备安全事件的监测能力、应急演练预案是否合适、用户安全运维人员是否有基本的安全事件处置能力等。
● 安全应急演练内容包括但不限于应急演练方案的制定、演练用例的生成、演练结果的评估等,演练用例应涵盖常见的安全事件,如DDOS攻击、蠕虫、木马等,演练方式可参考红蓝对抗方式;
● 在生成应急演练用例时,应先获得用户的授权。所生成用例的影响大小、持续时间、影响范围应完全可控,不能对用户业务系统造成不可恢复的破坏性影响;
● 演练结束后,应提供安全应急演练报告,报告内容应包含但不限于安全应急演练过程、甲方安全保障体系缺陷、应急预案弱点、安全运维人员的安全事件处置能力评测以及相应的改进建议。

法律法规

《国家网络安全事件应急预案》

2017年6月,中央网信办公布了《国家网络安全事件应急预案》。习近平总书记指出,网络安全是动态的而不是静态的,是相对的而不是绝对的。维护网络安全必须“防患于未然”。制定《国家网络安全事件应急预案》是网络安全的一项基础性工作,是落实国家《突发事件应对法》的需要,更是实施《网络安全法》、加强国家网络安全保障体系建设的本质要求。
《网络安全法》第五十三条要求,国家网信部门协调有关部门建立健全网络安全风险评估和应急工作机制,制定网络安全事件应急预案,并定期组织演练。这个预案指的便是《国家网络安全事件应急预案》,《网络安全法》授权国家网信部门牵头制定。同时,《网络安全法》要求,网络运营者应当制定网络安全事件应急预案;负责关键信息基础设施安全保护工作的部门应当制定本行业、本领域的网络安全事件应急预案。这些预案都要在《国家网络安全事件应急预案》的总体框架下分别制定。
不仅如此,《网络安全法》中若干处提到的有关“规定”也是指《国家网络安全事件应急预案》。如第二十五条要求,在发生危害网络安全的事件时,立即启动应急预案,采取相应的补救措施,并按照规定向有关主管部门报告;第五十一条要求,国家网信部门应当统筹协调有关部门加强网络安全信息收集、分析和通报工作,按照规定统一发布网络安全监测预警信息;第五十二条要求,负责关键信息基础设施安全保护工作的部门,应当按照规定报送网络安全监测预警信息。《国家网络安全事件应急预案》均对上述事项作出了规定。我国的国家级网络安全应急预案最早制定于 2008 年,即《国家网络与信息安全事件应急预案》,以国办名义印发。中央网络安全和信息化领导小组成立后,结合实际情况对该预案进行了修订,但以上预案都没有对社会公开。网络安全是共同的而不是孤立的,此次将修订后的国家网络安全应急预案公开印发,就是为了使全社会周知《国家网络安全事件应急预案》的内容,形成共同应对网络安全重大事件的局面。同时,为了更好地指导各级各类网络安全预案的制定,构建科学合理、有机统一的国家网络安全应急预案体系。

应急之排查方法

Linux下排查方法

1、查看用户信息

/etc/passwd 查看用户信息文件
/etc/shadow 查看影子文件
awk -F: ‘$3==0{print $1}’ /etc/passwd (查看系统是否还存在其他的特权账户,uid为0,默认系统只存在root一个特权账户)

图片.png

who 查看当前登录用户(tty 本地登陆 pts 远程登录)

图片.png

w 查看系统信息,想知道某一时刻用户的行为

图片.png

uptime 查看登陆多久、多少用户,负载

图片.png

passwd -d username 删除用户口令

图片.png

stat /etc/passwd #查看密码文件上一次修改的时间,如果最近被修改过,那就可能存在问题。

图片.png

cat /etc/passwd | grep -v nologin #查看除了不可登录以外的用户都有哪些,有没有新增的

图片.png

cat /etc/passwd | grep x:0 #查看哪些用户为root权限,有没有新增的

图片.png

cat /etc/passwd | grep /bin/bash #查看哪些用户使用shell

图片.png

查询可以远程登录的账号:awk ‘/$1|$6/{print $1}’ /etc/shadow
查询具有sudo权限的账号:more /etc/sudoers | grep -v “^#|^$” grep “ALL=(ALL)”

2、历史命令

很多的服务器会有存在多用户登陆情况,登陆root用户可查看其他用户的相关账户登录信息,.bash_history保存了用户的登陆所操作的命令信息
home/root/.bash_history
history查看历史命令

图片.png

cat .bash_history >>history.txt 保存历史命令

图片.png

3、查看端口

netstat –antp

图片.png

查看对应链接的文件路径
ls -l /proc/pid/exe

图片.png

ls -l /proc/*/exe | grep xxx #如果我们知道恶意程序的启动文件大致位置,可以使用这个发现无文件的恶意进程

图片.png

netstat -antlp | grep 172.16.222.198 | awk ‘{print $7}’ | cut -f1 -d”/“ 通过可疑的ip地址获取程序pid

图片.png

4、查看进程

ps -aux

图片.png

查看相关pid对应程序
ps –aux | grep pid

图片.png

监控某一应用线程数(如ssh)
ps -eLf | grep ssh| wc –l
监控网络客户连接数
netstat -n | grep tcp | grep 侦听端口 | wc -l

图片.png

ps aux –sort=pcpu | head -10 查看cpu占用率前十的进程,有时候可以发现

图片.png

5、开机启动项

启动项文件:
more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/

6、定时任务

crontab -l

图片.png

编辑定时任务
crontab –e

图片.png

crontab -u root –l 查看root用户任务计划
ls /var/spool/cron/ 查看每个用户自己的执行计划

图片.png

#删除计划任务且控制计划任务不能写东西
sed ‘/gcc.sh/d’ /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab
常见的定时任务文件:
/var/spool/cron/* #centos的
/var/spool/cron/crontabs/* #ubuntu的
/var/spool/anacron/*
/etc/crontab
/etc/anacrontab #异步定时
/etc/cron.hourly/*
/etc/cron.daily/*
/etc/cron.weekly/
/etc/cron.monthly/*

7、服务

chkconfig 查看开机启动项目

图片.png

chkconfig –list 查看服务自启状态

图片.png

systemctl list-unit-files |grep enabled

8、查找文件

find查找指定的文件:find /home1 -name *.php ! -name index.php
find查看最近一天修改的文件: find / -mtime -1 > /etc/aa.txt(查看修改的文件并保存到aa的txt文档)
查找并删除,liyong xargs find . -name .svn | xargs rm –rf
find / -size +10000k -print:查找大于10000k的文件
md5sum -b filename:查看文件的md5值

9、top命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
默认top是根据cpu的占用情况进行排序的

图片.png

可通过按“b”键进行切换,可切换到按照内存使用情况进行排序
top -p pid 监控指定进程

图片.png

free 查看当前系统内存使用情况

图片.png

top -b -n1 | head

图片.png

10、host文件

有一些挖矿程序会修改 /etc/hosts文件

图片.png

Diff
Linux中的命令,Diff,可以查看两个文本文件的差异

11、日志分析

默认日志位置:var/log
1、定位有多少IP在爆破主机的root帐号:
grep “Failed password for root” /var/log/secure | awk ‘{print _=<>){ /for(.*?) from/; print “$1\n”;}’|uniq -c|sort -nr
2、登录成功的IP有哪些:
grep “Accepted “ /var/log/secure | awk ‘{print $11}’ | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep “Accepted “ /var/log/secure | awk ‘{print $1,$2,$3,$9,$11}’

12、查看命令状态

很多情况下,存在ps、netstat等一些常见命令被替换,可利用stat查看该状态,查看其修改时间
stat /bin/netstat

图片.png

13、文件清除

很多时候会遇到无法常看文件权限或是病毒在一直向某个文件写入程序,可尝试如下命令:
lsattr [恶意文件绝对路径]命令查看权限,
使用chattr -i [恶意文件绝对路径]解除文件锁定后删除。
chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/(chattr +i不让lib文件被写入删除)
结束某一进程:
Kill -9 pid

windows下排查方法

一、账号安全

query user 查看当前登录账户

图片.png logoff ID 注销用户id
net user 查看用户
net user username 查看用户登录情况
lusrmgr.msc 打开本地用户组

图片.png regedit注册表查看账户,确认系统是否存在隐藏账户

图片.png AS Client_IP FROM ‘C:\Users\haha\Desktop\Security.evtx’ WHERE EventID=4624”

图片.png

二、检查异常端口进程

查看目前连接:
netstat -ano
一般是查看已经成功建立的连接:
netstat -ano | findstr “ESTABLISHED”

图片.png 根据pid定位程序名称
tasklist | findstr ”pid”

图片.png 运行中输入msinfo32,可打开系统信息,在“正在运行任务”中可获取进程详细信息,包括进程的开始时间、版本、大小等信息。

图片.png 根据端口查看pid
netstat -ano | findstr “8080”

图片.png 利用wmic查看进程执行时的命令
Wmic process where name=‘irefox.exe’ get name,Caption,executablepath,CommandLine ,processid,ParentProcessId /value

图片.png Wmic process where processid=‘2040’ get name,Caption,executablepath,CommandLine ,processid,ParentProcessId /value

图片.png

三、启动项检查

msconfig查看系统启动项

图片.png 查看注册表是否有异常启动项
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce

图片.png

四、查看系统定时任务

Cmd下运行schtasks(win7系统利用at),查看定时任务

图片.png C:\Windows\System32\Tasks 查看任务清单

图片.png 删除任务计划
建议删除任务计划时以管理员登录
SchTasks /Delete /TN 任务计划名称

五、查看系统服务

Services.msc
图片.png

删除服务可从任务管理器中手动删除,也可使用命令:
sc stop [服务名称]停止服务后,
sc delete [服务名称]删除服务

六、文件查看

查看最近打开的文件,运行窗口中输入“%UserProfile%\Recent”

图片.png

查看C:\Documents and Settings,C:\Users下是否存在可疑用户或文件

Reference

应急响应实战笔记,一个安全工程师的自我修养
[应急响应实战笔记](

CATALOG
  1. 1. 应急响应
  2. 2. 应急响应概念
    1. 2.1. 什么是应急响应
    2. 2.2. 原则和指导性思路3W1H
    3. 2.3. 基本流程
    4. 2.4. 安全应急演练内容
    5. 2.5. 法律法规
      1. 2.5.1. 《国家网络安全事件应急预案》
  3. 3. 应急之排查方法
    1. 3.1. Linux下排查方法
      1. 3.1.0.1. 1、查看用户信息
      2. 3.1.0.2. 2、历史命令
      3. 3.1.0.3. 3、查看端口
      4. 3.1.0.4. 4、查看进程
      5. 3.1.0.5. 5、开机启动项
      6. 3.1.0.6. 6、定时任务
      7. 3.1.0.7. 7、服务
      8. 3.1.0.8. 8、查找文件
      9. 3.1.0.9. 9、top命令
      10. 3.1.0.10. 10、host文件
      11. 3.1.0.11. 11、日志分析
      12. 3.1.0.12. 12、查看命令状态
      13. 3.1.0.13. 13、文件清除
    2. 3.1.1. windows下排查方法
      1. 3.1.1.1. 一、账号安全
      2. 3.1.1.2. 二、检查异常端口进程
      3. 3.1.1.3. 三、启动项检查
      4. 3.1.1.4. 四、查看系统定时任务
      5. 3.1.1.5. 五、查看系统服务
      6. 3.1.1.6. 六、文件查看
  • 4. Reference