CN103914653B - 用于检查软件的方法及系统 - Google Patents
用于检查软件的方法及系统 Download PDFInfo
- Publication number
- CN103914653B CN103914653B CN201310349696.4A CN201310349696A CN103914653B CN 103914653 B CN103914653 B CN 103914653B CN 201310349696 A CN201310349696 A CN 201310349696A CN 103914653 B CN103914653 B CN 103914653B
- Authority
- CN
- China
- Prior art keywords
- processing
- action
- information
- defect
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 62
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 claims abstract description 42
- 230000007547 defect Effects 0.000 claims abstract description 37
- 229910052742 iron Inorganic materials 0.000 claims abstract description 21
- 230000004913 activation Effects 0.000 claims abstract description 4
- 230000009471 action Effects 0.000 claims description 50
- 230000007123 defense Effects 0.000 claims description 38
- 238000012790 confirmation Methods 0.000 claims description 10
- 230000003252 repetitive effect Effects 0.000 claims description 5
- 230000007717 exclusion Effects 0.000 claims description 4
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 239000000446 fuel Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000009295 sperm incapacitation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- 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/54—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 adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种用于检查软件的方法和系统。该系统包括:钩锚模块,收集对应于在启动系统时在内核上执行的每个处理的处理控制模块信息。此外,该系统包括:安全服务模块,基于收集的处理控制块信息通过将安全服务模块插入到处理的内存区域中来搜索并且防御处理的缺陷。
Description
相关申请的交叉引用
本申请基于并且要求于2012年12月31日提交至韩国知识产权局的韩国专利申请第10-2012-0158397号的优先权,通过引用将本申请的公开内容全部结合在此。
技术领域
本发明涉及一种用于检查软件的方法和系统,具体地,涉及以下技术,该技术通过以安全服务模块取代处理器的特定内存区域来执行相应的故障搜索动作和主动防御动作。
背景技术
主动防御是一种预测即将发生的攻击导致被怀疑的攻击丧失能力的方法,该主动防御是从国家防御武器系统开始的一项研究。在信息技术(IT)领域已经对于作为防御网络和网络领域中的恶意代码攻击的系统安全维护方法的主动防御进行了积极研究。即,主动防御的代表性实例可包括通过检查经过可靠性等级彼此不同的网络(例如,数据防火墙)的数据来搜索对于系统安全有威胁的元素(诸如病毒和DDoS(分布式拒绝服务)攻击)并拒绝威胁元素的活动。
对于主动防御的大多数研究解决在功能上彼此独立的系统之间的攻击和防御的问题。即,当预测到或者搜索到来自于不被信任的外部系统的攻击时,进而防御该攻击,则能够维护内部系统的安全。
同时,由于系统中的程序可能被改变,所以应当针对使用异常处理和安全代码的程序来设计程序,以防止上述问题。然而,因为整体软件的彻底异常处理对系统的性能造成了负担,则可能未考虑到彼此相对的元素之间的平衡。
发明内容
因此,本发明提供了一种检查软件的方法和系统,其通过以安全服务模块取代处理器的特定内存区域,利用钩锚(hooking)和信息标签技术执行相应的故障搜索动作和主动防御动作,从而能够在搜索故障发生的同时减少系统行为的中断。
此外,本发明提供一种检查软件的方法和系统,其能够实现依照故障类型而定义的各种主动防御动作,从而防止故障,同时即使在搜索到故障时也能够保持该系统自身的功能。
本发明进一步提供一种检查软件的方法和系统,其通过支持针对在管理系统的内核级而非针对每个应用程序的单独等级上的运行时缺陷的主动防御动作来有效且防御性地设计性能。
此外,本发明提供了一种用于检查软件的方法,该方法包括:钩锚对应于内核上的处理的处理控制块;从处理控制块(PCB,process control block)获得针对该处理的地址值的执行信息;将安全模块注入具有有效地址值的内存区域;并且在执行该处理期间调用插入有安全服务模块的内存区域时,由注入到对应的内存区域中的安全服务模块搜索该处理的缺陷。
PCB可实时管理针对处理的名称、ID(标识)、优先级、以及地址值中的至少一个的信息,以及针对内核中的力处理器(force processor)、共享对象、文件、以及互斥中至少一个的运行时资源信息。
安全服务模块的注入可包括针对安全服务数据和信息标签分配存储空间;以及将所分配的存储空间的大小信息存储在信息标签的存储空间中。
该方法进一步包括向执行应用程序提供分配有安全服务数据的存储空间的地址信息。对处理的缺陷的搜索包括访问事件发生在所分配的存储空间中时检查信息标签的存储空间;并且确认对于存储在信息标签中的存储空间的大小信息来说访问事件的访问范围是否为有效范围。
该方法进一步包括当确认访问事件的访问范围是否为有效范围的确认结果不是有效范围时,忽略该访问事件的访问。
该方法进一步包括:当确认访问事件的访问范围是否为有效范围的所确认的结果不是有效范围时,将访问事件的访问范围调整至有效范围。对于处理的缺陷的搜索可包括释放事件发生在所分配的存储空间中时,检查信息标签的存储空间;以及基于存储在信息标签中的信息确认发生该释放事件的存储空间是否是可释放的有效地址空间。
该方法进一步包括当确认存储空间是否是可释放的有效地址空间的确认结果是有效地址空间时,执行针对对应的存储空间的释放事件。
该方法进一步包括在执行释放事件之后初始化分配给对应地址空间的变量;执行对应于在搜索该处理的缺陷时搜索到的缺陷的防御动作;执行对应于忽略动作、继续动作、警告动作、重复动作、终止动作的搜索到的缺陷的类型的防御动作。
在本发明的另一方面中,一种检查软件的系统,可包括:钩锚模块,收集对应于在启动系统时在内核上执行的每个处理的处理控制块(PCB)信息;以及安全服务模块,通过基于收集的PCB信息将该安全服务模块注入到处理的内存区域中来搜索并且防御该处理的缺陷。
附图说明
结合附图,通过以下详细描述,本发明的目标、特征以及优势将更加显而易见,其中:
图1是示出了根据本发明的示例性实施方式的用于检查软件的系统的配置的示例图;
图2是示意地示出了根据本发明的示例性实施方式的检查软件的系统的操作的示例图;
图3是示出了根据本发明的示例性实施方式的用于检查软件的方法的操作流程的示例流程图;
图4是示出了应用于本发明的示例性实施方式的处理控制块(PCB)的示例图;
图5是示出了根据本发明的示例性实施方式的分配有安全服务模块的存储空间的结构的示例性示意图;
图6是根据本发明的示例性实施方式的安全服务模块的执行代码的示例性示意图;
图7A至图7D是示出了应用于本发明的示例性实施方式的代码的示例性示意图;
图8是描述了根据本发明的示例性实施方式的检查软件的系统的主动防御操作的示例性示意图;以及图9A至图9C是示出了根据本发明的示例性实施方式的用于检查软件的系统的各个主动防御类型的代码的示例性示意图。
具体实施方式
应当理解,本文中所使用的术语“车辆(vehicle)”或“车辆的(vehicular)”或其他类似术语包括广义的机动车辆,诸如包括运动型多用途车辆(SUV)、公共汽车、卡车、各种商用车辆的载客车辆;包括各种小船、海船的船只;航天器等;并且包括混合动力车辆、电动车辆、燃油车、插电混合动力车、燃料电池车辆和其他替代燃料车辆(例如,燃料来源于非汽油能源)。
本文中所使用的措辞仅是为了描述特定实施方式而并不旨在对本发明进行限制。除非上下文另有明确说明,否则如本文中所使用的单数形式“一(a)”、“一(an)”及“该”也旨在包括复数形式。还应当理解,当术语“包括”和/或“包含”用于本说明书时,其描述了存在所述特征、整体、步骤、操作、元件及/或组件,但并不排除存在或附加有一个或多个其它特征、整体、步骤、操作、元件、组件及/或其组合。作为本文中所用的术语“和/或”包括一个或多个相关的所列项的任何及所有组合。
进一步地,本发明的控制逻辑可体现为非暂存性计算机可读介质,在计算机可读介质上包含由处理器、控制器/控制单元等执行的可执行程序指令。计算机可读介质的实例包括但并不限于:ROM、RAM、光盘(CD)-ROM、磁带、软盘、闪存驱动、智能卡和光学数据内存装置。计算机可读介质也可分布在网络耦合的计算机系统中,从而以分布式方式内存并且例如由车载通信服务器(telematics server)或控制器局域网络(CAN)执行该计算机可读介质。
在下文中,将参照附图描述本发明的实施方式。
图1是示出了根据本发明的用于检查软件的系统的配置的示例图,图2是示意地示出了根据本发明的检查软件的系统的操作的示例图。参照图1和图2,用于检查软件的系统包括钩锚模块110,该钩锚模块被配置为收集针对对应于在启动系统时执行的各个应用程序1至10的处理的处理控制块(PCB)20的信息;以及安全服务模块120,被配置为基于收集到的PCB20的信息将该安全服务模块注入到处理的特定内存区域中从而搜索并且防御系统中的处理的故障。
此处,代理100,即,检查软件的系统的ROPHE AD代理,被配置为管理钩锚模块110和安全服务模块120。此处,作为“对高风险错误的远程运行时保护-主动防御装置”缩写的ROPHE AD是一种运行在嵌入式linux平台中的自动化工具。
此外,钩锚模块110是存在于内核上的模块,该钩锚模块可钩锚存在于内核上的PCB20以获得针对处理的内存区域的执行信息。应用于本发明中的钩锚技术是一种拦截执行路径的代表性技术,在了解运行时的系统的软件执行情况时,钩锚技术是一种有用的方法。因此,本发明可被配置为监测故障发生的情况,同时通过应用钩锚技术使该系统的基本行为的中断最小化。钩锚模块110向用于检查软件的系统的代理100提供获得的信息,如图2的(1)所示。
安全服务模块120可注入到在各个应用程序1至10的每个处理中可能出现故障的内存区域,以允许在执行处理时相应内存区域中由安全服务例程取代安全服务模块并被执行。换言之,如图2的(2)中所示,代理100可基于钩锚模块110钩锚的PCB信息将安全模块120注入到每个应用程序1至10中,并且通过注入到每个应用程序1至10的安全服务模块120拦截对处理的攻击,以执行如图2的(3)中所示的主动防御。
具体地,注入到各个应用程序1至10的安全服务模块120可包括对处理的故障发生进行预测的故障搜索例程以及执行针对每种故障类型的防御功能的主动防御例程。此处,故障搜索例程可确定输入指针变量是否是有效内存地址值,并且主动防御例程在该变量不是有效地址值时将该输入指针变量初始化为安全的空(NULL)值,从而防止发生故障。
因此,安全服务模块120可被配置为通过利用由代理100提供的PCB信息来执行故障搜索例程,并且根据故障搜索例程的执行结果执行主动防御例程。
如上所述的根据本发明的示例性实施方式配置的用于检查软件的系统的操作流程在下面将进行详细描述。
图3是示出了根据本发明的用于检查软件的系统的用于检测软件的方法的操作流程的示例性流程图。参照图3,用于检查软件的系统可以被配置为使用钩锚模块钩锚对应于内核上的处理的相应处理控制块(PCB)(S100),并且从PCB获得针对相应处理的地址空间的执行信息(S110)。具体地,PCB可以存在于内核上并且可被配置为存储针对相应处理的名称、ID、优先级、以及地址值中至少一个的处理信息,以及针对力处理器、共享对象、文件、以及互斥中至少一个的运行时资源信息,并且实时地管理它们。
同时,用于检查软件的系统基于从“S110”处理中获得的信息,将安全服务模块注入具有处理的有效地址值的内存区域。具体地,注入的安全服务模块120可包括预测处理中故障发生的故障搜索例程以及执行针对每种故障类型的防御功能的主动防御例程。
因此,注入到具有处理的有效地址值的内存区域中的安全服务模块可被配置为在执行处理时调用相应内存区域时执行故障搜索例程并且搜索处理的故障(S130),并且在搜索到故障时执行主动防御例程以由此执行针对处理的故障的主动防御(S140)。具体地,将参照图6至图9C详细地描述安全服务模块的故障搜索例程和主动防御例程。
图4是示出了应用于本发明的处理控制块(PCB)的示例图。如图4所示,应用于本发明的PCB被配置为存储处理信息及其运行时资源信息。
举例说明,PCB可被配置为存储有关相应处理的以下信息,诸如处理ID、处理句柄、内存器指针、EXE加载的基指针、处理名称、程序计数器(PC)、输出表位置、输入表位置、资源表位置、模块的虚拟基地址、最大栈大小、多个内存对象、以及优先级状态等等,并且根据处理的状态实时管理存储的信息。
图5是示出了根据本发明的示例性实施方式分配有安全服务模块的内存区域的结构的示例性示意图。当根据本发明的用于检查软件的系统的代理注入到处理的内存区域时,相应的应用程序可以被配置为将针对安全服务模块的存储空间520分配给有效地址值的内存区域。具体地,除安全服务模块之外,还可以附加地分配存储运行时执行信息的信息标签的存储空间510。
分配给信息标签和安全服务模块的存储空间510和520如图5所示。具体地,分配给安全服务模块的存储空间520的大小信息可以存储在信息标签的存储空间510中。具体地,安全服务模块的故障搜索例程可被配置为通过使用存储在信息标签中的存储空间520的大小信息来确定相应内存区域的地址值是否包含在有效地址区域内,从而搜索相应内存区域的故障。当然,信息标签的存储空间510通过根据检测类型来扩展存储空间而存储各种信息。
然而,针对分配有信息标签和安全服务模块的存储空间510和520的起始地址可向相应应用程序提供分配有安全服务模块的存储空间520的起始地址,而针对信息标签的存储空间510的信息可以是仅能够在内核级被识别的隐藏空间。
图6是示出了根据本发明的示例性实施方式的安全服务模块的执行代码的示例性示意图。参照图6,注入到每个应用程序中的安全服务模块可包括对于处理中故障发生进行预测的故障搜索例程以及执行针对每种故障类型的防御功能的主动防御例程。具体地,安全服务模块可被配置为以安全服务的地址值取代图6所示的3)原始服务的地址值,使得在请求执行相应内存区域的原始服务时,可执行该安全服务。
在执行安全服务的情况下,首先,运行1)的用于故障检测动作的执行代码,并且在由故障检测例程检测到故障的情况下,运行2)的用于主动防御动作的执行代码,从而执行针对发生缺陷的防御。
当故障检测例程没有检测到缺陷时,执行3)的原始服务。举例说明,当访问事件调用包括分配有安全服务模块的存储空间的内存区域时,可执行缺陷搜索例程,并且缺陷搜索例程可首先调用和检查存储分配有安全服务模块的存储空间的大小信息的信息标签的存储空间。此时,缺陷搜索例程可基于存储在信息标签的存储空间中的存储空间的大小信息来检查访问事件的访问范围是否是有效范围。
当然,当访问事件的访问范围不是有效范围时,主动防御例程可被配置为忽略对于相应内存区域的访问或者根据该情形将访问范围调整到有效范围,从而使得可以继续该执行。作为另一实施例,当包括分配有安全服务模块的存储空间的内存区域被释放事件调用时,缺陷搜索例程可以调用信息标签的存储空间,以检查相应的内存区域的地址值是否是有效地址值。当相应内存区域的地址值是有效地址值时,主动防御例程可被配置为执行针对包括信息标签的内存区域的释放事件,并且通过将相应变量初始化成空值来减少对释放的内存区域的地址值的错误访问。
同时,当相应内存区域的地址值不是有效地址值时,例如,在其是已经释放的地址值的情况下,主动防御例程可忽略该释放事件,从而系统不会由于重复释放而崩溃。
图7A至图7D是示出了应用于本发明的示例性实施方式的代码的示例性示意图。
首先,图7A示出了当指针变量初始为空值以确定尚未对内存分配指针时的示例性实施方式。图7B示出了由于指针变量未被初始化而具有垃圾值的情形。
此外,图7C示出了具有检查输入值的代码的内存释放代码以防止发生内存缺陷发生的示例性实施方式。当执行图7C的内存释放代码时,图7A所示的实施方式中的指针变量初始化为空值。因此,当输入初始化的指针变量时,对应指针的地址值可能会被错误地识别为有效地址从而由此产生缺陷。而且,在图7B所示的实施方式中,当执行图7C的内存释放代码时,由于难以确认分配有内存的指针具有有效值,所以可能会产生内存缺陷。
因此,图7D所示的安全服务包括确定输入指针变量是否为有效内存地址的缺陷搜索例程。当输入指针变量不是有效内存地址时,由于主动防御例程将指针变量初始化为空值,然后继续相应功能,所以在执行图7C的内存释放代码时可以防止发生缺陷。
图8至图9C是在描述根据本发明的示例性实施方式的用于检查软件的系统的主动防御操作时参照的示例性示意图。
如图8所示,根据由缺陷搜索例程搜索到的缺陷类型,主动防御例程可执行五种防御类型的防御操作,诸如忽略类型、继续类型、警告类型、重复类型、以及终止类型。当系统中产生缺陷时,系统可包括当系统状态不稳定时不是有效数据的输入数据。因此,主动防御例程可根据输入数据是否是有效数据并且执行结果是成功还是失败,执行依照相应防御类型的防御。
举例说明,当输入值在有效范围内并且执行结果成功时,主动防御例程可确定没有搜索到的缺陷,然后执行下一功能。
此外,当输入值在有效范围内,而执行结果失败时,主动防御例程可被确认为检查失败的原因。当失败的原因是由于暂时现象引起时,可执行图9A所示的对应于重复的防御动作。
具体地,对应于重复的防御动作可以是在程序的输入值是在有效范围内但错误是根据系统的状态临时产生时所执行的动作。重复动作可重复地执行相同的或者大致相似的事件,直至系统的状态返回至正常(例如,原始状态),并且在连续失败预定次数或者更多时,返回“失败”至相应的应用程序。
具体地,图9A示出了当内存分配被配置为由于缺少系统的暂时内存而失败时的示例性情形。具体地,程序输入作为“12345”是正常,但是当由于暂时系统状态而产生问题时可能会不正常,并且相应的功能通过重复动作重复地尝试预定次数。即,当系统状态为暂时现象时,系统可被配置为通过几次重复执行来维持稳定操作,从而按原样输出“12345”。
另一方面,当失败不是暂时现象时,则可执行对应于终止动作的防御动作。终止动作是在程序的输入值在有效范围内,但是根据系统的状态可能产生错误并且继续维持错误时执行的动作,并且当事件的执行结果对于系统的影响是致命时,则终止动作被配置为终止相应处理。
此外,当输入值不在有效范围内并且不能预测到失败的原因时,主动防御例程可被配置为执行对应于警告动作的防御动作。警告动作是在程序的输入值不是有效值以及失败的原因不能被准确推断时执行的动作,并且在继续执行相应事件的同时可传递警告消息从而向用户报告相应事件的执行存在问题。
另一方面,当输入值不在有效范围内并且失败的原因可预测时,确定输入值校正是否能够确保安全执行,并且当能够确保安全执行时,则执行图9B所示的继续动作以由此连续地前进到下一功能。具体地,继续动作是当在没有执行相应事件的情况下仅由程序的输入值确定失败的原因时所执行的动作,并且通过输入数据值的适当校正可确保正常执行。
具体地,图9B示出了在复制字符串的功能中执行超过有效分配范围的复制的情况。具体地,因为通过信息标签能够获知数据的有效访问范围,所以可以将输入值调整到要被复制的仅仅是有效分配范围之多的安全范围,并且继续该执行。
此外,在输入值的修正值不能确保安全执行时,在输入值不是有效值以及失败的原因可被预测时,则执行对应于忽略动作的防御动作,如图9C所示。具体地,忽略动作是在能够确认对应事件的执行可能会引起问题而且只使用程序的输入值不会对下一执行产生任何影响的情况下执行的动作,并且可以忽略对应的事件并且立即返回“失败”给对应的应用程序。
具体地,图9C示出了执行两次释放操作的示例性分配的指针变量,以及通过采取针对第二次释放操作的忽略动作确保的正常执行。
根据本发明,通过利用以安全服务模块取代处理器的特定内存区域,利用钩锚和信息标签技术来执行相应的故障搜索动作和主动防御动作,从而使得在搜索故障的同时能够减少系统的基本动作中断。
此外,本发明即使在通过定义各种主动防御动作搜索到故障时,也能在维护系统的原始功能的同时防止缺陷。而且,本发明通过支持针对在管理系统的内核级而非针对每个应用程序的单独等级上的运行时缺陷的主动防御动作来有效且防御性地设计性能,从而使得对于系统中的所有应用程序支持相同水平的稳定性成为可能。
尽管已参照附图描述了根据本发明的示例性实施方式的用于检查软件的系统和方法,然而,本发明不局限于本说明书中公开的实施方式和附图,而且在不偏离本发明的范围和精神的情况下,可以做出改变。
附图中各个元件的符号
1~10:应用程序
20:处理控制块(PCB)
100:代理
110:钩锚模块
120:安全服务模块
Claims (17)
1.一种用于检查软件的方法,所述方法包括:
钩锚对应于内核上的处理的处理控制块(PCB);
从所述处理控制块获得针对所述处理的地址值的执行信息;
将安全模块注入具有有效地址值的内存区域;以及
当在执行所述处理期间调用插入有所述安全服务模块的内存区域时,由注入到对应的所述内存区域的所述安全服务模块搜索所述处理的缺陷。
2.根据权利要求1所述的方法,其中,所述处理控制块实时管理针对所述处理的名称、ID、优先级、以及地址值中的至少一个的处理信息,以及针对所述内核中的处理器、共享对象、文件、以及互斥中至少一个的运行时资源信息。
3.根据权利要求1所述的方法,其中,注入所述安全服务模块包括:
分配用于安全服务数据和信息标签的存储空间;以及
在所述信息标签的存储空间中存储所分配的所述存储空间的大小信息。
4.根据权利要求3所述的方法,进一步包括:向执行应用程序提供分配有所述安全服务数据的所述存储空间的地址信息。
5.根据权利要求3所述的方法,其中,搜索所述处理的所述缺陷包括:
在访问事件在所分配的所述存储空间中时,检查所述信息标签的所述存储空间;以及
确认所述访问事件的访问范围对于在所述信息标签中存储的所述存储空间的所述大小信息是否为有效范围。
6.根据权利要求5所述的方法,进一步包括:当确认所述访问事件的访问范围是否为有效范围的确认结果不是所述有效范围时,忽略所述访问事件的访问。
7.根据权利要求5所述的方法,进一步包括:当确认所述访问事件的访问范围是否为有效范围的确认结果不是所述有效范围时,将所述访问事件的所述访问范围调整到所述有效范围。
8.根据权利要求3所述的方法,其中,搜索所述处理的所述缺陷包括:
在所分配的所述存储空间中发生释放事件时,检查所述信息标签的所述存储空间;以及
基于存储在所述信息标签中的所述信息,确认发生所述释放事件的所述存储空间是否是可释放的有效地址空间。
9.根据权利要求8所述的方法,进一步包括:当确认所述存储空间是否是可释放的有效地址空间的确认结果是所述有效地址空间时,执行针对相应的所述存储空间的释放事件。
10.根据权利要求9所述的方法,进一步包括:在执行所述释放事件之后初始化分配给相应的所述地址空间的变量。
11.根据权利要求1所述的方法,进一步包括:执行对应于在搜索所述处理的所述缺陷时搜索到的所述缺陷的防御动作。
12.根据权利要求11所述的方法,其中,执行所述防御动作执行对应于忽略动作、继续动作、警告动作、重复动作以及终止动作的搜索到的所述缺陷的类型的防御动作。
13.一种用于检查软件的系统,所述系统包括:
钩锚模块,收集对应于在启动系统时在内核上执行的每个处理的处理控制块(PCB)信息;以及
安全服务模块,基于收集的所述处理控制块信息通过将所述安全服务模块注入到所述处理的内存区域中来搜索和防御所述处理的缺陷。
14.根据权利要求13所述的系统,其中,所述处理控制块实时管理针对所述处理的名称、ID、优先级、以及地址值中的至少一个的处理信息,以及针对内核中的处理器、共享对象、文件、以及互斥中至少一个的运行时资源信息。
15.根据权利要求13所述的系统,其中,所述安全服务模块包括缺陷搜索例程和主动防御例程。
16.根据权利要求15所述的系统,其中,所述缺陷搜索例程使用分配给所述内存区域的信息标签确认有效范围或者有效地址值,并且根据所述确认的结果针对输入事件搜索所述处理的所述缺陷。
17.根据权利要求15所述的系统,其中,所述主动防御例程定义忽略动作、继续动作、警告动作、重复动作、以及终止动作中至少一个的防御动作,并且执行对应于由定义的所述防御动作的所述缺陷搜索例程搜索到的缺陷类型的所述防御动作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120158397A KR101438979B1 (ko) | 2012-12-31 | 2012-12-31 | 소프트웨어 검사 방법 및 시스템 |
KR10-2012-0158397 | 2012-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914653A CN103914653A (zh) | 2014-07-09 |
CN103914653B true CN103914653B (zh) | 2018-10-02 |
Family
ID=50928659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310349696.4A Active CN103914653B (zh) | 2012-12-31 | 2013-08-12 | 用于检查软件的方法及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140189449A1 (zh) |
KR (1) | KR101438979B1 (zh) |
CN (1) | CN103914653B (zh) |
DE (1) | DE102013214218A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105975391B (zh) * | 2016-04-29 | 2019-05-03 | 厦门美图移动科技有限公司 | 一种重启测试方法、设备和移动终端 |
US10489258B2 (en) * | 2017-07-18 | 2019-11-26 | Vmware, Inc. | Negative path testing in a bootloader environment |
WO2019067689A1 (en) * | 2017-09-27 | 2019-04-04 | Carbon Black, Inc. | METHODS FOR PROTECTING SOFTWARE HOOKS, AND ASSOCIATED COMPUTER SECURITY SYSTEMS AND APPARATUS |
CN113282937A (zh) * | 2021-05-25 | 2021-08-20 | 中国科学院青海盐湖研究所 | 一种自适应盐湖科技产业综合数据存储平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701460B1 (en) * | 1999-10-21 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for testing a computer system through software fault injection |
WO2012033237A1 (ko) * | 2010-09-07 | 2012-03-15 | 현대자동차주식회사 | 시스템 테스트 방법 |
WO2012124841A1 (ko) * | 2011-03-15 | 2012-09-20 | 현대자동차 주식회사 | 통신 테스트 장치 및 방법 |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4455654B1 (en) * | 1981-06-05 | 1991-04-30 | Test apparatus for electronic assemblies employing a microprocessor | |
DE69026379T2 (de) * | 1990-08-07 | 1996-08-29 | Bull Hn Information Syst | Nachrichtenorientierte Fehlerbeseitigungsverfahren |
US5758061A (en) * | 1995-12-15 | 1998-05-26 | Plum; Thomas S. | Computer software testing method and apparatus |
US5911059A (en) * | 1996-12-18 | 1999-06-08 | Applied Microsystems, Inc. | Method and apparatus for testing software |
US6311327B1 (en) * | 1998-03-02 | 2001-10-30 | Applied Microsystems Corp. | Method and apparatus for analyzing software in a language-independent manner |
US6216237B1 (en) * | 1998-06-19 | 2001-04-10 | Lucent Technologies Inc. | Distributed indirect software instrumentation |
US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
US6230312B1 (en) * | 1998-10-02 | 2001-05-08 | Microsoft Corporation | Automatic detection of per-unit location constraints |
US7058928B2 (en) * | 1999-12-23 | 2006-06-06 | Identify Software Ltd. | System and method for conditional tracing of computer programs |
US7028225B2 (en) * | 2001-09-25 | 2006-04-11 | Path Communications, Inc. | Application manager for monitoring and recovery of software based application processes |
GB0206761D0 (en) * | 2002-03-22 | 2002-05-01 | Object Media Ltd | Software testing |
US6988226B2 (en) * | 2002-10-17 | 2006-01-17 | Wind River Systems, Inc. | Health monitoring system for a partitioned architecture |
AU2002348969A1 (en) * | 2002-11-08 | 2004-06-07 | Nokia Corporation | Software integrity test in a mobile telephone |
US7124402B2 (en) * | 2002-12-30 | 2006-10-17 | International Business Machines Corporation | Testing software module responsiveness to string input tokens having lengths which span a range of integral values |
CA2426619A1 (en) * | 2003-04-25 | 2004-10-25 | Ibm Canada Limited - Ibm Canada Limitee | Defensive heap memory management |
US7810080B2 (en) * | 2003-09-15 | 2010-10-05 | Thomas Plum | Automated safe secure techniques for eliminating undefined behavior in computer software |
WO2005029241A2 (en) * | 2003-09-15 | 2005-03-31 | Plum Thomas S | Automated safe secure techniques for eliminating |
KR100681696B1 (ko) * | 2004-11-29 | 2007-02-15 | 주식회사 안철수연구소 | 컴퓨터 응용 프로그램의 메모리 데이터 조작 방지 방법 |
US20070028218A1 (en) * | 2005-08-01 | 2007-02-01 | Masser Joel L | Apparatus, system, and method for a software test coverage analyzer using embedded hardware |
US8381198B2 (en) * | 2005-08-15 | 2013-02-19 | Sony Ericsson Mobile Communications Ab | Systems, methods and computer program products for safety checking executable application programs in a module |
US20070074175A1 (en) * | 2005-09-23 | 2007-03-29 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for dynamic probes for injection and extraction of data for test and monitoring of software |
US7395407B2 (en) * | 2005-10-14 | 2008-07-01 | International Business Machines Corporation | Mechanisms and methods for using data access patterns |
US7950004B2 (en) * | 2005-10-21 | 2011-05-24 | Siemens Corporation | Devices systems and methods for testing software |
KR100832074B1 (ko) * | 2006-01-20 | 2008-05-27 | 엔에이치엔(주) | 은닉 프로세스 모니터링 방법 및 모니터링 시스템 |
JP4143661B2 (ja) * | 2006-09-11 | 2008-09-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム |
US8341604B2 (en) * | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8533530B2 (en) * | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US7827531B2 (en) * | 2007-01-05 | 2010-11-02 | Microsoft Corporation | Software testing techniques for stack-based environments |
US8392896B2 (en) * | 2009-03-06 | 2013-03-05 | Microsoft Corporation | Software test bed generation |
KR101269549B1 (ko) * | 2009-05-08 | 2013-06-04 | 한국전자통신연구원 | 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법 |
KR101091457B1 (ko) * | 2009-09-29 | 2011-12-07 | 현대자동차주식회사 | 온라인 시스템 테스트 방법 |
US8621481B2 (en) * | 2011-06-13 | 2013-12-31 | Oracle International Corporation | Apparatus and method for performing a rebalance of resources for one or more devices at boot time |
WO2013024485A2 (en) * | 2011-08-17 | 2013-02-21 | Scaleio Inc. | Methods and systems of managing a distributed replica based storage |
US9626284B2 (en) * | 2012-02-09 | 2017-04-18 | Vmware, Inc. | Systems and methods to test programs |
RU2012127578A (ru) * | 2012-07-02 | 2014-01-10 | ЭлЭсАй Корпорейшн | Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред |
KR101695015B1 (ko) * | 2012-07-05 | 2017-01-11 | 한국전자통신연구원 | 오류 기반 소프트웨어 시험 방법 및 오류 기반 소프트웨어 시험 시스템 |
US10235278B2 (en) * | 2013-03-07 | 2019-03-19 | International Business Machines Corporation | Software testing using statistical error injection |
US9202591B2 (en) * | 2013-05-10 | 2015-12-01 | Omnivision Technologies, Inc. | On-line memory testing systems and methods |
US9529692B2 (en) * | 2013-06-07 | 2016-12-27 | Apple Inc. | Memory management tools |
-
2012
- 2012-12-31 KR KR1020120158397A patent/KR101438979B1/ko active IP Right Grant
-
2013
- 2013-07-19 DE DE102013214218.8A patent/DE102013214218A1/de active Pending
- 2013-08-01 US US13/956,639 patent/US20140189449A1/en not_active Abandoned
- 2013-08-12 CN CN201310349696.4A patent/CN103914653B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701460B1 (en) * | 1999-10-21 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for testing a computer system through software fault injection |
WO2012033237A1 (ko) * | 2010-09-07 | 2012-03-15 | 현대자동차주식회사 | 시스템 테스트 방법 |
WO2012124841A1 (ko) * | 2011-03-15 | 2012-09-20 | 현대자동차 주식회사 | 통신 테스트 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN103914653A (zh) | 2014-07-09 |
KR101438979B1 (ko) | 2014-09-11 |
US20140189449A1 (en) | 2014-07-03 |
DE102013214218A1 (de) | 2014-07-03 |
KR20140087768A (ko) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914653B (zh) | 用于检查软件的方法及系统 | |
CN112685682B (zh) | 一种攻击事件的封禁对象识别方法、装置、设备及介质 | |
EP3416083B1 (en) | System and method of detecting anomalous events | |
CN103975337A (zh) | 预测性堆溢出保护 | |
CN106991328B (zh) | 一种基于动态内存指纹异常分析的漏洞利用检测识别方法 | |
CN103839007B (zh) | 一种检测异常线程的方法及系统 | |
EP3531324B1 (en) | Identification process for suspicious activity patterns based on ancestry relationship | |
CN111756687B (zh) | 一种应对网络攻击的防御措施配置方法及系统 | |
CN101599113A (zh) | 驱动型恶意软件防御方法和装置 | |
CN110855715B (zh) | 基于随机Petri网的DOS攻防模拟方法 | |
CN111447167A (zh) | 车载系统安全防护方法及装置 | |
CN112953895B (zh) | 一种攻击行为检测方法、装置、设备及可读存储介质 | |
Hagerman et al. | Security testing of an unmanned aerial vehicle (UAV) | |
CN116633694B (zh) | 一种基于多模异构组件的web防御方法与系统 | |
CN113098827B (zh) | 基于态势感知的网络安全预警方法及装置 | |
Wang et al. | Optimal resource allocation for protecting system availability against random cyber attacks | |
CN112395593A (zh) | 指令执行序列的监测方法及装置、存储介质、计算机设备 | |
WO2019136428A1 (en) | Systems and methods for detecting and mitigating code injection attacks | |
CN113569240B (zh) | 恶意软件的检测方法、装置及设备 | |
Raju et al. | A novel approach for incident response in cloud using forensics | |
CN110581844A (zh) | 拟态防御中的取证方法 | |
CN116405243B (zh) | 一种基于拟态安全技术的异构冗余流量检测装置 | |
CHEN et al. | An Approach to Quantify Cybersecurity Risk in Terms of Functional Safety Requirement in Connected System | |
CN117914582A (zh) | 一种进程挖空攻击的检测方法、装置、设备及存储介质 | |
Chrysikos | Intrusion detection attack patterns in cloud computing: trust and risk assessment |
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 |