APT 攻击溯源方法

2023-10-27

概述:

当今世界正值百年未有之大变局,网络空间成为继陆、海、空、天之后的第五大疆域,安全威胁也随之延伸至网络空间。没有网络安全就没有国家安全,在新时代网络空间安全已经上升至国家安全的高度。高级持续性威胁(Advanced Persistent Threat,APT)攻击是网络空间中威胁最大的一种攻击,其危害性大、隐蔽性强、持续时间长。考虑到APT攻击的溯源一直是网络空间攻防中极为重要的一环,提出了一种基于网络流量风险数据聚类的APT攻击溯源方法。首先介绍了所提方法的工作流程,其次对流程中的风险数据聚类算法进行了详细介绍,最后通过实验验证了所提方法的有效性。

内容目录:

1 传统的 APT 攻击溯源方法

1.1 基于日志记录的溯源

1.2 基于包标记技术的溯源

1.3 基于主动感知数据的溯源方法

2 基于网络流量风险数据的溯源方法

2.1 溯源框架

2.2 聚类算法模型

2.2.1 定义

2.2.2 数学模型

2.2.3 聚类算法

2.3 实 验

2.3.1 场景设计

2.3.2 结果评判标准

2.3.3 结果分析

3 结 语

高级持续性威胁(Advanced Persistent Threat,APT)攻击是指攻击者使用多种先进手段,对特定目标展开的持续的、高威胁性的网络攻击活动,它有3个重要特征:(1)攻击能力强,这体现了APT中的A(既先进性)这一方面;(2)持续时间长,这体现了APT中的P(即持续性)这一方面;(3)目标特定,危害程度大,这体现了APT中T(即威胁性)这一方面。这种攻击活动的发起者往往具有较强的政治背景,攻击活动具有极强的隐蔽性和针对性,而攻击活动的受害者也往往要承受巨大的损失。

根据奇安信发布的《全球高级持续性威胁(APT)2021年度报告》披露的数据,2021年度全球APT攻击的主要目标包括政府、医疗、科技、国防、制造、运输、教育、航空、通信、能源等社会生活的方方面面。攻击手段也有从传统的鱼叉攻击向大量利用0day漏洞发展的趋势。此外,针对基础设施及供应链攻击的事件愈发泛滥,甚至有越来越多的针对网络安全产品的攻击活动,APT攻击的发生频率和威胁程度呈持续扩大的态势。

APT攻击不仅危害性大,而且隐蔽性强。2022年2月23日,奇安盘古实验室发布报告,发现隶属于美国国安局的“方程式”组织利用顶级后门,对中国等45个国家开展了长达十几年的名为“电幕行动”的网络攻击,攻击目标所属的行业涵盖了电信、大学、科研、经济、军事等。

我国是APT攻击的最大受害国之一。长期以来,“海莲花”“蔓灵花”“虎木槿”“方程式”等APT组织对我国进行了持续性的网络攻击,使相关领域遭受了极大的损失。而且,针对政府、国防、能源、金融等重点行业的攻击频率在最近几年都有100%以上的涨幅,个别行业甚至有200%以上的涨幅。

APT攻击的溯源一直都是网络空间攻防中极为重要的一环。做好溯源工作不仅能使相关部门掌握APT攻击的活动规律,做好应对与防范,有效减少损失,还能使我国在面对敌对势力在网络安全问题上的舆论攻击的时候,拿出确凿的证据进行有力的反驳,有效维护国家尊严。

1 传统的 APT 攻击溯源方法

1.1 基于日志记录的溯源

在常见的网络攻击活动中,典型的攻击过程如图1所示。攻击者通过多个中间节点(路由器),连接到受害者的主机,或者把攻击载荷投送到受害者的主机上。在这个过程中,攻击者到受害者之间的每个节点都会留下日志记录。攻击发生后,追踪者根据掌握到的攻击数据包特征,与获取到的各个路由节点的日志记录进行匹配,如果匹配成功,则可断定攻击的数据流经过这一节点。如此一级一级地追踪,直至发现真正的攻击者。

这种溯源的方法可以看作对攻击过程的一种逆向追踪,但使用这种方法进行溯源具有如下困难:

(1)需要获取并存储大量中间路由节点的日志数据,而这往往需要使用行政手段得到网络运营商(Internet Service Provider,ISP)的支持,对于一般的企业或单位来说具有较大的难度。

