CN106407809B - 一种Linux平台恶意软件检测方法 - Google Patents

一种Linux平台恶意软件检测方法 Download PDF

Info

Publication number
CN106407809B
CN106407809B CN201610834406.9A CN201610834406A CN106407809B CN 106407809 B CN106407809 B CN 106407809B CN 201610834406 A CN201610834406 A CN 201610834406A CN 106407809 B CN106407809 B CN 106407809B
Authority
CN
China
Prior art keywords
vertex
basic block
address
instruction
controlling stream
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.)
Active
Application number
CN201610834406.9A
Other languages
English (en)
Other versions
CN106407809A (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.)
Sichuan University
Beijing Tongtech Co Ltd
Original Assignee
Sichuan University
Beijing Tongtech 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 Sichuan University, Beijing Tongtech Co Ltd filed Critical Sichuan University
Priority to CN201610834406.9A priority Critical patent/CN106407809B/zh
Publication of CN106407809A publication Critical patent/CN106407809A/zh
Priority to US15/645,767 priority patent/US10558805B2/en
Application granted granted Critical
Publication of CN106407809B publication Critical patent/CN106407809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种Linux平台恶意软件检测方法,包括以下步骤:用objdump‑D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;对读取的代码段进行分析,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点,建立基本块之间的联系,向邻接链表添加控制流图的边,生成一个基本的控制流图;提取控制流图的特征,将特征写入arff文件;将生成的arff文件作为机器学习工具weka的数据集,进行数据挖掘,构建分类器;用分类器对待测的ELF样本进行分类。本发明不需要直接比较庞大的特征库,速度更快,能检测未知的恶意软件。

Description

