网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

什么是异常检测呢?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

每个网络都有其自己的节奏。周一早上,登录次数会在上午9点达到高峰;备份服务器则会在每周日凌晨3点传输大量数据;而开发人员们则会在周四下午持续不断地提交代码。但是,总会有某些事情打破这种规律。比如,某个营销人员的笔记本电脑在午夜时分开始扫描内部网络的数据;或者,平时在周末处于休眠状态的数据库,突然间会输出5GB的数据。

在这种情况下,传统的安全工具往往难以发挥作用。这些工具主要针对那些已知的恶意签名进行防护。但如果是新来的入侵者,或者其行为看起来像合法员工的话,那该怎么办呢?

异常检测的定义

异常检测是指识别那些与数据集中的正常行为存在显著偏离的数据点、事件或观察结果的过程。在网络安全领域,这意味着需要为用户、主机和网络建立一套标准行为基线,然后识别出那些与这一基线相差较大的模式,从而判断是否存在潜在的威胁或故障。

如果没有有效的异常检测机制,那么对于那些“未知的未知威胁”来说,我们几乎毫无察觉。比如零日攻击、内部威胁,以及那些与已知恶意软件签名不符的缓慢进行的攻击。虽然基于签名的工具会寻找那些被明确认定为恶意的内容,但异常检测则着眼于那些看起来不寻常、值得注意的情况。

异常检测是如何工作的呢?

异常检测系统实际上是一种决策引擎。它负责处理大量的监控数据,并不断询问:“这里是否发生了异常情况?”为了能够可靠地回答这个问题,同时避免让安全运营中心陷入过多的信息中,该系统采用了一种特定的处理流程。

为异常检测设定基准值/起点

在能够检测出异常情况之前,必须先定义什么是正常的情况。许多异常检测技术都会在这一过程中进行“训练”,尤其是在使用机器学习时。系统会收集历史数据,比如日志、网络流量以及用户行为等,以此来构建相应的模型。

例如,一个机器学习模型可能会发现:“用户Alice”通常会在上午8点到下午6点之间访问CRM系统,而且她的IP地址来自伦敦。该模型还能识别数据中的异常情况:下午6:30的登录行为仍然属于正常范围,而凌晨3:00的登录行为则属于统计数据中的异常值。

这个基准可以是指:

  • 静态的。在训练周期结束后,这个问题已经得到了解决(例如:“该服务器只与数据库进行通信”)。
  • 动态性的。不断更新,以反映业务需求的变化。例如:“营销团队正在出差,因此暂时允许使用外国IP地址进行登录。”

在数据分析中,得分的偏差问题

一旦配置文件设置完成,异常检测算法就会对实时数据进行处理。这些算法的输出结果通常不是简单的“是/否”两种状态。相反,他们通常会给出一个异常分数,这个数值表示当前事件与基准值之间的差距。

在实际的数据分析中,如果某个服务器的CPU使用率突然上升到99%,那么得分可能会是40分(这种情况比较罕见,但也许是因为今天是某个补丁的发布日)。如果同一台服务器开始向某个可疑的国家通过非标准端口发送流量,那么得分可能会上升到95分。

异常检测中的评估与警报机制

高分会触发警报。不过,检测方法中最大的挑战在于阈值的调整。如果阈值设置得太低,那么分析师们就会花费大量时间来处理那些误报的情况。而如果阈值设置得过高,那么那些缓慢地传输数据的黑客则可能逃脱惩罚。

有效的系统能够支持反馈机制。当分析师将某个警报标记为“误报”时,团队可以利用这一反馈来调整相关规则、阈值或重新训练模型。具体调整方式则取决于异常检测工具是如何实现学习和模型更新的。

为什么异常检测非常重要呢?

加密的流量、云环境中的复杂网络结构,以及不断变化的恶意软件,都使得基于传统签名方式的检测方法变得不再可靠。攻击者可以迅速改变文件的哈希值。虽然他们仍然能够隐藏自己的行为,但要想持续隐藏因凭证滥用、横向移动或异常访问路径所导致的各种问题,就变得更加困难了。

通过异常检测来识别未知的威胁