(2)中间环节易中断。跟踪者往往无法获取到境外运营商的路由节点日志数据,对于来自境外的网络攻击,追踪链就会中断。而一旦追踪链中断,往往会导致前期的追踪工作前功尽弃。

(3)如今的网络攻击大量使用僵尸网络,即使费尽周折找到了发起攻击的IP,最终也往往是僵尸网络,还是难以确定攻击者的身份。

综合以上原因,这种溯源的方式在面对有组织的APT攻击的时候成功率会大大降低,而成本则会大大增加。

1.2 基于包标记技术的溯源

所谓的包标记是指在网络节点(如路由器)中以特定的概率对通过的数据包进行标记,并将路径信息标记在IP数据包的预留字段中。在受害者接收到数据包后,通过解析其中的标记信息,即可重构数据包的路径。包标记过程如图2所示。

用包标记技术进行溯源,无须再存储海量的中间节点产生的日志数据,然而还是需要运营商对中间节点进行特殊的改造和设置。同时,上文所述的基于日志数据的溯源方法中存在的中间环节易中断且无法对使用僵尸网络的攻击者进行溯源的问题依然存在。

1.3 基于主动感知数据的溯源方法

为了解决以上两种方法的数据获取难的问题,陈周国等人提出了一种基于主动感知数据的溯源技术框架,其架构如图3所示。在此方法中,网络感知是基础,可以通过拓扑主动发现、网络扫描和渗透等多种主动感知技术进行信息获取。追踪溯源模块则对感知到的数据进行分析处理,重构数据传输路径,并将结果与感知及策略管理模块进行交互,以动态调整系统运行策略和感知内容。

2 基于网络流量风险数据的溯源方法

2.1 溯源框架

在上述溯源方法中,溯源过程需要巨大的人力成本。在面对愈发频繁和复杂的APT攻击的情况下,这种溯源方式的效率日益低下。

近几年,基于流量还原的网络空间态势感知技术不断发展,相关产品也已在市场上取得了不错的反响。通过对流量还原数据的分析和挖掘,可以发现网络流量中的攻击行为,并将其作为风险数据存储到单独的风险数据库中。本文基于这些挖掘出的风险数据,提出了一种 APT 攻击溯源的新思路。其整体框架和溯源流程分别如图 4、图 5 所示。

APT攻击溯源的最终目的是定位到发起攻击的组织或个人。APT组织往往都与特定的政治实体有关联,在一段时间内具有较为固定的攻击目标、武器库、漏洞库等,这些特征就可以成为确定一个组织的不同的维度。因此,溯源的过程可以分解成确定这些特征维度的过程。确定了维度之后,再与已有的APT组织情报库进行匹配,就可以定位到某个具体的组织。

在图5所示的溯源流程中,先基于风险数据进行聚类分析,把具有相似特征的多种类型的风险数据聚合在一起;然后再基于这些聚类的结果进行维度分析,得到APT组织的攻击目标、时区、语言等维度的数据;最后基于分析得到的各个维度的结果,与APT组织情报库中的组织特征进行匹配,确定该组织是否是某个已知的APT组织,或者是一个未知的组织。

本文重点研究在此方法中对风险数据进行聚类的过程。

2.2 聚类算法模型

2.2.1 定义

定义1:聚类(P)。把一批风险数据划分成不同的数据集的过程。

定义2:线索(C)。一条风险数据就是一个线索,如一封钓鱼邮件、一个木马样本等。

定义3:维度(D)。为方便对数据进行数学表示,而对数据进行拆分描述的不同的侧面。

定义4:元素(E)。从风险数据中提取出来的各个维度的值。

定义5:线索集(S)。一批风险数据的集合。线索与元素的关系如图6所示。

2.2.2 数学模型

根据以上定义,整个聚类的过程如图7所示。

在图7中,

表示风险数据库中的一批线索的集合,表示聚类的过程,表示聚类得到的线索集,其中,。

2.2.3 聚类算法

在本算法中,前置条件是需要有一批可以进行维度拆分的网络流量风险数据。首先对数据的各个维度进行特征提取,然后转换得到每个维度的元素值与线索集的映射。若用

表示此映射中任意一个键值对的key,表示映射中任意一个键值对的value,则此键值对的含义就是中的每一条线索都可以在维度上提取出相同的元素值。