一种Linux平台恶意软件检测方法
技术领域
本发明涉及到计算机恶意软件检测技术领域,具体涉及一种适用于Linux操作系统ELF格式的恶意软件检测方法。
背景技术
恶意软件是指在未经用户许可的情况下,对用户计算机进行破坏,侵犯用户合法权益的软件,包括病毒、蠕虫、木马等。近年来,恶意软件泛滥成灾,对用户的工作、生活造成严重影响。据国内安全厂商360的研究报告,2014年,共新增恶意程序样本3.24亿个,平均每天新增恶意程序样本88.8万个,拦截恶意程序攻击572.7亿次,平均每天拦截恶意程序攻击约1.57亿次。
Linux操作系统是一个完全开放的操作系统,任何人都可以获取源代码以进行二次开发,经过多年的发展,已成为一个较为成熟、完善的系统,越来越多的个人用户也开始选择这种操作系统作为日常使用、开发。随着Linux操作系统的广泛应用,越来越多的骇客关注这个平台,Linux平台的恶意软件也逐渐增多,以往对于Linux操作系统很安全、不存在恶意软件的认知逐渐被颠覆,Linux平台的安全问题越来越突出。
Linux平台的恶意软件检测研究不多,主要采用基于特征码的检测方式。在当前形势下,传统的基于代码特征的检测方式通过提取恶意软件的特征码,构成一个特征码数据库,然后通过扫描软件的信息,再跟特征码数据库中的特征码对比,得出检测结论。这种方法对于检测已知的恶意软件来说切实有效,因此被广泛应用于现有的杀毒软件中。这种方法目前的发展主要在于提高特征码的准确度以及检测速度。但考虑到目前恶意程序的发展,该方法不能检测新的恶意软件,检测滞后,需要频繁更新特征库,劣势逐渐扩大。
一些新的恶意软件检测方法未使用特征码,而是基于软件的行为特征来进行检测或者基于软件的头部信息来进行对比分类。这些方法都是通过挖掘恶意软件局部信息,来构建一个指标集,利用该指标集对软件进行分类,但是仍然存在一些不足。基于行为特征的检测对于使用模糊以及多态的恶意软件,其局部特征不固定,将其与指标集对比分类,难以得到一个较为准确的结果,所以该方法判断这类恶意软件时准确率不高。基于软件头部信息的检测使用的指标是软件的描述信息,这些信息并不能准确反应软件的行为,对于有经验的恶意软件开发者来说,也比较容易被修改、混淆,使得该种检测方法的检测效果大幅降低。
发明内容
本发明所要解决的技术问题是提供一种Linux平台恶意软件检测方法,解决基于代码特征的检测方法不能检测新的或未知的恶意软件、特征库的大小和特征的匹配时间指数增大和需要及时不断地更新的问题,应用机器学习的方法来检测恶意软件。
为解决上述技术问题,本发明所采用的技术方案是:
一种Linux平台恶意软件检测方法,包括以下步骤:
步骤1:在Linux操作系统中,用objdump-D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;
步骤2:对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;
步骤3:对步骤2中读取的代码段进行分析,若代码段中有main函数,则从main函数的入口地址开始,否则从代码段的入口地址开始,按照地址增序,遍历所有的汇编指令,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点;
步骤4:再次对步骤2中读取的代码段进行分析,若代码段中有main函数,则采用顺序与递归结合的方式,从main函数的入口地址开始,否则从代码段入口地址开始,按照地址增序,根据控制流图的构建规则,分析每一个分支、跳转指令,忽略间接跳转、分支指令,确定分支、跳转指令的目标地址,建立基本块之间的联系,向邻接链表添加控制流图的边,同时确定基本块的类型,生成一个基本的控制流图;
步骤5:提取步骤4中所生成的控制流图的特征,将所有样本提取出的特征写入arff文件;
步骤6:将步骤5中生成的arff文件作为机器学习工具weka的数据集,使用基于决策树的C4.5算法、RandomForest算法、lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBays算法中的一种进行数据挖掘,并用m-fold交叉验证产生训练集和决策树,在其中选择分类效果最好的算法来构建分类器,用构建的分类器对待测样本进行分类;
步骤7:对待测的ELF样本构建控制流图,提取控制流图的特征,写入arff文件,将该文件作为步骤6中所构建的分类器的输入,分类器的输出即为分类结果。
根据上述方案,在所述步骤4中,还包括对生成的控制流图进行补充和修复。
根据上述方案,在所述步骤3中,基本块的划分规则为:
程序入口地址为一个基本块;
直接跳转、分支指令目标地址为一个基本块,该跳转、分支指令按照地址增序,下一个不为空操作的指令的地址为一个基本块;
间接跳转指令忽略,直接跳转、分支指令的目标地址为自身地址的指令忽略。
根据上述方案,在所述步骤4中,控制流图的建立规则为:
一个基本块为控制流图的一个顶点,用基本块的入口地址标识,边无权重;
对于每条直接跳转、分支指令都用控制流图中的有向边来表示;
对于无条件直接跳转、分支指令,建立一条由该指令所在基本块指向目标地址标记的基本块的有向边,对于条件跳转、分支指令则建立两条有向边;
返回指令所在基本块有一条指向“与该返回指令所对应的跳转指令的顺序下条指令”所在基本块的有向边;
对于递归调用,仅添加一条基本块指向自身的有向边。
根据上述方案,提取的特征为22个,分别为:顶点总数、边的总数、导入表函数顶点数目、最大出度、反汇编时识别出函数名的顶点数目、入度为零的顶点数、出度为零的顶点数、图的最大度数、最大入度、最大连通子图所含顶点数、指向导入表顶点的边的数目、出入度都为零的顶点数、指向反汇编时识别出函数名的顶点的边的数目、导入表顶点占总顶点的比例、连通子图的数目、识别出函数名的顶点占比、入度为零的顶点占比、出度为零的顶点占比、最大连通子图所含顶点占比、出入度均为零的顶点占比、指向导入表顶点的边占总边的数目的比例、指向识别出函数名的顶点的边的占比。
与现有技术相比,本发明的有益效果是:1)不需要直接比较庞大的特征库,速度更快,且能检测未知的恶意软件。2)分类器较小,所用的特征为提取的22个特征的子集,训练速度较快。3)分类器更新时只需扩大、更新数据集来训练分类器,耗时较少,随着分类器的更新,检测时间也不会显著增大。4)相较于基于软件描述信息、局部特征的方法,本方法较稳定性更高,恶意软件开发者较难做出针对性的应对以逃避检测。
附图说明
图1是本发明一种Linux平台恶意软件检测方法检测流程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。如图1所示,本发明提供的一种Linux平台恶意软件检测方法,包括以下步骤:
步骤1:在Linux操作系统中,gcc为标准的编译器,objdump命令是gcc中提供的强大的二进制分析工具,用objdump-D命令反汇编ELF(Executable and Linking Format)格式的良性软件以及恶意软件样本,生成汇编文件。
步骤2:对生成的汇编文件逐个遍历,读取节“.text”,即ELF文件的代码段,同时识别代码段中是否包含main函数以及该汇编文件所用的指令集。
步骤3:对步骤2中读取的代码进行分析,如果代码段中有main函数,则从main函数的入口地址开始,否则从代码段的入口地址开始,按照地址增序,参考步骤2中得出的指令集,遍历所有的汇编指令,与指令集所含指令进行比对,分析指令的类型和功能。按照基本块的划分规则,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点。
步骤4:再次对步骤2中读取的代码进行分析,如果代码段中有main函数,则采用顺序与递归结合的方式,从main函数的入口地址开始,否则从代码段入口地址开始,按照地址增序,参考步骤2中得出的指令集,遍历所有的汇编指令,与指令集所含指令进行比对,分析指令的类型和功能。根据控制流图的构建规则,分析每一个分支、跳转指令,忽略间接跳转(分支)指令,确定分支、跳转指令的目标地址,建立基本块之间的联系,向邻接链表添加控制流图的边,同时确定基本块的类型,生成一个基本的控制流图。
步骤5:对步骤4中生成的控制流图进行补充、修复,最后生成一个较为完善的控制流图。
步骤6:提取步骤5中所生成的控制流图的特征,共22个,如表1所示。这些特征是通过统计的方法、图论中的算法得到,基本满足需求。将所有样本提取出的特征写入arff文件。
表1提取的22个控制流图的特征
步骤7:将步骤6中生成的arff文件作为机器学习工具weka的数据集,使用基于决策树的C4.5算法、RandomForest算法,lazy分类算法中的IBK,贝叶斯分类算法中的NaiveBays算法等中的一种进行数据挖掘,并用10-fold交叉验证来产生训练集和测试,选择分类效果最好的算法来构建分类器对待测样本进行分类。经测试后最优选择为RandomForest算法。
步骤8:对待测的ELF样本按照前述步骤来构建一个较为完善的控制流图,之后提取控制流图的特征,写入arff文件,使用步骤7中所构建的分类器来对样本进行分类。
所述步骤4中,如果代码段中有main函数,则采用顺序与递归结合的方式遍历汇编指令,具体操作是基于反汇编时所识别出的代码段中的函数,将代码段划分为多个片段,对于单个片段从片段低地址开始顺序遍历分析指令,如果跳转(分支)指令目标地址不在该片段内,而在其他片段内,且该片段尚未遍历过,则递归遍历分析该片段。如果没有main函数,则简单采用顺序遍历的方式,从代码段入口地址开始,按照地址增序,分析指令。
确定基本块的类型,具体是根据该指令的类型同时参考程序执行将该指令所在基本块划分为12类:ENTRY,JUMP_COND,JUMP_LINK_UNC,JUMP_LINK_COND,JUMP_UNC,BRANCH_COND,BRANCH_LINK_COND,BRANCH_UNC,BRANCH_LINK_UNC,BROKEN,RETURN,END。其中ENTRY为程序入口,END为程序退出,RETURN为返回,BROKEN为破损基本块:即已建立的结尾为一个跳转(分支)指令的基本块,由于有另一跳转指令指向了该基本块内的某个地址,因此将该基本块拆分为两个基本块,地址范围较低的基本块末尾不是跳转(分支)指令则为破损基本块。其余类型由以下关键字组成:JUMP(跳转)、BRANCH(分支)、COND(有条件)、UNC(无条件)、LINK(链接,即该指令会使用链接寄存器保存子程序返回地址)。指令的分类参考该指令集的官方手册。
所述步骤5中,补充控制流图具体包含下述两点:
1)对于Broken类型的基本块建立边:找出原本这个完整的基本块被拆分后的所有子基本块,这些子基本块除了有最高地址范围的那个基本块,其余皆为Broken类型,在这些子基本块之间按照地址增序依次建立由低地址范围的基本块指向较高地址范围的基本块的有向边,如基本块A被拆分成三个基本块A1(低地址)、A2、A3(高地址),A1、A2为Broken类型,则修复后有两条有向边(A1→A2,A2→A3)。
2)确定返回指令的目标地址是基于步骤4建立的基本的控制流图,找出与该返回指令相对应的跳转指令,建立相应的有向边。
所述步骤7中,比较基于决策树的C4.5算法、RandomForest算法,lazy分类算法中的IBK,贝叶斯分类算法中的NaiveBays算法等四个数据挖掘算法在给定的507个样本下的分类性能差异,得出最优选择。该比较测试的具体操作为:收集Linux系统ELF格式的恶意软件样本202个,选取Linux系统中文件大小与恶意软件样本近似的良性软件样本303个,进行反汇编,建立控制流图,提取22个特征,将这些特征保存在arff文件中,使用C4.5、RandomForest、IBK、NaiveBays等算法对数据进行10-fold交叉验证。结果如表2所示:
表2各类算法进行数据挖掘的比较
Precision表示对某一个类别的分类结果中,正确的实例数占分类结果中该类实例总数的比例,Recall表示表示识别正确的实例数,占样本中该类别的实例的总数的比例,TP Rate表示对于某一分类的样本,分类正确的数目占实例总数的比例,FP Rate表示对于分类结果的某一类,错误分类的实例数占这些实例所属类别实例总数的比例。

Claims (4)

1.一种Linux平台恶意软件检测方法,其特征在于,包括以下步骤:
步骤1:在Linux操作系统中,用objdump-D命令反汇编ELF格式的良性软件以及恶意软件样本,生成汇编文件;
步骤2:对生成的汇编文件逐个遍历,读取ELF文件的代码段,同时识别代码段中是否包含main函数;
步骤3:对步骤2中读取的代码段进行分析,若代码段中有main函数,则从main函数的入口地址开始,否则从代码段的入口地址开始,按照地址增序,遍历所有的汇编指令,划分基本块,每个基本块用该基本块所含最低的地址标记,向邻接链表添加控制流图中的顶点;
步骤4:再次对步骤2中读取的代码段进行分析,若代码段中有main函数,则采用顺序与递归结合的方式,从main函数的入口地址开始,否则从代码段入口地址开始,按照地址增序,根据控制流图的构建规则,分析每一个分支、跳转指令,忽略间接跳转、分支指令,确定分支、跳转指令的目标地址,建立基本块之间的联系,向邻接链表添加控制流图的边,同时确定基本块的类型,生成一个基本的控制流图,然后对生成的控制流图进行补充和修复;
步骤5:提取步骤4中所生成的控制流图的特征,将所有样本提取出的特征写入arff文件;
步骤6:将步骤5中生成的arff文件作为机器学习工具weka的数据集,使用基于决策树的C4.5算法、RandomForest算法、lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBays算法中的一种进行数据挖掘,并用m-fold交叉验证产生训练集和决策树,在其中选择分类效果最好的算法来构建分类器,用构建的分类器对待测样本进行分类;
步骤7:对待测的ELF样本构建控制流图,提取控制流图的特征,写入arff文件,将该文件作为步骤6中所构建的分类器的输入,分类器的输出即为分类结果。
2.如权利要求1所述的一种Linux平台恶意软件检测方法,其特征在于,在所述步骤3中,基本块的划分规则为:
程序入口地址为一个基本块;
直接跳转、分支指令目标地址为一个基本块,该跳转、分支指令按照地址增序,下一个不为空操作的指令的地址为一个基本块;
间接跳转指令忽略,直接跳转、分支指令的目标地址为自身地址的指令忽略。
3.如权利要求1所述的一种Linux平台恶意软件检测方法,其特征在于,在所述步骤4中,控制流图的建立规则为:
一个基本块为控制流图的一个顶点,用基本块的入口地址标识,边无权重;
对于每条直接跳转、分支指令都用控制流图中的有向边来表示;
对于无条件直接跳转、分支指令,建立一条由该指令所在基本块指向目标地址标记的基本块的有向边,对于条件跳转、分支指令则建立两条有向边;
返回指令所在基本块有一条指向“与该返回指令所对应的跳转指令的顺序下条指令”所在基本块的有向边;
对于递归调用,仅添加一条基本块指向自身的有向边。
4.如权利要求1至3任一项所述的一种Linux平台恶意软件检测方法,其特征在于,提取的特征为22个,分别为:顶点总数、边的总数、导入表函数顶点数目、最大出度、反汇编时识别出函数名的顶点数目、入度为零的顶点数、出度为零的顶点数、图的最大度数、最大入度、最大连通子图所含顶点数、指向导入表顶点的边的数目、出入度都为零的顶点数、指向反汇编时识别出函数名的顶点的边的数目、导入表顶点占总顶点的比例、连通子图的数目、识别出函数名的顶点占比、入度为零的顶点占比、出度为零的顶点占比、最大连通子图所含顶点占比、出入度均为零的顶点占比、指向导入表顶点的边占总边的数目的比例、指向识别出函数名的顶点的边的占比。
CN201610834406.9A 2016-09-20 2016-09-20 一种Linux平台恶意软件检测方法 Active CN106407809B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610834406.9A CN106407809B (zh) 2016-09-20 2016-09-20 一种Linux平台恶意软件检测方法
US15/645,767 US10558805B2 (en) 2016-09-20 2017-07-10 Method for detecting malware within a linux platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610834406.9A CN106407809B (zh) 2016-09-20 2016-09-20 一种Linux平台恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN106407809A CN106407809A (zh) 2017-02-15
CN106407809B true CN106407809B (zh) 2019-03-01

Family

ID=57997014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610834406.9A Active CN106407809B (zh) 2016-09-20 2016-09-20 一种Linux平台恶意软件检测方法

Country Status (2)

Country Link
US (1) US10558805B2 (zh)
CN (1) CN106407809B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133085B (zh) * 2017-06-26 2020-10-27 珠海大横琴科技发展有限公司 优化oat中冗余指令的方法及移动终端
US11372893B2 (en) * 2018-06-01 2022-06-28 Ntt Security Holdings Corporation Ensemble-based data curation pipeline for efficient label propagation
CN109190371A (zh) * 2018-07-09 2019-01-11 四川大学 一种基于行为图的Android恶意软件检测方法和技术
US11030312B2 (en) * 2018-09-18 2021-06-08 International Business Machines Corporation System and method for machine based detection of a malicious executable file
KR102167643B1 (ko) * 2019-01-25 2020-10-19 서울대학교산학협력단 머신러닝 기반의 비정상 분기 탐지 장치 및 그 방법
CN110457046B (zh) * 2019-08-22 2023-05-12 广州小鹏汽车科技有限公司 混合指令集程序的反汇编方法、装置、存储介质及终端
CN110764992B (zh) * 2019-08-26 2023-06-16 北京丁牛科技有限公司 测试方法及装置
CN110943981B (zh) * 2019-11-20 2022-04-08 中国人民解放军战略支援部队信息工程大学 基于层次学习的跨架构漏洞挖掘方法
US11463473B2 (en) * 2019-12-10 2022-10-04 Shanghai Jiaotong University Large-scale malware classification system
CN113111346A (zh) * 2020-01-13 2021-07-13 深信服科技股份有限公司 一种多引擎WebShell脚本文件检测方法及系统
CN113110986A (zh) * 2020-01-13 2021-07-13 深信服科技股份有限公司 一种WebShell脚本文件的检测方法及系统
US11334360B2 (en) * 2020-05-06 2022-05-17 Deepbits Technology Inc. High throughput disassembly system for executable code and applications
CN111552959B (zh) * 2020-06-18 2023-08-29 南方电网科学研究院有限责任公司 一种程序特征序列生成方法和装置
CN111814120B (zh) * 2020-07-10 2021-04-23 北京嘀嘀无限科技发展有限公司 程序反混淆处理方法、装置、设备及存储介质
CN113626017B (zh) * 2021-07-06 2023-10-31 曙光信息产业(北京)有限公司 异构程序的分析方法、装置、计算机设备和存储介质
CN115758164A (zh) * 2022-10-12 2023-03-07 清华大学 二进制代码相似度检测方法、模型训练方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622558A (zh) * 2012-03-01 2012-08-01 北京邮电大学 一种二进制程序漏洞的挖掘装置和方法
CN102841844A (zh) * 2012-07-13 2012-12-26 北京航空航天大学 一种基于简易符号执行的二进制代码漏洞挖掘方法
CN103177215A (zh) * 2013-03-05 2013-06-26 四川电力科学研究院 基于软件控制流特征的计算机恶意软件检测新方法
CN104915211A (zh) * 2015-06-18 2015-09-16 西安交通大学 反编译中基于子图同构匹配算法的内在函数识别方法
CN105224864A (zh) * 2015-11-04 2016-01-06 中国科学院计算技术研究所 一种抵御代码重用攻击的工作进程随机化方法及系统
CN105608003A (zh) * 2015-12-17 2016-05-25 西安电子科技大学 基于控制流分析和数据流分析的Java程序静态分析方法
CN105868633A (zh) * 2016-04-22 2016-08-17 河南理工大学 一种恶意软件感染后宿主软件中恶意代码识别方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195953B1 (en) * 2005-10-25 2012-06-05 Trend Micro, Inc. Computer program with built-in malware protection
US8108315B2 (en) * 2006-06-19 2012-01-31 Hewlett-Packard Development Company, L.P. Discovering software code subject to licenses
US9021589B2 (en) * 2012-06-05 2015-04-28 Los Alamos National Security, Llc Integrating multiple data sources for malware classification
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US8893222B2 (en) * 2012-11-13 2014-11-18 Auckland Uniservices Ltd. Security system and method for the android operating system
EP2958044B1 (en) * 2014-06-20 2019-09-18 Secure-IC SAS A computer implemented method and a system for controlling dynamically the execution of a code
US10387627B2 (en) * 2015-09-28 2019-08-20 Kryptowire LLC Systems and methods for analyzing software

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622558A (zh) * 2012-03-01 2012-08-01 北京邮电大学 一种二进制程序漏洞的挖掘装置和方法
CN102841844A (zh) * 2012-07-13 2012-12-26 北京航空航天大学 一种基于简易符号执行的二进制代码漏洞挖掘方法
CN103177215A (zh) * 2013-03-05 2013-06-26 四川电力科学研究院 基于软件控制流特征的计算机恶意软件检测新方法
CN104915211A (zh) * 2015-06-18 2015-09-16 西安交通大学 反编译中基于子图同构匹配算法的内在函数识别方法
CN105224864A (zh) * 2015-11-04 2016-01-06 中国科学院计算技术研究所 一种抵御代码重用攻击的工作进程随机化方法及系统
CN105608003A (zh) * 2015-12-17 2016-05-25 西安电子科技大学 基于控制流分析和数据流分析的Java程序静态分析方法
CN105868633A (zh) * 2016-04-22 2016-08-17 河南理工大学 一种恶意软件感染后宿主软件中恶意代码识别方法

