CN102081719B - 基于动态污染传播的软件安全测试系统及方法 - Google Patents

基于动态污染传播的软件安全测试系统及方法 Download PDF

Info

Publication number
CN102081719B
CN102081719B CN200910252813.9A CN200910252813A CN102081719B CN 102081719 B CN102081719 B CN 102081719B CN 200910252813 A CN200910252813 A CN 200910252813A CN 102081719 B CN102081719 B CN 102081719B
Authority
CN
China
Prior art keywords
software
rule
testing
data
detected rule
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
CN200910252813.9A
Other languages
English (en)
Other versions
CN102081719A (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.)
Alibaba Huabei Technology Co ltd
Original Assignee
Nanjing Vulnhunt Inc
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 Nanjing Vulnhunt Inc filed Critical Nanjing Vulnhunt Inc
Priority to CN200910252813.9A priority Critical patent/CN102081719B/zh
Publication of CN102081719A publication Critical patent/CN102081719A/zh
Application granted granted Critical
Publication of CN102081719B publication Critical patent/CN102081719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于动态污染传播的软件安全测试系统及方法。所述系统包括:标记污染源模块(108),用于生成标记污染源规则;检查器模块(110),用于生成检测规则;自修改代码模块(104),用于利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令;RING3虚拟机模块(106),用于利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令;以及日志模块(112),用于输出有关违反检测规则的信息。本发明能够提高软件的检测率,减小误报率和漏报率。

Description

