异常流量识别的核心逻辑,就是先建立 “正常基线”,再识别 “偏离基线的行为”。没有基线,就没有所谓的 “异常”。下面我按「基础→分层技巧→工具方法→避坑指南」给你拆解一套可直接落地的识别框架。
一、先搞懂:什么是 “正常基线”?
所有识别技巧的前提,是先摸清楚你的业务流量长什么样,比如:
- 带宽:业务高峰 / 低谷的带宽区间(比如 Web 业务白天 100-200M,夜间低于 10M)
- 协议:HTTP/HTTPS、数据库、办公流量的占比(比如 HTTP/HTTPS 占比 90% 以上)
- 端口:固定开放的业务端口(如 80/443/3306),非业务端口几乎无访问
- 访问关系:固定的内外网访问模式(如外网用户访问 Web 端口,内网仅主动访问公网 DNS / 办公服务)
- 时间:业务访问高峰时段(如 9:00-18:00),非高峰时段流量极低
基线要按业务、时段、网段细分,不能用 “一刀切” 的标准。
二、分层识别技巧:从网络层到应用层
1. 网络层(L3):看整体特征
表格
| 异常表现 | 可能风险 | 识别技巧 |
|---|---|---|
| 带宽突然飙升(数倍于基线) | DDoS 攻击、数据外发、恶意下载 | 对比历史带宽曲线,同时检查流量方向:如果是内网向外网突发大流量,优先怀疑数据泄露 |
| 带宽突然降为 0 | 攻击导致业务瘫痪、链路故障 | 结合业务端口状态(如 80/443 是否仍在监听),排除链路故障后,再排查是否被 DDoS 打满 |
| 陌生 IP / 高风险 IP 大量访问 | 外部扫描、暴力破解、漏洞利用 | 重点关注:境外 IP、从未合作过的地区 IP、威胁情报标记的恶意 IP |
| 内网主机访问大量不同 IP | 内网横向移动扫描 | 单台主机短时间内访问内网多个网段的不同 IP,极大概率是攻击者在探测内网资产 |
| ICMP 流量异常(大量 Ping 包 / 大载荷 Ping 包) | Ping 风暴、ICMP 隧道通信 | 正常业务 ICMP 包占比极低,出现高频 Ping 包或超大载荷 Ping 包,需重点排查 |
2. 传输层(L4):看端口与会话
表格
| 异常表现 | 可能风险 | 识别技巧 |
|---|---|---|
| 非业务端口大量访问 | 暴力破解、端口扫描、漏洞利用 | 比如业务仅开放 80/443,却出现大量 3389/22/445 访问,或单 IP 短时间内扫描 1-1000 端口 |
| 大量半开 TCP 连接(SYN 多、ACK 少) | SYN Flood 攻击 | 用 Wireshark 过滤tcp.flags.syn==1 and tcp.flags.ack==0,半开连接占比过高就是典型攻击特征 |
| TCP 标志位异常包(如 SYN+FIN、空标志位) | 端口扫描工具生成的畸形包 | 这类包不符合正常 TCP 三次握手规范,是 Nmap 等扫描工具的典型特征 |
| 内网主机主动向外发起高危端口连接(3389/22/445) | 反向 Shell、恶意程序主动外联 | 正常业务不会主动向外发起这类连接,大概率是攻击者植入的后门在建立反向连接 |
3. 应用层(L7):看内容与行为
表格
| 异常表现 | 可能风险 | 识别技巧 |
|---|---|---|
| Web 请求大量 404/500 错误 | 目录扫描、漏洞探测 | 攻击者会批量访问敏感路径(/admin、/phpmyadmin、/backup),产生大量 404 错误 |
| 单 IP 短时间内大量重复请求同一 URL | CC 攻击、恶意爬虫 | 比如 1 秒内超过 100 次请求,且 User-Agent 异常(空 UA、爬虫 UA、恶意工具 UA) |
| HTTP 请求参数含 SQL 注入 / XSS 特征 | Web 攻击尝试 | 过滤请求参数中含union select、script标签、--注释符的请求 |
| DNS 请求异常(大量请求 / 陌生域名 / 长域名) | DNS 隧道、C2 通信、放大攻击 | 内网主机频繁查询陌生域名,或请求超长域名(攻击者用域名传输数据),都是高危信号 |
| 非工作时间大量文件传输(FTP/SFTP) | 数据外发 | 正常业务文件传输多在工作时间,凌晨 / 深夜的大文件传输需重点排查 |
4. 行为特征:跳出单包看整体
- 时间异常:非高峰时段(如凌晨 3 点)的大量业务访问、文件传输,大概率是攻击者在低峰期行动
- 频率异常:高频请求(暴力破解、CC 攻击)或低频持续请求(慢速扫描、数据外发),都偏离正常业务模式
- 方向异常:大量内网主机主动向外发起连接(正常业务以外网向内访问为主),优先怀疑 C2 通信和数据泄露
三、常用工具识别技巧
1. Wireshark 抓包分析
- 半开连接过滤:
tcp.flags.syn==1 and tcp.flags.ack==0 - 暴力破解过滤:
ip.src == 攻击IP and tcp.dstport in {22,3389,445} - SQL 注入过滤:
http.request.uri contains "union" or http.request.uri contains "script" - 异常会话统计:用
Statistics → Conversations查看单 IP 的会话数量,快速定位扫描主机
2. 平台工具(防火墙 / IDS/ELK)
- 防火墙 / IDS:查看策略命中日志、攻击告警,结合流量曲线,定位异常时间点和 IP
- ELK / 日志平台:聚合统计 IP 访问次数、URL 请求次数,设置阈值告警(如单 IP1 分钟请求超过 1000 次告警)
四、避坑指南:减少误报 / 漏报
- 先排除合法流量:异常流量≠攻击流量,比如安全扫描、性能测试、合法爬虫(如百度爬虫)都会产生 “异常” 特征,核对业务记录即可排除
- HTTPS 流量要解密:未解密的 HTTPS 流量无法识别应用层内容,会漏掉大量 Web 攻击和隧道通信
- 隧道流量单独识别:DNS/ICMP/HTTP 隧道不会触发传统攻击特征库,必须结合行为分析(如长域名、高频小包)识别
- 定期更新基线:业务上线新功能、扩容带宽后,基线会变化,不更新基线会导致大量误报
落地识别流程(可直接套用)
- 建立基线 → 2. 采集流量日志 → 3. 与基线对比找偏离 → 4. 用攻击特征验证 → 5. 分级告警处置 → 6. 复盘优化基线 / 规则
No responses yet