CN114936366A - 基于混合分析的恶意软件家族标签更正方法及装置 - Google Patents
基于混合分析的恶意软件家族标签更正方法及装置 Download PDFInfo
- Publication number
- CN114936366A CN114936366A CN202210444025.5A CN202210444025A CN114936366A CN 114936366 A CN114936366 A CN 114936366A CN 202210444025 A CN202210444025 A CN 202210444025A CN 114936366 A CN114936366 A CN 114936366A
- Authority
- CN
- China
- Prior art keywords
- family
- semantic
- distance
- inconsistent
- malware
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Virology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种基于混合分析的恶意软件家族标签更正方法及装置,其中,该方法包括:将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列;将所述语义序列进行相似度聚类得到至少一个恶意软件簇,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签。实现了自动化的更正上游任务中家族标注引发的错误。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于混合分析的恶意软件家族标签更正方法及装置。
背景技术
当前恶意软件家族标签命名存在多方混乱与冲突问题。由于不同厂商对恶意软件分类的方法、角度和命名规则各不相同,因此对于同一样本,不同的厂商和研究者均会给出不同的命名,这些命名彼此之间可能还存在冲突。存在争议的恶意样本标签对于家族分类,变种识别,威胁源画像是极其不利的。
当前大多数恶意软件标签的解决方案是从VirusTotal中反病毒引擎的检测结果中得到,VirusTotal存在多方标签混乱与冲突问题,因此大多数解决方案流于表面,难以深入挖掘标签关系。
当前提取恶意软件家族标签的通用方法:自动化恶意软件标记工具如AVCLASS和Euphony等。自动化恶意软件标记工具是一种在VirusTotal开源情报网站上利用多方反病毒引擎的检测结果进行通用令牌的去除、别名的归并、反病毒引擎的选择与投票等等一系列步骤聚合而来。通用令牌和别名均是通过设定经验阈值在大规模数据上观察得到。因此,难免会出现一些缺失或不正确的情况,从而造成标签数据中存在污染现象,上游的标注错误则会直接影响下游的家族分类任务的效果。
发明内容
针对现有技术中的问题,本发明实施例提供一种基于混合分析的恶意软件家族标签更正方法及装置。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种基于混合分析的恶意软件家族标签更正方法,其特征在于,包括:将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列;将所述语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签。
进一步地,所述将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告,包括:获取至少一个恶意软件家族中的恶意软件的二进制文件;对于每个二进制文件,检测所述二进制文件是否有壳;若检测到没有壳,则将所述二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告;若检测到有壳,则将所述二进制文件输入沙箱确定对应的动态执行报告。
进一步地,所述若检测到没有壳,则将所述二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告,包括:若检测到没有壳,则将所述二进制文件通过静态过滤组件过滤,确定对应的核心代码;根据所述核心代码确定对应的散列值,并根据所述散列值确定关联关系,所述关联关系中包括互不相等的目标散列值;将对应所述目标散列值的二进制文件输入沙箱,得到动态执行报告。
进一步地,所述将所述二进制文件通过静态过滤组件过滤,确定对应的核心代码,包括:根据所述恶意软件的二进制文件确定所述恶意软件的原始程序入口点和文件内容大小;根据所述原始程序入口点和所述文件内容大小确定对应的核心代码。
进一步地,所述行为语义知识库根据ATT&CK技术矩阵和Windows编程文档确定。
进一步地,所述通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列,包括:根据至少一个动态执行报告,确定对应的至少一个四元组,所述四元组包括调用者名称、被调用的函数名称、被调用的函数参数和被调用的函数的返回值;通过预设的行为语义知识库将所述至少一个四元组进行语义映射,得到对应的至少一个语义序列。
进一步地,所述通过预设的行为语义知识库将所述至少一个四元组进行语义映射,得到对应的至少一个语义序列,包括:通过预设的行为语义知识库和预设的辅助规则将所述至少一个四元组进行语义映射,得到对应的至少一个语义序列。
进一步地,所述将所述语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇,包括:将至少一个语义序列嵌入到向量空间后得到对应的至少一个向量,再对所述至少一个向量进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种向量,每种向量对应一个家族标签,若所述家族标签中存在标签不一致的情况,则确定该恶意软件簇为不一致簇;以及所述确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,包括:根据所述不一致簇中向量所属的恶意软件家族确定第一距离;对于不一致簇中的每个向量,根据所述向量所属的恶意软件家族的其他向量确定对应的第二距离。
进一步地,所述将至少一个语义序列嵌入到向量空间,包括:通过Doc2Vec模型,将所述至少一个语义序列嵌入到向量空间。
进一步地,所述根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签,包括:将每个语义序列的第二距离与第一距离比较,若每个语义序列的第二距离均小于或等于所述第一距离,则不一致簇中的家族标签均正确,根据不一致簇中家族标签的凝聚程度,确定不一致簇中的家族标签;若每个语义序列的第二距离均大于所述第一距离,则不一致簇中的家族标签均不正确,抛出异常;否则,则将大于所述第一距离的第二距离对应的语义序列的家族标签更改为小于所述第一距离的第二距离对应的语义序列的家族标签。
第二方面,本发明实施例还提供了一种基于混合分析的恶意软件家族标签更正装置,其特征在于,包括:第一处理模块,用于将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;第二处理模块,用于通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列;第三处理模块,用于将所述语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;第四处理模块,用于确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述基于混合分析的恶意软件家族标签更正方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述基于混合分析的恶意软件家族标签更正方法的步骤。
第五方面,本发明实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述基于混合分析的恶意软件家族标签更正方法的步骤。
本发明实施例提供的基于混合分析的恶意软件家族标签更正方法及装置,通过行为语义知识库,在系统调用映射行为语义时可以帮助安全分析人员更好的理解恶意样本的真实企图,也可以降低减少人工智能模型学习的盲目性。通过动态执行报告和相似度聚类的混合分析方式,在大规模恶意样本家族分类任务中,提高了审查恶意样本家族标签的有效性;通过第一平均欧氏距离和第二平均欧氏距离,实现了自动化的更正上游任务中家族标注引发的错误,以防止下游任务中学习到错误的先验知识。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明提供的基于混合分析的恶意软件家族标签更正方法的一些实施例的流程示意图;
图2为PE可执行文件的冗余位置示意图;
图3为计算机系统组件相关概念的示意图;
图4为恶意软件家族标签更正方法的一些实施例的示意图;
图5为根据本发明提供的基于混合分析的恶意软件家族标签更正装置的一些实施例的结构示意图;
图6是根据本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本发明。
请参阅图1,图1是本发明提供的基于混合分析的恶意软件家族标签更正方法的一些实施例的流程示意图。如图1所示,该方法,包括以下步骤:
步骤101,将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告。
作为示例,静态过滤组件可以是一个由关键字组成的表,用于对重复的恶意样本进行过滤剔除。
作为示例,静态过滤组件的结果是一个键值对所构成的字典结构,即key:value;其中key指代恶意样本核心代码的散列值,value则指代该key所对应的样本路径及名称,相同的key所对应的样本列表在后续的动态分析中有且仅有一种行为序列,因此将1:N的key:value键值对过滤为1:1的键值对,即将每个key对应的多余恶意样本进行过滤剔除,减少后续分析的数量。
作为示例,恶意软件家族中有多个恶意软件,每个恶意软件属于相同的类型,其攻击原理相同,是基于相同攻击原理的变种。
作为示例,动态执行报告可以是通过将恶意软件送入沙箱后得到的,也可以是通过其他分析方法分析和跟踪恶意软件的方式获取动态执行报告。动态执行报告用来记录样本在受控环境(即沙箱)中,所进行了一系列与系统交互的行为表示。作为示例,动态行为报告的结果包括以NT开头的底层调用函数,调用时间,调用者、函数参数、函数返回值等等。
作为示例,动态执行报告的结果包括函数、应用拷贝和删除的文件、选定进程的内存镜像、恶意软件执行时的截屏、分析机产生的网络流量等。
作为示例,例如一个恶意软件的样本通过设置注册表来实现自启动,动态执行报告可以参考:
<1.exe,NtSetValueKey,[HKEY_LOCAL_MACHINE\SOFTWARE\
MICROSOFT\WINDOWS\CURRENTVERSION\RUN],0>
步骤102,通过预设的行为语义知识库将动态执行报告进行语义映射,得到对应的语义序列。
作为示例,通过预设的行为语义知识库将至少一个动态执行报告进行语义映射,即引入了知识图谱的概念,恶意软件的本体是恶意软件领域的知识模型,它包含与恶意软件个体、恶意软件行为和计算机系统组件相关的所有相关概念。根据这些概念构成行为语义知识库。
作为示例,也可设置一个关于关键字-语义序列的表格,将动态执行报告中的关键字与表格中记载的关键字匹配,若匹配成功,则表示关键字对应的语义序列与动态执行报告对应。
仍以上述恶意软件的样本通过设置注册表来实现自启动的动态执行报告为例,进行语义映射后得到的语义序列为:AutoRun,映射多个恶意软件的样本的语义,得到至少一个语义序列。
步骤103,将语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇。
作为示例,恶意软件簇是聚类得到的,每个恶意软件簇包括至少一种恶意软件家族的恶意软件。若恶意软件簇中的恶意软件都是来自一个恶意软件家族,则说明这个恶意软件簇中的每个恶意软件的标签一致。若恶意软件簇中的恶意软件来自不同的恶意软件家族,则说明这个恶意软件簇中存多个恶意软件家族的标签,确定该恶意软件簇为不一致簇。
作为示例,每个语义序列都对应一个恶意软件,一个恶意软件对应一个标签。
根据计算机防病毒研究组织(简称为CARO)的恶意软件命名方案(命名方案即标签)的定义,该命名方案影响了当前的检测名称,大多数AV供应商使用与CARO建议的相同或相似的组件,但通常有自己的术语和顺序。例如微软的命名方案:<Type:Platform:Family:Variant:Suffixes>。
作为示例,进行相似度聚类的算法可以是无监督学习算法,无监督学习是一种机器学习的训练方式,它可以在没有标签的数据里发现潜在的有意义的一些结构。
步骤104,确定不一致簇的第一距离,以及确定不一致簇中每个语义序列的第二距离,根据第一距离和第二距离更正不一致簇中的家族标签。
作为示例,第一距离和第二距离可以是欧氏距离。
恶意软件标签的准确提取有助于安全研究人员分析恶意软件的关联信息,如所属类型、运行平台、家族信息、变种序列等等;有助于应急响应中高效清除方案的提出与实施,更有助于AI工程师建立监督学习模型的基准标签,使人工智能模型学习到广泛的基准事实,为安全数据运营或后续研究工作提供支撑。
作为示例,可以将不一致簇中的所有恶意软件的语义序列映射到向量空间,获取每个样本的向量数据,并计算这些向量数据的平均值,即第一距离,向量数据有1024个维度。
作为示例,如果要计算不一致簇中语义序列A的第二距离,则可以将不一致簇中除语义序列A以外的其他语义序列映射到向量空间,然后计算映射到向量空间数据的平均值,即第二距离。同样的,可以依次计算不一致簇中每个语义序列的第二距离。
作为示例,也可以根据需要选择马氏距离、标准欧氏距离、标准差等表示不一致簇中语义序列的平均值。
本发明一些实施例公开的基于混合分析的恶意软件家族标签更正方法,通过行为语义知识库,在系统调用映射行为语义时可以帮助安全分析人员更好的理解恶意样本的真实企图,也可以降低减少人工智能模型学习的盲目性。通过动态执行报告和相似度聚类的混合分析方式,在大规模恶意样本家族分类任务中,提高审查恶意样本家族标签的有效性;通过第一距离和第二距离,实现了自动化的更正上游任务中家族标注引发的错误,以防止下游任务中学习到错误的先验知识。
在一些可选的实现方式中,将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告,包括:获取至少一个恶意软件家族中的恶意软件的二进制文件;对于每个二进制文件,检测二进制文件是否有壳;若检测到没有壳,则将二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告;若检测到有壳,则将二进制文件输入沙箱确定对应的动态执行报告。
在攻击活动中,攻击者为了增加攻击的成功率和降低攻击的成本,通常会使用大量具有相同攻击载荷的恶意样本。当有相同样本出现时,重复分析会浪费较多的人力资源和时间成本,因此安全厂商一旦通过不同的分析技术检测到该恶意样本,则会记录该样本的散列值,将其加入黑名单中(黑名单是实时生成的,黑名单中记载的散列值互不相等),在分析恶意样本前,只需要查询该样本的散列值是否存在黑名单中即可。而攻击者为了避免反病毒引擎基于黑名单的直接过滤,在不影响恶意软件的运行前提下,攻击者会尝试修改恶意软件的非核心部分,达到绕过黑名单的目的。因此如何定位恶意软件的冗余空间成为了攻击者的首要问题。上述方法通过静态过滤组件过滤,完成对恶意软件的二进制文件的目标核心代码的提取。
另外,因为有壳的二进制文件会有数据丢失的可能,因此需要先检测至少一个恶意软件的二进制文件是否有壳。若有壳,则说明文件可能存在数据压缩或加密的情况,无法得到完整的数据,也就无法通过静态过滤组件对数据进行准确匹配,因此直接将文件送入沙箱进行动态检测即可;若没有,则可以通过静态过滤组件提取文件中的目标核心代码,目标核心代码的散列值存在黑名单中。
在一些可选的实现方式中,若检测到没有壳,则将二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告,包括:若检测到没有壳,则将二进制文件通过静态过滤组件过滤,确定对应的核心代码;根据核心代码确定对应的散列值,并根据散列值确定关联关系,关联关系中包括互不相等的目标散列值;将对应目标散列值的二进制文件输入沙箱,得到动态执行报告。
如图2所示,PE可执行文件(即恶意软件的二进制文件,或称PE节段)的冗余位置示意图,攻击者可以在PE头、PE节的尾部、新建PE冗余节和在PE尾部插入冗余字节来变换二进制文件本身的字节,从而引起全文加密散列算法(如md5,sha-1等)的散列值变化。其中,PE可执行文件中的“PE”即Portable Executable,PE可执行文件是微软为Windows NT引入的一种新的可执行文件格式。
作为示例,设计并实施了一种关键位置定位方法来确定对应的核心代码:首先在没有加壳的恶意样本中获取原始程序入口点(OEP)的地址,而后计算每个PE节段(即恶意软件的二进制文件,或称PE可执行文件)的起始和结束位置。具体来说,在计算PE节的结束位置时,判断当可执行文件加载进入内存时,虚拟地址能否与硬件条件所决定的内存块大小进行数据对齐,如果不能的话,操作系统会补0以进行对齐操作。而后定位并取出原始入口点所在的PE节段。同时,考虑到存在攻击者在PE节段后的冗余位置插入或修改字节以企图达到对抗攻击的目的,因此在取节表段时,只取当前PE节的实际大小,丢弃冗余字段,得到核心代码。
作为示例,根据核心代码确定对应的散列值,并根据散列值确定关联关系,即将关联关系中包括目标散列值和对应目标散列值的二进制文件。其中,目标散列值是根据核心代码确定对应的散列值得到的、没有重复的散列值。
作为示例,还可以根据核心代码确定对应的散列值确定黑名单,黑名单是根据核心代码确定对应的散列值实时生成的,黑名单中记载的散列值互不相等。黑名单也可以预先设定。若核心代码对应的散列值不在黑名单中,则剔除,若核心代码对应的散列值在黑名单中,则确定该核心代码为目标核心代码。在不影响恶意软件的运行前提下,阻止了攻击者通过修改恶意软件的非核心部分,绕过黑名单的可能。在一些可选的实现方式中,将二进制文件通过静态过滤组件过滤,确定对应的核心代码,包括:根据恶意软件的二进制文件确定恶意软件的原始程序入口点和文件内容大小;根据原始程序入口点和文件内容大小确定对应的核心代码。
作为示例,为了避免受到攻击者基于冗余位置的修改而造成的散列值变化需要确定核心代码,这样静态过滤组件就可以只关注样本的核心可执行代码,而冗余位置的变化不会导致散列结果发生变化,也即是对恶意样本的非核心部分变化并不敏感。在PE可执行文件中获取核心代码段如下。
对于PE可执行文件的冗余位置,实现了一种基于多样性筛查的样本数据标准化技术,该技术基于定位PE可执行文件核心攻击载荷代码所在的位置,从而可以避免由于冗余位置的字节发生变化而引起的散列值变化。
在一些可选的实现方式中,行为语义知识库根据ATT&CK技术矩阵和Windows编程文档确定。
ATT&CK技术矩阵是站在攻击者的视角来描述攻击中各阶段用到的技术模型。
Windows编程文档,Windows自带的开发文档。构造行为语义知识库为语义映射做了准备。
在一些可选的实现方式中,通过预设的行为语义知识库将动态执行报告进行语义映射,得到对应的语义序列,包括:根据至少一个动态执行报告,确定对应的至少一个四元组,四元组包括调用者名称、被调用的函数名称、被调用的函数参数和被调用的函数的返回值;通过预设的行为语义知识库将至少一个四元组进行语义映射,得到对应的至少一个语义序列。
调用者名称定义了可执行程序调用的当前函数,可执行程序(即目标核心代码)可以是初始运行的恶意软件、恶意软件发布/修改的软件、或正常软件。如图3所示,计算机系统组件定义了计算机组件的分类体系结构,包括所有系统组件的子类和个体。行为API指向当前调用的API函数名称,其中包括不同类型的API。返回值定义了当前API的返回值,包括0和非0。这样,单个API的行为语义可以用四元组来描述:
<Caller\_name,API\_name,API\_exinfo,API\_ret>。
一个恶意样本自我读取的例子:
<22703.file.exe,NtReadFile,C:$\backslash$program$\backslash$
71733$\backslash$22703.file.exe,0\textgreater>
首先,对API名称(函数名)进行处理和分类。API名称由一串单词表示,例如“NtCreateFile”。此外,一些API名称以各种后缀结尾,例如Ex、A、W、ExA和ExW。然后删除了这些后缀,以确保提取的特征能够抵御使用同一API调用的多个版本的冲突。为了处理异构的API参数,可以将代表不同领域函数的API,如“InternetCrackUrl”和“DnsQuery”归为网络类型函数,“NtDeleteFile”和“NtOpenFile”归为文件类型函数。其次,对于识别不同功能区域的API的参数,使用正则表达式将系统组件的特定异构参数转换为参数子类型。某些特定API的函数参数不止一个,所以四元组中的系统组件是一个列表。另外,对于返回值,赋予它0或非0的形式。采用上述步骤从四元组中提取的信息,同时对提取的四元组信息进行语义映射。四元组能准确、简洁的体现恶意代码的关键信息,有利于数据分析效率的提高。
在一些可选的实现方式中,通过预设的行为语义知识库将至少一个四元组进行语义映射,得到对应的至少一个语义序列,包括:通过预设的行为语义知识库和预设的辅助规则将至少一个四元组进行语义映射,得到对应的至少一个语义序列。
作为示例,辅助规则可以是定义了:
1、定义了自我读取、自删除、自修改等一系列自操作行为,主要由NtReadFile、NtCreateFile、NtDeleteFile等函数引起。这种语义的关键是调用者名称和参数中的文件是否指向同一个。
2、定义了重命名语义,一般是由MoveFileWithProgress函数引起的。这个语义的关键是参数列表中两个参数的目录是否相同。
3、定义了过度行为语义,这意味着恶意软件在沙箱中运行单个API超过1500次则为过度行为语义。根据API的类型将行为语义分为正常的过度行为和异常的过度行为。
4、查找文件和获取文件属性这两种语义主要是由NtQueryAttributesFile、NtQueryDirectoryFile、NtQueryFullAttributesFile等函数引起的。区分这两种语义的关键是函数的返回值是否为0。
5、为了突出样本的恶意行为,将无法匹配的API调用归类为正常行为。
构建辅助规则有利于在语义映射时提高映射的准确率。
在一些可选的实现方式中,将语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇,包括:将至少一个语义序列嵌入到向量空间后得到对应的至少一个向量,再对至少一个向量进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种向量,每种向量对应一个家族标签,若家族标签中存在标签不一致的情况,则确定该恶意软件簇为不一致簇;以及确定不一致簇的第一距离,以及确定不一致簇中每个语义序列的第二距离,包括:根据不一致簇中向量所属的恶意软件家族确定第一距离;对于不一致簇中的每个向量,根据向量所属的恶意软件家族的其他向量确定对应的第二距离。
作为示例,如果不一致的线索簇中的家族标签存在不正确和不正确,存在样本属于正常点,则这种情况属于标签错误,自动将异常点家族的标签修正为正常点家族的标签。
作为示例,某个不一致簇中聚类了2个样本分别是a,f(样本即恶意软件的语义序列),其中a是blackmoon家族,blackmoon家族下有a,b,c 3个样本,第一距离是指根据该恶意软件家族blackmoon中的所有的恶意样本的语义序列确定的平均距离,例如,对于a的第一距离,两两计算blackmoon家族中每个样本与其他样本的距离,即第一距离=(Distance(a,b)+Distance(a,c)+Distance(b,c))/3。
作为示例,第二距离是指根据该语义序列与除该语义序列的恶意软件家族中的其他样本确定的平均距离,例如某个不一致簇中聚类了2个样本分别是a,f,a和f的恶意软件家族并不一致,其中a是blackmoon家族,f是wannacry家族。对于a的第二距离,第二距离=(Distance(a,b)+Distance(a,c))/2。作为示例,可以使用高度并行版本的层次聚类算法对行为相似度聚类。
作为示例,为了确定不一致簇中的家族标签问题可以先计算每个家族标签下所有样本的平均欧几里德距离,即根据不一致簇中向量所属的恶意软件家族确定第一距离。其次计算不一致线索簇中的每个样本与其家族其他样本的平均距离,即对于不一致簇中的每个向量,根据向量所属的恶意软件家族的其他向量确定对应的第二距离,并将这个距离与其家族的平均距离进行比较,以确定该样本是否为异常值(离群点)。
在一些可选的实现方式中,将至少一个语义序列嵌入到向量空间,包括:通过Doc2Vec模型,将至少一个语义序列嵌入到向量空间。
作为示例,语义序列A可以是{autorun、find_other、load_other},将语义序列A经过Doc2Vec模型无监督学习后,得到嵌入到向量空间的语义序列A,例如[01012532……1206]。
作为示例,对处理好的语义序列嵌入,利用Doc2Vec模型将语义文档嵌入到向量空间中,转换为低维向量表示。有利于下一步计算。
在一些可选的实现方式中,根据第一距离和第二距离更正不一致簇中的家族标签,包括:将每个语义序列的第二距离与第一距离比较,若每个语义序列的第二距离均小于或等于第一距离,则不一致簇中的家族标签均正确,根据不一致簇中家族标签的凝聚程度,确定不一致簇中的家族标签;若每个语义序列的第二距离均大于第一距离,则不一致簇中的家族标签均不正确,抛出异常;否则,则将大于第一距离的第二距离对应的语义序列的家族标签更改为小于第一距离的第二距离对应的语义序列的家族标签。
作为示例,如果不一致簇中的家族标签均正确,认为该案例属于多标签或恶意软件别名。当这些家族的平均距离不超过距离阈值,即属于高内聚家族标签时,则是恶意软件别名问题,否则是多标签类型。
作为示例,如果不一致簇中的家族标签均不正确,则无法根据现有基础推断这些样本的真实情况,因此此时不做任何事情。但是会抛出这些异常值,以供安全研究者或从业人员着重关注这些恶意样本的真实归属。
仍以上述为例,根据第一距离和第二距离更正不一致簇中的家族标签可以通过判断第一距离(记为dis1)和第二距离(记为dis2)的大小关系更正不一致簇中的家族标签:
1.a样本的dis1>dis2,而f样本的dis1<dis2,则f样本家族标记错误,f样本标签应为blackmoon;
2.f样本的dis1>dis2,而a样本的dis1<dis2,则a样本家族标记错误,a样本标签应为wannacry;
3.a和f样本均为dis1>dis2,则考虑样本之间存在别名或者多标签关系;
4.a和f样本均为dis1<dis2,则样本家族标签均不正确,抛出异常。
其中,恶意软件家族的别名实际上为同义别名,即虽然名称不同,但实际指代相同实体,例如mira和miras指的是同一家族,qukart和berbew也指的是同一家族。而多标签关系则是恶意软件家族的名称所描述的粒度或测度不统一导致的,如一个样本在类别上是trojan标签,在家族上是blackmoon标签,两个标签都是正确的,但描述的测度并不统一。
在多标签关系中,家族标签对应的第一距离一般差距很大,例如上述trojan与blackmoon的关系是从属关系,即trojan标签下有若干个不同的家族,blackmoon标签仅是其中一个,虽然trojan和blackmoon用于描述对应样本均为正确的,但类别的粒度显然过粗,因此这里定义行为凝聚程度阈值,通过中位数绝对偏差(Median absolute deviation,简称MAD)计算而来。MAD定义为数据点到中位数的绝对偏差的中位数:
MAD=median(|Xi-median(X)|) 公式(1)
其中,Xi代表第i个家族的第一距离,median代表求中位数操作;
即行为凝聚程度的阈值定义为计算得出MAD的值。
仍以上述为例,如果是a和f样本均为dis1>dis2的情况,需要比较该簇中a和f这两个样本背后家族的第一距离与行为凝聚程度阈值(简称阈值)的大小关系。如果:
1.两个样本家族的第一距离均小于行为阈值,则为别名关系,将对应任一家族名称更改为另一家族名称。
2.a样本家族的第一距离小于阈值,而f样本大于阈值,则为多标签关系,这里仅将该簇中的f样本的家族标签更改为a样本家族标签。
3.f样本小于阈值,而a样本大于阈值,则为多标签,这里将a的标签更改为f的对应的家族名称。
4.样本a和样本f都大于阈值,无法操作,抛出异常。
如图4所示的整体框图,针对现网中捕获的大量真实恶意软件进行深度分析,根据ATT&CK技术矩阵,将恶意样本的动态沙箱执行报告中的底层调用映射为上层语义表示。利用样本的行为语义相似度进行无监督聚类学习。最终合并同一簇中不同家族的样本标签,以实现恶意软件分类中标签更正效果。具体的:
1、在准备模块中输入可执行文件,首先检测该二进制文件的壳,而后根据查壳的结果进入静态过滤组件,这一步的作用是在大规模恶意软件中,缓解恶意样本增长的速率和分析效率难以平衡的问题。
2、将样本输入沙箱中,得到其动态执行报告,而后根据我们离线构造的恶意软件行为语义知识库,将沙箱报告中的底层调用映射为行为语义。
3、在聚类分析模块中,将生成的行为语义通过Doc2Vec模型转换为嵌入空间表示,而后通过层次聚类算法,在良好行为相似度的基础上聚类表示,最后分析定位包含不一致家族的线索簇。
4、判断该线索簇中存在的样本是否为其原本家族标签下的离群点(异常点),从而确定标签问题类型(标签错误,家族别名,多标签),最后更正恶意软件家族标签描述。
5、输入大规模恶意软件和其家族标签,输出则是对所有恶意软件家族标签的诊断。
大规模恶意软件家族分类任务中可能存在的标签污染现象,通常会出现三种不同类型的错误标签问题,包括标签错误、本体问题和多标签。根据上述方法,在最新且标注良好的Bodmas数据集上做测试,其中,Bodmas数据集中对于三种不同类型的标签问题共计涉及了2,003个样本。根据上述方法,在纠正数据集中的错误标签时,使用相同的特征和模型,纠正标签可以使准确率提高2.6%。更重要的是,该方法对于补充恶意软件家族别名知识库非常重要。
请参阅图5,图5是根据本发明提供的基于混合分析的恶意软件家族标签更正装置的一些实施例的结构示意图,作为对上述各图所示方法的实现,本发明还提供了一种基于混合分析的恶意软件家族标签更正装置的一些实施例,这些装置实施例与图1所示的一些方法的实施例相对应,且该装置可以应用于各种电子设备中。
如图5所示,一些实施例的基于混合分析的恶意软件家族标签更正装置包括第一处理模块501、第二处理模块502、第三处理模块503和第四处理模块504:第一处理模块501,用于将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;第二处理模块502,用于通过预设的行为语义知识库将动态执行报告进行语义映射,得到对应的语义序列;第三处理模块503,用于将语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;第四处理模块504,用于确定不一致簇的第一距离,以及确定不一致簇中每个语义序列的第二距离,根据第一距离和第二距离更正不一致簇中的家族标签。
在一些实施例的可选实现方式中,第一处理模块501还用于:获取至少一个恶意软件家族中的恶意软件的二进制文件;对于每个二进制文件,检测二进制文件是否有壳;若检测到没有壳,则将二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告;若检测到有壳,则将二进制文件输入沙箱确定对应的动态执行报告。
在一些实施例的可选实现方式中,第一处理模块501还用于:若检测到没有壳,则将二进制文件通过静态过滤组件过滤,确定对应的核心代码;根据核心代码确定对应的散列值,并根据散列值确定关联关系,关联关系中包括互不相等的目标散列值;将对应目标散列值的二进制文件输入沙箱,得到动态执行报告。
在一些实施例的可选实现方式中,第一处理模块501还用于:根据恶意软件的二进制文件确定恶意软件的原始程序入口点和文件内容大小;根据原始程序入口点和文件内容大小确定对应的核心代码。
在一些实施例的可选实现方式中,行为语义知识库根据ATT&CK技术矩阵和Windows编程文档确定。
在一些实施例的可选实现方式中,第二处理模块502还用于:根据至少一个动态执行报告,确定对应的至少一个四元组,四元组包括调用者名称、被调用的函数名称、被调用的函数参数和被调用的函数的返回值;通过预设的行为语义知识库将至少一个四元组进行语义映射,得到对应的至少一个语义序列。
在一些实施例的可选实现方式中,第二处理模块502还用于:通过预设的行为语义知识库和预设的辅助规则将至少一个四元组进行语义映射,得到对应的至少一个语义序列。
在一些实施例的可选实现方式中,第三处理模块503还用于:将至少一个语义序列嵌入到向量空间后得到对应的至少一个向量,再对至少一个向量进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种向量,每种向量对应一个家族标签,若家族标签中存在标签不一致的情况,则确定该恶意软件簇为不一致簇;以及第四处理模块504还用于:根据不一致簇中向量所属的恶意软件家族确定第一距离;对于不一致簇中的每个向量,根据向量所属的恶意软件家族的其他向量确定对应的第二距离。
在一些实施例的可选实现方式中,将至少一个语义序列嵌入到向量空间,包括:通过Doc2Vec模型,将至少一个语义序列嵌入到向量空间。
在一些实施例的可选实现方式中,第四处理模块504还用于:将每个语义序列的第二距离与第一距离比较,若每个语义序列的第二距离均小于或等于第一距离,则不一致簇中的家族标签均正确,根据不一致簇中家族标签的凝聚程度,确定不一致簇中的家族标签;若每个语义序列的第二距离均大于第一距离,则不一致簇中的家族标签均不正确,抛出异常;否则,则将大于第一距离的第二距离对应的语义序列的家族标签更改为小于第一距离的第二距离对应的语义序列的家族标签。
在一些实施例的可选实现方式中,可以理解的是,该装置中记载的各模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置及其中包含的模块、单元,在此不再赘述。
举个例子如下:
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行基于混合分析的恶意软件家族标签更正方法,该方法包括:将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;通过预设的行为语义知识库将动态执行报告进行语义映射,得到对应的语义序列;将语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;确定不一致簇的第一距离,以及确定不一致簇中每个语义序列的第二距离,根据第一距离和第二距离更正不一致簇中的家族标签。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,上述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,上述计算机程序包括程序指令,当上述程序指令被计算机执行时,计算机能够执行上述各方法所提供的基于混合分析的恶意软件家族标签更正方法,该方法包括:将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;通过预设的行为语义知识库将动态执行报告进行语义映射,得到对应的语义序列;将语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;确定不一致簇的第一距离,以及确定不一致簇中每个语义序列的第二距离,根据第一距离和第二距离更正不一致簇中的家族标签。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的基于混合分析的恶意软件家族标签更正方法,该方法包括:将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;通过预设的行为语义知识库将动态执行报告进行语义映射,得到对应的语义序列;将语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;确定不一致簇的第一距离,以及确定不一致簇中每个语义序列的第二距离,根据第一距离和第二距离更正不一致簇中的家族标签。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种基于混合分析的恶意软件家族标签更正方法,其特征在于,包括:
将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;
通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列;
将所述语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;
确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签。
2.根据权利要求1所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告,包括:
获取至少一个恶意软件家族中的恶意软件的二进制文件;
对于每个二进制文件,检测所述二进制文件是否有壳;
若检测到没有壳,则将所述二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告;
若检测到有壳,则将所述二进制文件输入沙箱确定对应的动态执行报告。
3.根据权利要求2所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述若检测到没有壳,则将所述二进制文件通过静态过滤组件过滤后输入沙箱,得到动态执行报告,包括:
若检测到没有壳,则将所述二进制文件通过静态过滤组件过滤,确定对应的核心代码;
根据所述核心代码确定对应的散列值,并根据所述散列值确定关联关系,所述关联关系中包括互不相等的目标散列值;
将对应所述目标散列值的二进制文件输入沙箱,得到动态执行报告。
4.根据权利要求3所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述将所述二进制文件通过静态过滤组件过滤,确定对应的核心代码,包括:
根据所述恶意软件的二进制文件确定所述恶意软件的原始程序入口点和文件内容大小;
根据所述原始程序入口点和所述文件内容大小确定对应的核心代码。
5.根据权利要求1所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述行为语义知识库根据ATT&CK技术矩阵和Windows编程文档确定。
6.根据权利要求1所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列,包括:
根据至少一个动态执行报告,确定对应的至少一个四元组,所述四元组包括调用者名称、被调用的函数名称、被调用的函数参数和被调用的函数的返回值;
通过预设的行为语义知识库将所述至少一个四元组进行语义映射,得到对应的至少一个语义序列。
7.根据权利要求6所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述通过预设的行为语义知识库将所述至少一个四元组进行语义映射,得到对应的至少一个语义序列,包括:
通过预设的行为语义知识库和预设的辅助规则将所述至少一个四元组进行语义映射,得到对应的至少一个语义序列。
8.根据权利要求1所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述将所述语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇,包括:
将至少一个语义序列嵌入到向量空间后得到对应的至少一个向量,再对所述至少一个向量进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种向量,每种向量对应一个家族标签,若所述家族标签中存在标签不一致的情况,则确定该恶意软件簇为不一致簇;以及
所述确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,包括:
根据所述不一致簇中向量所属的恶意软件家族确定第一距离;
对于不一致簇中的每个向量,根据所述向量所属的恶意软件家族的其他向量确定对应的第二距离。
9.根据权利要求8所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述将至少一个语义序列嵌入到向量空间,包括:
通过Doc2Vec模型,将所述至少一个语义序列嵌入到向量空间。
10.根据权利要求1所述的基于混合分析的恶意软件家族标签更正方法,其特征在于,所述根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签,包括:
将每个语义序列的第二距离与第一距离比较,若每个语义序列的第二距离均小于或等于所述第一距离,则不一致簇中的家族标签均正确,根据不一致簇中家族标签的凝聚程度,确定不一致簇中的家族标签;
若每个语义序列的第二距离均大于所述第一距离,则不一致簇中的家族标签均不正确,抛出异常;
否则,则将大于所述第一距离的第二距离对应的语义序列的家族标签更改为小于所述第一距离的第二距离对应的语义序列的家族标签。
11.一种基于混合分析的恶意软件家族标签更正装置,其特征在于,包括:
第一处理模块,用于将至少一个恶意软件家族中的恶意软件通过静态过滤组件进行过滤后送入沙箱,得到动态执行报告;
第二处理模块,用于通过预设的行为语义知识库将所述动态执行报告进行语义映射,得到对应的语义序列;
第三处理模块,用于将所述语义序列进行相似度聚类得到至少一个恶意软件簇,每个恶意软件簇包括至少一种语义序列,每种语义序列对应一个家族标签,若恶意软件簇的家族标签存在不一致的情况,则确定该恶意软件簇为不一致簇;
第四处理模块,用于确定所述不一致簇的第一距离,以及确定所述不一致簇中每个语义序列的第二距离,根据所述第一距离和所述第二距离更正所述不一致簇中的家族标签。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至10任一项所述的基于混合分析的恶意软件家族标签更正方法的步骤。
13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的基于混合分析的恶意软件家族标签更正方法的步骤。
14.一种计算机程序产品,其上存储有可执行指令,其特征在于,该指令被处理器执行时使处理器实现如权利要求1至10中任一项所述的基于混合分析的恶意软件家族标签更正方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210444025.5A CN114936366A (zh) | 2022-04-25 | 2022-04-25 | 基于混合分析的恶意软件家族标签更正方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210444025.5A CN114936366A (zh) | 2022-04-25 | 2022-04-25 | 基于混合分析的恶意软件家族标签更正方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114936366A true CN114936366A (zh) | 2022-08-23 |
Family
ID=82861700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210444025.5A Pending CN114936366A (zh) | 2022-04-25 | 2022-04-25 | 基于混合分析的恶意软件家族标签更正方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114936366A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272303A (zh) * | 2023-09-27 | 2023-12-22 | 四川大学 | 一种基于遗传对抗的恶意代码样本变体生成方法及系统 |
CN117725577A (zh) * | 2023-12-01 | 2024-03-19 | 中金金融认证中心有限公司 | 一种通过内存管理单元突破恶意软件防护的方法、装置 |
-
2022
- 2022-04-25 CN CN202210444025.5A patent/CN114936366A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272303A (zh) * | 2023-09-27 | 2023-12-22 | 四川大学 | 一种基于遗传对抗的恶意代码样本变体生成方法及系统 |
CN117725577A (zh) * | 2023-12-01 | 2024-03-19 | 中金金融认证中心有限公司 | 一种通过内存管理单元突破恶意软件防护的方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Taheri et al. | Extensible android malware detection and family classification using network-flows and API-calls | |
Chakraborty et al. | Ec2: Ensemble clustering and classification for predicting android malware families | |
US20210256127A1 (en) | System and method for automated machine-learning, zero-day malware detection | |
US9665713B2 (en) | System and method for automated machine-learning, zero-day malware detection | |
US11716349B2 (en) | Machine learning detection of database injection attacks | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
TW201301139A (zh) | 虛擬機快照與分析 | |
CN114936366A (zh) | 基于混合分析的恶意软件家族标签更正方法及装置 | |
Kozachok et al. | Construction and evaluation of the new heuristic malware detection mechanism based on executable files static analysis | |
CN113312615B (zh) | 一种终端检测与响应系统 | |
US20230007014A1 (en) | Detection of replacement/copy-paste attacks through monitoring and classifying api function invocations | |
Bai et al. | A malware and variant detection method using function call graph isomorphism | |
Ognev et al. | Clustering of malicious executable files based on the sequence analysis of system calls | |
Mahawer et al. | Metamorphic malware detection using base malware identification approach | |
US20240054210A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
Ugarte-Pedrero et al. | On the adoption of anomaly detection for packed executable filtering | |
Rozenberg et al. | A method for detecting unknown malicious executables | |
US11868473B2 (en) | Method for constructing behavioural software signatures | |
US11789982B2 (en) | Order independent data categorization, indication, and remediation across realtime datasets of live service environments | |
Yan et al. | Understanding and mitigating label bias in malware classification: An empirical study | |
Singh et al. | Static Malware Analysis Using Machine and Deep Learning | |
EP4339817A1 (en) | Anomalous command line entry detection | |
US20240214396A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20240054215A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program | |
US20240214406A1 (en) | Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program |
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 |