识别并拦截潜在异常内部攻击的核心是“从正常中识破异常”,需建立可信行为基线,聚焦协议复用、低频隐蔽等偏离基线的行为,通过流量采集、建模、实时过滤与闭环响应四环节实现精准防御。

识别并拦截潜在的异常内部攻击,核心在于“从正常中识破异常”——内部攻击者往往复用合法协议、低频隐蔽通信、伪装成业务流量,因此不能只看“有没有恶意IP”,而要聚焦“行为是否背离基线”。实战中需结合流量采集、行为建模、实时过滤与闭环响应四个环节。
建立可信的内部流量基线
没有基线,就无从定义“异常”。内部网络的正常行为具有强时空规律性:如办公网每日9:00–18:00 HTTP/S 流量占主导,数据库服务器仅在固定时段响应来自应用服务器的 TCP 3306 连接,运维终端极少访问生产数据库或发起大量 DNS 查询。
- 使用 Wireshark 或 tshark 在非高峰时段(如凌晨2点)抓取24小时全量流量,导出 Protocol Hierarchy 和 Conversations 统计,记录各协议占比、Top 10 通信对、平均会话时长与数据量
- 重点关注“非业务时间活跃”“跨部门高频短连接”“非授权端口跑标准协议”三类信号。例如财务系统IP在23:00后持续向研发网段发送大量 UDP 包,且目的端口为 5353(mDNS),但该网段无 mDNS 服务部署
- 将基线固化为 JSON 或 CSV,作为后续比对的黄金标准,而非凭经验判断
定位高风险内部行为模式
内部攻击常见手法包括横向移动、凭证窃取、数据渗出和持久化通信,每种都有可捕获的流量指纹:
- 横向移动:过滤 ip.src != ip.dst && smb || dcerpc || lsass,检查非域控IP发起的SMB会话是否携带 NTLMv2 响应、是否存在异常的 \IPC$ 管道枚举
- 凭证窃取:关注 Kerberos 流量中 TGS-REQ 请求激增(kerberos.vno == 5 && kerberos.msg_type == 12),尤其源IP为普通办公终端却频繁请求高权限服务票据
- 数据渗出:检测 DNS 隧道特征——dns.qry.name matches "(?i)[a-z0-9]{30,}.example.com"(超长子域名)、ICMP 载荷长度恒为64字节且 payload 含 Base64 片段
- 隐蔽C2:HTTP 流量中 User-Agent 为 “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36” 但 Host 字段含随机字符串(http.host matches "[a-z0-9]{8,12}.top"),且 POST 请求体为加密JSON
在交换机/镜像端实施轻量级拦截
纯分析无法止血,需联动基础网络设施实现毫秒级阻断。不依赖IPS硬件,也可通过开源工具达成:
- 在镜像端部署 Zeek(Bro),编写自定义脚本检测“单IP 5分钟内发起 >200 次不同目标的 TCP SYN+ACK 重传”,触发 notice "LateralScanDetected" 并输出到 Syslog
- 对接防火墙API(如 FortiGate、Palo Alto),当 Zeek 发送告警时,自动调用接口添加临时拒绝规则:block src_ip=10.20.30.40 dst_port=445 duration=3600s
- 对已确认失陷主机,通过 SDN 控制器(如 OpenDaylight)下发流表,直接丢弃其发出的 DNS/ICMP 流量,避免影响其他业务
闭环验证与误报收敛
内部攻击分析最易误伤——一次批量补丁分发可能触发“大量短连接”告警,HR系统同步花名册可能产生“高频LDAP查询”。必须建立反馈机制:
- 所有自动拦截动作必须带人工审批开关,首次触发仅告警;第二次相同模式才执行静默阻断
- 每周抽取10条告警,还原完整TCP流(Follow TCP Stream),人工确认是否真为攻击。将确认结果反哺至 Zeek 的 signature 文件,加入白名单字段(如 orig_h in [10.10.10.0/24])
- 用 tshark 批量统计某IP的“DNS查询QTYPE分布”,若95%为 A 记录+5%为 TXT(用于配置下发),则排除隧道;若80%为 TXT 且 name 含 base32 编码,则标记为高危

