基于动态污染传播的软件安全测试系统及方法
技术领域
本发明涉及软件安全测试,尤其涉及基于动态污染传播(DynamicTaint Propagation)的软件安全测试系统及方法。
背景技术
软件安全测试是保证软件安全性、降低软件安全风险的重要手段。软件安全保证的主要目的是防止黑客或者恶意的内部人员对软件进行攻击,并保证软件在受到恶意攻击的情况下仍然能够正常运行。由于攻击者主要是通过对软件输入恶意的数据来进行攻击,因此软件的安全问题主要来源于外部的输入数据。
目前通过对外部输入数据进行安全测试来实现软件安全测试的技术主要包括静态的源代码安全测试技术和动态的渗透测试技术。静态的源代码安全测试技术主要是通过对软件的源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。这种技术可以在编码阶段找出所有可能存在安全风险的代码,从而软件开发人员可以在早期解决潜在的安全问题。然而,也正因为如此,这种技术只适用于早期的代码开发阶段,而不适用于测试阶段。
动态的渗透测试技术通过使用自动化工具或者人工的方法模拟黑客的输入,对软件进行攻击性测试,从中找出运行时刻所存在的安全漏洞。这种技术的优点是测试真实有效,并且一般找出的问题正确且较为严重。但是这种技术存在的缺点在于,由于模拟的测试数据只能到达有限的测试点,所以覆盖率很低,漏报率比较高。
鉴于上述两种技术的缺点,近来业界提出了动态污染传播的方法。动态污染传播的方法主要通过跟踪外部输入的数据在软件中的传播过程和最终执行的情况来分析是否存在安全漏洞以及存在什么类别的漏洞。这种方法不需要任何特殊的攻击性的测试数据。它假定由外部输入的数据都是不可信的、污染的数据,为数据打上污染的标记。在程序中传播的过程中,如果被标记的数据经过了严格的安全验证,则认为其不再是污染的,去掉污染标记,否则污染标记在整个传播过程中都会被继承下来。一旦有污染标记的数据被送到执行代码中执行时,就判断这里可能存在一个安全漏洞。
最近,全球最大的软件安全厂商美国富迪软件有限公司开发出一种基于动态污染传播的安全测试产品Fortify Tracer。Fortify Tracer利用动态污染传播方法的特点,首先进行插桩前的准备,对软件的二进制代码进行静态地分析,找出所有的Source代码(Source是污染数据的来源,Source代码则是所有外部数据进入程序的入口的代码)、Sink代码(Sink是漏洞的引爆点,Sink代码则是所有可能引发安全漏洞的代码),建立检测机制。然后再对程序进行插桩(即对找出的Source代码和Sink代码进行钩子(Hook)操作),进行常规的功能测试。Fortify Tracer会根据功能测试自动地找出软件中所有可能因外部输入数据而造成的安全问题,并根据漏洞类别清晰地报告出来。
Fortify Tracer的优点在于无需特殊的攻击性测试数据,能够真实有效地找出系统中最严重、最关键的安全问题,并且因与功能测试相结合而提高了测试覆盖率。然而,由于Fortify Tracer仅对软件二进制代码进行有限数目插桩点的分析,因此不能实现对软件所有二进制代码全面的实时动态跟踪。具体而言,Fortify Tracer主要存在以下缺点:
1、Fortify Tracer在检查前需要对软件的二进制代码进行静态分析,从而找出Source代码和Sink代码,这是一个额外的工作量,而且误报率和漏报率严重依赖于其找出Source代码和Sink代码的算法;
2、由于Fortify Tracer仅对软件二进制代码进行有限数目插桩点的分析,而一个污点的传播和终止可能会在一个非插桩点,因此动态污点传播会不完整,从而导致误报率和漏报率的增加;
3、Fortify Tracer不能对需要指令跟踪框架支持的安全漏洞进行检测,例如堆缓冲区溢出(Heap Buffer Overflow)、栈缓冲区溢出(StackBuffer Overflow)、格式化串溢出(Format String Overflow)、整型溢出(Integer Overflow)、除0拒绝服务(Div Zero)等等。
发明内容
本发明所要解决的技术问题是提供一种能够实现对软件的所有二进制指令进行实时动态跟踪的基于动态污染传播的软件安全测试系统及方法。
为此,根据本发明的第一方面,提供一种基于动态污染传播的软件安全测试系统。所述系统包括:标记污染源模块,用于生成标记污染源规则;检查器模块,用于生成检测规则;自修改代码模块,用于利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令;RING3虚拟机模块,用于利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令;以及日志模块,用于输出有关违反所述检测规则的信息。
根据本发明的第二方面,提供一种基于动态污染传播的软件安全测试方法。所述软件安全测试方法包括下列步骤:生成标记污染源规则;生成检测规则;利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令;利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令;以及输出有关违反所述检测规则的信息。
附图说明
通过结合附图来阅读后面的具体实施方式,可以更好地理解本发明的特征和优点,其中在附图中用相同的附图标记表示相同或相似的元件。在附图中:
图1是示出根据本发明一个实施例的基于动态污染传播的软件安全测试系统的框图;
图2是示出根据本发明一个实施例的基于动态污染传播的软件安全测试方法的流程图。
图3示出所测试软件和软件安全测试系统的关系;以及
图4示出根据本发明的实施例对外部污染源的标记。
具体实施方式
下面将结合附图详细说明本发明的各个实施例。
参考图1,其中示出根据本发明一个实施例的基于动态污染传播的软件安全测试系统100的框图。请注意,在整个说明书和权利要求书中,“应用程序”和“软件”表示相同的含义,并且能够互换地进行使用。在本发明的实施例中,所述软件安全测试系统100运行在Windows操作系统中。然而,作为一种通用的软件安全测试系统,所述软件安全测试系统100能够运行在任何操作系统中。
所述软件安全测试系统100包括自修改代码模块104、RING3虚拟机模块106、标记污染源模块108、检查器模块110、日志模块112,其中自修改代码模块104和RING3虚拟机模块106一起构成指令跟踪框架102以便实现对所测试软件的每一条指令进行实时动态跟踪和分析。
标记污染源模块108生成标记污染源规则。检查器模块110生成检测规则。自修改代码模块104利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令。RING3虚拟机模块106利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令。日志模块112输出有关违反所述检测规则的信息
图2示出根据本发明一个实施例的基于动态污染传播的软件安全测试方法200的流程图。下面结合图1的软件安全测试系统100来详细说明图2的软件安全测试方法200的流程图。
在步骤202中,标记污染源模块108生成标记污染源规则。在本发明的实施例中,标记污染源模块108把所测试软件的一切外部输入数据都看作是污染源,包括但不限于:从网络套接字读数据,从文件读数据,从环境变量读数据,等等。通常,标记污染源模块108通过对外部的污染数据进行建模来生成标记污染源规则。例如,标记污染源模块108通过函数recv(SOCKET s,char*buf,int len,int flags)来生成下述标记污染源规则:把开始地址为buf、长度为len的数据标记为污染数据。
在步骤204中,检查器模块110生成检测规则。通过所述检测规则能够检测所测试软件当前执行的二进制指令是否存在安全风险。检查器模块110生成的检测规则主要分为两种,一种是函数级别的检测规则,一种是指令级别的检测规则。下面给出检测规则的一些例子。
1)内存分配检测规则(函数级别)
内存分配函数包括但不限于:Malloc、RtAllocateHeap、HeapAlloc、Calloc、VirtualAlloc、LocalAlloc。在这个检测规则中,如果这些内存分配函数的要分配大小的参数为污染的,则就说明存在安全风险,需要报警,以便提醒审计人员进行进一步确认。
下面给出用伪代码表示的例子:
Len=get_int_from_net();
Len+=1;
Char*buf=malloc(Len);
在上面的例子中,长度大小Len是从网络污染源中获得的,因此Len被标记为污染的。在执行Len+=1时,Len仍然为污染的。在调用内存分配函数Malloc时,把污染的长度大小Len作为参数传入该函数,因此在这种情况下就存在安全风险,从而需要报警。
2)格式化串溢出检测规则(函数级别)
有格式化串溢出问题的函数包括但不限于:printf、fprintf、sprintf、snprintf。在这个检测规则中,如果这些函数的格式化串为污染的,就表明潜在的格式化串安全有问题,因此需要报警,提醒审计人员进行进一步确认。
下面给出用伪代码表示的例子:
printf(get_buf_from_net());
在上面的例子中,该伪代码首先从网络中得到一个数据,该数据被标记为污染的。然后该伪代码又把该数据直接作为格式化串传入printf函数,因此在这种情况下就存在安全风险,从而需要报警
下面给出用伪代码表示的另一例子:
printf(“%s%n”)
上述伪代码确实表示一个有问题的格式化串,但是由于参数不为污染的,所以不会构成可利用的安全漏洞,因此在检测规则中会忽略这种情况。
3)rep movs检测规则(指令级别)
memcpy函数有时会被编译器优化成内联的汇编代码。例如:
memcpy(dst,src,len)
.text:73ACBB9A      mov    ecx,eax;ecx is len
.text:73ACBB9C      mov    esi,[ebp+arg_src]
.text:73ACBB9E      mov    edi,[ebp+arg_dst]
.text:73ACBBA1      shr    ecx,2
.text:73ACBBA4      rep    movsd
在这个检测规则中,当碰到rep movs指令时,需要检查ecx寄存器。如果ecx寄存器的状态为污染的,即表示拷贝数据的长度是攻击者可以控制的,则说明存在安全风险,需要报警,以便提醒审计人员进行进一步确认。
下面给出用伪代码表示的例子:
memcpy(dst,src,get_int_from_net());
在上面的例子中,该伪代码从网络中得到一个整型数据,该整型数据被标记为污染的,并传入ecx作为长度进行拷贝。如果在检测repmovsd时发现ecx是感染的,则说明存在安全风险,需要报警。
4)有符号整型扩展检测规则(指令级别)
有符号整型的符号扩展问题会导致其他安全问题,例如数组越界、整型溢出等等。在这个检测规则中,如果检查到一个感染的char类型向有符号的比它位宽的整型(例如int)转化时,则就说明存在安全风险,需要报警,以便提醒审计人员进行进一步确认。
下面给出用伪代码表示的例子:
Int a;
char*buf=Get_buf_from_net();
a=buf[0];//符号扩展
在上面的例子中,该伪代码从网络得到数据把地址赋值给buf(char*类型),buf数据为污染的,buf[0]也为污染的,感染的char类型向有符号的int转化,因此就说明存在安全风险,需要报警。另外,从汇编代码来看为如下汇编代码:
movsx ecx,byte ptr ss:[esp+0x4]
5)除0检测规则(指令级别)
在这个检测规则中,在检测idiv/div指令时判断除数是否为污染的。如果是的话,则说明存在安全风险,需要报警,提醒审计人员进行进一步确认。
下面给出用伪代码表示的例子:
Int a;
a/=get_int_from_net();
在上面的例子中,该伪代码为a除以一个从网络中获得的整数。如果该除数为污染的,则说明存在安全风险,需要报警。另外,从汇编代码来看为如下汇编代码:
Idiv/div eax,ecx
6)整型上溢检测规则(指令级别)
整型上溢也可导致安全问题。在这个检测规则中检测乘法指令的操作数1和操作数2。如果任一操作数为污染的,则就说明存在安全风险,需要报警,以便提醒审计人员进行进一步确认。
下面给出用伪代码表示的例子:
Int a;
a*=get_int_from_net();
在上面的例子中,该伪代码为a乘以一个从网络中获得的整数,在这种情况下就说明存在安全风险,需要报警。另外,从汇编代码来看为如下汇编代码:
Imul/mul    edi,[ebp+arg_8]
注意,乘法有时也用lea指令:
lea ecx,dword ptr ds:[eax*8]
此外,检查器模块110还提供用户自定义的函数级别的检测规则接口。例如对于memcpy(void*dst,void*src,unsigned int len),用户可定义如下规则进行检测:如果memcpy函数的第三个参数为污染的,则就说明存在安全风险,需要报警。其他用户需要检测的函数可自行添加。
继续参考图2,在步骤206中,自修改代码模块104利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令。自修改代码技术通过自我修改代码来使应用程序在运行时自我修改,该技术在本发明的实施例中具体实现如下:
假设当前执行的指令地址为X,则用“jmp our_handler”指令重写下一条指令。在our_handler函数中执行如下操作:
1)切换到一个临时的堆栈,使用pusha+pushf保存寄存器信息;
2)恢复被覆盖的指令;
3)其他要执行的代码;
4)计算当前指令的下一条指令的地址,假设这个地址为Y;
5)使用“jmp our_handler”重写地址Y的指令,恢复保存的寄存器信息,返回到下一条指令执行。
在步骤208中,RING3虚拟机模块106利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令。
在本发明的实施例中,RING3虚拟机模块106是一种RING3虚拟机,用来模拟中央处理单元(CPU)、浮点运算单元(FPU)。一般的虚拟机需要模拟全部的硬件设备,包括CPU、FPU、存储器、硬盘、基本输入/输出系统(BIOS)、可编程中断控制器(PIC)、直接存储器存取(DMA)、光盘、网络、高级配置与电源接口(ACPI)等等。而且,一般的虚拟机需要先把操作系统跑起来,应用程序是跑在虚拟机模拟出来的操作系统里。此类虚拟机软件有VMWARE、Virtual PC。
本发明的实施例中的上述软件安全测试系统100和所测试软件跑在同一进程空间。因此,作为上述软件安全测试系统的组成部分的RING3虚拟机模块106也和所测试软件在同一进程空间。因此,RING3虚拟机模块106可以利用所测试软件本身的一些资源,尽可能少地模拟硬件设备。从这个角度来讲,该RING3虚拟机模块106只需要模拟出CPU、FPU就行了。图3示出所测试软件和软件安全测试系统100的关系,其中软件安全测试系统100是在所测试软件中,二者都在应用层,即RING3层。
在自修改代码模块104每完成所测试软件的一条二进制指令动态跟踪过程之后,RING3虚拟机模块106接着就进行指令的解析。假如当前执行的指令是:89 47 3C,则RING3虚拟机模块106将该指令识别为:mov[edi+3Ch],eax。于是可以得出的结论是将eax的值放到[edi+3Ch]中去。这样就进行了一次指令解析。RING3虚拟机模块106解析完指令后要分析指令所携带数据的流动方向。假如此时的edi为0x800000,eax为0x41414141,那么就知道要把0x80003C这个地址的内容设置为0x41414141。假设eax为污染的,则将0x80003C的内存地址标记为污染,从而实现了一次污点数据的传播。然后RING3虚拟机模块106调用标记污染源模块108所生成的标记污染源规则进行污染源的标记。例如,针对前述的recv函数,RING3虚拟机模块106在碰到调用该recv函数的指令时会调用该recv函数所生成的标记污染源规则,从而完成一次污染源的标记。图4示意性地示出根据本发明的实施例对外部污染源的标记。同时,RING3虚拟机模块106还调用检查器模块110所生成的检测规则来检测每一条指令是否违反检测规则。通常调用指令级别的检测规则检测每一条指令。当碰到函数调用的指令时,则调用函数级别的检测规则。
在步骤210中,在检测规则被违反时日志模块112输出有关违反所述检测规则的信息,例如产生日志,记录日志,生成报告,进行报警,以供测试人员进一步分析。
本发明在指令跟踪框架的支持下,能够全面地跟踪污染传播过程,大大提高污染传播的准确性,从而提高软件的检测率,减小误报率和漏报率。而且,在指令跟踪框架的支持下,本发明还能大大提高软件检测漏洞类型,例如能够检测指令级别漏洞和函数级别漏洞。本发明的技术方案当前至少支持检测以下安全漏洞:堆缓冲区溢出、栈缓冲区溢出、格式化串溢出、整型溢出、除0拒绝服务、命令注入(Command Injection)、SQL注入(SQL Injection)、路径操纵(Path Manipulation)等等。当然,本发明的技术方案不限于支持检测上述安全漏洞,因为可以通过建模,再建立检测规则来检测其他安全漏洞。
以上参考附图示出并描述了本发明的实施例,但是本发明不限于此。显然,本领域的技术人员可以对本发明进行各种修改、变型和替换而不脱离本发明的精神范围。因此,只要本发明的这些修改、变型和替换属于本发明的权利要求书及其等同技术方案的范围之内,则本发明也意图包含这些修改、变型和替换。

