CN101616151B - 一种自动化的网络攻击特征生成方法 - Google Patents

一种自动化的网络攻击特征生成方法 Download PDF

Info

Publication number
CN101616151B
CN101616151B CN2009100901789A CN200910090178A CN101616151B CN 101616151 B CN101616151 B CN 101616151B CN 2009100901789 A CN2009100901789 A CN 2009100901789A CN 200910090178 A CN200910090178 A CN 200910090178A CN 101616151 B CN101616151 B CN 101616151B
Authority
CN
China
Prior art keywords
stain
data
attack
instruction
input
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
CN2009100901789A
Other languages
English (en)
Other versions
CN101616151A (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN2009100901789A priority Critical patent/CN101616151B/zh
Publication of CN101616151A publication Critical patent/CN101616151A/zh
Application granted granted Critical
Publication of CN101616151B publication Critical patent/CN101616151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种自动化的网络攻击特征生成方法,包括如下步骤:1)在虚拟主机中安装虚拟操作系统,配置出与脆弱程序的真实应用一致的运行环境,并配置污点数据操作规则;2)启动脆弱程序将其所有网络输入标记为污点数据进行监控,记录污点数据状态,记录污点数据相关操作指令形成污点传播流图;3)检测到有污点数据异常操作时,从污点传播流图中获得从输入数据包开始的污点数据被脆弱程序操作处理的指令序列;4)将指令序列处理成可编译执行指令,并添加判断输出语句,生成图灵机式的攻击特征。使用本发明的方法有利于对未知漏洞攻击行为的发现和攻击流程的提取;无须获取脆弱程序源代码;生成的攻击特征更精确;攻击特征生成过程自动快速。

Description