签名检测能够识别出那些已经被发现的异常情况。而异常检测则能够捕捉到那些从未被观察到的异常情况。这一点对于零日漏洞来说非常重要,因为目前还没有任何厂商发布过针对这些漏洞的修复程序或签名文件。虽然攻击代码可能很新颖,但其所带来的影响(例如,Web服务器被劫持以运行命令外壳)仍然可以被识别为异常现象。

捕捉内部威胁

那些心怀不满的员工或被攻破的供应商账户,其实已经获得了合法的访问权限。他们的行为可能不会触发恶意软件警报,因为他们使用的是标准工具(如 PowerShell、远程桌面协议等)。

异常检测可以帮助你发现行为上的变化。如果一名人力资源员工试图访问工程图纸,那么异常检测系统会将其标记为异常行为。不过,这并不是因为该工具具有恶意性,而是因为相关的上下文信息不符合正常情况。

利用机器学习技术来处理大规模数据

现代企业会产生大量的日志和监控数据。手动审查这些数据显然是不现实的。而基于机器学习的异常检测技术则可以自动化地处理这些数据集,从而找出那些最值得人工分析的异常值。这样,原本混乱的数据就变成了一份可供分析师处理的、有序的数据列表。

异常的类型

并非所有奇怪的数据都是以相同的方式呈现出来的。了解各种异常数据的类型,有助于你选择正确的处理方式,从而优化你的逻辑结构。

点异常值与异常数据点

这些是最简单的偏差现象。当某个数据点与其余数据点相比出现异常时,就形成了点异常。

想象一下信用卡账单的情况。通常情况下,你会在食品杂货上花费50美元。然而,突然之间,有一笔交易金额为5,000美元。这一笔交易就构成了异常情况。

同样地,一个通常每天传输10MB数据的服务器,在短短一小时内竟然能够传输50GB的数据。这样的巨大变化使得这一单日数据传输量显得格外显著,与背景中的其他数据相比,它简直是突兀的、难以置信的举动。

异常检测中的上下文异常

这些现象更为微妙。只有当数据在特定的上下文环境中进行观察时,该数据才被认为是异常的——无论该数值本身看起来是否正常。如果没有可靠的基准数据作为参考,那么很难识别出这些异常情况。

下午2点登录的管理员行为属于正常情况。而凌晨2点登录的同一位管理员则属于异常情况。虽然事件本身是相同的(使用相同的凭据,由相同的用户操作),但时间上的差异使得这种行为显得可疑。

集体异常现象与不寻常的模式

所谓“集体异常”,指的是一组相关数据点,这些数据与整个数据集相比存在异常现象。单个的点看起来可能很普通,但当它们组合在一起时,就会形成一些不寻常的图案。

一个典型的攻击方式就是“低强度、持续性的暴力破解攻击”。黑客每小时尝试一次密码。每次登录失败都是正常的现象(因为人们可能会忘记密码)。但是,如果同一IP地址在24小时内连续发生24次登录失败,那么这种行为就会形成一种异常模式,而这种模式可以被异常检测系统识别出来。

异常检测技术

对于异常检测来说,并没有一种通用的“通用算法”。不同的数据结构需要采用不同的检测方法。安全团队通常会结合多种异常检测技术,以覆盖各种威胁来源。

用于数据分析的统计方法

这是一种传统且可靠的数据分析方法。许多方法都认为,正常的数据大致遵循某种分布规律(通常被视为钟形曲线),至少对于某些指标来说是这样。

其运作方式如下:您需要计算数据的平均值和标准差。任何偏离平均值超过多个标准差的数据点,都会被标记为异常值(即高Z分数)。

最适合于那些可以预测的指标,比如CPU的使用情况、剩余的磁盘空间,以及每小时发送的电子邮件数量等。

局限性。它在处理复杂且高维的数据分析时存在困难,或者无法处理那些不符合正态分布的数据(这种情况在网络流量波动较大的情况下很常见)。

机器学习中的孤立森林模型

这是一种被广泛使用的算法,主要用于异常检测。

其运作方式如下:许多机器学习模型都试图了解“正常”数据的样子。而Isolation Forests则采取了不同的方法:它们试图识别出那些异常的数据点。该算法会根据某些特征来随机分割数据。其原理是,异常数据点数量较少且分布较为分散,因此更容易被识别出来(所需的分割次数也较少)。

最适合于这些数据集具有多个字段,例如 IP地址、端口号、协议、数据量以及时间等。通常情况下,这种处理方式能够高效地运行。

为什么这很重要呢?它能够在不具备有标签的“训练数据”的情况下,从大型数据集中识别出异常值。这是一种无监督学习方法。

DBSCAN以及基于密度的检测方法

DBSCAN(基于密度的空间聚类算法,带有噪声处理功能)能够识别出那些具有聚集特性的区域或群体。当数据中的结构表现为密集的群组时,这种算法就显得非常有用。

其运作方式如下:它把那些紧密聚集在一起的数据点组合在一起。在低密度区域中的任何一点(即远离其他数据点的地方),都会被视作异常值。

最适合的/最恰当的地理空间信号(例如,当将位置与时间相结合时出现的“无法出行”模式),或者能够识别出不同用户行为群体。

如果您的用户可以被明确地划分为不同的组(例如,办公室员工、远程工作者、服务账户等),那么DBSCAN可以分别处理这些组。只需使用一个阈值规则(比如“超过X值的任何数据都被视为异常”),就可以识别出那些与办公室活动不同的远程工作者的数据了。

如果正常的行为呈现出某种奇怪的形状(例如,在多个工作班次期间出现活动高峰),那么DBSCAN仍然可以识别出这种形状。而那些假设数据呈正态分布的方法则会将这些异常现象标记为不寻常的模式。

主要优势。与某些统计方法不同,它并不假设数据呈正态分布。它能够处理那些形状不规则的、属于正常行为的群体。

自编码器与深度异常检测

在复杂的场景中,团队会使用深度学习技术。自动编码器是一种神经网络,其功能是压缩数据,然后再将其重新构建出来。

其运作方式如下:你使用“正常”数据来训练网络。网络能够学会如何以低误差的方式压缩和重构这些正常数据。然而,当输入异常数据时,网络的重构效果会很差,因为网络并未学会如何处理那些不寻常的模式。这种重构误差就成为了异常得分。

最适合的/最恰当的这类数据具有复杂的结构,其中各个特征之间的关系并非线性关系。例如,传感器产生的时间序列数据、大规模的结构化遥测数据,或者在能够看到数据包内容的情况下对数据包内容进行分析的情况(无论这些数据是加密的、已解密还是仅在实验室环境中进行分析)。

如果某种现象只有在将多个信号结合起来后才会显得可疑(例如,一个看起来正常的登录过程,紧接着又出现异常的网络流量),那么自动编码器就能捕捉到这种组合现象。而那种一次只检查一个字段的简单规则则可能无法发现这种现象。

如果每次事件都涉及大量的字段(即高维数据),那么自编码器就能学会正常行为的整体“模式”。而手写规则往往无法捕捉到新的变化,或者会引发过多的误报。

异常检测的应用场景

异常检测工具能够解决IT领域以及商业领域中出现的各种问题。

入侵检测与网络异常检测

这是一个典型的网络安全应用场景。通过检测异常行为,团队能够及时发现网络流量和终端活动中的细微异常,从而预防潜在的攻击。

  • 横向移动。能够检测到用户端点何时开始通过管理端口(如 SMB/RDP)与其他端点进行连接,从而打破传统的客户端-服务器网络流量模式。
  • 数据泄露/窃取.识别出出站流量中的异常模式,例如DNS隧道或与未知云存储提供商之间的加密连接。
  • 信标信号。可以发现,这些连接与命令与控制服务器之间存在规律性的、类似心跳信号的连接关系。即便这些连接隐藏在正常的网络流量之中,依然可以被检测到。

2. 欺诈检测与金融安全

银行很早就采用了异常检测机制。当银行通过短信询问你:“你真的在迈阿密花了200美元吗?”这时,很可能是异常检测系统触发了这种提示。

                  马上抢免费试听资格
    意向课程:*必选
    姓名:*必填
    联系方式:*必填
    QQ:
    思博SPOTO在线咨询

    相关资讯

    即刻预约

    免费试听-咨询课程-获取免费资料