Claims (8)

1.一种基于动态污染传播的软件安全测试系统,其特征在于包括:
标记污染源模块(108),用于生成标记污染源规则;
检查器模块(110),用于生成检测规则;
自修改代码模块(104),用于利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令;
RING3虚拟机模块(106),用于在每完成所测试软件的一条二进制指令动态跟踪过程之后接着就利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令;以及
日志模块(112),用于输出有关违反所述检测规则的信息。
2.根据权利要求1所述的软件安全测试系统,其特征在于:所述检测规则是指令级别的。
3.根据权利要求1所述的软件安全测试系统,其特征在于:所述检测规则是函数级别的。
4.根据权利要求1所述的软件安全测试系统,其特征在于:所述污染源是所测试软件的外部输入数据,所述外部输入数据包括来自网络套接字的数据、来自文件的数据、来自环境变量的数据。
5.一种基于动态污染传播的软件安全测试方法,其特征在于包括以下步骤:
生成标记污染源规则(202);
生成检测规则(204);
利用自修改代码技术来动态跟踪所测试软件的每一条二进制指令(206);
在每完成所测试软件的一条二进制指令动态跟踪过程之后接着就利用RING3虚拟机来解析所测试软件的每一条二进制指令,分析指令所携带数据的流动方向,实现污点传播,调用所述标记污染源规则来标记污染源,调用所述检测规则来检测所测试软件的每一条二进制指令(208);以及
输出有关违反所述检测规则的信息(210)。
6.根据权利要求5所述的软件安全测试方法,其特征在于:所述检测规则是指令级别的。
7.根据权利要求5所述的软件安全测试方法,其特征在于:所述检测规则是函数级别的。
8.根据权利要求5所述的软件安全测试方法,其特征在于:所述污染源是所测试软件的外部输入数据,所述外部输入数据包括来自网络套接字的数据、来自文件的数据、来自环境变量的数据。
CN200910252813.9A 2009-12-01 2009-12-01 基于动态污染传播的软件安全测试系统及方法 Active CN102081719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910252813.9A CN102081719B (zh) 2009-12-01 2009-12-01 基于动态污染传播的软件安全测试系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910252813.9A CN102081719B (zh) 2009-12-01 2009-12-01 基于动态污染传播的软件安全测试系统及方法