一种自动化的网络攻击特征生成方法
技术领域
本发明属于网络安全技术领域,具体涉及一种网络攻击特征的生成方法。
背景技术
随着网络应用的快速发展,攻击者的攻击目标和攻击方式都大大增加,攻击速度更快,破坏性更强,依赖于专业人员的分析经验的手动特征生成耗时费力,生成特征的质量也难以保证,不能满足应用需求。自动化的攻击特征生成成为了当前攻击特征生成领域的研究热点。攻击特征的本质是对同类攻击输入进行识别和过滤的表示方法。在各种网络和主机入侵防范系统中使用攻击特征对输入进行检查和过滤,是保护主机和脆弱程序免遭入侵的一种常用方法。因此,快速精确的攻击特征生成成为了防御网络攻击、保障应用系统安全的关键环节。
现有的攻击特征生成的方法可以分为黑盒法和白盒法两种。黑盒法不涉及脆弱程序本身,直接分析攻击输入之间的共同特点以及攻击输入和正常输入的区别,归纳总结出攻击特征。黑盒法的局限主要有:需要比较大量的攻击输入样本和正常输入样本才能分析出攻击特征,收集样本需要时间;由于不关注脆弱程序中漏洞利用的具体信息,生成的攻击特征的误报率和漏报率难以保证;另外,由于攻击输入本身是攻击者可以完全控制的,因此攻击者可以制造假的攻击输入对黑盒法的特征提取过程进行干扰。白盒法则是从脆弱程序的漏洞被利用的执行流程出发,分析提取攻击特征。它可以综合利用特征生成相关的所有信息,包括攻击输入、漏洞利用过程、漏洞本身特点等,因此生成的特征能更好的描述同类攻击的本质特点,具有更低的误报率和漏报率。但是,现有的特征生成白盒方法多面临依赖程序源代码、需要有经验的分析人员手动分析的局限,导致应用场合受到限制以及需要大量人工分析时间等问题。
从攻击特征的表现形式出发,可以分为正则表达式、符号约束条件和图灵机三种表现形式。正则表达式由于本身表达能力的限制,不能做数值计算和值大小比较,它对特征的描述能力最弱,因此正则表达式形式的攻击特征精确度最低,但它的匹配算法效率是最高的,对攻击输入的判断最为直接迅速;符号约束条件的特征表现形式比正则表达式有更强的描述能力,但它对漏洞利用过程中的循环结构在某些情况下不能作等效的描述,从而影响到攻击特征的精度;图灵机式的攻击特征,包含导向漏洞发生点的语句以及漏洞触发的条件,是判断输入是否为攻击的一个程序,可以对攻击特征作最详尽最真实的表示,做到绝对精确,没有误报率,并且可以根据需要转换为符号约束条件和正则表达式形式的攻击特征。
发明内容
本发明提供一种基于可回溯动态污点分析的网络攻击特征生成方法,借助动态污点分析技术对脆弱程序的漏洞利用过程进行完整的指令级分析记录,利用回溯算法提取出与攻击行为直接相关的代码执行流程,识别其中不同类型的指令并加以修正,可以实现快速自动的生成图灵机式的攻击特征。
本发明的技术方案概述如下:
一种自动化的网络攻击特征生成方法,其步骤如下:
1)在虚拟主机中安装虚拟操作系统,布署脆弱程序,配置出与脆弱程序的真实应用一致的运行环境,并配置污点数据操作规则;
2)启动脆弱程序,将脆弱程序的所有网络输入标记为污点数据进行监控,跟踪记录污点数据的状态,记录污点数据相关操作指令形成污点传播流图;
3)根据污点数据操作规则检测到有污点数据异常操作时,从污点传播流图中获得从输入数据包开始的污点数据被脆弱程序操作处理的指令序列;
4)对步骤3)获得的指令序列按照设定规则处理成可编译执行指令,并添加判断输出语句,生成图灵机式的攻击特征。
所述污点数据操作规则为当污点数据被用作跳转地址或者代码执行,则认为污点数据异常操作。
采用硬件模拟器模拟出虚拟主机,通过截获虚拟CPU中单步运行的中间指令,实现指令级的动态污点分析。
进一步,通过使虚拟执行的翻译环节按每次单条指令的方式进行,实现针对脆弱程序的单步执行。
所述步骤2)通过监控虚拟CPU截获的API函数地址,发现脆弱程序的输入数据包,
将其标记为污点数据。
所述步骤3)使用回溯分析算法从污点传播流图中获得从输入数据包开始的污点数据被脆弱程序操作处理的指令序列。
所述污点传播流图包括源节点和其他节点,所述源节点对应网络输入数据包读入内存后的缓存区,所述其他节点每一个对应一条污点数据相关操作指令,所述其他节点之间按照污点数据相关操作指令中的污点操作数进行关联。
进一步,节点之间建立关联的方法是:在污点状态记录的结构中增加一个成员指向该污点数据当前对应的污点传播流图节点,当有新的污点数据相关操作指令发生时,新生成一个污点传播流图节点记录该指令,并将其与指令中的所有影响到指令操作结果的污点操作数对应的污点传播流图节点用一条边关联起来,同时更新该指令中污点数据的污点状态记录中的成员指向新生成的节点。
所述步骤4)设定的规则为:
对于操作数本身是污点数据,且是寄存器类型的,无需进行处理;
对于本身不是污点数据而且不会被污点数据污染的操作数,则需要将它的实际值作为立即数替换它在指令序列中的类型;
对于本身不是污点数据,但通过指令执行被污点数据污染的操作数,如果类型是寄存器,无需进行处理;如果是内存寻址地址,则将其替换为图灵机式攻击特征提供的用于污点数据变量存储的数据段的一个地址,如果该操作数的被污染之前的值对污染后的值有影响,需要提取出它的实际值代入污染指令的计算。
与现有技术相比,本发明的优点和积极效果如下:
1.本发明使用硬件模拟技术实现了可回溯的动态污点分析系统,在脆弱程序执行环境外部分析针对脆弱程序的攻击过程,不需要对脆弱程序本身以及所处操作系统做任何修改,有利于攻击行为的发现和攻击流程的提取;
2.本发明使用可回溯的动态污点分析系统对脆弱程序的漏洞利用过程进行指令级的分析,无须获取脆弱程序源代码,并可以充分利用攻击输入以及攻击行为的详细信息,因此生成的攻击特征更为精确。
3.本发明只需要检测到一次攻击行为就可以生成对应的攻击特征,无须采集多个攻击样本和正常数据样本进行比较,攻击特征生成过程自动快速。
附图说明
图1为本发明网络攻击特征生成方法示意图
图2为本发明污点数据传播流图生成示意图
图2a为污点状态记录结构
图2b为污点传播流图
具体实施方式
本发明利用了动态污点分析技术,对分析目标程序不可信来源的输入进行污点标记,然后记录污点数据在整个代码执行流程中的被使用情况,在含有污点数据的操作中根据参数之间的数据依赖关系向相关数据传播污点状态,并根据预先设定的规则监控污点数据是否被不安全的使用,从而检测到攻击行为。
下面结合附图详细说明本发明的具体实施方式:如图1所示,本发明的自动化网络攻击特征生成方法实施过程如下:
1、构造基于硬件模拟器的可回溯动态污点分析系统
本发明通过截获硬件模拟器的虚拟CPU中单步运行的中间指令,实现指令级的动态污点分析。为了提高系统执行效率并提高分析环境的透明性,我们并没有使用模拟CPU的单步标志位进行全系统的单步执行,而是在虚拟CPU执行环境切换到脆弱程序时,改变虚拟执行的翻译环节,使得翻译按每次单条指令的方式进行,从而实现了针对脆弱程序的单步,并降低了分析环境被探知可能引起的风险。对单步执行的每一条中间指令做反汇编处理,实现了对指令类型和操作数的识别,并获取操作数的寄存器或内存地址,根据操作数的当前污点状态以及源操作数和目标操作数之间的数据依赖关系,进行动态污点分析。可回溯动态污点分析系统基本的污点传播方式与一般的动态污点分析系统中的污点传播方式基本一致,但由于我们的最终目标是提取脆弱程序对直接攻击漏洞的污点数据的完整处理流程,因此我们的系统不仅会分析引起污点传播的指令,对INC等不会引起污点传播的污点数据操作指令同样需要记录。另外,处理流程中的条件分支语句是生成的攻击特征中对输入数据进行判断的重要节点,因此与污点数据有关的分支跳转指令同样需要进行分析,本发明采用的方法是根据虚拟CPU的标志寄存器的污点状态进行判断。综上,凡是操作数中有污点数据的操作指令以及与污点数据有关的分支跳转指令,都需要作为污点数据相关操作进行记录。
为实现可回溯的动态污点分析,可回溯动态污点分析系统依赖两个关键的数据结构:污点状态记录结构和污点传播流图TPG(Taint Propagation Graph)。
污点状态记录结构实时反映了每一次指令操作后,程序空间中的污点数据分布情况,是污点传播的依据。污点状态记录结构以单个字节作为最小记录单位,分两部分组成:一部分负责内存空间的污点状态,记录了内存中所有污点数据的地址;另一部分记录寄存器的污点状态,每个寄存器都有对应的污点状态记录,如图2a所示。
污点传播流图TPG(Taint Propagation Graph)是污点数据相关操作的记录结构,如图2b所示。污点源节点是TPG图的起始节点,对应网络输入的数据包读入内存后的缓存区,它没有上级节点。TPG图中的其它节点每一个对应一条污点数据相关操作指令。TPG图中的节点按照对应的污点数据相关操作指令中污点操作数之间的关系进行关联。对于一条指令,如果它的操作数有污点数据,就需要为该指令生成一个节点,识别出该指令的所有影响到操作结果的污点操作数,在污点状态记录结构中查询出它们对应的TGP图中的节点,然后把为当前指令生成的节点和查询出的节点用一条边联系起来,从而实现了把新生成的节点加入TPG图。为此,需要建立污点操作数和TPG图中的节点之间的实时映射关系。我们采用的方法是在污点状态记录结构中增加一个成员指向该污点数据当前对应的TPG图节点,即图2a所示的“TPG节点指针”成员。每当有该污点数据相关操作I得到执行时,将污点数据状态记录中该污点数据的“TPG节点指针”更新到为I生成的TPG图中的节点。按照上述的规则,每当发生一次污点数据相关操作指令,新生成一个污点传播流图节点记录该指令,并将其与指令中的所有影响到操作结果的污点操作数所对应的污点传播流图节点之间用一条边关联起来,同时更新该指令中污点数据的污点状态记录中的“TPG节点指针”指向新生成的节点。根据污点操作指令中操作数的关系,一个节点可能分支到多个节点,多个节点也可能汇聚到一个节点,因此,污点传播形成“图”的结构,如图2b所示。为了支持回溯分析,TPG图中的边都为双向边,区分出节点间上下级关系。另外,为了区分污点操作指令之间的时序关系,TPG图的每个节点都有一个独立的序号,记录指令执行的先后关系。
2、在硬件模拟器的虚拟系统中配置并启动脆弱程序
在硬件模拟器的虚拟主机中安装操作系统,使其配置与脆弱程序真实运行环境一致,并将脆弱程序的参数配置按实际运行相同的方式设置。
通过监控硬件模拟器的虚拟CPU执行,比对EIP和脆弱进程所有导入的API函数地址,本发明实现了在虚拟操作系统外部对关键网络API函数进行拦截,读取脆弱程序中网络输入数据包存储地址,将其初始化为动态污点分析的污点源。
在虚拟操作系统中启动脆弱程序后,当通过截获API发现有脆弱程序的输入数据包进入系统,则将其标记为污点数据,在污点状态记录结构中更新相应位置的状态,并开始动态污点分析,记录脆弱程序执行过程中的污点数据相关操作指令形成污点传播流图。
3、通过检测污点数据的异常使用发现针对未知漏洞的攻击
在可回溯动态污点分析系统中,配置了污点数据异常使用规则,并据此检测污点数据相关操作指令中的异常情况,发现针对脆弱程序的未知漏洞的攻击行为。
污点数据异常使用规则就是,如果有污点数据被用作跳转地址或者代码执行,则认为发生了污点数据的异常使用。为此,当发现JMP、CALL、RET等分支指令执行时需要检测它们的操作数是否是污点数据,以及它们转移后的执行地址内容是否为污点数据。上述的异常使用在正常程序执行中几乎不会发生,而出现在多种漏洞攻击行为中,因此如果检测发现上述异常使用就可以判定发生了针对脆弱程序的网络攻击行为。
当检测到攻击发生,使用回溯分析算法从污点传播流图中的污点数据异常操作指令对应的节点开始,提取出脆弱程序对与漏洞攻击直接相关的污点数据的所有操作指令,从而得到从输入数据包开始的与攻击直接相关的污点数据被脆弱程序操作处理的指令序列。
4、生成图灵机式的攻击特征
执行上述的可回溯动态污点分析检测到对未知漏洞攻击的发生,提取出从污点源开始的与漏洞攻击直接相关的污点数据被脆弱程序操作处理的指令序列,记作TOT(TaintOperation Trace),它提供了图灵机式的攻击特征TMS(Turing Machine Signature)  生成的基础。但是TOT并不等同于TMS,需要从两方面对TOT进行修改和完善,才能生成图灵机式的攻击特征TMS。
1)处理TOT中指令和操作数,适应TMS的执行环境
TOT中的操作指令的操作数的寄存器和内存地址都处在攻击发生时脆弱程序的执行上下文中,由于提取TOT时的进程内存空间和执行上下文与TMS的执行环境有很大的差异,因此需要根据指令的操作数类型和污点状态,分别进行处理,使它们能够移植到TMS的运行环境中顺利执行。
在对TOT中的指令进行处理之前,TMS需要建立一个初始化的环境,为待检查的输入数据包提供一个缓冲区进行存放,并将TOT中读取污点源数据的指令映射到输入TMS的数据包对应缓冲区的地址空间。除此之外,TMS还需要提供一个数据段,用于污点数据相关操作的变量的存储,避免TOT中的寻址地址和TMS的内存地址发生冲突,同时也可以控制TMS运行时的内存占用。然后,按如下的规则对TOT的中的污点数据相关操作指令进行处理:
1.对于操作数本身是污点数据,并且是寄存器类型的,无需进行特别处理,因为污点数据的值将随着TMS对输入数据的处理自动获得;
2.对于本身不是污点数据而且不会被污点数据污染的操作数,则需要将它的实际值作为立即数(立即数信息是在进行分析的时候提取的)替换它在TOT中的类型。这个过程在可回溯动态污点分析系统处理该指令时进行。无论该操作数是一个寄存器还是内存寻址地址,本发明提出的动态污点分析系统都能够获取攻击发生时它的实际值;
3.对于本身不是污点数据,但通过指令执行被污点操作数污染的操作数,如果类型是寄存器,无需进行处理;如果类型是内存寻址地址,则将其替换为TMS提供的专门用于污点数据变量存储的数据段的一个地址,并将后面指令中出现的该地址都使用TMS数据段中的同一地址进行替换。特别地,如果该操作数的被污染之前的值对污染后的值有影响,需要提取出它的实际值参与污染指令的计算。
使用处理规则2是因为TOT中只含有污点数据相关的操作,没有对非污点数据的变量的初始化过程,如果在TMS中直接使用这些非污点数据在攻击发生时的内存地址和寄存器,将会引起系统崩溃或者读入错误的值,因此在本发明中使用这些变量在污点分析时的实际值代入它们在TMS的相关计算。事实上,TOT中的非污点数据表示了脆弱程序执行环境中的其他资源对输入数据包的影响。在TMS中使用它们的实际值,实际上是模拟了攻击发生时的特征生成环境来对输入数据进行检查。虽然可能和应用程序的实际运行环境有一定区别,但如果特征生成环境的部署具有一般性,那么生成的图灵机式的攻击特征所作出的判断就应该被普遍接受:因为丢弃一个可能对典型的相同应用发起攻击的数据包是符合逻辑的。
使用处理规则3是因为TOT中不含有经过污点传播成为污点数据的变量的初始化过程,直接在TMS中使用它们在攻击发生时的内存地址,可能和TMS的内存地址发生冲突。但是与非污点数据不同,污点数据变量最终将在运行过程中得到来源于输入数据包的赋值,因此只需要在TMS的执行环境中为其分配一个合法的存储空间就可以了。特别地,如果该操作数的被污染之前的值对污染后的值有影响,则需要提取出它在污点分析时的实际值参与污染指令的计算。
2)做出最终判断
通过使用上述规则对TOT进行处理,提取得到的指令已经可以编译执行。但是,要成为图灵机式的攻击特征,还必须对输入数据是否为攻击作出明确的判断。如果输入数据能够沿着攻击路径到达漏洞发生点,那么可以判断输入数据会引发攻击,图灵机式攻击特征返回ATTACK,否则可以判断是合法输入,攻击特征应该返回BENIGN。因此,需要对TOT中的条件分支语句的进行处理,添加判断输出语句。在动态污点分析系统处理污点数据相关的条件分支跳转指令时,记录当时对该指令的条件满足情况,据此处理TOT中对应指令,使得与动态污点分析时条件满足情况一致时,沿着攻击路径执行,否则TMS返回BENIGN。在漏洞点之前的最后一个条件分支跳转指令,如果与当时条件满足情况一致,直接返回ATTACK判断,因为之后已经没有条件分支语句,输入数据必然能够到达漏洞,符合数据异常使用的检测规则,从而满足触发漏洞的条件。
5、生成攻击特征的应用
上述步骤生成的图灵机式的攻击特征是以脆弱程序的网络输入数据包为输入的可执行程序,可以输出对输入数据包是否为攻击的判断。因此,本发明生成的攻击特征可以直接部署于脆弱程序的实际应用环境,在脆弱程序之前对输入数据包进行检查,如果发现输入数据包是同类型的攻击,则进行丢弃;否则,将判断为非攻击的数据包提交给脆弱程序继续处理。
本发明提出的基于可回溯动态污点分析的网络攻击特征生成方法,对于本领域的技术人员而言,可以根据需要自己配置各种基于硬件模拟器的虚拟环境,适应不同脆弱程序的需要;同时还可以灵活设置污点分析中的污点数据异常使用规则以及对污点传播流图的指令序列提取方法,生成针对不同类型漏洞攻击的图灵机式的攻击特征。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (8)

