news 2026/11/4 2:00:46

Slips:行为证据聚合用于网络安全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Slips:行为证据聚合用于网络安全

大家读完觉得有帮助记得关注和点赞!!!

摘要

网络入侵检测系统通常分析单个数据包或流,然而恶意行为可能跨越多个连接并在时间上持续发展。这可能限制了它们将孤立检测结果整合为主机行为的连贯评估的能力。对于复杂的基于人工智能的检测而言,数据包级特征可能过于底层,需要额外的处理来提高准确性,同时保持较低的误报率。

本文介绍Slips,一种网络入侵检测系统,它构建以主机为中心的行为画像,并将活动组织到时间窗口中。它采用模块化架构,其中独立模块报告证据,而不是直接生成最终告警。Slips随后将这些证据累积到主机级决策中。我们在专家标记的PCAP数据集上将Slips与Suricata进行了评估。在画像-时间窗口级别,Slips的召回率比Suricata高出83%,F1分数高出70%,同时两个系统均未产生误报。这些结果表明,基于时间窗口的证据累积可以产生更具情境感知的决策,更好地与专家判断保持一致。

关键词:入侵检测,行为分析,机器学习,证据集成,循环神经网络


1. 引言

网络入侵检测系统(NIDS)通常分析单个数据包、流或协议事件,以判断活动是否为恶意。然而,恶意行为可能跨越多个连接并在时间上持续发展。这使得NIDS在判断单个可疑事件何时表明主机正在表现出恶意行为时,拥有的上下文有限(31; 17)。

例如,多次针对不同端口的失败连接尝试可能不足以确定它们是否构成端口扫描。同样,命令与控制流量可能通过一系列流的周期性来表征,而不是通过单个数据包的内容(17)。准确的检测需要在低级流检测与高级行为分析之间取得平衡。

入侵检测系统已被研究和部署数十年,拥有成熟的分类法、架构和操作工具,涵盖基于主机和网络的检测、签名、异常检测以及有状态协议分析(8; 40)。Snort和Suricata执行有状态的数据包和流检查,并可以在单个规则内应用阈值(40; 34)。Zeek将流量转换为协议事件,脚本可以将这些事件跨连接关联起来(38),而诸如Kitsune之类的系统则为异常模型维护在线流量统计(28)。

基于图和告警关联的系统将活动或检测器输出聚合成更高级别的报告(11; 48)。因此,现有架构提供了某种类型的状态、聚合或关联,但并未结合我们提案所呈现的所有三个要素:为每个主机使用时间窗口的共享行为画像、由不同检测器生成的证据的共同表示、具有众多模块的模块化架构,以及保留支持流链接的主机级决策。我们在第6节中比较这些架构差异。

我们描述Slips(4),最初创建于2012年(6),一个现代的模块化网络安全系统,它使用单个检测来分析主机随时间的行为。尽管Slips消耗网络流量并执行入侵检测和防御,但其架构更接近安全编排、自动化与响应(SOAR)系统,而非IDS(32)。它收集和标准化网络观测,维护共享状态,关联来自不同模块的发现,导出到不同系统,做出更高级别的决策,并可以回作用于网络以阻止攻击。

Slips将每个IP地址建模为一个行为画像,划分为可配置的时间窗口。AI和非AI模块提供关于画像的流、协议事件和衍生行为的证据;Slips在引发告警之前累积这些证据,并保留贡献的检测和支持流以供问责,如第2.1节所述。

本文重点介绍Slips的核心架构、如何通过画像和时间窗口组织检测来改善检测效果,以及在拥有足够证据时如何将低级检测组合成告警。

为了评估Slips,我们进行了两组实验,在第3节中描述。首先,我们在三个包含不同大小和持续时间(100、1000和65536个端口)端口扫描的PCAP文件上运行Slips和Suricata。该实验的目标是评估每个IDS是否能识别基本的扫描相关行为,Slips如何在引发告警之前累积证据,以及每个系统报告之前需要什么级别的活动。端口扫描是IDS应检测的最基本活动之一,然而至今仍令人惊讶地难以正确实现。

其次,我们在三个不同的PCAP文件上运行Slips和Suricata,其中两个是恶意的(Bladabindi RAT和TrickBot),一个是良性的(Windows 7上的社交媒体流量),并使用每个PCAP的专家标记真实日志文件评估每个系统的性能指标。这些实验使用了两种比较模式:逐流模式(支持Suricata的工作方式)和画像-窗口模式(支持Slips的工作方式)。该实验的目标是比较基于签名的Suricata与基于行为和时间窗口的Slips在检测性能指标方面的表现。

端口扫描实验的结果表明,Slips对所有三个扫描捕获都生成了扫描相关证据。它证实了Slips将中间证据的生成与最终告警分开:可疑行为可以被识别和存储,而不必立即升级。Suricata未能识别任何三个端口扫描,也未引发任何告警。

恶意软件和良性实验的结果表明,Slips在两种评估模式下都比Suricata取得了更强的检测性能,同时保持了非常低的误报率。在逐流模式比较中,Slips的F1得分为0.1603,而Suricata为0.0033,两个系统产生了相同的误报率0.000025。在画像-窗口视图中,Slips的F1得分为0.3268,而Suricata为0.1925,两个系统均产生零误报。这些结果表明,跨行为画像和时间窗口累积证据可以改善主机级决策,同时避免来自孤立检测的不必要告警。

本文做出七项贡献:

(1) 用于网络安全分析的模块化架构,其中检测器、ML模型、导出和响应通过共享行为状态相连接。

(2) 基于时间窗口的主机画像作为主要分析实体的描述。