Publications (2)

Publication Number Publication Date
CN102081719A CN102081719A (zh) 2011-06-01
CN102081719B true CN102081719B (zh) 2015-05-20

Family

ID=44087677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910252813.9A Active CN102081719B (zh) 2009-12-01 2009-12-01 基于动态污染传播的软件安全测试系统及方法

Country Status (1)

Country Link
CN (1) CN102081719B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651062B (zh) * 2012-04-09 2014-06-18 华中科技大学 基于虚拟机架构的恶意行为跟踪系统和方法
BR112015004035A2 (pt) 2012-08-29 2017-07-04 Hewlett Packard Development Co sistema de computação, meio de armazenagem não transitório lido por máquina armazenando instruções e método
US20140130153A1 (en) * 2012-11-08 2014-05-08 International Business Machines Corporation Sound and effective data-flow analysis in the presence of aliasing
CN103440201B (zh) * 2013-09-05 2016-05-18 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN103714288B (zh) * 2013-12-26 2016-05-25 华中科技大学 一种数据流跟踪方法
CN104750602B (zh) * 2013-12-27 2018-04-27 阿里巴巴集团控股有限公司 一种动态污点数据分析方法及装置
CN103729295A (zh) * 2013-12-31 2014-04-16 北京理工大学 一种污点传播路径分析方法
US10803165B2 (en) * 2015-06-27 2020-10-13 Mcafee, Llc Detection of shellcode
CN111651773B (zh) * 2020-08-05 2020-11-06 成都无糖信息技术有限公司 一种二进制安全漏洞自动化挖掘方法
CN113420298A (zh) * 2021-05-26 2021-09-21 杭州孝道科技有限公司 一种基于PHP扩展的PHP Web应用程序漏洞检测方法及其存储介质
CN116451228B (zh) * 2023-04-23 2023-10-17 北京安普诺信息技术有限公司 动态污点追踪方法、装置及相关在线污点传播分析系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510241A (zh) * 2009-03-12 2009-08-19 南京大学 整形溢出漏洞的二进制检测定位装置
CN101515320A (zh) * 2009-04-10 2009-08-26 中国科学院软件研究所 一种攻击时漏洞检测方法及其系统
CN101539976A (zh) * 2009-04-23 2009-09-23 南京大学 二进制程序内存腐烂攻击的实时检测系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7752459B2 (en) * 2001-12-06 2010-07-06 Novell, Inc. Pointguard: method and system for protecting programs against pointer corruption attacks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510241A (zh) * 2009-03-12 2009-08-19 南京大学 整形溢出漏洞的二进制检测定位装置
CN101515320A (zh) * 2009-04-10 2009-08-26 中国科学院软件研究所 一种攻击时漏洞检测方法及其系统
CN101539976A (zh) * 2009-04-23 2009-09-23 南京大学 二进制程序内存腐烂攻击的实时检测系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王宏 等.软件安全测试新武器--浅谈基于Dynamic Taint Propagation的测试技术.《程序员》.2008, *