Also Published As

Publication number Publication date
US10558805B2 (en) 2020-02-11
US20180082064A1 (en) 2018-03-22
CN106407809A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN106407809B (zh) 一种Linux平台恶意软件检测方法
Li et al. Libd: Scalable and precise third-party library detection in android markets
KR101162051B1 (ko) 문자열 비교 기법을 이용한 악성코드 탐지 및 분류 시스템 및 그 방법
Bao et al. {BYTEWEIGHT}: Learning to recognize functions in binary code
EP3139297B1 (en) Malware determination device, malware determination system, malware determination method, and program
CN109885479B (zh) 基于路径记录截断的软件模糊测试方法及装置
Meng et al. Identifying multiple authors in a binary program
CN109684840A (zh) 基于敏感调用路径的Android恶意软件检测方法
CN103106365B (zh) 一种移动终端上的恶意应用软件的检测方法
CN108268777A (zh) 一种利用补丁信息进行未知漏洞发现的相似性检测方法
CN110348214A (zh) 对恶意代码检测的方法及系统
CN103177215A (zh) 基于软件控制流特征的计算机恶意软件检测新方法
Eskandari et al. Metamorphic malware detection using control flow graph mining
CN114077741B (zh) 软件供应链安全检测方法和装置、电子设备及存储介质
CN110147235B (zh) 一种源代码与二进制代码间的语义比对方法和装置
CN111639337A (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
Zhang et al. Detecting integer overflow in Windows binary executables based on symbolic execution
Lin et al. A priority based path searching method for improving hybrid fuzzing
Park et al. Birds of a feature: Intrafamily clustering for version identification of packed malware
KR101583932B1 (ko) 프로그램의 시그니처를 생성하는 시그니처 생성 장치 및 방법, 시그니처의 악성 코드를 검출하는 악성 코드 검출 장치 및 방법
Hang et al. Malware detection method of android application based on simplification instructions
KR20160100887A (ko) 코드 블록 비교를 통한 악성 코드 탐지 방법
Gao et al. Deep Learning-Based Hybrid Fuzz Testing.
KR102192196B1 (ko) Ai 기반 머신러닝 교차 검증 기법을 활용한 악성코드 탐지 장치 및 방법
KR20140087236A (ko) Multi N―gram을 이용한 악성코드 분류 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant