01 · 检测体系框架与数据源
1.1 四层检测框架
| 层次 | 组成 | 产出 |
|---|---|---|
| D1 数据源层 | 接入交换机RA-Guard/ND检测丢弃日志与端口角色记录;关键VLAN的SPAN/TAP镜像流量;主机侧NDP事件日志(邻居缓存变更、DNS配置变更) | 原始事件流(报文级+设备级+主机级) |
| D2 信号层 | 八大类异常规则(§02):伪造RA、RDNSS漂移、网关移除、DAD异常、NA投毒、耗尽洪泛、重定向滥用、协议栈畸形报文 | 单点告警(带上下文字段) |
| D3 分析层 | 工具链(§03)+欺骗诱捕(§04)+关联分析(同源MAC跨端口、同一时间窗多类信号共现) | 高置信事件(降噪后) |
| D4 行动层 | SIEM工单、自动化处置(端口关停脚本)、演练验证与度量报告(§05-§07) | 处置闭环与能力度量 |
1.2 数据源布点原则
- 每个接入VLAN至少一个观测点:NDP攻击是链路本地行为——只在核心镜像无法看到链路层细节(NS/NA/RA的完整上下文)。
- 设备日志与流量镜像双轨:RA-Guard丢弃记录证明"防护在工作",流量镜像证明"链路上实际发生了什么"——两者互证,缺一不可。
- 主机侧补齐盲区:交换机看不到加密后的影响(DNS是否被实际劫持使用),需在样本主机采集DNS解析器列表变更(如resolv.conf/系统DNS配置变更事件)作为后果验证信号。
02 · NDP异常检测规则库(八类)
| 编号 | 检测规则 | 判定逻辑(概念级) | 对应攻击 | 主要误报源 |
|---|---|---|---|---|
| R-01 | 非受信RA源 | RA(Type 134)源MAC/源端口不在受信任网关清单;或链路本地源地址不在网关地址段规划内 | AT-1/5 | 新增路由器未登记 |
| R-02 | RDNSS/DNSSL基线漂移 | RA携带的RDNSS/DNSSL集合与受控基线存在非规划差异(新增/替换/删除解析器或搜索域) | AT-1投毒 | 合法DNS变更未同步基线 |
| R-03 | M/O标志与网络规划不符 | RA的M/O标志组合与网段配置策略基线不一致 | AT-1翻转 | 网段策略调整未同步 |
| R-04 | 网关移除事件 | 捕获Lifetime=0的RA;或主机默认路由器列表条目异常消失 | AT-5移除 | 真实网关重启/维护窗 |
| R-05 | DAD应答异常 | 同一链路层地址对多个不同目标地址应答DAD;DAD应答速率超基线 | AT-3 | 代理应答类工具 |
| R-06 | NA投毒特征 | 非请求式NA(Solicited=0)以组播发送;NA频率超NUD基线;NA宣告的目标地址与源链路层地址映射关系在受控绑定表中不存在;周期性NA刷新模式 | AT-2 | 某些合法主机的主动宣告行为 |
| R-07 | NDP耗尽/洪泛 | 单位时间NS/NA/RA报文数超端口基线;INCOMPLETE条目占比超阈值(设备侧);随机源地址模式检测 | AT-4/5 | 批量开机风暴 |
| R-08 | 重定向滥用 | Redirect(Type 137)源非当前默认路由器;Redirect目标链路层地址不在地址解析表中 | AT-6 | 合法路由器优化行为(罕见) |
规则设计原则:①每条规则必须携带上下文字段(源MAC、源链路本地地址、入端口、VLAN、时间窗、RA内容摘要),否则无法支撑溯源与处置;②R-02/R-03属于"基线比对型"规则,其质量取决于基线管理流程(变更同步SOP),是运营问题而非技术问题;③所有规则应先在镜像流量上"只记录不告警"运行2—4周以建立正常性基线,再启用告警(压制开局误报风暴)。
报文级规则示例(Suricata/Snort通用语法,概念级——阈值为占位示例,落地前必须按本网段基线校准):
# R-01 非受信源RA:链路上所有RA(itype 134)均触发记录,在SIEM侧与网关清单比对 alert icmpv6 any any -> $HOME_NET any (msg:"NDP R-01 RA observed - verify trusted source"; \ itype:134; icode:0; classtype:attempted-admin; sid:1000001; rev:1;) # R-04 网关移除:Lifetime=0的RA具有立即可见性危害(lifetime字段位于RA第7-8字节) alert icmpv6 any any -> $HOME_NET any (msg:"NDP R-04 RA lifetime-zero gateway removal"; \ itype:134; icode:0; content:"|0000|"; offset:6; depth:2; \ classtype:attempted-dos; sid:1000002; rev:1;) # R-07 NDP洪泛:单位时间RA超阈值(配合交换机端口速率统计交叉验证) alert icmpv6 any any -> $HOME_NET any (msg:"NDP R-07 RA flood"; \ itype:134; icode:0; detection_filter:track by_dst, count 10, seconds 10; \ classtype:attempted-dos; sid:1000003; rev:1;)
注:以上为概念演示规则(字段与阈值均为示意),R-02/R-03/R-06等基线比对型规则须在SIEM侧以日志关联实现;规则基于ICMPv6类型码(itype)与载荷内容(content/offset/depth)匹配,落地前须在镜像点验证本环境报文形态并校准阈值。
03 · 开源工具链实现
| 工具 | NDP检测相关能力 | 典型用法 |
|---|---|---|
| Suricata / Snort | IPv6/ICMPv6解码与规则匹配;Emerging Threats等公开规则集含IPv6异常事件 | 镜像流量旁路检测,承载R-01/R-04/R-07/R-08的报文级规则 |
| Zeek | IPv6协议分析器输出结构化日志(含ICMPv6/ND事件日志) | 长期流量基线学习与异常挖掘(R-06周期性模式识别) |
| Wireshark / tshark | 显示过滤器(icmpv6.type==134等)、字段提取、pcap取证 | 事件复盘、规则开发验证、现场取证 |
| ndpmon | 专用NDP监测守护进程:监听链路上的RA/NS/NA异常(流氓路由器、异常宣告)并告警 | 小型网络低成本部署点监测 |
| THC-IPv6(防御性使用) | detect-new-ip6(新上线主机监测)、alive6(活跃主机发现) | 与攻击面无关的资产活性测绘(授权环境) |
| 交换机自身特性 | RA-Guard/ND检测丢弃计数、SAVI绑定表变更日志、端口ND报文速率统计 | D1设备级数据源主力 |
实现路径建议:起步阶段(资源受限)以"交换机日志集中+ndpmon/TAP抽样+Wireshark取证"最小闭环起步;成熟阶段升级为"Suricata/Zeek全量镜像+SIEM关联"。工具选型服从数据可得性——没有镜像点的组织,先解决布点再谈规则。
04 · 欺骗与诱捕(主动防御)
4.1 设计思路
NDP攻击的探测阶段(DAD监听、活跃主机发现、现有网关/RDNSS侦察)必然在链路上留下交互痕迹——防守方可布设"已知答案的探针"将被动监听升级为主动诱捕:
- 诱饵DAD探测:监测节点周期性对精心选择的未使用地址执行DAD——任何应答即为DAD攻击(R-05)的直接证据,且应答者地址、MAC、端口全量可得。
- 金丝雀RDNSS预期:在管理域内保持一组"永不出现的DNS解析器"白名单立场,任何RA宣告其替代集即高置信告警。
- 蜜罐主机:低交互IPv6蜜罐(无真实业务、地址不对外发布)收到任何NS解析请求/NA定向宣告即为链路侦察信号——正常网络中无人解析它。
4.2 边界与合规
诱捕仅产生观测数据,不对攻击者发起任何主动交互(不反向探测、不诱导连接)——符合防御研究合规边界;蜜罐地址规划须与生产地址段隔离标识,避免污染资产台账(与子课题04测绘协同)。
05 · 控制有效性验证方法(回答KQ-1/KQ-2)
5.1 授权验证流程
- 授权与环境隔离:书面授权、专用实验VLAN/演练沙箱(迪妙攻防演练体系),不得在生产链路实施。
- 基线快照:记录验证前主机默认路由/DNS配置/邻居缓存、交换机绑定表、规则告警基线。
- 控制开启态测试:依次执行攻击载荷(THC-IPv6/SI6工具包,概念级:fake_router6/dos-new-ip6/ndpexhaust6/parasite6/redir6),记录:是否被阻断(设备日志)、是否被检测(D2告警)、检出耗时。
- 控制关闭态对照:同一载荷在防护关闭的对照组执行,确认影响面成立(验证测试有效性,避免"本来就没影响"的假阴性结论)。
- 指标计算:阻断率=被阻断载荷数/总载荷数;检出率=产生告警载荷数/总载荷数;MTTD=载荷发起至告警产生的中位时长;误报率=验证期间误报告警/总告警。
5.2 度量指标定义
| 指标 | 定义 | 目标参考(自定) |
|---|---|---|
| RA-Guard覆盖率 | 启用RA-Guard的接入端口数/接入端口总数 | ≥99%(例外端口清单化) |
| 阻断率 | 授权测试中RA类载荷被接入层阻断的比例 | 100%(Rogue RA四变体) |
| 检出率 | 全部六类攻击载荷产生高置信告警的比例 | ≥95%(AT-2合法地址形态可为下限) |
| MTTD | 攻击发起到高置信告警中位时长 | 分钟级 |
| 误报率 | 误报告警/总告警(按月) | ≤10%并持续下降 |
| 基线漂移处置时长 | RDNSS/网关基线告警到变更单闭环时长 | ≤24小时 |
注:目标值为工程参考,组织应按资产重要性自定;关键网段(数据中心管理面、财务终端网段)应显著从严。
06 · SIEM集成与关联分析
6.1 日志字段规范
所有NDP事件进入SIEM前应规范化为统一字段:event_type(ra_spoofed/rdnss_drift/gateway_removed/dad_anomaly/na_poison/exhaust/redirect_abuse)、src_mac、src_lladdr、ingress_port、vlan、payload_summary(RDNSS列表/PIO/Preference/Router Lifetime等关键内容摘要)、action(blocked/permitted/logged)、confidence(规则置信度)。
6.2 关联规则示例(概念级)
- 攻击链关联:同一源MAC在10分钟内先后触发R-01(伪造RA)+主机DNS变更事件(后果信号)→ 升级为"疑似链路中间人已生效"高置信事件。
- 横向关联:同一源MAC跨VLAN出现(配合802.1X会话记录)→ 物理移动或MAC伪造排查。
- 双栈对照:IPv4侧同时出现ARP异常(DAI日志)+IPv6侧NDP异常 → 攻击者不区分协议栈的横向行为画像。
- 降噪关联:R-04(网关移除)与变更管理工单时间窗匹配即降级为"计划内变更"。
6.3 与态势感知联动
NDP事件流接入迪妙态势指标体系(子课题06成熟度框架):按月输出"链路安全事件热力图"(网段×攻击类型×处置状态),支撑管理决策与年度评估。
07 · 攻防演练场景设计
| 场景 | 演练科目 | 载荷(概念级) | 成功标准(蓝队) |
|---|---|---|---|
| ND-1 | 伪造RA发现与处置 | 受控fake_router6等价载荷,投递至演练VLAN | 接入层阻断+告警+源定位+端口处置全流程≤30分钟 |
| ND-2 | RDNSS投毒猎杀 | 仅注入RDNSS变更的受控RA(网关不变) | 内容级规则(R-02)命中;样本主机DNS变更被后果信号捕获 |
| ND-3 | Toxic Proxies链复现(授权沙箱) | RA+WPAD组合链 | 链路环节(RA)与主机环节(WPAD禁用)双重拦截 |
| ND-4 | DAD攻击韧性与新设备入网 | 受控DAD应答干扰 | 新设备入网成功率≥基线;R-05告警;SAVI联动处置 |
| ND-5 | NDP耗尽抗压 | 受控ndpexhaust6等价低速载荷 | 合法业务无感;INCOMPLETE比例阈值告警触发;扩容/参数预案启动 |
注:全部科目在授权演练沙箱执行;载荷细节按"仅蓝队可见"原则管理;演练结果回写第8页成熟度评估。
08 · 本节参考来源(第5页)
Suricata开源IDS/IPS:suricata.io;Snort:snort.org;Zeek网络分析框架:zeek.org;Wireshark:wireshark.org。
ndpmon(NDP监测守护进程,开源项目,文档与代码库可检索于公开源码托管平台)。
THC-IPv6(检测性工具detect-new-ip6/alive6):github.com/vanhauser-thc/thc-ipv6;SI6 Networks IPv6工具包:si6networks.com/tools/ipv6toolkit。
IETF RFC 6583(NDP耗尽检测阈值思路来源):rfc-editor.org/rfc/rfc6583;RFC 9098(监测与审计运营要求):rfc-editor.org/rfc/rfc9098。
MITRE ATT&CK 战术知识库(演练场景设计参考框架):attack.mitre.org。