CN112287340A - 用于终端攻击的取证溯源方法、装置、计算机设备 - Google Patents

用于终端攻击的取证溯源方法、装置、计算机设备 Download PDF

Info

Publication number
CN112287340A
CN112287340A CN202010150549.4A CN202010150549A CN112287340A CN 112287340 A CN112287340 A CN 112287340A CN 202010150549 A CN202010150549 A CN 202010150549A CN 112287340 A CN112287340 A CN 112287340A
Authority
CN
China
Prior art keywords
tag
event
label
tags
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010150549.4A
Other languages
English (en)
Other versions
CN112287340B (zh
Inventor
熊春霖
阮琳琦
宋哲
陈焰
王昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Qidun Information Technology Co ltd
Hangzhou Qidun Information Technology Co ltd
Original Assignee
Hangzhou Qidun Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Qidun Information Technology Co ltd filed Critical Hangzhou Qidun Information Technology Co ltd
Priority to CN202010150549.4A priority Critical patent/CN112287340B/zh
Publication of CN112287340A publication Critical patent/CN112287340A/zh
Application granted granted Critical
Publication of CN112287340B publication Critical patent/CN112287340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种用于终端攻击的取证溯源方法、装置以及计算机设备,包括:获取取证溯源请求;根据取证溯源请求获取待取证溯源的进程、文件或事件对应的对象以及该对象的所有标签以及与各个标签相关的事件的事件信息,将该对象添加至预先构建的攻击图中;将该对象对应的所有标签添加至预先建立的标签集合中;遍历标签集合,针对每一个标签,获取该标签对应的对象并添加至攻击图中,同时获取该标签的关联标签加入标签集合中进行遍历。本发明的取证溯源方法、装置、计算机设备通过解释这个对象上所有标签的来源,依据标签的产生过程溯源,以迅速构造一个相对完整的攻击图,大大降低了存储消耗和计算量,提高了取证溯源方法应用的普适性。

Description

用于终端攻击的取证溯源方法、装置、计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种用于终端攻击的取证溯源方法、装置、计算机设备。
背景技术
APT攻击,即高级可持续威胁攻击,也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。日益复杂的高级持续性威胁(APT)已成为企业IT安全的重大课题。在过去的十年中,已经报告了6000多次严重APT事件。特别是大型企业,例如Target和HomeDepot,遭受了重大的财务损失和声誉损失。
包括APT攻击在内的针对终端的攻击一般涵盖多个阶段,包括侦察、入侵、执行、持久化、扩散、回连等;每个阶段皆可能触发安全警报。然而单一的检测结果无法帮助安全管理员判断警报的真伪,也无法获知攻击的来源和影响,因此依赖分析(又称溯源分析、取证分析)是攻击被检测到后的必要步骤。
取证分析系统对系统事件进行存储,当接收到输入(人口点)时(一般以进程、文件或者事件作为输入),尝试以输入出发,还原攻击过程。传统方法将系统事件存储于关系型数据库中,通过手动或自动查询数据,结合规则判断事件是否和攻击相关。此类方法存储系统事件占用空间大、查询效率低效。
因此,近年来研究者提出了基于依赖图的取证分析方法。该类方法利用系统事件构建依赖图,将图存储于内存或硬盘上;当接收到输入时,在图上进行遍历,发现与攻击相关的事件。此类方法构造图时需要额外的计算,且需要的存储空间远大于关系型数据库存储,但查询效率有显著提高,且可以在图的数据结构上实施多种算法。基于异常的方法只适用于严格限制的环境中,在个人、企业环境中误报率高;文献SLEUTH:Real-time AttackScenario Reconstruction from COTS Audit Data中加入了上下文信息,这个方法为依赖分析中的每一个对象分配了可信赖性和机密性标签,通过信息流的传播来传播这些标签;需要依赖分析时,会尝试分析这些标签如何传播,拿到攻击的信息流图。该方法的问题在于系统内存负载较大,且计算消耗事件长。为了减轻系统的负载,加快依赖分析的效率,文献Towards a Timely Causality Analysis for Enterprise Security中通过优先探索涉及稀有或可疑事件的路径来加快向前和向后的分析,这个方法需要在很多机器上收集的数据,对因果分析中涉及到的每一个因果关系进行异常评分,将超过事先设定好的阈值的事件放入依赖分析的结果中。在NDSS2019中该团队将这个工作更进一步,文献NoDoze:Combatting Threat Alert Fatigue with Automated Provenance Triage中采用相似的思路,把判别警报引入依赖分析中。通过对警报在信息流图上的深度优先搜索,对每条路径进行异常评分,取最高的异常分数的路径,利用可配置的阈值来判断这个路径是不是属于攻击路径,从而达到判别警报的目的。本文在设计依赖分析方法时参考了这两篇论文的方法。虽然这两篇论文的方法仍然具有异常检测方法的局限性,如上文所述,受数据的限制较大,但是这两篇论文能够较好地提供依赖分析时间和依赖分析结果之间的平衡。
然而上述工作皆以还原完整攻击步骤为目的,因此它们存储事件时的空间消耗高、计算时的时间消耗高。最主要的,由于依赖爆炸的问题无法通过现有的方法解决,即消耗极大的计算和存储代价只能缓解该问题,所以获取完整且不涉及误判断的攻击图目前是不可能的;同时,在企业环境中,每天将产生数百甚至更多的警告,安全管理人员需要手动确定是否其为真实攻击。然而这些警告多不具有语义或者不具备完整的语义,此时,需要取证分析系统以极快的速度展示和该入口点相关的信息,帮助管理人员判断检测结果。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低存储内存和计算量的用于终端攻击的取证溯源方法。
一种用于终端攻击的取证溯源方法,所述方法包括:
获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
根据所述的取证溯源请求获取待取证溯源的进程、文件或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
将该对象添加至预先构建的攻击图中;
将该对象对应的所有标签添加至预先建立的标签集合中;
遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
作为优选,所述标签集合中每一个标签必须满足深度条件,所述的深度条件为每一个标签的深度必须小于预定的第一阈值,所述标签的深度为由该标签到相应入口标签产生标签的最少次数,所述入口标签为待取证溯源的对象的所有标签。
作为优选,将所述关联标签添加至所述标签集合中包括:判断所述关联标签的深度是否小于预设的第一阈值,若小于,则将关联标签添加至所述标签集合中;否则,丢弃该关联标签。
作为优选,遍历所述的标签集合时针对其中的每一个标签还进行如下操作:
将源标签和关联标签添加至所述的攻击图中。
作为优选,基于该对应的事件将所述的关联对象关联至所述的源对象上包括:
基于事件在攻击图中建立所述源标签和关联标签的关联关系以将所述的关联对象关联至所述的源对象上。
作为优选,所述事件信息还包括事件发生的时间信息,所述的关联关系携带有相应的时间信息。
作为优选,所述的标签通过如下添加方法预先添加到相应对象上,添加方法包括:
获取所述终端的事件,所述事件包括事件的主体、客体以及事件类型;
按照事件发生的先后顺序依次为获取的每一条事件进行如下操作:
根据事件的主体和客体为该事件构建对应的对象,
根据事件的事件类型为对应的对象添加标签,并记录产生该标签对应的事件;
所述根据事件类型为该事件对应的对象添加标签包括:
若事件对应的对象唯一,则根据事件类型查询预设的标签库为确定待添加标签,在所述待添加标签与该对象已有的标签不重复时将待添加标签添加至对象上,所述的标签库中的每个标签包括事件类型以及标签类别;
若事件对应的对象不唯一,根据对应事件的事件类型以及对象已有的标签查询规则库确定各个对象的待添加标签,在所述待添加标签与相应对象已有的标签不重复时将待添加标签添加至相应对象上,所述的规则库中的每一条规则表示一个事件所对应的两个对象之间的主客关系、该事件对应的一个标签产生方向以及基于该标签产生方向的标签对应关系,所述标签产生方向包括由主体对应标签生成客体对应标签或由客体对应标签生成主体对应标签。
作为优选,所述根据对应事件的事件类型以及对象已有的标签查询规则库为各个对象添加标签时遵循标签褪色机制,所述标签褪色机制为一个标签产生标签的次数小于或等于预设的第二阈值。
作为优选,所述根据事件类型为该事件对应的对象添加标签还包括:在所述待添加标签与相应对象已有的标签重复时刷新相应对象上的该标签;所述刷新相应对象上的该标签包括将该标签产生的标签的次数归零。
一种用于终端攻击的取证溯源装置,所述装置包括:
第一模块,用于获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
第二模块,用于根据所述的取证溯源请求获取待取证溯源的进程或文件、或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
第三模块,用于将该对象添加至预先构建的攻击图中;
第四模块,用于将该对象对应的所有标签添加至预先建立的标签集合中;
第五模块,用于遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述用于终端攻击的取证溯源方法的步骤。
相对于现有的以还原完整攻击步为目的攻击溯源方法存储消耗高、计算量大,本发明的用于终端攻击的取证溯源方法、装置、计算机设备通过解释这个对象上所有标签的来源,依据标签的产生过程溯源,以迅速构造一个相对完整的攻击图,大大降低了存储消耗和计算量;依据标签的产生过程进行溯源,不需要额外的运算,极大降低了计算量,也一定程度上解决了溯源图过大的问题;此外,由于计算量小,本发明的取证溯源方法能够以极快的速度展示和该入口点相关的信息,帮助管理人员判断检测结果,使取证溯源方法能够从实验室或者军用等应用领域扩展到民用领域,大大提高了应用的普适性。
附图说明
图1为一实施例中用于终端攻击的取证溯源方法的应用环境图;
图2为一实施例中用于终端攻击的取证溯源方法的流程示意图;
图3为一实施例中的添加标签的流程示意图;
图4为一实施例中用于终端攻击的取证溯源方法的流程示意图;
图5为一终端攻击过程的流程示意图;
图6为图5所示的终端攻击过程采用一优选实施例中的取证溯源方法溯源后得到的攻击图;
图7为一实施例中用于终端攻击的取证溯源装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的用于终端攻击的取证溯源方法,还可以应用于仅具备终端的环境下,整个取证溯源方法全部在终端实现。终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。
本申请提供的用于终端攻击的取证溯源方法,可以应用于如图1所示的应用环境中,终端102通过网络与服务器104通过网络进行通信。其中,终端102 可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。基于图1中的应用环境,本发明的用于终端攻击的取证溯源方法可以全部在服务器中104中实现也可以部分在服务器104中实现,部分在终端实现,每个步骤位置相对独立。优选的,整个取证溯源方法在服务器端完成。
需要说明,本发明的事件信息通常是在取证溯源前对终端发生的事件对应的对象添加标签得到的。
可以理解的是,添加标签以及产生各个标签的事件信息的步骤也可以认为取证溯源方法的一个步骤。相应的,添加标签这一步骤可以实施本发明的取证溯源系统中实现,也可以另一检测设备中完成,也可以在实现本发明的取证溯源方法的系统中一个装置作为检测设备实现。
示例性的,若本发明的取证溯源方法在终端实现,可以直接以终端作为检测设备,用于为各个进程或文件对应的对象添加标签,并记录各个标签产生的原因(本发明中为事件信息)。标签以及产生标签的事件信息存储在检测设备中,要求实施本发明取证溯源方法的取证溯源系统与检测设备能够通信连接,以保证取证溯源系统能够从检测设备中获取时间信息。
考虑到内存消耗和CPU的占用率问题,通常可以设置一检测设备,该检测设备可以为服务器或者终端等,利用该检测设备为各个进程或文件对应的对象添加标签,并记录各个标签产生的原因(本发明中为事件信息)。示例性的,若本发明的方法基于图1所示的系统(包括终端和服务器)实现,可以图1中的服务器作为检测设备或者另外设置一检测设备实现。优选地,以图1中的服务器作为检测设备,即:整个取证溯源系统如图1所示的,包括终端和服务器,服务器检测终端的事件并为事件对应的对象添加标签,并根据需要针对指定的进程、事件或文件进行取证溯源。
事件信息包括内容可根据用户需要在攻击图中携带的信息进行自定义添加。基本的,事件信息必须包括事件的主体和客体分别对应的标签事件类型,其中事件的主体和客体分别对应的标签应该理解为包括标签本身的含义以及该标签与所属对象的对应关系,因此,基于主体和客体对应的标签可以确定出主体对象和客体对象。作为优选,可以给每个对象设有唯一的身份识别码(该身份识别码可以为对象在服务器或终端中的唯一编号),为了降低内存消耗,该对应关系是将对象的编号和标签之间的对应关系。更进一步优选,给每个标签设定标签编号,相应的,该对应关系实际上是对象的编号和标签的编号之间的对应关系。示例性的,事件信息为“11:P1,write,21:F1”,其表示事件主体为标号为 11的进程对象,客体为编号21的文件对象,事件类型为“write”(或写),其中主体上的标签为P1,客体上的标签为F1;即进程11中的标签P1和文件21中的标签F1通过写事件产生关系。
事件信息携带的内容可根据应用需求调整,例如,还可以包括事件发生的时间。示例性的,事件信息为“11:P1,write,21:F1,2020:02:28 20:17”,其表示事件主体为标号为11的进程对象,客体为编号21的文件对象,事件类型为“write” (或写),其中主体上的标签为P1,客体上的标签为F1,时间为2020:02:28 20:17;即在此时间,进程11中的标签P1和文件21中的标签F1通过写事件产生关系。
标签可以标识各个进程或文件可能受到的攻击种类或者被攻击的概率,产生标签的事件信息可以理解为产生该标签的产生原因,对于终端而言,该产生原因通常为终端发生了危险的事件,此时需要给该事件对应的主体以及客体打上标签进行标识。
下面将以图1所示的应用环境为例,对本发明的用于终端攻击的取证溯源方法进行详细说明,且整个取证溯源方法以及添加标签的方法均在服务器中实现。
在本发明一实施例中的一种用于终端攻击的取证溯源方法,如图2所示,包括以下步骤:
步骤S101,获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
所述携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息具体可以为对应的对象的ID等能够唯一查询到该对象的信息。信息也可以为进程 ID和进程启动时间的组合,也能唯一查询到该对象。
本发明的用于终端攻击的取证溯源方法用于服务器接收到待取证溯源的进程、文件或事件时启动,启动后首先进行初始化:包括构建一个空的攻击图、一个空的标签集合,然后再开始执行本发明的取证溯源方法。
本发明的用于终端攻击的取证溯源方法通常配合攻击检测方法使用,在检测到终端有危险事件发生时,将能够查询到危险事件对应的对象的信息提取出来进一步根据要求封装进取证溯源请求中。
步骤S102,根据所述的取证溯源请求获取待取证溯源的进程、文件或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
进程或文件上的标签以及各个产生各个标签的事件信息,能够完整的还原出可能是攻击过程的事件,不需要完整的记录文件或进程的所有内容,一方面能够降低所需存储空间,另一方面能够降低溯源的计算量。
各个对象的标签以及相关事件的事件信息是预先添加至相应对象上的,本实施例中标签采用文献SLEUTH:Real-time Attack Scenario Reconstruction from COTS AuditData给出的方法预先添加到相应对象上,包括:
步骤Sa,利用初始化规则,将系统中所有已知实体(即对象)打上标签并对对应标签进行赋值;
步骤Sa中描述的,预定义标签样本:标签分为三种:数据可信标签、代码可信标签和高价值数据标签。其中前两种可信标签根据其代表的代码可信程度由高到低分为三级(可信、合法、未知);高价值数据标签根据其代表的数据价值程度由高到低分为四级(保密、敏感、私人、公共)。每个进程对象都有三种标签;每个文件对象只有数据可信标签和高价值数据标签而无代码可信标签。
步骤Sb,根据预定义规则,当特定主体与特定客体进行特定操作时,利用主体和客体上三种标签中的部分按规则覆盖其他标签。
步骤Sb中描述的覆盖其他分数时应满足:数据/代码可信标签只能越来越低;高价值数据标签只能越来越高。例如当/bin/bash加载文件时,当文件的将 bash进程的代码可信标签和数据可信标签用文件的数据可信标签覆盖,同时,将bash进程的高价值数据标签用文件的高价值数据标签覆盖。
步骤Sc,当有标签被更新(即有标签被覆盖)时,应将相关的事件的事件信息存入数据库,以备溯源分析时使用,所述事件信息包括主体、客体和事件类型以及主体和客体对应的标签。
步骤S103,将该对象添加至预先构建的攻击图中;
本实施例中攻击图可以理解为攻击发生的过程,即由攻击相关的进程、文件以及它们之间的事件组成的以图为结构的攻击过程结构。
步骤S104,将该对象对应的所有标签添加至预先建立的标签集合中;
步骤S105,遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
S105a,基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
S105b,将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
S105c,基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
在实际实现时,以上各实施例中遍历标签集合中的各个标签时,每遍历一个标签则将标签集合中被遍历的标签删除。应该理解的是,在遍历时,可以针对每个标签串行处理,也可以针对多个标签并行处理。
相对于现有的以还原完整攻击步为目的攻击方法所面临的存在存储消耗高、计算量大的问题,本发明的取证溯源方法保存可能是攻击过程的事件,并通过标签记录其影响。当某一进程或文件被检测为可疑时,通过解释这个对象上所有标签的来源,以迅速构造一个相对完整的攻击图,大大降低了存储消耗和计算量。此外,由于计算量小,本发明的取证溯源方法能够以极快的速度展示和该入口点相关的信息,帮助管理人员判断检测结果,使取证溯源方法能够从实验室研究或者军用等应用领域扩展到民用领域,大大提高了应用的普适性。
基于图2所示的取证溯源流程,本发明另一实施例中的一种用于终端攻击的取证溯源方法,包括以下步骤:
步骤S201,获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
步骤S202,获取待取证溯源的进程或文件对应的对象,以及该对象的所有标签和产生各个标签的事件信息,所述事件信息包括主体、客体和事件类型以及主体和客体对应的标签;
事件信息包括内容可根据用户需要在攻击图中携带的信息进行自定义添加。例如,为提高攻击图的可读性,所述事件信息还包括事件发生的时间信息 (如时间戳)所述的关联关系携带有相应的时间信息。
在本实施例中,所述的标签通过如下添加方法预先添加到相应对象上,添加方法如图3所示,包括:
步骤S1,获取所述终端的事件,所述事件包括事件的主体、客体以及事件类型;在本实施例中获取终端的事件包括:获取终端的系统事件以及经过语义解析的API数据(解析后为动态行为数据)和特征数据,其中,所述的特征数据包括进程或文件的特征数据。
系统事件即Windows系统事件,包括文件、进程、线程、网络、注册表、内存等相关操作。
API数据为系统调用或者API调用序列,记录了进程和操作系统的交互行为。
特征数据为记录系统进程或文件特征的数据,例如进程窗口参数、用户与窗口的交互行为、二进制文件签名信息等。
系统事件以及经过语义解析的API数据和特征数能够反映终端所有事件的相关信息,如各个事件的主体、客体以及事件类型等。其中,系统事件包括事件的主体、客体以及事件类型;经过语义解析后的API数据和特征数据包括事件的主体以及事件类型。
需要说明的是,对于API数据和特征数据进行语义解析是独立处理的,终端和检测设备均可以对API数据和/或特征数据进行语义解析。相应的,基于API 数据和特征数据进行语义解析的完成者(终端和/或检测设备)进行组合,本实施例的获取终端的系统事件以及经过语义解析的API数据和特征数据作为样本数据可以有多种实现方式。
作为一种实现方式,获取终端的系统事件以及经过语义解析的API数据和特征数据作为样本数据包括如下操作:
终端收集系统事件、API数据和特征数据;
终端将系统事件以及API数据和特征数据发送给检测设备;
检测设备接收来自于终端的系统事件以及API数据和特征数据;
检测设备对接收到的API数据和特征数据进行语义解析。
作为一种优选实现方式,由终端对API数据和特征数据进行语义解析,这样可以大量减少终端向检测设备发送的数据量,节约大量网络带宽。示例性的,获取终端的系统事件以及经过语义解析的API数据和特征数据作为样本数据包括如下操作:
终端采集系统事件、API数据和特征数据,并对采集到的API数据和特征数据进行语义解析
终端将系统事件以及经过解析后的API数据和特征数据发送给检测设备;
检测设备接收来自终端的系统事件以及经过解析后的API数据和特征数据。
本实施例中利用ETW方法收集系统事件。当然,也可以采用其他方式收集系统事件,如Event Logs等其他方式获取,在此不一一列举。
本实施例中利用ETW(callstack数据还原)方法收集API数据。当然,也可以采用其他方式,例如用API hook(API钩子)等其他方法收集API数据,在此不一一列举。
本实施例中通过在终端主动收集数据即可收集特征数据,例如通过定时遍历窗口的方式获取进程窗口特征数据;通过特定事件触发的方式,获取二进制文件签名信息等。当然,也可以采用其他方式收集特征数据,例如使用Windows Message Hook获取窗口特征数据,在此不一一列举。
本实施例中采用公开号为CN 108256329 A的专利申请提供的方法对API数据提取语义完成语义解析,通过识别恶意程序细粒度行为即完成语义解析。此外,还可以采用人工生成特征(Manual Signature)的方式对API数据进行语义解析。
特征数据,通过预定义的规则,解析其语义,例如判断二进制文件签名是否合法;判断窗口是否可见等。例如,二进制文件签名是否合法可以利用 Windows API获取;判断窗口可见可以根据先验(专家)规则指定。
需要说明,作为另一种实现方式,还可以采集应用日志,包括一般应用的日志和其他检测系统、杀毒软件的日志等数据来获取终端的事件。
步骤S2,按照事件发生的先后顺序依次为获取的每一条事件进行如下操作:
根据事件的主体和客体为该事件构建对应的对象,
根据事件的事件类型为对应的对象添加标签,并记录产生该标签对应的事件;
所述根据事件类型为该事件对应的对象添加标签包括:
若事件对应的对象唯一,则根据事件类型查询预设的标签库为确定待添加标签,在所述待添加标签与该对象已有的标签不重复时将待添加标签添加至对象上,所述的标签库为中的每个标签包括事件类型以及标签类别;
若事件对应的对象不唯一,根据对应事件的事件类型以及对象已有的标签查询规则库确定各个对象的待添加标签,在所述待添加标签与相应对象已有的标签不重复时将待添加标签添加至相应对象上,所述的规则库中的每一条规则表示一个事件所对应的两个对象之间的主客关系、该事件对应的一个标签产生方向以及基于该标签产生方向的标签对应关系,所述标签产生方向包括由主体对应标签生成客体对应标签或由客体对应标签生成主体对应标签。
按照事件发生的先后顺序依次为获取的每一条事件,要求所述步骤S1中的事件还包括事件的发生时间信息。
所述的记录产生该标签对应的事件包括将产生标签对应的事件的事件信息存入硬盘;所述事件信息包括事件主体和客体对应的标签以及事件类型。
可以理解,为降低内存消耗,在所述待添加标签与该对象已有的标签不重复时将待添加标签添加至对象上应包括将待添加标签的编号和对象在服务器中的唯一编号建立对应关系。
可以理解,标签库中的标签仅具有标签内容信息,不具备各个标签和对象之间的对应关系,通常说的对象的标签,此时的标签应该理解为具备标签内容信息和标签与对应的对象之间的对应关系。示例性的,若将标签P1添加至进程 cloud,进程cloud全局唯一ID为11,则最终形式为11{P1},代表进程11中有 P1标签;当获取进程cloud对应的对象上的标签的形式为11_P1,代表有一个 P1标签,属于进程11。
上述添加操作在检测服务器的内存中进行,为降低内存消耗,且保证取证溯源结果,该实施例的添加方法还包括删除检测设备内存中的非活跃对象。
基于此,为保证信息的持久化,保证取证溯源结果,所述添加方法还包括将添加了标签的对象、标签、以及产生标签的原因同步到检测设备硬盘的数据库中。这样即使在内存中删除了,硬盘中能够继续存储。
相应的,对于硬盘中存储有对象,且内存中仅删除了非活跃的对象,因此,为构建相应的对象的效率,降低CPU的占用率,在构建各个事件对应的对象前,先查询系统内存中是否存在该对象,若查询到,则不操作;若未查询到,则继续查询数据库中是否存在该内容,若在数据库中查询到,则从所述的数据库中将该对象同步到内存中;若在数据库未查询到,则在内存中创建该对象。
本实施例中提出的规则库及其对应标签,通过描述不同状态的对象以及其通过特定事件对另一对象的影响,使生成的标签具有上下文信息(由谁产生、为何产生);另外,由于标签的产生具有传递性,例如(A进程到B进程P1->P2,B 进程到C进程P2->P3),使得标签可以描述用于检测的完整的、复杂的上下文信息。
将待添加的标签添加给对象时,可以直接将标签内容全部添加给对象,也可以给每个标签编设唯一的编号,将标签的编号添加给对象即可。为降低内存消耗,作为优选实现方式,每个标签具有唯一的编号,为该对象添加标签包括:将标签对应的编号添加给该对象。
示例性的,所述标签包括由三元构成,各个元素的含义如下:
No代表了标签的唯一编号。
作为编号的一种实现方式,为便于识别对象的类型,所述的编号携带有标签的标签类型。本实施例中标签类型有两种:P代表进程标签,F代表文件标签。
由于标签是根据经验预先设定的,即标签表中的各个标签时预先已知的,且标签具有唯一编号,因此,可以采用位图(bitmap,二进制序列)表示标签,位图中每一位对应一个标签,0代表不含有对应标签,1代表有该标签,这样的设计可以极大的降低内存消耗。相应的,作为另一种优选实现方式,标签的编号携带有标签的标签类型和以及标签在位图中的位置。例如当进程对象对应的位图为00001时,表示该进程对象具有5号标签。需要说明的是,构建位图时,优选建立两个位图,分别对于文件标签和进程标签。需要说明的是,对每个进程对象和文件对象都应构造单独位图,分别对应该进程对象或文件对象所拥有的所有标签。
Ty代表了标签的标签类别,标签类别用于描述标签所代表的语义信息类别以用于判断是否存在APT入侵,主要有四个标签类别,分别为:
恶意行为:攻击者进行的恶意活动,是攻击者入侵的主要目的;
可疑代码源:说明该进程执行了可疑的代码或者这个进程是被可疑进程启动的,代表了这个进程为什么会做恶意活动;
网络连接:说明该进程有和外部交流的能力,特别是网络连接;
需要说明的是,标签类别是根据经验预先设定的,实际使用时可以根据应用需求进行调整。
De是该标签的文字描述,提高可读性。
以“P1,网络连接,该进程有与外网IP的网络通信”为例说明标签的具体含义,其中,P1为标签编号,代表了位置为1的进程标签,标签的类型为进程标签,对应的类别属于“网络连接”,描述为“该进程有与外网IP的网络通信”,其中,NO为“P1”,Ty为“网络连接”,De为“该进程有与外网IP的网络通信”。
需要说明的是,De是该标签的文字描述,主要是为了增强可读性,不是必须的。因此,作为另外一种实现方式,所述标签包括由二元组构成,如<NO,Ty>,在此,不展开详细描述。
规则为标签产生的条件,当某一事件发生时会触发对应规则,每一条规则表示一个事件所对应的两个对象之间的主客关系以及两个对象的标签对应关系和标签产生方向。
主客关系基于该事件对应的两个对象之间的信息流(控制流和数据流)的种类进行区分。本发明中主体只能为进程,客体可以为进程或文件。
本发明中标签产生方向包括由主体对应标签生成客体对应标签或由客体对应标签生成主体对应标签两种,为便于描述以其中一种为正方向,另一种为逆方向。本实施例中正方向和逆方向定义如下:当主体有特定标签,且发生了对应的事件,导致客体产生了新的标签,称这个为正方向;当客体有特定标签,且发生对应事件后,导致主体产生了新的标签,称这个方向为逆方向。可以理解,正方向和反方向的定义可以根据应用需要设定或者调整。
标签产生方向用于确定查询时的方向,查询时,选定查询基准,然后按照标签的产生方向进行查询。示例性的:
终端依次执行如下两步操作:第一步,进程A写文件B,第二步:进程对象 A写文件C;进程A对应有进程对象A,文件B对应有文件对象B,文件C对应有文件对象C。执行第一步操作前,进程对象A对应有标签P1,文件对象B有标签F1,文件对象C无标签。
执行第一步操作,事件进程对象A写文件B发生,查询规则表,首先基于事件类型匹配上规则,假设匹配到规则中有标签产生方向为正方向,也有标签产生方向为逆方向:
当规则中的标签产生方向为正方向,说明由进程对象A(对应于主体)的标签产生文件对象B的标签,因此,需要以主体对应标签为查询基准,假设查询到一条规则中主体对应的标签为P1时客体对应标签为F2,因此,该条规则标签结果为:进程对象A的标签P1,在事件发生时,文件对象B生成标签F2;
当规则中的标签产生方向为逆方向,说明由文件对象B(对应于主体)的标签产生进程对象A的标签,因此,需要以客体对应标签为查询基准,假设查询到一条规则中客体对应的标签为F2时主体对应标签为P2,因此,该条规则标签结果为:文件对象B的标签F1,在事件发生时,进程对象A产生新的标签P2。
可见,执行完第一步操作,进程对象A对应有标签P1、P2,文件对象B有标签F1、F2,文件对象C无标签。
继续执行第二步操作,事件进程对象A写文件C发生,查询规则表,首先基于事件类型匹配上规则,假设匹配到两条规则,假设匹配到规则中有标签产生方向为正方向,也有标签产生方向为逆方向:
当规则中的标签产生方向为正方向,说明由进程对象A(对应于主体)的标签产生文件对象C的标签,因此,需要以主体对应标签为查询基准,,查询到一条规则中主体对应的标签为P1时客体对应标签为F2,因此,进程对象A的标签 P1,在事件发生时,文件对象B产生新的标签F2;假设查询到没有一条规则中主体对应的标签为P2,因此,进程对象A的标签P2,在事件发生时,文件对象 B不产生标签;
当规则中的标签产生方向为逆方向,说明由文件对象B(对应于主体)的标签产生进程对象A的标签,需要以客体对应标签为查询基准,由于文件对象C 不存在标签,因此,事件进程对象A写文件C发生时,进程对象A不产生新的标签。
基于上述过程,可以看出,如果没有标签产生方向,在进行第二操作时,事件进程对象A写文件C发生时,由于进程对象A具有P2,对应事件类型为写,主体标签为P2对应有客体标签F1,相应的文件对象C会产生新的标签F2,此时会发生语义错误。
作为规则的一种实现方式,本实施例中的规则有由六元组构成, <No,Ss,Ev,So,Di,De>,其中:
No代表了规则的唯一编号;
SS代表了参与事件主体的标签;
Ev代表了事件类型,即由主体对客体执行的操作,根据信息流(控制流和数据流)的种类分类;
SO代表了参与事件客体的标签;
Di代表了标签产生的方向;
De是该规则的文字描述。
同标签类似,需要说明的是,规则中的De是该规则的文字描述,主要是为了增强可读性,不是必须的。作为另外一种实现方式,所述规则包括由五元组构成,如<No,Ss,Ev,So,Di>,在此,不展开详细描述。
需要说明的是,本实施例的添加方法中,所述标签可更新,所述更新包括增加、修改或删除标签库中的标签;所述规则库可更新,所述更新包括增加、修改或删除规则库中的规则。进一步,所述标签还包括标签类别,所述标签类别包括恶意行为、可疑代码源和网络连接。
进一步优选,为避免依赖爆炸,所述根据对应事件的事件类型以及对象已有的标签查询规则库为各个对象添加标签时遵循标签褪色机制,所述标签褪色机制为一个标签产生标签的次数小于或等于预设的第二阈值。第二阈值的大小根据应用需求设定,通常为第二阈值取值为2~8。相应的,所述根据事件类型为该事件对应的对象添加标签还包括:在所述待添加标签与相应对象已有的标签重复时刷新相应对象上的该标签;所述刷新相应对象上的该标签包括将该标签产生的标签的次数归零。
下面以图5所示的攻击过程为例进行说明,攻击过程以及检测服务器(图1 所示的服务器)实施本实施例的添加方法的处理时序如表1所示。表1中的攻击行为应理解为终端受到的攻击行为,产生事件为攻击行为发生时终端发生的事件,处理指检测服务器针对该获取的事件的处理过程。
表1
Figure BDA0002402292580000161
Figure BDA0002402292580000171
Figure BDA0002402292580000181
步骤S203,将该对象添加至预先构建的攻击图中;
步骤S204,将该对象对应的所有标签添加至预先建立的标签集合中;
步骤S205,遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并进行如下操作:
步骤S205a,基于对应的事件确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
示例性的,若进程A启动进程B,进程A和进程B对应的对象则互为关联对象,若进程A的对象为源对象,则进程B的对象则为源对象的关联对象。
步骤S205b,将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
源对象和关联对象添加到攻击图中相当于两个点,基于该对应的事件将所述的关联对象关联至所述的源对象上指在二者之间形成连接线,即在源对象和关联对象之间建立关联关系。
步骤S205c,基于对应的事件确定源标签的关联标签以及产生该关联标签的事件,并将所述关联对象以及关联标签添加至所述标签集合中。
标签集合在之后的遍历过程中会有新的标签(以及相应的对象)增加进来,可能会出现依赖爆炸的情况。基于上述取证溯源方法,进一步形成一种优选实现方式,具体的:
基于上述实施例,如图4所示,本发明另一优选实施例中的一种用于终端攻击的取证溯源方法中还限定了标签集合中每个标签的深度,具体如下:所述标签集合中每一个标签必须满足深度条件,所述的深度条件为每一个标签的深度必须小于预定的第一阈值,所述标签的深度为由该标签到相应入口标签产生标签的最少次数,所述入口标签为待取证溯源的对象的所有标签。
示例性的,假设标签产生路径:标签P1由于事件1产生标签P2,P2由于事件2产生标签P3,若以P3作为入口标签,则P1的深度为2。
示例性的,假设标签产生路径1:标签P1由于事件1产生标签P2,P2由于事件2产生标签P3,同时还有另外一条标签生成路径2:标签P1由于事件3 产生标签P4,标签P4由于事件5产生标签P5,标签P5由于事件6产生标签 P2,P2由于事件2产生标签P3。若以P3作为入口标签,在标签生成路径1中,由标签P1到标签P3产生标签的次数为2,在标签生成路径2中,由标签P1到标签P3产生标签的次数为4,取两条路径中的最小值作为标签P1的深度,即标签P1的深度为2。
作为限定标签集合中的标签深度的一种具体实现方式,将所述关联标签添加至所述标签集合中包括:判断所述关联标签的深度是否小于预设的第一阈值,若小于,则将关联标签添加至所述标签集合中;否则,丢弃该关联标签。该预定的第一阈值可以根据需要设定,通常该阈值为2~8,优选该阈值为6。
进一步优选,遍历所述的标签集合时针对其中的每一个标签还进行如下操作:将源标签和关联标签添加至所述的攻击图中。通过在攻击图中添加标签并,能够细粒度的分析出各个对象的可能的攻击类型。作为优选,将源标签和关联标签分别添加至攻击图中的对象上。
相应的,上述实施例中基于该对应的事件将所述的关联对象关联至所述的源对象上包括:
基于事件在攻击图中建立所述源标签和关联标签的关联关系以将所述的关联对象关联至所述的源对象上。通过在攻击图中添加标签并基于标签建立源对象和关联对象的关联关系,能够细粒度的分析出各个对象之间的攻击路径,且能够增强攻击图的可读性。
基于上述实施例所述基于对应的事件信息确定源标签的关联标签以及该关联标签相关的事件信息包括:
判断源标签与对应的事件信息的相关方向;所述的相关方向包括正相关和逆相关,若源标签给予该事件信息对应的事件产生另一标签,则该源标签与对应的事件信息的相关方向为逆相关;否则认为该源标签与对应的事件信息的相关方向为逆相关;
选定与该标签相关且相关方向为源标签与对应的事件信息的相关方向的事件信息作为与该关联标签相关的事件信息。
关联标签的相关的事件信息实际上包括与该关联标签正相关事件信息和与该关联标签逆相关的事件信息,本优选实施例中根据源标签相对于对应的事件信息的相关方向,选定的关联标签的相关事件信息,满足关联标签相对于相关事件信息的相关方向与源标签相对于相应的事件信息的相关方向一致。简单理解,该如此操作相当于确定遍历方向即确定遍历目的,前向遍历为确定攻击造成影响,后向遍历为溯源攻击产生路径。混合的遍历方向虽然有机会找出更全的攻击图,但是混合遍历方向得到的事件和标签大概率与攻击无关。示例性的,标签P1产生标签P2,标签P2产生标签P3,若遍历P2产生P3,此时为后向遍历,确定的是攻击的影响;若遍历P2产生P1,此时为前向遍历,确定的是攻击的产生路径。具体的,从文件A中标签F1通过写事件后向遍历到进程B中标签P1,此时应从进程B中标签P1继续后向遍历;而从进程B中标签P1前向遍历时会遍历所有进程B写过的文件,导致攻击图中与攻击无关节点过多的情况。
以图5所示的攻击事件为例,本发明的取证溯源方法的处理时序如表2所示,基于该方法得到的攻击图如图6所示。可见本优选实施例中的用于终端攻击的取证溯源方法得到攻击图的准确率高,能够很好的还原原始设定攻击过程,且基于对象和标签完成,所需的存储空间小,计算量低,取证溯源速度快。
表2
Figure BDA0002402292580000201
Figure BDA0002402292580000211
本发明还提供了另一种用于终端攻击的取证溯源方法,基于图1所示的系统实现,该方法包括两个阶段,分别为数据收集阶段和画图阶段。
数据收集阶段:
数据在终端收集,被发送到服务器(优选方案,在服务器存储和处理更好),服务器对进程和文件打上标签;此时,如果有新的标签产生(新的标签指与对象已有标签不相同的标签),同时,产生该标签的事件被同步到NoSQL数据库中。需要说明的是,不一定为NO SQL,其他数据库也可行,例如Neo4j,OrientDB 等,图形化数据库,采用NoSQL数据库能够更快的查询,但是存储消耗会有相应的提高。
数据库中的存储方式也有多种,例如,在图形数据库中(NoSQL),每个对象存储其标签,事件以边的形式存储,代表了对象A对对象B做了什么操作,由于什么标签产生了什么标签。本实施例中图形数据库的存储形式和攻击图一致,可将图6的攻击图作为一图形数据库作为示例进行说明,图中虚线为产生了新的标签的事件,这些事件被添加到数据库中。如果先后有两个事件,在同一个对象上产生了相同的标签,则后者相当于没有产生新的标签,不会被加入数据库中(这样可以节约很多存储空间)。
画图阶段:
当接收到一个进程或者一个文件或者一个事件时(事件相当于输入为一个或两个对象),确定待溯源的对象作为基座对象01(即源对象),并进行如下操作:
1、构建待画出的攻击图为G,初始为空;
2、构建已遍历过的标签集合为T,构建标签集合Q;
3、确定遍历该对象O1上的所有标签,将其放入队列Q;
4、当队列Q不为空时,从队列Q中取出一个标签L1;
5、找到与该标签L1对应的事件的事件信息,(标签L1对应的事件指标签 L1相关的事件,包括产生该标签的事件(向后遍历),或者因为该标签而产生其他标签的事件(向前遍历));
如果该标签L1为直接标记的标签(不涉及两个事件),则将该标签丢弃;
如果该标签L1涉及另一个对象O2(即对象01的关联对象),则将该对象 O2和事件加入G(即在攻击图中建立对象01和对象02的关联关系),并将该对象O2中对应的标签L2(标签L2为标签L1的关联标签)加入队列Q;
6、将(对象O1的标签L1)加入已遍历过的标签集合T;此处也可以让每个标签都带有全局唯一的编号,则只需要加入这个标签的编号就可以,目的是防止遍历过的标签再次被遍历)
7、重复4-6,直到Q中没有标签;
8、画出G。(画出图像G有多种方法,例如dot语言)
应该理解的是,虽然图2~4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2~4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本发明提供了一种用于终端攻击的取证溯源装置,如图7所示,包括:
第一模块,用于获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
第二模块,用于根据所述的取证溯源请求获取待取证溯源的进程或文件、或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
第三模块,用于将该对象添加至预先构建的攻击图中;
第四模块,用于将该对象对应的所有标签添加至预先建立的标签集合中;
第五模块,用于遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
关于用于终端攻击的取证溯源装置的具体限定可以参见上文中对于用于终端攻击的取证溯源方法的限定,在此不再赘述。上述用于终端攻击的取证溯源装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现本发明的一种用于终端攻击的取证溯源方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
根据所述的取证溯源请求获取待取证溯源的进程或文件、或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
将该对象添加至预先构建的攻击图中;
将该对象对应的所有标签添加至预先建立的标签集合中;
遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待取证溯源的进程、文件或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
将该对象添加至预先构建的攻击图中;
将该对象对应的所有标签添加至预先建立的标签集合中;
遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程 ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限, RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步 DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM (ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。不同实施例中的技术特征体现在同一附图中时,可视为该附图也同时披露了所涉及的各个实施例的组合例。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种用于终端攻击的取证溯源方法,其特征在于,所述方法包括:
获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
根据所述的取证溯源请求获取待取证溯源的进程、文件或事件对应的对象以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
将该对象添加至预先构建的攻击图中;
将该对象对应的所有标签添加至预先建立的标签集合中;
遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及与该关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
2.如权利要求1所述的用于终端攻击的取证溯源方法,其特征在于,所述标签集合中每一个标签必须满足深度条件,所述的深度条件为标签集合中每一个标签的深度必须小于预定的第一阈值,所述标签的深度为由该标签到相应入口标签产生标签的最少次数,所述入口标签为待取证溯源的对象的所有标签。
3.如权利要求2所述的用于终端攻击的取证溯源方法,其特征在于,将所述关联标签添加至所述标签集合中包括:判断所述关联标签的深度是否小于预设的第一阈值,若小于,则将关联标签添加至所述标签集合中;否则,丢弃该关联标签。
4.如权利要求1所述的用于终端攻击的取证溯源方法,其特征在于,遍历所述的标签集合时针对其中的每一个标签还进行如下操作:
将源标签和关联标签添加至所述的攻击图中。
5.如权利要求4所述的用于终端攻击的取证溯源方法,其特征在于,基于该对应的事件将所述的关联对象关联至所述的源对象上包括:
基于事件在攻击图中建立所述源标签和关联标签的关联关系以将所述的关联对象关联至所述的源对象上。
6.如权利要求5所述的用于终端攻击的取证溯源方法,其特征在于,所述事件信息还包括事件发生的时间信息,所述的关联关系携带有相应的时间信息。
7.如权利要求1~6中任意一项所述的用于终端攻击的取证溯源方法,其特征在于,所述的标签通过如下添加方法预先添加到相应对象上,添加方法包括:
获取所述终端的事件,所述事件包括事件的主体、客体以及事件类型;
按照事件发生的先后顺序依次为获取的每一条事件进行如下操作:
根据事件的主体和客体为该事件构建对应的对象,
根据事件的事件类型为对应的对象添加标签,并记录产生该标签对应的事件;
所述根据事件类型为该事件对应的对象添加标签包括:
若事件对应的对象唯一,则根据事件类型查询预设的标签库为确定待添加标签,在所述待添加标签与该对象已有的标签不重复时将待添加标签添加至对象上,所述的标签库中的每个标签包括事件类型以及标签类别;
若事件对应的对象不唯一,根据对应事件的事件类型以及对象已有的标签查询规则库确定各个对象的待添加标签,在所述待添加标签与相应对象已有的标签不重复时将待添加标签添加至相应对象上,所述的规则库中每一条规则表示一个事件所对应的两个对象之间的主客关系、该事件对应的一个标签产生方向以及基于该标签产生方向的标签对应关系,所述标签产生方向包括由主体对应标签生成客体对应标签或由客体对应标签生成主体对应标签。
8.如权利要求7所述的用于终端攻击的取证溯源方法,其特征在于,所述根据对应事件的事件类型以及对象已有的标签查询规则库为各个对象添加标签时遵循标签褪色机制,所述标签褪色机制为一个标签产生标签的次数小于或等于预设的第二阈值。
9.如权利要求8所述的用于终端攻击的取证溯源方法,其特征在于,所述根据事件类型为该事件对应的对象添加标签还包括:在所述待添加标签与相应对象已有的标签重复时刷新相应对象上的该标签;所述刷新相应对象上的该标签包括将该标签产生的标签的次数归零。
10.如权利要求1~6中任意一项所述的用于终端攻击的取证溯源方法,其特征在,所述基于对应的事件信息确定源标签的关联标签以及该关联标签相关的事件信息包括:
判断源标签与对应的事件信息的相关方向;所述的相关方向包括正相关和逆相关,若源标签给予该事件信息对应的事件产生另一标签,则该源标签与对应的事件信息的相关方向为逆相关;否则认为该源标签与对应的事件信息的相关方向为逆相关;
选定与该标签相关且相关方向为源标签与对应的事件信息的相关方向的事件信息作为与该关联标签相关的事件信息。
11.一种用于终端攻击的取证溯源装置,其特征在于,所述装置包括:
第一模块,用于获取取证溯源请求,所述取证溯源请求中携带有用于查询待取证溯源的进程、文件或事件对应的对象的信息;
第二模块,用于根据所述的取证溯源请求获取待取证溯源的进程或文件、或事件对应的对象,以及该对象的所有标签以及与各个标签相关的事件的事件信息,所述与各个标签相关的事件包括由其他标签产生该标签的事件以及自该标签产生其他标签的事件,所述事件信息包括事件的主体和客体分别对应的标签以及事件类型;
第三模块,用于将该对象添加至预先构建的攻击图中;
第四模块,用于将该对象对应的所有标签添加至预先建立的标签集合中;
第五模块,用于遍历所述的标签集合,针对其中的每一个标签,以该标签为源标签,以该标签所属的对象为源对象,并对该标签的每一条相关的事件信息进行如下操作:
基于该事件信息确定该源对象的关联对象,所述的关联对象为和所述的源对象对应同一事件的另一对象;
将关联对象添加至预先建立的攻击图中,并基于该对应的事件将所述的关联对象关联至所述的源对象上;
基于对应的事件信息确定源标签的关联标签以及各个关联标签相关的事件信息,并将所述关联标签添加至所述标签集合中。
12.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1~10中任一项所述方法的步骤。
CN202010150549.4A 2020-03-06 2020-03-06 用于终端攻击的取证溯源方法、装置、计算机设备 Active CN112287340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010150549.4A CN112287340B (zh) 2020-03-06 2020-03-06 用于终端攻击的取证溯源方法、装置、计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010150549.4A CN112287340B (zh) 2020-03-06 2020-03-06 用于终端攻击的取证溯源方法、装置、计算机设备

Publications (2)

Publication Number Publication Date
CN112287340A true CN112287340A (zh) 2021-01-29
CN112287340B CN112287340B (zh) 2022-05-27

Family

ID=74420145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010150549.4A Active CN112287340B (zh) 2020-03-06 2020-03-06 用于终端攻击的取证溯源方法、装置、计算机设备

Country Status (1)

Country Link
CN (1) CN112287340B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779573A (zh) * 2021-08-04 2021-12-10 国家计算机网络与信息安全管理中心 一种基于系统溯源图的大规模勒索软件分析方法和分析装置
CN115472014A (zh) * 2022-09-16 2022-12-13 苏州映赛智能科技有限公司 一种交通追溯方法、系统、服务器及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812372A (zh) * 2016-03-23 2016-07-27 东北大学 基于标签交换的单包溯源方法
US20170006055A1 (en) * 2015-06-30 2017-01-05 The Mitre Corporation Network attack simulation systems and methods
CN109067815A (zh) * 2018-11-06 2018-12-21 深信服科技股份有限公司 攻击事件溯源分析方法、系统、用户设备及存储介质
CN110545250A (zh) * 2018-05-29 2019-12-06 国际关系学院 一种多源攻击痕迹融合关联的溯源方法
US20200059481A1 (en) * 2018-08-17 2020-02-20 The Research Foundation For The State University Of New York System and method associated with expedient detection and reconstruction of cyber events in a compact scenario representation using provenance tags and customizable policy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170006055A1 (en) * 2015-06-30 2017-01-05 The Mitre Corporation Network attack simulation systems and methods
CN105812372A (zh) * 2016-03-23 2016-07-27 东北大学 基于标签交换的单包溯源方法
CN110545250A (zh) * 2018-05-29 2019-12-06 国际关系学院 一种多源攻击痕迹融合关联的溯源方法
US20200059481A1 (en) * 2018-08-17 2020-02-20 The Research Foundation For The State University Of New York System and method associated with expedient detection and reconstruction of cyber events in a compact scenario representation using provenance tags and customizable policy
CN109067815A (zh) * 2018-11-06 2018-12-21 深信服科技股份有限公司 攻击事件溯源分析方法、系统、用户设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779573A (zh) * 2021-08-04 2021-12-10 国家计算机网络与信息安全管理中心 一种基于系统溯源图的大规模勒索软件分析方法和分析装置
CN113779573B (zh) * 2021-08-04 2023-08-29 国家计算机网络与信息安全管理中心 一种基于系统溯源图的大规模勒索软件分析方法和分析装置
CN115472014A (zh) * 2022-09-16 2022-12-13 苏州映赛智能科技有限公司 一种交通追溯方法、系统、服务器及计算机存储介质
CN115472014B (zh) * 2022-09-16 2023-10-10 苏州映赛智能科技有限公司 一种交通追溯方法、系统、服务器及计算机存储介质

Also Published As

Publication number Publication date
CN112287340B (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
Hassan et al. Tactical provenance analysis for endpoint detection and response systems
US10409665B2 (en) System and method for real-time detection of anomalies in database usage
US10902114B1 (en) Automated cybersecurity threat detection with aggregation and analysis
CN108932426B (zh) 越权漏洞检测方法和装置
US20150172303A1 (en) Malware Detection and Identification
US20130081065A1 (en) Dynamic Multidimensional Schemas for Event Monitoring
CN114679329B (zh) 用于基于赝象对恶意软件自动分组的系统
US10915625B2 (en) Graph model for alert interpretation in enterprise security system
CN112134877A (zh) 网络威胁检测方法、装置、设备及存储介质
US10505986B1 (en) Sensor based rules for responding to malicious activity
JP2022533552A (ja) システムレベルセキュリティのための階層的挙動行動のモデル化および検出システムおよび方法
US20130198168A1 (en) Data storage combining row-oriented and column-oriented tables
EP3531324B1 (en) Identification process for suspicious activity patterns based on ancestry relationship
CN112287340B (zh) 用于终端攻击的取证溯源方法、装置、计算机设备
US9992209B1 (en) System and method for characterizing security entities in a computing environment
CN113472803A (zh) 漏洞攻击状态检测方法、装置、计算机设备和存储介质
CN113422763A (zh) 基于攻击场景构建的报警关联分析方法
CN111371757B (zh) 恶意通信检测方法、装置、计算机设备和存储介质
CN112287339A (zh) Apt入侵检测方法、装置以及计算机设备
Khan et al. Digital forensics and cyber forensics investigation: security challenges, limitations, open issues, and future direction
CN107920067B (zh) 一种主动对象存储系统上的入侵检测方法
CN112925805A (zh) 基于网络安全的大数据智能分析应用方法
Wen et al. Detecting and predicting APT based on the study of cyber kill chain with hierarchical knowledge reasoning
Mei et al. CTScopy: hunting cyber threats within enterprise via provenance graph-based analysis
US11641371B2 (en) Systems, methods and computer-readable media for monitoring a computer network for threats using OLAP cubes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220907

Address after: Room 102, Block A, No. 91, Tiancheng Road, Jianggan District, Hangzhou City, Zhejiang Province, 310000

Patentee after: HANGZHOU QIDUN INFORMATION TECHNOLOGY Co.,Ltd.

Patentee after: Guangzhou Qidun Information Technology Co.,Ltd.

Address before: Room 102, Block A, No. 91, Tiancheng Road, Jianggan District, Hangzhou City, Zhejiang Province, 310004

Patentee before: HANGZHOU QIDUN INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right