(3) 一种自适应证据集成方法,其中多种模块(包括在线ML流分类器和多流ML循环模型)在行为演变时产生可问责的证据,以及Slips如何将这些证据累积到主机级告警中。

(4) 一种允许最终用户使用自己的流量适应和扩展ML模型训练的机制。

(5) 组织级白名单,允许用户跨多种协议排除针对域名、IP和证书的告警和阻止请求。

(6) 使用IDSEVAL数据集中的PCAP文件对Slips和Suricata进行比较。

(7) 用于评估IDS系统的新数据集,包括新的标记框架和新的性能比较工具。


2. Slips系统概述

Slips的核心架构如图1所示,由四个持续并行运行的主要部分组成:(1) 输入处理与画像,(2) 检测模块,(3) 证据集成与告警,以及(4) 主动响应与导出。

在输入处理与画像部分(第2.1节描述),网络流量通过各种格式(如PCAP和Zeek日志等)进入输入进程。画像器随后将输入流量转换为通用的内部流格式,创建主机画像和时间窗口,将结果记录存储在数据库中,并使用发布/订阅架构将流分发给各模块。

在检测模块部分(第2.2节描述),每个模块分析输入数据以生成证据。证据是与一个或多个流相关的检测结果。

在证据集成部分(第2.3节描述),证据处理器接收来自每个模块的证据,使用白名单进行过滤,并对其进行丰富。当集成中累积了足够的证据时,证据处理器会引发告警,并可能请求主动响应。

在主动响应与导出部分(第2.4节描述),阻断模块通过防火墙阻断检测到的攻击者,使用ARP中毒隔离本地网络攻击者,并导出告警。

图1:Slips核心架构。​ (1) 网络输入被标准化为通用流格式,并聚合到主机画像和时间窗口中。(2) 检测模块分析输入数据以发出证据。(3) 证据作为整体进行分析,并决定告警。(4) 执行响应,导出数据。Redis为各部分之间的通信和运行时数据提供发布/订阅架构,而SQLite提供持久化存储。

2.1 输入标准化与画像

Slips可以从网络接口和多种网络流量格式摄取数据包,包括PCAP和PCAP-NG(20; 47)、Zeek日志(46)、Suricata EVE日志(35)、Argus BinetFlow二进制日志(44)和nfdump流(18)。

数据包捕获和实时流量由Slips控制的Zeek进程处理,然后被摄取,而其他输入格式则被专门解析。所有输入都被转换为所有模块唯一的通用流格式。

在使用网络接口或PCAP文件的情况下,Slips使用带有十一个自定义脚本的扩展Zeek,这些脚本添加了字段和日志,包括:JA3和JA3S TLS指纹(41)、ARP事件、ICMP扫描事件、DNS-over-HTTPS信号、SHA256文件哈希、网络网关信息、IRC协议,以及TELNET、rlogin和rsh登录记录。

输入数据处理后,画像器代码为每个观察到的源IP地址创建一个行为画像结构,并将其活动划分到时间窗口中(默认为1小时)。这意味着每个画像-时间窗口(从现在起简称画像)对该源IP的所有活动进行分组。这让Slips能够将行为分析为一个连续的过程,而不仅仅是将主机视为感染与否。新的流按时间戳分配给画像,包括延迟或乱序到达的流。因此,画像代表主机随时间的行为,而不是单个连接。

Slips输入处理可以在两种分析方向模式下运行:out和both。out模式通过仅存储每个画像的出站连接来回答“我的计算机是否被感染并恶意通信?”的问题。both模式通过在每个画像上同时存储出站和入站连接来回答“我的计算机是否也在被攻击?”的问题。

2.1.1 威胁情报

Slips包含一个源更新管理器,定期下载、标准化和刷新几种类型的威胁情报(TI)源。这些包括恶意JA3和JA3S指纹、SSL证书指纹、Tor出口节点、Tranco顶级良性域名(24)以及42个公共TI源。这些数据被用作黑名单或白名单,同时也丰富证据中引用的IP地址。

后面描述的IP信息模块还为每个IP地址添加元数据,包括ASN、地理位置城市(使用GeoLite数据库)、WHOIS数据、域名创建日期、域名注册人信息和MAC地址供应商。它还使用启发式方法推断本地网关的IP和MAC地址。查询与模块异步运行,检索到的元数据在报告之前附加到相应的证据上。所有源和辅助数据库都在本地缓存,并根据配置定期刷新。公共TI源列表可在Slips配置文件中找到。

2.1.2 白名单

Slips支持用户定义和内建的白名单,以减少依赖上下文的误报并抑制已知的良性活动。例如,来自内部监控服务器的流量可能类似于扫描,但在特定网络中是预期的。

用户定义白名单

每个白名单条目指定一个指示符类型、值、方向和忽略模式。支持的指示符类型包括IP地址、域名、MAC地址和组织。方向决定该条目适用于流的源、目标还是两者,而忽略模式允许忽略条目的流、告警或两者。

在流忽略模式下,Slips在丰富、检测、存储和Web界面显示之前丢弃匹配的流。这减少了处理开销,并从分析师视野中移除已知的良性流量。然而,来自这些流的信息对后续检测不可用。例如,在此模式下白名单化一个DNS服务器会阻止Slips了解其角色,并使其流量在界面中隐藏。

在告警忽略模式下,匹配的流仍然可用于丰富、检测和显示,但其证据和告警被抑制。任何生成的证据在告警累积之前被丢弃,因此不能触发告警或阻止请求。对于每个证据项,Slips针对白名单的IP地址、DNS解析答案、查询域名、CNAME、TLS SNI值、URL和MAC地址检查攻击者和受害者。

