2. 网络安全与入侵检测基础

在构建 IDS 规则与机器学习检测工程之前,必须先厘清一个根本问题:我们究竟在“检测什么”、检测系统“放在哪里”、以及它“凭什么判断这是攻击”。本章围绕 IDS/IPS 的定义、分类、部署位置、检测原理与典型应用场景展开,为后续规则编写与模型训练建立共同语言。

一、IDS 与 IPS 的定义与本质差异

IDS(Intrusion Detection System,入侵检测系统)是一类对网络流量或主机行为进行监控、分析并产生告警的安全系统。它的核心职责是“发现”,即识别出偏离正常基线的行为或匹配已知攻击特征的事件,并通知管理员。IDS 通常以旁路方式接入,不改变原始流量路径,因此不会成为业务链路的单点故障。

IPS(Intrusion Prevention System,入侵防御系统)在检测能力之上增加了“阻断”动作。它串联部署在流量必经路径上,一旦命中高危规则,可实时丢弃数据包、重置连接或封禁源 IP。IPS 的检测逻辑与 IDS 高度相似,但引入了在线时延与误杀风险两个额外约束:判断错误不再只是“多一条告警”,而可能直接中断正常业务。

一句话区分:IDS 是“摄像头 + 报警器”,IPS 是“摄像头 + 报警器 + 门禁闸机”。前者只观察,后者可拦截。

二、分类维度:从数据源到检测方法

IDS/IPS 的分类通常从两个正交维度展开:数据来源与检测方法。

  • 按数据源:NIDS(网络型)监听网卡流量,覆盖广、对主机无侵入;HIDS(主机型)采集系统调用、文件完整性、日志与进程行为,能发现加密流量内部的异常,但需在每台主机部署 Agent。
  • 按检测方法:特征检测(Signature-based)依赖已知攻击模式库,准确率高、误报低,但无法发现未知攻击;异常检测(Anomaly-based)先建立正常行为基线,偏离即告警,可发现 0day,但误报率较高。
  • 按响应方式:IDS 为被动告警,IPS 为主动阻断,二者常以“检测引擎 + 响应策略”组合出现。

三、部署位置:决定“看得见什么”

部署位置直接决定检测系统的可见范围与价值。常见位置包括:

部署位置可见流量/数据典型用途
互联网边界(DMZ 外侧)南北向流量、外部扫描与攻击阻断外部入侵、发现扫描行为
核心交换机镜像口东西向内部流量发现横向移动、内网渗透
服务器主机系统调用、文件、进程、日志检测提权、WebShell、持久化
云负载均衡/虚拟网卡租户 VPC 流量云原生环境东西向检测

需要特别注意的是:加密流量会让 NIDS 的载荷特征检测失效,此时要么在可控节点做 TLS 解密,要么转向基于流统计特征(包长、时序、方向)的检测方法。

四、检测原理:从规则匹配到行为建模

无论 IDS 还是 IPS,其检测引擎都可抽象为“采集 → 解析 → 匹配/建模 → 判定 → 响应”的信号链。下图展示了这一核心数据流与各环节的关键对象。

IDS/IPS 检测信号链与判定路径 数据采集 网卡镜像 / Agent / 日志 协议解析 IP/TCP/HTTP/DNS 字段 检测引擎 规则匹配 / 异常模型 判定与响应 告警 / 丢弃 / 重置 / 封禁 特征检测(Signature) 匹配已知攻击模式:Snort/Suricata 规则 优点:低误报;缺点:未知攻击盲区 异常检测(Anomaly) 建立正常基线:统计 / 机器学习模型 优点:可发现 0day;缺点:误报较高 部署位置决定可见性:边界看南北向,镜像口看东西向,主机 Agent 看系统行为 加密流量下载荷特征失效 → 转向流统计特征或端点解密

特征检测的典型实现是 Snort/Suricata 规则,其结构可简化为“动作 + 协议 + 方向 + 源/目的 + 选项”。例如一条检测 HTTP 路径穿越的规则:

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (
  msg:"WEB-ATTACKS path traversal attempt";
  flow:to_server,established;
  content:"../"; http_uri;
  classtype:web-application-attack;
  sid:1000001; rev:1;
)

异常检测则先对正常流量建模,例如统计单位时间内某源 IP 的失败登录次数、DNS 查询熵值或 TLS 握手包长分布,再以阈值或模型打分判定偏离程度。两者并非互斥,工程上常采用“规则兜底 + 模型补充”的混合架构。

五、典型应用场景

  • 边界防护:在互联网出口部署 IPS,阻断扫描、暴力破解、已知漏洞利用。
  • 内网横向检测:在核心交换机镜像口部署 NIDS,发现 SMB 爆破、端口扫描、C2 心跳。
  • 主机入侵检测:在关键服务器部署 HIDS,监控 WebShell 写入、提权命令、计划任务持久化。
  • 云与容器环境:以 DaemonSet 形式采集容器网络与运行时行为,检测逃逸与异常进程。
  • 合规审计:满足等保、PCI-DSS 对入侵检测与日志留存的要求。

六、常见误区与复盘要点

误区一:把 IDS 当 IPS 用。旁路 IDS 无法阻断,若误以为已拦截,实际攻击仍在进行。需明确“检测”与“阻断”的边界。

误区二:只依赖特征库。面对 0day、加密 C2、Living-off-the-Land 攻击,纯特征检测会大面积漏报,必须引入行为基线。

误区三:忽视部署位置。镜像口配置错误、流量未覆盖东西向、Agent 未覆盖关键主机,都会导致“检测系统在线但看不见攻击”。

误区四:不调优误报。IPS 误杀正常业务比漏报更危险,上线前必须经过观察模式(IDS 模式)验证与白名单调优。

复盘建议:每次告警后追问三个问题——数据源是否覆盖该路径?检测方法是特征还是异常?响应动作是告警还是阻断?这三个问题分别对应“可见性、检测能力、响应策略”,是 IDS/IPS 工程化的核心三角。

理解本章内容后,后续编写 Snort/Suricata 规则、构建异常检测特征、设计告警分级与响应流程,都将围绕“数据源—检测方法—部署位置—响应动作”这条主线展开。只有先明确检测系统在架构中的位置与能力边界,规则与模型才能真正落地生效。