P与D的逻辑区别
防护(Prevention, P)与检测(Detection, D)的技术架构和功能职责存在显著差异,这两个概念虽然在实践中经常被混用,但它们的主要区别在于是否具备实时的检测和阻断能力。
检测(Detection, D)在网络安全策略中常以入侵检测系统(Intrusion Detection System, IDS)的形态出现。IDS主要作为旁路监测系统,它通过分析网络流量的镜像副本进行威胁识别,无需直接插入网络通信链路中。其主要职能是提高网络流量中潜在安全威胁的可见性,而不直接参与流量的管理或阻断。
相比之下,防护(Prevention, P)策略通常通过入侵防御系统(Intrusion Prevention System, IPS)实施,要求该设备直接部署在网络通信链路中。IPS具有即时检测并阻断恶意流量的能力,它不仅分析流经设备的流量,还实时采取措施以阻止潜在的安全威胁。
尽管IDS本身不直接阻断流量,但可以通过与网络中的网关、防火墙及其他安全设备联动,间接实现阻断功能。
在终端安全领域,防护(Prevention, P)代表着一系列实时检测与阻断恶意行为的能力,如文件扫描、内存监控、URL检测和主动防御技术等。这些实时防御机制通常基于复杂的检测时机策略,例如在文件创建、进程启动或特定系统调用(Hook点)时触发。
相较之下,现代流行的EDR的检测(Detection, D)重点在于提供对潜在攻击行为的洞察,它侧重于安全事件数据的收集、分析,对收集到的数据进行上下文关联的准实时分析,作为实时防护的补充。
安全检测的"记忆"逻辑
实时分析与状态跟踪是识别和响应安全事件的关键组成部分。
以Suricata为例,它为流量检测引入了“Flow”的概念,为传输层会话构建了一个连续的上下文框架。这一机制允许Suricata不仅识别独立的网络数据包,而且还能够理解数据包之间的动态关系以及连续的数据流模式。通过准确地定义流的连接状态,Suricata能够深入到传输层的报文有效载荷和应用层的协议数据,执行深度分析与检测。
然而,传统的检测方法仅能对单个网络请求或响应进行分析,如在一个Flow(TCP会话)中可能包含多次HTTP请求与响应交互。这种方法的局限性在于,传统检测缺乏“记忆性”,它不能跨请求或响应进行连续的状态跟踪。为了克服这一限制,Suricata引入了Flowbits的状态机功能,它允许在多个检测规则间保持状态信息的连续性。通过使用Flowbits标记,当一条规则与第一个数据包相匹配时,Suricata能够在随后的数据包匹配过程中识别出第一个数据包的状态,从而实现跨多个数据包的复杂检测逻辑。此外,Suricata还提供了更高级的功能,如xbits,以支持更复杂的跨流状态机检测策略。
另一个例子以Sysmon为例,该工具专注于收集与分析围绕进程活动的安全日志。为了有效跟踪和分析进程行为,Sysmon为每个进程的实时生命周期状态生成了一个唯一的标识符(GUID),这使得安全分析人员能够对不同进程离散的恶意行为进行检测,也能针对被标识的进程行为进行更详尽的审查,进一步通过使用GUID作为关联因子,还能够汇总并关联多个进程(进程树)的行为。当然面对更复杂的检测,包括远程过程调用(RPC)和远程进程访问等跨进程行为模式,那就需要更多带“记忆”的复杂安全数据作为支撑。