核心判断依据及典型表现
(一)网络层异常特征
现象类型 | 具体表现 | 潜在风险 |
---|---|---|
突发流量暴涨 | 入站/出站带宽长期接近上限(>90%),且无业务增长支撑 | DDoS洪水攻击、CC攻击 |
异常流量来源 | 单一IP/IP段贡献超50%流量,或存在大量伪造源IP(Private/Reserved地址) | IP伪造攻击、僵尸网络控制 |
协议占比失衡 | HTTP/HTTPS占比异常降低,ICMP/UDP等非常用协议占比突增 | PING泛洪、UDP反射放大攻击 |
连接状态异常 | TCP半开连接(SYN_RECV)堆积,或大量FIN_WAIT/CLOSE_WAIT状态持久化 | SYN Flood攻击、慢速攻击 |
(二)系统资源消耗异常
资源类型 | 异常指标 | 关联攻击类型 | 检测命令示例 |
---|---|---|---|
CPU | 单核/总体使用率持续>80%,伴随陌生进程运行 | 挖矿木马、病毒扩散 | top , ps aux --sort=-%cpu |
内存 | RSS内存占用率>90%,SWAP交换区频繁触发 | 内存溢出攻击、蠕虫病毒 | free -m , vmstat |
磁盘IO | %util接近100%,且非数据库/日志文件主导 | 扫描类攻击、数据擦除操作 | iostat -x 1 3 , df -h |
网络收发包 | rx/tx速率差异过大(如发送远大于接收) | C&C回连、数据外传 | ifconfig , nload |
(三)日志文件关键线索
日志类别 | 危险特征 | 示例关键词 |
---|---|---|
Web访问日志 | 短时间内同一页面被重复请求数百次,或访问不存在的高危路径(如/phpmyadmin) | “404 Not Found”, “/wp-login.php” |
系统认证日志 | 连续多次SSH登录失败后成功(Brute Force典型模式),或root账户异地登录 | “Failed password”, “accepted password” |
应用错误日志 | SQL注入报错(如You have an error in your SQL syntax near…)、XSS尝试痕迹 | “UNION SELECT”, ” |
防火墙日志 | 高频阻断同一IP的规则匹配(如PORT SCAN),或放行异常协议(如Cobalt Strike默认端口) | “DROP”, “ACCEPT” |
专项检测技术手段
(一)实时流量分析
✅ 操作步骤:
- 使用
tcpdump -i eth0 -w attack.pcap
捕获可疑时段流量 - 通过Wireshark过滤显示
http.request.method == "GET"
且http.host
包含异常域名的流量 - 统计各IP的请求频率:
editcap attack.pcap new_file.pcap
后导入Bro/Zeek进行分析
(二)进程快照比对
🔧 实施方法:
# 首次快照(干净环境) ps auxfww >> baseline.txt # 疑似攻击时再次采集 ps auxfww >> suspect.txt # 差异对比(忽略PID变化) diff <(sort baseline.txt) <(sort suspect.txt) | grep -v '^PID'
重点关注新增的/dev/shm
内存盘进程、计划任务(cronjob)及隐藏进程(ps -efl
查看)
(三)文件完整性校验
🔍 关键操作:
# 建立基线哈希库(需提前执行) find /usr/bin /usr/sbin -type f -exec sha256sum {} ; > system_hashes.sha256 # 定期验证 sha256sum -c system_hashes.sha256 | grep -v OK
特别注意动态链接库(.so)、内核模块(/lib/modules/$(uname -r)/)的篡改
常见攻击场景对照表
攻击类型 | 主要特征 | 应急响应 |
---|---|---|
DDoS/CC攻击 | 页面加载缓慢/超时,Nginx出现503错误 | 启用CDN加速,配置iptables限速规则 |
SQL注入 | 数据库报错含hex编码字符,Web日志出现长URL参数 | 立即备份数据库,启用WAF规则拦截 |
暴力破解 | SSH/FTP登录失败日志密集,源IP跨多地区 | 修改默认端口,部署Fail2ban封禁策略 |
网站挂马 | 网页源代码出现不明 | 隔离服务器,使用杀毒软件全盘扫描 |
挖矿木马 | CPU满载但无明确进程对应,/tmp目录生成随机文件 | 终止可疑进程,检查cronjob定时任务 |
相关问题与解答
Q1: 如果监控显示CPU突然飙升但没有明显进程怎么办?
💡 解答:这可能是内核级Rootkit的典型表现,建议:①使用gdb
附加到init
进程查看调用栈;②检查/proc/[pid]/maps
确认内存映射合法性;③通过rkhunter --propose-commands
生成检测脚本;④最彻底方案是重启进入救援模式进行离线杀毒。
Q2: 如何区分正常业务高峰和CC攻击?
🔍 解答:可通过三个维度鉴别:①请求头特征(正常用户会有Referer/User-Agent,CC攻击多为空);②访问深度(正常用户会浏览多个页面,攻击者只打单个接口);③时间分布(业务高峰有昼夜规律,攻击往往持续数小时),推荐使用ModSecurity2的规则引擎进行
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/94345.html