Also Published As

Publication number Publication date
CN102081719A (zh) 2011-06-01

Similar Documents

Publication Publication Date Title
CN102081719B (zh) 基于动态污染传播的软件安全测试系统及方法
CN109002721B (zh) 一种信息安全漏洞的挖掘分析方法
Godefroid et al. SAGE: Whitebox Fuzzing for Security Testing: SAGE has had a remarkable impact at Microsoft.
Ming et al. {TaintPipe}: Pipelined symbolic taint analysis
Reid Trustworthy specifications of ARM® v8-A and v8-M system level architecture
Seward et al. Using Valgrind to Detect Undefined Value Errors with Bit-Precision.
CN101853200B (zh) 一种高效动态软件漏洞挖掘方法
Subramanyan et al. Verifying information flow properties of firmware using symbolic execution
Lee et al. Design and implementation of the secure compiler and virtual machine for developing secure IoT services
CN102402479B (zh) 用于静态分析的中间表示结构
CN109711159B (zh) 一种基于信息流的ip核rtl级代码安全漏洞检测方法
Arzt et al. The soot-based toolchain for analyzing android apps
Vanegue et al. Towards practical reactive security audit using extended static checkers
Cai et al. SwordDTA: A dynamic taint analysis tool for software vulnerability detection
Schneider et al. Bridging the semantic gap through static code analysis
Cloosters et al. {SGXFuzz}: Efficiently synthesizing nested structures for {SGX} enclave fuzzing
CN111859380A (zh) Android App漏洞的零误报检测方法
Cheng et al. Logextractor: Extracting digital evidence from android log messages via string and taint analysis
Chen et al. Brick: A binary tool for run-time detecting and locating integer-based vulnerability
Hu et al. Automatically patching vulnerabilities of binary programs via code transfer from correct versions
CN107368713B (zh) 保护软件的方法和安全组件
Shahriar et al. Buffer overflow patching for C and C++ programs: rule-based approach
US8510713B1 (en) Method and system for validating a disassembler
CN115795489B (zh) 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置
Ren et al. A dynamic taint analysis framework based on entity equipment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: NANJING VULNHUNT INFORMATION TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: WANG WEI