得到以上映射之后,把映射中所有键值对中的值两两之间取交集,得到多个新的线索集。这些新的线索集中的线索,彼此之间都有至少2个维度的元素值是相同的。然后在这些取交集得到的结果线索集中,过滤出线索数量超过阈值的线索集,作为后续聚类操作的聚类中心。

对每一个聚类中心的线索进行特征提取,然后针对原始线索集中不在任何一个聚类中心的线索,分别计算其与每一个聚类中心的归属度。归属度的具体算法:聚类中心在每个维度上的所有元素值都与线索对应维度的元素值计算相似度,如果有多个值,就对计算出来的相似度求和,即得到在此维度上的分数;然后把各个纬度的分数按照对应维度的权重计算加权平均值,得到一个线索归属于某个聚类中心的归属度。得到任意一个不在聚类中心的线索归属于任意一个聚类中心的归属度后,把线索加入到归属度超过阈值且分数最高的聚类中心。在此过程中,每个聚类中心又吸收到了与之归属度超过阈值且分数最高的线索。

最后计算不同的聚类中心两两之间的相似度。相似度的具体算法:首先,对两个聚类中心在同一维度的元素值计算彼此之间的相似度,如果有多个值,就把多个值求和,得到的结果即为在此维度上的分数;其次,把各个纬度的分数按照对应维度的权重计算加权平均值,就得到两个聚类中心的相似度。求得所有聚类中心两两之间的相似度之后,把相似度分数超过阈值的两个聚类中心进行合并,从而得到最终的聚类结果。

上述聚类算法的过程可以用如下的数学方法进行描述:

步骤1:如图8所示,遍历线索集

,对于每一条线索,提取维度特征,得到线索对应特征向量的映射。

步骤2:如图9所示,转换映射

,得到的元素值对应线索列表的映射。

步骤3:如图10所示,对映射

 中的线索列表两两之间取交集,得到线索集。

步骤4:如图11所示,对上述结果进行过滤,选出线索数量超过阈值的线索集。

步骤5:如图12所示,对上述得到的线索集中的线索进行元素提取。

 

步骤6:把原始的线索集

与步骤4得到的所有线索集的并集取差集,得到线索集,即。

步骤7:对于

中的每一条线索,分别计算与线索集的归属度。

步骤8:如图14所示,对上述结果进行过滤,把线索加入到归属度超过阈值且分数最高的线索集中。

步骤9:如图15所示,计算上述结果线索集中彼此之间的相似度。

步骤10:如图16所示,合并上述结果中相似度超过阈值的线索集,得到最终的聚类结果。

2.3 实验

2.3.1 场景设计

实验场景:获取一批邮件数据,对其进行解析,把解析的结果存储到库中。使用某种编程语言实现上述聚类算法,读取存储的邮件数据,并进行聚类,最后对聚类的结果进行分析。

数据准备:1 000条邮件数据

数据样例:

2.3.2 结果评判标准

为了对一批数据的聚合程度进行量化,本文提出了同源度、聚合度与密集度的概念。

同源度用于衡量两个线索是同一个组织产生的程度,其结果是一个大于0的数字。用符号

表示线索的同源度,表示线索在维度上的值的相似度分数,表示在维度上的权重,每条线索能提取出n个维度,则有如下公式:

聚合度用于衡量线索集中任意一个线索与整个线索集之间的归属程度。用符号

表示线索集中任意一条线索的聚合度,线索集中的线索数量为,则有如下公式:

密集度用于衡量线索集中不同线索之间的平均聚合度,其值越大,表示此线索集中的线索彼此之间的同源度越高,聚类的效果就越好。用符号

表示线索集的密集度,线索集中的线索数量为,则有如下公式:

2.3.3 结果分析

本节使用Java语言实现上述聚类算法。线索的纬度划分及权重如表1所示。

实验共得到42个聚类结果,其中数据条数超过20的聚类结果有7个。原始线索集及聚类结果的线索数量分布如图17所示。

计算原始数据和聚类结果中每个线索的聚合度,从每个线索集中随机获取10条数据,得出其每个线索的聚合度分布如图18所示。

从图18可以看出,最下面的一条折线是原始数据的聚合度分布,其分数较低,说明原始线索集中的数据的聚类程度较低。在图18的聚类结果中,所有线索的聚合度分数都要高于原始数据,说明这些聚类结果的聚类程度都要高于原始线索集。

对原始线索集和聚类结果分别计算密集度,得到的结果如表2所示。把上述密集度分布用柱状图表示,如图19所示。从图19中也能很直观地看出,所有的聚类结果较原始数据的密集度都有了数倍的提升,进一步说明了此算法的有效性。

 

3  结 语

本文介绍了传统的APT攻击溯源的方法,分析了传统溯源方法的局限性,提出了一种基于网络流量风险数据的溯源方法,建立了此方法的溯源框架,然后重点分析了此框架中基于风险数据产生APT组织攻击线索库的过程,提出了一种自动聚类的算法。该算法把风险数据自动划分成多个不同的线索集,并使用Java语言实现了此算法,在测试数据上验证了算法的有效性。

在上述实验中,每条数据的维度划分以及权重和阈值的设置对聚类的结果会有较大的影响,这些参数都需要具有一定相关经验的人员进行测试和验证。

后续的研究内容包括对数据拆分的维度和权重以及阈值等参数,使用机器学习的方法进行训练,增加最终聚类结果的准确度;对聚类得到的线索集进行维度分析;根据APT组织的维度匹配到具体的APT组织的方法进行深入研究。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

APT 攻击溯源方法 的相关文章

  • 在子工程中禁用的父工程的 maven 插件

    以 mybatis generator maven plugin 插件为例 在父工程中添加了 mybatis generator maven plugin 插件 想要在子工程禁用 则在对应子工程 pom 中添加 如下内容
  • App数据抓取(抓包工具使用)

    文章目录 fiddler使用 移动端 mitmproxy mitmdump 基础实战 使用Python抓取数据 小结 fiddler使用 基础篇介绍了如何设置fiddler做代理 这里继续介绍使用方法 在file中可以选择开始 停止抓包 可

随机推荐

  • 在安装project2010 64位时提示 “无法安装64位office,因为已有32位版本”解决方法...

    1 点击电脑左下角开始按钮 选择运行 或者window R快捷键 输入命名 regedit 2 弹出注册表编辑器窗口 选择HKEY CLASSES ROOT 打开子选项 3 然后找到Installer文件夹 展开文件列表 文件太大的话直接在
  • 87键键盘insert键使用方法

    87键党一枚 对于计算机工作者而言 104键键盘太鸡肋了 有很多键基本用不到 布局比较反人类 对于想要盲打全键的程序员 文字工作者而言 要按下控制键 得转动手腕甚至转动手肘 严重降低效率 87键实现了所有常用键的布局 可以盲打所有按键 对于
  • 马上看懂各种内聚类型(逻辑内聚、过程内聚、顺序内聚)

    各种内聚模式 内聚概念 内聚其实是一个模块内部各成分之间相关联程度的度量 用来表示说 你这个模块里面各个元素之间关系好不好 是不是每天勾肩搭背 还是冷眼相对或者是偶尔打个招呼 内聚类型 这里用 元素 来统一表达一个模块中各种操作 部分等说法
  • 定时任务-quartz的使用,实现可页面化管理

    定时任务 quartz的使用 实现可页面化管理 使用spring quartz实现定时任务的页面化管理 主要特点 1 时间表达式等信息配置在数据库中 从而实现页面化管理 2 可以手动执行或者停止单个任务 也可以使一个任务加入或者移出自动运行
  • unity 渲染流水线

    渲染流水线 主要分为应用阶段 几何阶段 光栅化阶段 应用阶段 这一阶段最重要的输出是渲染所需的几何信息 即渲染图元 几何阶段 重要任务就是把顶点坐标变换到屏幕空间 通过对输入的渲染图元进行多次处理后 输出屏幕空间的二维顶点坐标 每个顶点对应
  • 《大话数据结构》第六章树

    1 定义 之前我们一直在谈的是一对一的线性结构 可现实中 还有很多一对多的情况需要处理 所以我们需要研究这种一对多的数据结构 树 考虑它的各种特性 来解决我们在编程中碰到的相关问题 树 Tree 是n n 0 个结点的有限集 n 0时称为空
  • R语言中的函数18:readxl::read_excel(), read_xls(),read_xlsx()

    文章目录 read excel read xls 和read xlsx 函数介绍 实例 实例1利用read xls读取文件 实例2指定读取数据的范围range 实例3读取有缺失值的数据 实例4read xls和read xlsx需要对应的文
  • vue nextTick深入理解-vue性能优化、DOM更新时机、事件循环机制

    一 定义 nextTick 事件循环 nextTick的由来 由于VUE的数据驱动视图更新 是异步的 即修改数据的当下 视图不会立刻更新 而是等同一事件循环中的所有数据变化完成之后 再统一进行视图更新 nextTick的触发时机 在同一事件
  • 什么?计算机居然不能精确计算0.1+0.2?

    小云今年大三在一家互联网公司实习 今天下班回到寝室闷闷不乐 小帅见状关心到 怎么了 碰到什么不开心的事了吗 小云叹了口气 今天我写的程序中涉及到小数计算 出了个bug 被测试的人笑了 说我居然0 1 02都不会算 小帅忍不住笑了 0 1 0
  • Java之JVM方法区、永久代、元空间、常量池简介说明

    转自 Java之JVM方法区 永久代 元空间 常量池简介说明 下文笔者讲述jvm中方法区 永久代 元空间 常量池的简介说明 如下所示 JVM内存模型简介 jvm堆是所有线程共享的 主要用来存储对象 堆 年轻代和老年代两块区域 使用NewRa
  • 安时积分法计算soc程序_BMS(电池管理系统)第四课——核心!!!SOC算法开发...

    SOC基本定义 Qmax 电池最大允许充放电容量 可理解为额定容量 SOH Ieff 充放电电流或自放电电流 充电为负 充放电的库伦效率 目前行业算法方案列表如下 其中安时积分 开路电压 人工神经网络 卡尔曼滤波四中方案通用性比较高 重点介
  • 【论文解读-未完成】-A Survey of Transformers-【一篇论文了解整个Transformers王国】

    论文链接 https arxiv org abs 2106 04554 论文时间 202106 论文单位 复旦大学 论文长度 40页 论文目录 A Survey of Transformers Transformers的文献综述 1 INT
  • 自动化测试框架总结

    自动化测试框架流程图 自动化测试框架模块 配置文件读取模块 日志模块 测试数据读取模块 测试执行模块 测试结果更新模块 异常处理模块 屏幕截图模块 自动化框架模块功能说明 配置文件读取模块 模块的主要功能是把测试项目的公共配置读取到脚本里
  • 智能家居_串口通信编程

    模拟串口 我要使用串口开发 那么 安卓系统必须要Root 让我有超级权限 串口就是文件 首先要打开串口文件 我们没有实体开发主板 使用虚拟串口驱动来代替实体开发主板 模拟android主板上的2个串口 模拟 开发板 插入了电脑 电脑就会显示
  • 2020东南大学网络空间安全保研夏令营(预推免)经验

    2020东南大学网安院保研夏令营 预推免 经验 前言 个人情况 本科某双非双一流CS专业 GPA 1 230 国家级省级奖项各有四五项 校级奖项若干 奖学金若干 项目只有一个大创 无论文 东大网安院说来话长 本来是不想报的 然鹅计算机学院的
  • mavne install 报错org.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.Invoca...

    maven install 报错 org apache maven surefire util SurefireReflectionException java lang reflect InvocationTargetException
  • java校验文件路径正则表达式_正则表达式判断是否是合法路径

    在页面前端使用一个文本框 输入条件是 c test 在java中File判断是可以通过的 可以创建的 File file new File filePath if file exists file mkdir 说明是一个合法的路径 但是在w
  • 哈师大计算机学院宿舍,新生攻略

    原标题 新生攻略 哈师大所有的 秘密 都在这了 你好 我是哈师大17级的新生 我想全面的了解一下咱们学校 应该去哪了解呀 这你可算是问对人了 听说最近哈尔滨师范大学学生会的官方微信平台出了非常全的新生攻略呢 快关注它们的公众号 hsdxsh
  • Linux系列

    测试代码如下 是一个输出 Tinywan字符串与循环轮数的死循环程序 每输出一行就休眠1秒 原始输出 前台执行该程序运行效果 程序每隔一秒会在终端输出一个字符串 此时如果键入 Ctrl C 程序会收到一个 SIGINT信号 如果不做特殊处理
  • APT 攻击溯源方法

    概述 当今世界正值百年未有之大变局 网络空间成为继陆 海 空 天之后的第五大疆域 安全威胁也随之延伸至网络空间 没有网络安全就没有国家安全 在新时代网络空间安全已经上升至国家安全的高度 高级持续性威胁 Advanced Persistent