组织感知白名单是Slips的一项新特性,它扩展了传统的基于IP和域名的白名单。Slips允许用户通过输入组织名称(如Google、Microsoft、Apple、Facebook和Twitter)来白名单整个组织。Slips通过查询其已知域名、IP范围和ASN来扩展这些组织。

用户可以白名单与某个组织相关的流量,并配置是否抑制匹配的流、告警或两者。这有助于从分析师视野中移除已知的良性组织流量,并将注意力集中在更相关的活动上。

内建白名单

除了用户定义的条目外,Slips可以选择使用Tranco列表中排名前10,000的域名,该列表是最受欢迎的100万个网站的每日排名(24)。源更新管理器每天下载并缓存该列表。该列表有助于防止涉及知名目的地的误报。例如,当威胁情报源标记的域名属于已知的白名单组织(如Google)时,可以被忽略。

Tranco域名仅在告警级别被白名单:相关的流仍然可用于处理和检查,但其证据被抑制,不贡献给告警。

2.2 检测模块

Slips目前有24个独立模块,包括基于行为和ML的检测器。每个模块作为一个单独的进程运行,并通过共享数据库接口访问Redis和SQLite。每个模块在Redis频道中注册其所需的流类型,例如DNS请求。

每个检测模块专注于特定的行为族,并在发现可疑活动时发出证据。证据是一个检测结果,可能包含一个或多个流,并被发送给证据处理器,而不是触发响应。

大多数模块使用启发式行为和自适应规则,而非无状态规则。它们为每个画像和时间窗口维护一个状态,并在新事件到达时更新其检测结果。因此,它们的决策取决于相关事件的数量和时机,而不是单个数据包或流的固定属性。

检测模块可以从配置文件中启用、禁用或添加,某些模块允许禁用单个检测而不禁用整个模块。根据其用途,检测模块被分为行为模块、点对点模块、机器学习模块、防御模块和导出模块。

每个模块生成的证据必须具有威胁等级(信息、低、中、高和严重)和置信度(0到1)。信息威胁等级表示值得报告,但不构成直接威胁,因此不计入告警得分。严重证据对生成告警所需的得分有显著贡献。

2.2.1 行为模块

行为模块分析特定的网络协议以检测可疑活动。它们涵盖单事件异常(例如,畸形或意外的协议使用)和自适应的、基于事件计数的行为(例如,扫描和暴力破解攻击)。

流告警

流告警模块是一组协议特定分析器的分发器。它消耗标准化的流记录以及针对DNS、TLS/SSL、SSH、SMTP、隧道、软件、Zeek通知和远程登录活动(例如Telnet、rlogin和rsh)的选择性Zeek日志,以及来自下载文件日志的信息。

该模块包含Slips的大部分检测。它标记长连接、未知目标端口、重复的拒绝连接、重复的Telnet尝试、数据上传、TOR出口节点连接,以及未事先进行DNS解析的连接。

几个流告警检测会根据事件计数调整其行为。例如,重复的拒绝连接、重复的Telnet尝试、SMTP暴力破解、NXDOMAIN回复爆发以及重复的空HTTP连接,都是基于画像在时间窗口内累积的事件来评估的。因此,这些检测依赖于相关事件的数量和时机,而不是任何单个流。

对于DNS流,流告警模块检测年轻域名、具有高熵TXT记录的DNS答案、DNS答案中的私有IP、可能表明DGA行为的众多NXDOMAIN回复、ARPA扫描,以及未跟随连接的DNS解析。

对于TLS/SSL流,它检测自签名证书、恶意JA3或JA3S指纹、证书通用名不匹配、证书中的可疑组织名称、DNS-over-HTTPS、大型Pastebin下载,以及端口443上的非SSL流量。

对于SSH流,它检测成功的SSH登录。它使用Zeek的auth_success字段(如果可用);否则,它从交换的总字节数估计成功。

对于SMTP流,它基于Zeek字段检测无效的SMTP登录和SMTP暴力破解尝试。

它还检测GRE隧道和GRE扫描、SSH客户端或服务器版本的多次使用、来自下载文件的恶意TLS/SSL证书,以及来自Zeek login.log的登录事件。

ARP

ARP模块检测本地网络中的ARP攻击和异常ARP行为。它针对以下情况引发证据:

  • ARP扫描:当一个主机在30秒内向至少五个不同IP地址发送ARP请求,

  • 发送到配置的本地网络之外的ARP数据包,

  • 以及未经请求的ARP回复。

ARP扫描检测器在短时间间隔内是自适应的:一个ARP请求是正常的,但在30秒内向多个不同地址的突发请求被视为发现行为。

它还检查MITM ARP攻击。如果同一个MAC地址先前链接到一个IP,后来出现声称另一个IP的情况,Slips会引发可能的ARP缓存中毒攻击证据。

暴力破解检测器

暴力破解检测器专注于检测SSH暴力破解。它是自适应的:对于每个源画像、时间窗口、目标IP和目标端口,它将失败的SSH会话和认证尝试聚合到一个活动中。当失败登录次数达到配置的阈值时,Slips引发密码猜测证据。达到阈值后,它不会为每次新尝试发出相同的证据;相反,它只在活动增长时在稀疏的桶状点再次报告。置信度随尝试次数增加,并在较大数量后达到完全置信。

该模块还使用SSH客户端横幅。Hydra、Medusa和Ncrack等工具和库专为自动化认证测试而构建,而Paramiko和libssh则支持编程式SSH会话(49; 15; 33; 37; 26)。因此,它们的存在会增加证据中使用的置信度。

HTTP分析器

HTTP分析器检查HTTP特定行为,并针对以下情况引发证据:

  • 可疑的用户代理、每个画像的用户代理突变,以及用户代理操作系统与MAC供应商之间的不匹配,

  • 从HTTP响应MIME类型推断出的可执行文件下载,

  • 对常见站点的重复空HTTP连接(一种可能与恶意软件检查互联网连接一致的模式)(29),

  • 超过配置大小阈值的大型Pastebin下载,

  • Zeek weird.log报告的未知HTTP方法,

  • Zeek未归类为HTTP的端口80上的已建立TCP流量。

泄漏检测器

泄漏检测器在数据包捕获中搜索敏感数据模式,并且仅在Slips分析PCAP时运行。它应用随模块发布的YARA规则(包括GPS位置泄漏模式)(51)。当规则匹配时,Slips使用tshark(52)提取源和目标IP、协议、端口和时间戳,并将其报告为证据。

网络发现

网络发现是一个自适应模块,检测扫描和探测行为。它针对以下情况引发证据:

  • 垂直端口扫描(一个源使用非已建立的TCP或UDP流接触同一目标IP上的多个端口),

  • 水平端口扫描(一个源接触多个目标IP上的同一端口),

  • Zeek通知报告的ICMP扫描(包括时间戳扫描、地址扫描和地址掩码扫描),

  • 以及DHCP扫描:当客户端在同一时间窗口中请求四个或更多不同IP地址时。

检测端口扫描的主要问题是工具不能为每个新扫描的端口生成新告警,但它们也需要显示扫描5个端口和扫描65536个端口之间的区别。因此,Slips使用对数尺度来检测端口扫描:当扫描增长到足以跨越行为的新阈值时,它会发出证据,而不是为每个微小增加设置证据。置信度由支持流量的数量决定,因此随着观察到更多数据包和目的地,证据得分会增加。

2.2.2 点对点

Slips是首个实现检测器点对点网络的IDS,既可以在本地网络中,也可以在全球互联网上,通过使用libP2P库。如果两台装有Slips的计算机处于同一本地网络,它们会相互发现并开始共享数据。目标是共享检测信息,以便更好地保护彼此。

为了保护隐私,Slips对等体仅共享攻击者的IP地址或域名、威胁得分和置信度值,而不是完整的流量或上下文数据。

本地P2P和本地信任

本地P2P模块使同一网络上的Slips实例能够相互询问IP地址并共享检测。该模块查询本地对等体,短暂等待响应,使用信任模型聚合对等体得分,并存储最终的网络意见。

当聚合的对等体意见表明该IP可疑时,Slips会引发证据。除了查询之外,本地P2P模块还会在另一个对等体阻断攻击者时接收责备报告。本地信任模型受到Sality P2P僵尸网络信任模型的启发(14):信任取决于良好的通信和对等体相互认识的时间长度,对等体无法影响其他对等体对他们的信任,因为每个对等体在本地计算信任,而不是向他人索取。这对于避免敌对对等体操纵网络至关重要。

全局P2P和全局信任

Slips还有一个全局P2P模块,在互联网上实现了三个基于DNS的超节点,允许每个公共Slips实例自动共享和接收威胁情报。它还允许组织使用加密签名定义自己的私有对等体源。

对等体以得分和置信度表示的意见进行响应。为了避免盲目信任敌对响应,Slips应用信任模型,聚合对等体报告,然后缓存最终的网络意见。与本地P2P一样,共享的信息是最小的,不包括完整的证据内容或私有流细节。

2.2.3 机器学习和AI

Slips中的ML模块是维护的关键且困难的部分,因为模型使用我们自己的数据集和管道不断重新训练。在发布之前,我们在大数据集中比较许多模型,以决定发布哪个模型。ML模块在两个级别上运行:一个用于检测单个流的在线线性分类器,以及一个用于检测命令与控制行为的双向门控循环单元(GRU)。两个模型都是免费、开源的,并与Slips一起分发。

流级ML检测

流级ML检测模块对每个符合条件的标准化流应用预训练的SGDClassifier和StandardScaler。发布的模型在我们自己策划的安全数据集集合上训练,包括公共的Security Datasets for Testing集合(7)。该模块移除未使用的字段,排除没有所需基于端口表示的协议,编码传输协议和连接状态,并使用端口、持续时间、数据包计数和字节计数特征。

在正常操作(测试模式)期间,流被单独分析,只有高置信度的检测结果作为证据发送。由于训练数据集与用户流量之间的差异通常很大,默认威胁等级为低,置信度也为低(0.1)。

更重要的是,该模块允许最终用户使用自己的流量在本地扩展ML模型。该模块为此目的实现了一种迁移学习。用户可以在配置中将学习模式设置为train,并将默认标签设置为normal或malicious,然后正常运行Slips。用户定义的标签随后应用于流,模块继续使用新数据训练发布的模型。更新后的分类器和缩放器存储在磁盘上。通过将模式切换回test,用户现在可以使用一个扩展的、可能更好的模型。

这种机制将在分布式数据上训练的模型转移到操作员的本地环境,而无需单独的ML管道或模型替换。从技术上讲,这是一种线性模型的增量监督适应,而不是通过冻结和微调层的神经迁移学习。据我们所知,这是首次允许最终用户在本地适应ML模型。

循环命令与控制检测

ML命令与控制检测模块分析跨网络流的行为以检测命令与控制信道。对于每个画像,该模块接收按源IP地址、目标IP地址、目标端口和协议聚合的流。所有这些流聚合在一起形成一个元组,代表源IP对特定服务的行为。Slips将此元组中的每个流转换为一个字母(例如'a'),该字母离散化了流持续时间、大小和周期性(相对于流)。另一个字母用于编码自上一个流以来经过的时间(例如'*')。生成的字母字符串由模块的ML模型分析,以搜索命令与控制信道中众所周知的行为模式。

当前模型是一个双向GRU,作为预训练的Keras模型分发(42; 12)。发布的模型在我们自己策划的安全数据集集合上训练,包括公共的Security Datasets for Testing(7)。

命令与控制检测需要模型得分大于0.99。置信度不是原始的模型得分:它随着观察到的序列长度增长,计算公式为min(n/100, 1),其中n是编码字符的数量,因此短匹配的贡献小于有较长历史支持的行为。

当阈值被跨越时,该模块以高威胁等级(0.8)创建证据,并报告触发评估的流以及证据。然后每个条目进入其自身画像和时间窗口的集成。因此,GRU检测一个多流时间模式。

2.2.4 导出模块

Slips提供导出模块,用于与外部系统交换IoC、证据和告警。在内部,Slips将每个证据项和告警以JSON格式记录在alerts.json中,采用IDMEFv2(25)格式。证据项表示为IDMEFv2 Event对象,而告警表示为IDMEFv2 Incident对象。除了这种内部表示外,Slips还可以将告警以多种格式导出到外部平台,包括通过TAXII的STIX(22; 23)、CESNET Warden(9)和Slack通知。

导出告警模块

导出告警模块将Slips证据和告警发送到外部系统。

它支持将告警导出到Slack,并将STIX格式的证据发送到TAXII服务器。Slack告警通过机器人令牌发布到配置的Slack频道,而STIX导出在传输到配置的TAXII服务器之前将证据转换为STIX指示符。

CESNET模块

CESNET模块与由CESNET组织运营的Warden服务器共享告警(9)。当启用CESNET导出时,该模块将证据转换为IDEA0格式(10),并发送到Warden服务器。信息性证据和关于本地IP地址的证据不会被导出。该模块还可以从Warden服务器接收告警,将其转换为威胁情报数据,并将其用作未来检测的黑名单。

2.3 证据集成与告警

Slips组合来自不同检测方法的证据。它不对模型概率求平均,也不要求其检测器共享特征。相反,每个规则、ML模型、行为检测器和威胁情报模块将其结果转换为一个证据对象,并发送给证据处理器进行处理。每个证据项包括检测类型、攻击者和可选的受害者、画像、时间窗口、威胁等级、置信度、时间戳、检测方法(例如AI或行为)、相关协议和端口,以及支持流的标识符。相关证据也可以被链接。

证据处理器在累积每个新证据项之前对其进行验证。它应用配置的白名单,并在计算得分时忽略信息性证据。无论是否提高累积得分,证据都可以被记录、导出或共享。

对于决策制定,Slips将低、中、高和严重威胁分别映射到0.2、0.5、0.8和1.0。证据i贡献si = ti × ci,其中ti是该威胁值,ci ∈ [0,1]是检测器置信度。画像p和时间窗口w的集成得分为Sp,w = Σ si,针对分配给该画像和窗口的合格证据。信息性证据贡献为零,白名单证据被移除,先前已在告警中使用过的证据不再计入。

当Sp,w达到配置的告警阈值时,处理器创建一个告警,包含画像、时间窗口边界、累积得分以及所有贡献证据的标识符。因此,高置信度的GRU检测可以做出强贡献,低置信度或流级ML结果贡献较少,而多个独立的ML和非ML发现可以共同跨越阈值。不允许任何单个模型独自做出最终告警决策。

这种分离创建了三个明确的语义层次。流和协议事件是观察结果;证据是模块对一个或多个观察结果的负责任解释;而告警是系统在一段时间内关于主机的综合决策。这些层次之间的链接允许分析师或下游系统重建哪些模块贡献了、贡献强度有多大,以及哪些流量支持了该告警。

2.4 主动响应与导出

Slips的主动响应包括记录告警和证据,可选地将其导出到外部系统,以及可选地触发防御模块。

告警和证据通过命令行和Web前端持久化并暴露,原生的alerts.json日志如上所述以IDMEFv2(25)格式写入。

导出告警模块可以向Slack发送通知,向TAXII(23)服务器发送证据,或通过CESNET Warden(9)交换IDEA事件。

当启用预防时,Slips使用其防御模块通过主机的iptables防火墙(45)阻断与攻击者之间的流量。在本地网络上,Slips可以改用ARP中毒作为防御机制,阻断与检测到的攻击者之间的所有流量。这分两步进行:(1)将攻击者与网关隔离,使攻击者无法访问互联网;(2)破坏其他本地主机与攻击者之间的连接,使攻击者不可达。

两种防御机制都包括自动解除阻断。被阻断后,画像进入一个以时间窗口定义的试用期。新的告警会延长此期限,而未产生额外证据的画像在试用期结束时自动解除阻断。


3. 评估方法

评估的目标是展示当前的Slips架构能够产生与最先进IDS类似的良好检测结果。评估包含两组具有不同目的的数据包捕获。第一组包含三个受控的垂直端口扫描捕获,评估架构是否将以流分布的行为表示为可问责的证据。第二组包含恶意软件和良性捕获,比较Slips和Suricata的检测决策。表1总结了两个实验组中使用的六个捕获。

这里使用Suricata是因为它是一个广泛部署、成熟、功能丰富的IDS,代表了一个强大的生产基线,而非一次性研究方法。

这些数据集有意具有说明性。它们不代表Slips或Suricata的完整检测覆盖范围。两个系统都能检测许多这些捕获中不存在的行为,因此评估应被解读为一个小型受控比较的架构演示,而非一般IDS能力的基准。