Effective date: 20140812

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 210015 NANJING, JIANGSU PROVINCE TO: 210000 NANJING, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20140812

Address after: Building No. 20 Yuhuatai Avenue flora read City District of Nanjing City, Jiangsu province 210000 floor

Applicant after: NANJING VULNHUNT Inc.

Address before: Siping Road Nanjing city Jiangsu province 210015 Jianning Road No. three unit 301 room

Applicant before: Wang Wei

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ALIBABA GROUP HOLDING LTD.

Free format text: FORMER OWNER: NANJING VULNHUNT INFORMATION TECHNOLOGY CO., LTD.

Effective date: 20150710

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150710

Address after: 310012 G building, 10 floor, A building, Paradise Software Park, 3 West Road, Hangzhou, Xihu District, Zhejiang

Patentee after: Alibaba (China) Co.,Ltd.

Address before: Building No. 20 Yuhuatai Avenue flora read City District of Nanjing City, Jiangsu province 210000 floor

Patentee before: NANJING VULNHUNT Inc.

TR01 Transfer of patent right

Effective date of registration: 20221111

Address after: Room 101, Warehouse 1, No. 88, Jingbin Avenue, Jingbin Industrial Park, Wuqing District, Tianjin 301739

Patentee after: Alibaba Huabei Technology Co.,Ltd.

Address before: 310012 G Block, 10th Building, Building A, Paradise Software Park, No. 3 Xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province

Patentee before: Alibaba (China) Co.,Ltd.

TR01 Transfer of patent right