实践NDR

NDR = Network Detection and Response(网络检测与响应),即网络威胁检测与响应。

简单理解:

EDR 监控服务器内部发生了什么,NDR 监控网络中发生了什么。

NDR 通过分析网络流量、连接行为和通信模式,发现网络攻击、横向移动、恶意通信和数据外传等安全威胁。

一、NDR 是怎么工作的?

网络流量数据

交换机镜像 / TAP / VPC Flow Logs / 网络传感器

NDR 检测引擎

流量分析

协议、连接、流量大小

异常检测

异常访问与通信行为

威胁检测

C2、扫描、横向移动

关联分析

IP、资产、会话、时间

告警

调查

响应

NDR 不一定需要在每台服务器安装 Agent。它通常通过流量镜像、网络探针、云网络日志等方式获取数据。

不过,只有流量日志时,检测能力会受到限制,例如无法直接检查完整 HTTP 请求内容。

二、NDR 能发现哪些攻击?

检测场景 典型异常行为
网络扫描 某服务器突然访问大量 IP 和端口
横向移动 Web 服务器尝试连接其他服务器的 SSH、RDP
C2 通信 服务器周期性连接可疑外部地址
数据外传 某容器突然向外部传输大量数据
DNS 隧道 异常高频 DNS 查询、可疑长域名
内部异常访问 不相关的业务系统突然互相通信
网络攻击 端口探测、已知恶意协议特征、漏洞利用流量

例如你们之前遇到的 Java Agent 注入攻击:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
攻击者
   │
   ▼
Web 漏洞利用
   │
   ▼
Java Agent 注入
   │
   ├── EDR:检测异常进程、文件、行为
   │
   ├── NeuVector:检测容器异常及网络访问
   │
   └── NDR:检测异常网络通信
             │
             ├── 连接可疑公网 IP
             ├── 异常 DNS 请求
             ├── 非正常服务间通信
             └── 疑似数据外传

特别需要注意:如果恶意 Java Agent 完全运行在 JVM 内部,没有产生异常子进程,EDR 和容器运行时检测可能不容易发现。

但只要它产生了可观察的异常网络通信,NDR 就有机会检测出来。

当然,使用正常 HTTPS 通道进行少量数据外传时,NDR 也不一定能够准确识别。

三、NDR 与 EDR、SIEM、XDR 的区别

产品类型 主要监控对象 核心价值
EDR 服务器、PC、操作系统 检测恶意进程和端点攻击
NDR 网络通信 检测网络攻击、横向移动、C2 和数据外传
NeuVector Kubernetes 容器和网络 容器运行时检测、微隔离
SIEM 各类安全日志和事件 集中分析、关联告警、审计
XDR 多个安全领域 跨域攻击关联与响应
SOAR 安全处置工作流 自动调查、编排和响应

NDR 和防火墙也不同:防火墙主要根据策略允许或阻止通信,而 NDR 侧重识别已经允许的网络通信中是否存在异常或恶意行为。

四、有哪些开源 NDR 方案?

开源领域比较成熟的项目主要有:

产品 定位 主要能力
Suricata IDS/IPS 基于规则检测网络攻击,可提供协议日志
Zeek 网络安全监控 深度协议分析、网络元数据、行为调查
Arkime 网络流量取证 PCAP 存储、索引、会话检索
Security Onion 综合网络安全监控平台 整合 Suricata、Zeek 等检测与调查能力

它们不一定是完整意义上的商业 NDR 平台,但可以组合建设开源 NDR。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
           网络流量镜像
                │
        ┌───────┴────────┐
        ▼                ▼
     Suricata           Zeek
     攻击检测         协议行为分析
        │                │
        └───────┬────────┘
                ▼
         OpenSearch / SIEM
                │
                ▼
          安全关联分析
                │
                ▼
            SOAR 响应

五、实施建议

生产环境运行在 Azure Kubernetes,我认为 NDR 值得建设,但不一定需要立即采购商业 NDR 产品。

建议先关注三个方面:

  1. 南北向流量(North-South):互联网与支付系统之间的通信,重点检测恶意外联、C2 和数据外传。
  2. 东西向流量(East-West):Pod 与 Pod、应用与数据库之间的通信,重点检测横向移动和越权访问。
  3. 网络流量可见性:明确 Azure VNet、AKS、NAT、网络策略和日志采集能够提供哪些数据,哪些场景需要额外部署网络探针。

如果采用开源方案,可以考虑 Suricata + Zeek + Wazuh SIEM。不过在 AKS 中部署前,要确认实际的流量采集方式,不能假设普通 DaemonSet 就能看到全部 Pod 网络流量。

总结一下:

  • EDR:机器里面有没有异常?
  • NDR:网络通信有没有异常?
  • NeuVector:容器运行和网络访问是否安全?
  • SIEM:各系统的安全事件能否集中分析?
  • XDR:这些异常是否属于同一次攻击?
  • SOAR:发现攻击后,如何自动调查和处置?

对于你们目前的安全体系,我更倾向于 EDR + Kubernetes Runtime Security + SIEM 优先落地,再逐步补充 NDR 和 SOAR。这样可以先建立基础检测能力,再完善网络可见性和自动化响应。