表1:用于评估垂直端口扫描证据生成以及比较Slips和Suricata在恶意软件和良性用户流量上的评估数据集。

实验组ID

PCAP ID

捕获

流量内容

评估目的

1

Portscans-1

idseval-malicious-portscan-1.pcap

垂直端口扫描(100个端口)

证据生成

1

Portscans-2

idseval-malicious-portscan-2.pcap

垂直端口扫描(1000个端口)

证据生成

1

Portscans-3

idseval-malicious-portscan-3.pcap

垂直端口扫描(65536个端口)

证据生成

2

Malware-1

idseval-malicious-malware-1.pcap

Bladabindi RAT

性能比较

2

Malware-2

idseval-malicious-malware-2.pcap

TrickBot恶意软件

性能比较

2

Benign-1

idseval-benign-user-traffic-1.pcap

社交媒体浏览

性能比较

3.1 真实数据和专家标记

领域专家在运行任何一个检测系统之前建立真实数据。他们检查捕获上下文,识别恶意主机、攻击间隔和相关流量,并将这些判断编码为标记条件。

然后我们应用开源NetFlowLabeler工具(3),该工具将专家编写的条件应用于单个流,并生成通用和详细的标签。该工具使标记过程可重复;它不取代用于定义条件的专家判断。

对于二元评估,标记为恶意的流形成正类。标记为良性或背景的流形成负类。伴随本文的工件(5)包括PCAP文件(IDSEVAL数据集)、标记配置和加密哈希。

3.2 实验组1:端口扫描

第一个实验使用三个包含已知端口扫描(使用nmap工具完成)的PCAP,并评估Slips和Suricata以了解每个是否检测到它们以及每个工具如何报告它们。对于Slips,每个捕获使用Slips v1.1.21、一小时时间窗口、证据阈值15和默认模块配置进行处理。然后我们报告每个捕获中Slips是否生成了任何垂直或水平扫描的证据。我们记录是否生成了证据、累积的证据得分以及证据是否触发了告警。

对于Suricata,每个捕获由Suricata v8.0.4(RELEASE)使用Emerging Threats Open规则集8.0.42和默认配置进行处理。然后我们报告每个捕获中Suricata是否产生了相应的扫描告警。

在这个实验中,比较是描述性的,因为系统暴露不同的中间对象:Slips生成证据和告警,而Suricata生成规则告警。

Portscans-1到Portscans-3仅包含端口扫描流量,因此不能用于衡量总体准确率,只能衡量召回率。特别是,我们无法判断这些系统在良性流量上引发扫描告警的频率,因为这个数据集不包含一组定义的“非扫描”示例。此外,标记是按流进行的,但什么是端口扫描的概念留给IDS自行决定。

相反,这个实验通过询问Slips是否能够(1)识别跨越多个连接的扫描模式,以及(2)保持清晰的线索显示哪些连接导致了该结论,来检查Slips与Suricata相比的行为。

3.3 实验组2:恶意软件和良性流量

第二个实验使用两个互补的流量组评估检测性能:恶意软件捕获和良性用户流量。恶意组包括Malware-1和Malware-2,良性组包括Benign-1。Malware-1包含Bladabindi RAT流量,Malware-2包含TrickBot流量(27; 13)。Slips和Suricata都处理相同的捕获。

Slips首先将每个PCAP转换为Zeek流,然后按主机画像和时间窗口做出决策。Suricata直接处理原始PCAP并报告基于规则的告警。

我们从两个角度比较Slips和Suricata:流级别和画像-时间窗口级别。在流级别,当流标识符链接到证据时,Slips预测被认为是恶意的。当Suricata的某个告警可以映射到该流时,Suricata预测被认为是恶意的。选择逐流级别是因为这是Suricata默认的工作方式。

对于良性捕获Benign-1,任何检测到的流都被计为误报,因为该PCAP包含良性社交媒体浏览流量,没有恶意活动。所有剩余的未检测良性流被计为真阴性。

除了流级别比较外,我们还在画像-时间窗口级别评估两个工具,因为这对应于Slips使用的原生决策单元。在真实数据中,如果一个画像-时间窗口包含该画像-时间窗口中的至少一个恶意流,则认为该画像-时间窗口是恶意的。

Slips直接在此级别提供预测,而对于Suricata,告警被后处理并按IP地址分组,并分配到Slips使用的相同时间窗口边界。

这种画像-时间窗口级别评估评估每个系统是否能够识别随时间发展的恶意主机行为,而不仅仅是孤立地检测单个恶意流。

3.4 指标与统计报告

对于Malware-1和Malware-2数据集,主要数量是真阳性和假阴性,我们据此计算召回率为TP/(TP+FN)。对于Benign-1,我们报告假阳性和真阴性,并计算假阳性率为FP/(FP+TN)。在合并的恶意软件和良性集上,我们还报告精确率、特异性、F1分数以及两个系统的完整混淆矩阵。

指标分别针对流级和画像-时间窗口评估视图报告。每个捕获的结果在随附的工件中提供,而结果部分报告使用微聚合计算的汇总指标。

3.5 系统、控制和可重现性

对于每次运行,我们记录Slips和Suricata版本、启用的Slips模块、Suricata规则集、配置文件、时间窗口宽度、证据阈值、分析方向、命令行和执行环境。

Slips和Suricata接收相同的PCAP。

每个系统的检测输出在比较工具读取它们之前生成,并且在检测期间两个系统都无法获取真实数据标签。

可重现的管道有四个阶段。首先,Zeek将每个PCAP转换为Zeek日志。其次,NetFlowLabeler应用专家编写的标记配置以产生流级真实数据。第三,Slips和Suricata独立处理捕获。第四,IDPS比较工具(2)将证据和告警与标记的流进行映射,构建画像-时间窗口视图,并计算选定的指标。

伴随本文的工件(5)包含所有提到的PCAP、校验和、标记配置、每个工具的预期输出以及进行两个实验组的步骤。


4. 结果与讨论

4.1 实验组1:端口扫描证据生成结果

对于Portscans-1,Slips生成了两个扫描证据项,但没有引发告警,因为累积的证据未达到配置的告警阈值。对于Portscans-2,Slips生成了一个扫描证据项,也没有引发告警。最后,对于Portscans-3,Slips生成了五个证据项,但仍未引发告警。

对于Slips来说,这是处理端口扫描时的预期行为:Slips识别端口扫描行为并存储证据项,但不将孤立的扫描视为足以引发主机级告警。在当前配置中,Slips需要更多证据才能决定针对该IP地址采取行动。然而,对于分析师来说,端口扫描被正确检测到了。

相比之下,Suricata在Portscans-1至Portscans-3上引发了零告警。这令人惊讶,因为端口扫描至少应该向安全分析师发出提示。

结果如表2所示。该表呈现了证据生成、累积得分、告警阈值和告警生成,而不是混淆矩阵,因为我们这里的目标不是比较两个系统的准确性,而是展示每个工具如何处理随时间发生的攻击。

因此,这个实验中的重要区别不仅是是否引发了告警,还有系统是否暴露了一个中间表示,表明扫描已被理解。在Slips的情况下,中间表示是证据。在Suricata的情况下,没有这样的表示。

Slips生成的证据及其与支持流的链接可在Slips输出工件中包含的alerts.json文件中获得。

表2:IDSEVAL扫描捕获上的端口扫描证据和告警阈值行为。该表报告是否生成了扫描相关证据、实验时间窗口内扫描器画像的累积得分、配置的告警阈值以及最终的告警决策。

ID

IDS

证据生成

累积得分

每小时告警阈值

生成的告警

Portscans-1

Slips

是

2.85

15

否

Portscans-1

Suricata

否

–

N/A

否

Portscans-2

Slips

是

1.3

15

否

Portscans-2

Suricata

否

–

N/A

否

Portscans-3

Slips

是

7.99

15

否

Portscans-3

Suricata

否

–

N/A

否

4.2 实验组2:恶意软件和良性流量结果

如表3所示,在流级别,Slips产生了3,610个真阳性和37,834个假阴性,召回率为8.71e-2。它还产生了2个假阳性和78,740个真阴性,精确率为9.994e-1,FPR为2.5e-5,F1得分为1.603e-1。Suricata产生了68个真阳性和41,376个假阴性,召回率显著较低,为1.6e-3,F1得分为3.3e-3。它产生了相同的2个假阳性和78,740个真阴性,精确率为9.714e-1,FPR为2.5e-5。因此,Slips在未增加误报数量的情况下实现了显著更高的恶意流覆盖率。

在画像-时间窗口级别,Slips产生了33个真阳性和136个假阴性,召回率为1.953e-1,F1得分为3.268e-1。Suricata产生了18个真阳性和151个假阴性,召回率为1.065e-1,F1得分为1.925e-1。两个系统都产生了0个假阳性和1,495个真阴性,精确率为1,FPR为0。

总体而言,Slips在两个评估级别上都优于Suricata,因为它实现了更高的召回率和F1分数,同时保持了相同可忽略或零的误报率。它的优势在流级别尤为突出,产生的真阳性远多于Suricata。在画像-时间窗口级别,Slips检测到33个恶意画像-时间窗口对,而Suricata检测到18个。这表明Slips在识别随时间变化的恶意行为方面更有效,这与画像-时间窗口是其主要决策单元是一致的。

然而,两个系统的召回率仍然很低,意味着两者都没有提供对恶意活动的全面覆盖。两个系统在画像-时间窗口级别相比于逐流结果观察到的改进表明,它们的检测在识别跨时间累积的恶意主机行为方面比标记每个单独的恶意流更有效。

表3:在Malware-1、Malware-2和Benign-1上的流量检测比较。FPR计算公式为FP/(FP+TN)。

类型

系统

TP

FN

FP

TN

精确率

召回率

F1

FPR

逐流

Slips

3610

37834

2

78740

0.9994

0.0871

0.1603

0.000025

逐流

Suricata

68

41376

2

78740

0.9714

0.0016

0.0033

0.000025

画像-窗口

Slips

33

136

0

1495

1.0000

0.1953

0.3268

0.000000

画像-窗口

Suricata

18

151

0

1495

1.0000

0.1065

0.1925

0.000000


5. 决策案例研究

告警显示Slips是否检测到了恶意画像,但并未展示决策是如何做出的。因此,我们追溯Malware-1(Bladabindi RAT恶意软件捕获)中的一个Slips告警。该追溯显示了从主机级告警到相关证据,再到存储在SQLite数据库中的流标识符的完整路径。

选定的告警是针对主机192.168.1.115在时间窗口2中报告的。运行使用了Slips,时间窗口为一小时,分析方向为out,证据阈值为每小时15。当该画像和时间窗口的累积威胁等级达到15.0时,Slips创建了事件749e232c-acee-4817-82f7-d71675ed1967。

该事件包含一个包含60个证据标识符的CorrelID列表。这些对应30个中等严重度的证据项和30个信息性证据项。

中等证据项报告从192.168.1.115到41.108.179.197上未知目标端口1177/TCP的重复连接。每个中等项具有置信度1.0,并对累积得分贡献0.5。

信息性项指示同一目标IP在没有DNS解析的情况下被联系;它们为上下文而保留,但不增加得分。

证据到流的链接是显式的。例如,证据项608dadb5-46a7-46f1-b348-4d9ea1379370(上述告警报告的60个证据项之一)指向流UID CJJC2G1hvW8XwV9cu3。

另一个是7fb57255-3868-4ccf-96de-9ebbab62b548,指向流UID CzNzeW1yR9E17jomgg。后一个流是从192.168.1.115:60308到41.108.179.197:1177的TCP连接,Zeek状态为S0,持续时间为9.009秒,三个源数据包,无目标数据包。

这条链让分析师能够从告警移动到证据,再移动到具体的网络观察。

这个例子使用了启发式证据,但ML模块也使用相同的路径。ML模块发出带有威胁等级、置信度和流标识符的证据;证据处理器随后将其与同一画像和时间窗口的其他证据进行组合。因此,最终决策不是一个不透明的模型输出。它是一个累积的主机级决策,并存储了支持它的观察结果的链接。


6. 先前工作:IDS架构

我们将完整的或原型的IDS架构与仅在基准测试行上评估的分类器区分开来,后者没有定义采集、状态、告警或响应管道。表4比较了定义操作管道或显式多组件架构的系统。其中,“流”指具有定义键和时间语义聚合的数据包,而不仅仅是数据集的一行。

生产系统保留大量的多数据包状态。Snort 3和Suricata结合了解码、流或流状态、协议检查、规则和操作(40; 36);Zeek将数据包转换为脚本可以跨连接关联的事件(38)。它们支持有状态检测,但不强制使用独立于检测器的主机画像和通用证据累积决策。

行为模型也保留上下文,但通常针对一个模型族。Kitsune在多个衰减窗口上维护地址和通道键控的统计信息(28);DÏoT为每个IoT设备建模有序的数据包序列(30);APChain将流量属性链与学习到的主机模型进行比较(43)。它们的上下文比单个数据包或流更丰富,但其状态和输出仍然特定于相应的检测器。

图和关联架构组合较低级别的观察结果。GrIDS缩减通信图,BotDet关联基于Zeek的检测器,而点对点CIDS组合来自多个网络的报告(11; 16; 53)。它们的中间表示是任务特定的,而不是携带威胁、置信度和支持流引用的通用证据对象。

模型集成和模块化管道提供了另一种组合形式(19; 50; 21; 39; 1)。它们组合分类器、代理或IDS引擎,但不联合提供共享的主机状态、随时间累积的证据以及到支持流的溯源。


7. 讨论与局限性

该架构依赖于共享状态和校准的证据分数。基于IP的画像可能会合并地址转换后的设备,或在地址更改后拆分一台设备,而时间窗口边界可能会分割行为。相关模块可能检测同一行为的重叠方面,导致相关证据被多次计数,并可能夸大由此产生的置信度和累积威胁等级得分。说明性评估并未评估这些架构限制的影响、Slips分析加密流量的能力、其对对抗性规避的抵抗力、其隐私影响,或其在运营规模下的性能。


8. 结论

Slips在一个网络安全架构中结合了有时间限制的主机画像、独立的检测模块和基于证据的决策。该设计让AI和非AI模块能够贡献可追踪的发现,而不直接控制最终告警。评估说明了这种分离及其溯源,但仅对测试的捕获和配置支持结论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 1:59:49

ACE-Step UI 免费实战:5 个场景搞定本地 AI 音乐生成

ACE-Step UI 免费实战:5 个场景搞定本地 AI 音乐生成 【免费下载链接】ace-step-ui 🎵 The Ultimate Open Source Suno Alternative - Professional UI for ACE-Step 1.5 AI Music Generation. Free, local, unlimited. Stop paying for Suno! 项目地址…

作者头像 李华
网站建设 2026/11/4 1:59:42

热管理系列之四:冷板与蒸发管:散热结构设计的CFD方法论对比

液冷冷板的流道设计已从传统蛇形/平行流道进化到仿生分支结构(蜘蛛网、鱼骨、叶脉)拓扑优化的组合范式,CFD单相流仿真多目标优化已成标配;直冷蒸发管侧则面临制冷剂两相流建模、干度分布不均、流型转变等本质性仿真难题。两者的方…

作者头像 李华
网站建设 2026/11/4 1:54:55

NapCatQQ 保姆级指南:快速搭建基于 NTQQ 的 QQ 机器人

NapCatQQ 保姆级指南:快速搭建基于 NTQQ 的 QQ 机器人 【免费下载链接】NapCatQQ Modern protocol-side framework based on NTQQ 项目地址: https://gitcode.com/gh_mirrors/na/NapCatQQ 想给群里做个自动回复的机器人,却要手动回消息、一条一条…

作者头像 李华
网站建设 2026/11/4 1:45:19

FPGA学习(一)——LED点灯与开发流程

一、FPGA引入 1、FPGA简介 2、FPGA优势和局限性 二、LED点灯 1、创建工程 2、原理图 3、仿真 一、FPGA引入 1、FPGA简介 Field Programmable Gate Array(FPGA)就是“可反复编程的逻辑器件”(可编程的数字电路)。 FPGA、ARM…

作者头像 李华
网站建设 2026/11/4 1:40:27

Hermes Agent安全配置审计工具:自动化检查与报告完整指南

Hermes Agent安全配置审计工具:自动化检查与报告完整指南 在当今数字化时代,安全配置审计已成为保障系统安全的关键环节。Hermes Agent作为一款强大的自动化安全配置审计工具,能够帮助用户快速检查系统配置漏洞并生成详细报告,有…

作者头像 李华