1.一种自动化的网络攻击特征生成方法,其步骤如下:
1)在虚拟主机中安装虚拟操作系统,布署脆弱程序,配置出与脆弱程序的真实应用一致的运行环境,并配置污点数据操作规则;
2)启动脆弱程序,将脆弱程序的所有网络输入标记为污点数据进行监控,跟踪记录污点数据的状态,记录污点数据相关操作指令形成污点传播流图;
3)根据污点数据操作规则检测到有污点数据异常操作时,从污点传播流图中获得从输入数据开始的污点数据被脆弱程序操作处理的指令序列;
4)对步骤3)获得的指令序列按照设定规则处理成可编译执行指令,并添加判断输出语句,生成图灵机式的攻击特征;
所述步骤4)设定的规则为:
对于操作数本身是污点数据,且是寄存器类型的,无需进行处理;
对本身不是污点数据而且不会被污点数据污染的操作数,则需要将它的实际值作为立即数替换它在指令序列中的寻址类型,所述寻址类型是寄存器寻址或内存寻址地址;
对于本身不是污点数据,但通过指令执行被污点操作数污染的操作数,如果类型是寄存器,无需进行处理;如果类型是内存寻址地址,则将内存地址替换为图灵机式攻击特征用于污点数据变量存储的数据段的一个地址,如果该操作数的被污染之前的值对污染后的值有影响,需要提取出它的实际值代入污染指令的计算;
所述生成图灵机式攻击特征方法为a)处理TOT中指令和操作数,根据指令的操作数类型和污点状态,分别进行处理,用以使它们能够移植到TMS的运行环境中执行;b)在对TOT中的指令进行处理之前,TMS建立一个初始化的环境,为待检查的输入数据包提供一个缓冲区进行存放,并将TOT中读取污点源数据的指令映射到输入TMS的数据包对应缓冲区的地址空间;c)TMS还提供一数据段,用于污点数据相关操作的变量的存储和控制TMS运行时的内存占用;d)对TOT中的污点数据相关操作指令按照所述设定规则进行处理,提取得到可编译执行指令;e)对提取得到的可编译执行指令编译执行,生成图灵机式攻击特征;所述生成图灵机式的攻击特征,还包括对TOT中的条件分支语句的进行处理,添加判断输出语句:如果输入数据能够沿着攻击路径到达漏洞发生点,则判断输入数据会引发攻击,图灵机式攻击特征返回ATTACK,否则判断为合法输入,攻击特征返回BENIGN。
2.如权利要求1所述的方法,其特征在于,所述污点数据操作规则为污点数据被用作跳转地址或者代码执行,则认为污点数据异常操作。
3.如权利要求1所述的方法,其特征在于,采用硬件模拟器模拟出虚拟主机,通过截获虚拟CPU中单步运行的中间指令,实现指令级的动态污点分析。
4.如权利要求3所述的方法,其特征在于,通过使虚拟执行的翻译环节按每次单条指令的方式进行,实现针对脆弱程序的单步执行。
5.如权利要求1所述的方法,其特征在于,所述步骤2)通过监控虚拟CPU截获的API函数地址,发现脆弱程序的输入数据,将脆弱程序的输入数据标记为污点数据。
6.如权利要求1所述的方法,其特征在于,所述步骤3)使用回溯分析算法从污点传播流图中获得从输入数据包开始的污点数据被脆弱程序操作处理的指令序列。
7.如权利要求1所述的方法,其特征在于,所述污点传播流图包括源节点和其他节点,所述源节点对应输入数据读入内存后的缓存区,所述其他节点每一个对应一条污点数据相关操作指令,所述其他节点之间按照污点数据相关操作指令中的污点操作数进行关联,所述建立关联的方法是:在每个污点数据对应的污点状态记录结构中增加一个成员指向污点数据当前对应的污点传播流图节点,当有新的污点数据相关操作指令发生时,新生成一个污点传播流图节点记录该指令,并将所述新生成污点传播流图节点与指令中的所有影响到指令操作结果的污点操作数对应的污点传播流图节点用一条边关联起来,同时更新该指令中污点数据的污点状态记录中的成员指向新生成的节点。
8.如权利要求1所述的方法,其特征在于,所述步骤4)中添加判断输出语句的方法是:在步骤3)提取的指令序列中的条件分支语句处加入对输入数据是否为攻击的判断,如果输入数据能够沿着攻击路径到达漏洞发生点,判断输入数据会引发攻击,否则判断是合法输入。
CN2009100901789A 2009-07-31 2009-07-31 一种自动化的网络攻击特征生成方法 Active CN101616151B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100901789A CN101616151B (zh) 2009-07-31 2009-07-31 一种自动化的网络攻击特征生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100901789A CN101616151B (zh) 2009-07-31 2009-07-31 一种自动化的网络攻击特征生成方法

Publications (2)

Publication Number Publication Date
CN101616151A CN101616151A (zh) 2009-12-30
CN101616151B true CN101616151B (zh) 2012-11-07

Family

ID=41495557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100901789A Active CN101616151B (zh) 2009-07-31 2009-07-31 一种自动化的网络攻击特征生成方法

Country Status (1)

Country Link
CN (1) CN101616151B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622536B (zh) * 2011-01-26 2014-09-03 中国科学院软件研究所 一种恶意代码捕获方法
EP2891100B1 (en) * 2012-08-29 2017-05-24 Hewlett-Packard Enterprise Development LP Security scan based on dynamic taint
CN103198260B (zh) * 2013-03-28 2016-06-08 中国科学院信息工程研究所 一种二进制程序漏洞自动化定位方法
CN104008329B (zh) * 2014-05-22 2017-02-15 中国科学院信息工程研究所 一种基于虚拟化技术的软件隐私泄露行为检测方法及系统
CN105204985A (zh) * 2014-06-23 2015-12-30 腾讯科技(深圳)有限公司 漏洞检测方法及装置
CN104809225B (zh) * 2015-05-06 2018-11-20 泰康保险集团股份有限公司 链式信息传播追踪管理系统及方法
CN105791261B (zh) * 2015-12-28 2019-06-21 华为技术有限公司 一种跨站脚本攻击的检测方法和检测设备
CN107291617B (zh) * 2016-12-26 2020-08-11 中国科学院软件研究所 一种基于隐式污点传播的漏洞分析方法
CN109214190B (zh) * 2018-08-30 2022-05-20 腾讯科技(深圳)有限公司 确定漏洞利用样本文件的方法和设备
CN110278269B (zh) * 2019-06-21 2022-03-15 广州小鹏汽车科技有限公司 一种用户行为记录方法和装置
CN110661804B (zh) * 2019-09-29 2021-12-31 南京邮电大学 一种针对防火墙的污点分析漏洞检测方法
CN111027096B (zh) * 2019-12-11 2022-03-11 杭州蚂蚁聚慧网络技术有限公司 用于检测针对私有数据的泄漏通道的方法及装置
CN111552958B (zh) * 2020-06-18 2024-01-19 南方电网科学研究院有限责任公司 一种程序运行特征提取方法和装置
CN112804232B (zh) * 2021-01-13 2021-10-26 中国电子科技集团公司第十五研究所 一种基于喷泉码网络信标的追踪溯源方法与装置
CN112748987B (zh) * 2021-01-19 2021-08-06 北京智仁智信安全技术有限公司 一种基于虚拟主机的行为安全处理方法及设备
CN114185324B (zh) * 2021-10-25 2024-04-02 华能澜沧江水电股份有限公司 自动发电控制程序的异常点检测方法、装置及计算机设备
CN115277062A (zh) * 2022-06-13 2022-11-01 深圳开源互联网安全技术有限公司 一种恶意攻击拦截方法、装置、设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159732A (zh) * 2007-08-14 2008-04-09 电子科技大学 基于数据流分析的恶意攻击检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159732A (zh) * 2007-08-14 2008-04-09 电子科技大学 基于数据流分析的恶意攻击检测方法

Also Published As

Publication number Publication date
CN101616151A (zh) 2009-12-30

Similar Documents

Publication Publication Date Title
CN101616151B (zh) 一种自动化的网络攻击特征生成方法
Wang et al. {CacheD}: Identifying {Cache-Based} timing channels in production software
US10558805B2 (en) Method for detecting malware within a linux platform
CN110443045B (zh) 一种基于机器学习方法的模糊测试用例生成方法
CN104834859B (zh) 一种Android应用中恶意行为的动态检测方法
Meng et al. Identifying multiple authors in a binary program
CN104636256A (zh) 一种内存访问异常的检测方法及装置
CN101853200B (zh) 一种高效动态软件漏洞挖掘方法
CN101159732A (zh) 基于数据流分析的恶意攻击检测方法
CN112749389B (zh) 一种检测智能合约破坏敏感数据漏洞的检测方法及装置
CN109308415A (zh) 一种面向二进制的导向性模糊测试方法与系统
CN110909358A (zh) 一种基于动静态分析的整形漏洞检测方法
CN113497809B (zh) 基于控制流和数据流分析的mips架构漏洞挖掘方法
Zubair et al. PEM: Remote forensic acquisition of PLC memory in industrial control systems
CN114996126B (zh) 一种针对eosio智能合约的漏洞检测方法及系统
CN107315961A (zh) 程序漏洞检测方法及装置、计算设备、存储介质
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
CN104732152A (zh) 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
CN104573503A (zh) 一种内存访问溢出的检测方法及装置
CN112711760B (zh) 检测智能合约恶意消除重入影响漏洞的检测方法和装置
CN116383833A (zh) 软件程序代码的测试方法及其装置、电子设备、存储介质
Mirsky et al. {VulChecker}: Graph-based Vulnerability Localization in Source Code
CN117034299B (zh) 一种基于区块链的智能合约安全检测系统
CN113971135A (zh) 一种覆盖引导的智能合约测试用例生成方法
CN111400718B (zh) 一种系统漏洞与攻击的检测方法、装置及其相关设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant