一种针对软件界面安全缺陷的检测方法

文档序号:6332801阅读:188来源:国知局
专利名称:一种针对软件界面安全缺陷的检测方法
技术领域
本发明属于网络安全技术领域,特别是一种针对软件界面安全缺陷的检测方法。 采用本发明方法可针对具有人机数据输入界面的Windows操作系统下对可执行软件进行 与软件界面有关的安全缺陷的检测,以备后续处理。
背景技术
由于程序编写本身的缺陷,使得软件安全性降低,是导致软件安全问题的一个重 要原因。大量存在于软件系统中的安全缺陷,又使得软件在使用阶段受到意料不到的攻击, 甚至造成重大损失,在这些安全缺陷中,数据输入界面是应用软件与用户交互的最直接的 层面,是最易受到攻击的地方。目前尚未见到有关针对软件界面的安全缺陷检测方法的报道。在软件界面测试 方面,一般认为,用户界面测试包括用户界面测试用于核实用户与软件之间的交互是否正 常,测试目标为确保各种浏览以及各种访问方法(鼠标移动、快捷键等)都使用正常,确保 窗口对象及其特征(菜单、大小、位置、状态和中心)都符合标准等。在测试的内容上,主要 强调界面的易用性、界面设计的规范性,并对帮助设施、合理性、美观与协调性、菜单位置、 独特性、快捷方式的组合、安全性考虑、多窗口的应用与系统资源等方面给出了要求。在安 全性考虑方面,强调开发者应当尽量周全地考虑到各种可能发生的问题,将出错的可能降 至最小;如应用出现保护性错误而退出系统,这种错误最容易使用户对软件失去信心。因为 这意味着用户要中断思路,并费时费力地重新登录,而且已进行的操作也会因没有存盘而 全部丢失,因此对设计给出了详细的细则,包括1).排除可能会使应用非正常中止的错误;2).应当注意尽可能避免用户无意录入无效的数据;3).采用相关控件限制用户输入值的种类;4).当用户作出选择的可能性只有两个时,可以采用单选框;5).当选择的可能再多一些时,可以采用复选框,每一种选择都是有效的,用户不 可能输入任何一种无效的选择;6).当选项特别多时,可以采用列表框,下拉式列表框;7).在一个应用系统中,开发者应当避免用户作出未经授权或没有意义的操作;8).对可能引起致命错误或系统出错的输入字符或动作要加限制或屏蔽;9).对可能发生严重后果的操作要有补救措施,通过补救措施用户可以回到原来 的正确状态;10).对一些特殊符号的输入、与系统使用的符号相冲突的字符等进行判断并阻止 用户输入该字符;11).对错误操作最好支持可逆性处理,如取消系列操作;12).在输入有效性字符之前应该阻止用户进行只有输入之后才可进行的操作;13).对可能造成等待时间较长的操作应该提供取消功能;
14).特殊字符常有,”><,、‘ “ [” {、\|}]+= )_(_*&&"%$■ !,·。? / 还 有空格;15).与系统采用的保留字符冲突的要加以限制;16).在读入用户所输入的信息时,根据需要选择是否去掉前后空格;17).有些读入数据库的字段不支持中间有空格,但用户切实需要输入中间空格, 这时要在程序中加以处理。但是对上述设计细则要求是否真正实现了、如何进行测试,则没作规定和说明;因 而目前对软件界面的安全性缺陷检测尚缺乏有效的检测方法。

发明内容
本发明的目的是针对背景技术存在的对软件界面安全缺陷无法进行检测的缺陷, 研究设计一种针对软件界面安全缺陷的检测方法,达到在被测软件具有数据输入界面并可 运行的情况下,通过自动捕获软件界面窗口信息,生成测试数据组对该软件进行测试,以发 现软件中的安全性缺陷,且能准确提供导致软件界面安全缺陷的数据(引起软件安全缺陷 的原因),以便进行针对性改进处理,确保软件安全运行等目的。本发明的解决方案是在被测软件具有数据输入界面并可运行的基础上,通过自动 捕获软件界面窗口数据;根据设定的分类标准对捕获的数据进行分类,然后根据设定的测 试次数、串集合、数字集合生成测试数据组,并逐一将测试数据组送入被测的软件界面进行 测试,最后将使得软件发生异常的测试数据组记录并展示出来,即得到导致被测软件界面 的安全缺陷的数据、以备后续处理;从而实现其发明目的。因此,本发明的方法包括步骤1.设定检测标准设定配置标准检测参数、分类标准检测参数、测试次数、串 集合、数字集合,并初始化设置于系统的参数初始化处理单元模块内;步骤2.被测软件数据捕获首先将被测软件在操作系统下运行,然后通过数据捕 获单元模块利用操作系统捕获被测软件的所有界面窗口数据,并存储待用;步骤3.数据分析将步骤2得到的数据按照设定的配置标准检测参数和分类标准 检测参数、分类后存储,以作为分析结果、送步骤4进行处理;步骤4.测试数据的生成根据设定的串集合、数字集合、由步骤3所得的分析结果 按设定的测试次数生成测试用数据组并组成的测试数据集(test)后,送步骤5进行测试;步骤5.测试将步骤4生成的测试数据集中的各测试数据组逐一送到被测软件界 面窗口,通过运行对被测软件进行测试,如果有某组数据使得被测软件出现异常或死机、该 组数据即为导致被测软件界面出现安全缺陷的数据,然后将该组测试数据连同被测软件转 步骤6处理;如果步骤4生成的测试数据集使用完毕、则结束测试;步骤6.测试结果记录处理将由步骤5输入的测试数据连同被测软件记录并存入 数据库中,作为该被测软件的安全缺陷数据以备后继处理用。以上所述设定的配置参数标准是Static和Edit、Button、ComboBox, ListBox、 SysTabControl32> SysListView32 以及 SysDateTimerPick32。分类标准是窗口的句柄、控件的类型及窗体的坐标。所述的串集合是% η% η% η% η% η、% p% p% p% p% p、% s% s% s% s% s、% d% d% d%d% d、% x% x% x% x% x% s% p% x% d, % . 1024d、% . 1025d、% . 2048d、% . 2049d、% . 4 096d、% . 4097d% 99999999999s、% 08x、%% 20n、%% 20p、%% 20s、%% 20d、%% 20x、% % >Eaassdsdasdasdsadasdsdasdassdd> % #0123456x% 08x% x% s% p% d% n% o%u%c%h% l%q% j%z%Z%t% i%e%g%f%a%C%S% 08x% %, % #0123456x% 08x% x% s% p% n% d% o% u% c% h% 1% q% j% z% Z% t% i% e% g% f% a% C% S%#0123456x%%1%%
q%%j%%z%%Z%%t%%i%%e%%g%%f%%a%%C%% S%% 08xo所述的数字集合是0、-0、1、-1、32767、-32768、2147483647、-2147483647、2147483648、-2147483648、 4294967294、4294967295、4294967296、357913942、-357913942,536870912, -536870912、 1.79769313486231E+308.3. 39519326559384E-313,99999999999, -99999999999、 0x100,0x1000,0x3fffffff,0x7ffffffe,0x7fffffff,0x80000000,Oxffff,Oxfffffffe, 0xffTfTfT、0xfTfTfTfT、0xl0000、0xl00000、0x99999999、65535、65536、65537、16777215、 16777216、16777217、-268435455、% % 20d,Oxffffffffffffffffffff 本发明由于将待测软件首先通过捕获软件界面窗口数据处理得到原始数据,再采 用设定的配置标准,分类标准依次对原始数据进行分类,然后根据设定的串集合、数字集合 生成测试数据组,并按照测试次数规则逐一对被测软件进行测试处理,如果对被测软件造 成异常或死机的情况,该测试数据组即为该被测软件的安全缺陷数据;本发明在对软件的 功能和性能无任何额外要求的情况下,通过自动捕获软件界面窗口数据,使用设定的标准 生成测试数据及进行软件运行测试,以检测被测软件界面是否存在安全性缺陷、及确定致 使被测软件出现安全缺陷的数据。因而具有可通过界面针对软件缺陷进行整体检测,准确 提供导致软件安全缺陷的数据,以便进行针对性改进及处理,其检测过程简单、检测范围 广,对软件界面安全缺陷的适应性强,检测处理结果准确性、可靠性高,可确保软件安全运 行等特点。


图1为本发明方法测试流程示意图(方框图);图2为本发明具体实施方式
测试方法流程示意图(方框图)。
具体实施例方式实施例1 本实施例采用Arck-114R型工业控制机作为检测装置;即在控制机内的 存储器(可执行存储器和数据存储器)中分别设置待测软件及测试标准初始化处理单元模 块,用于对待测软件进行数据捕获处理单元模块,用于按照设定的配置准则和分类规则对 界面窗口数据进行分析分类单元模块,用于根据设定的测试次数规则、串集合、数字集合生 成测试数据单元模块,测试单元模块,对检测结果存储和展示的单元模块;整个检测装置通 过人机输入接口设置各功能模块及对应的参数,亦通过人机接口连接并录入待检测数据, 而通过存储接口存储并送出软件安全缺陷信息。以下通过下述参数为例对本发明方法进行说明需要检测的软件名为d:\test\softface. exe ;本实施例中软件没有对界面输入的字符长度进行限制(即输入了长度超过操作系统允许长度的字符),过长的字符输入会 导致软件死机。用于原始数据的存储地址是d: \softface\original\ ;用于最终结果的存储地址是d: \softface\result\ ;1.配置检测参数=Static ;Edit ;Button ;ComboBox ;ListBox ;SysTabControl32 ; SysListView32 ;SysDateTimerPick32 ;分类标准检测参数,按照窗口的句柄、控件的类型、窗体的坐标进行分类;测试次数针对被测软件softface. exe的测试次数本实施例设定为5000次;2.被测软件数据捕获对被测软件softface.exe捕获其界面窗口数据,存入地址 d:\softface\original\ 中;3.数据分析根据捕获的数据,分析出被测软件softface. exe的界面窗口数据 为(hi, Static, (xl,yl))、(h2,Edit, (x2,y2))、(h3,Button, (x3,y3))类型,其中,hi, h2,h3 分别表示窗口句柄,(xl, yl), (x2,y2)、(x3, y3)分别表示窗 口类型 Static、Edit、 Button的坐标位置;4.测试数据生成过程首先根据软件界面窗口数据分类针对(hl,Static, (xl, yl))生成测试数据从 串集合中随机抽取 % d% d% d% d% d, %% 20η、% . 2048d、% . 2049d、% % 20x、% #0123456x% 08x% x% s% p% d% n% o% u% c% h% 1% q% j% z% Z% t% i% e% g% f% a% C% S%从数字集合中随机抽取 32767、-32768、65537、16777217,混合 组成10个可用测试数据,记为testl,作为对该窗口的测试数据;再根据软件界面窗口数据分类针对(h2,Edit, (x2, y2))生成测试 数据;从串集合中随机抽取%n%n%n%n%n、% % 20s、% . 4097d % 99999999999s、% . 4096d, % . 1025d, %% 20p, % 08x ;从数字集合中随机抽取 0x100、 -U-357913942、-99999999999、0x7ffffffe,65535,混合组成13个可用测试数据作为对该 窗口的测试数据,记为test2 ;而针对软件界面窗口数据分类(h3,Button, (x3, y3)),不能生成测试数据;从 testl和test2中各抽取一个数据,组成一个测试数据组,总共生成5000个数据组,组成本 次测试数据集;5.测试过程,运行被测软件softface. exe,将步骤4生成的测试数据集中的各测 试数据组逐一送到被测软件softface. exe的界面窗口,通过运行对被测的softface. exe 进行测试,因为测试数据testl中有16777217,test2中有-357913942、-99999999999,而 这些数据长度超过操作系统允许的长度,因此,在检测过程中出现死机,含有这些数据的测 试数据组即为导致被测的softface. exe界面出现安全缺陷的数据,然后将含有这些数据 的测试数据组连同被测的softface. exe转步骤6处理;步骤6.测试结果记录处理将由步骤5输入的含有 16777217、-357913942、-99999999999的测试数据组连同被测软件softface. exe记录并存 入地址d: \softface\result\中的数据库中,作为对被测软件softface. exe安全缺陷数据 以备后继处理用。实施例2
本实施例仍采用采用Arck-114R型工业控制机作为检测装置;需要检测的软件名 仍为d:\test\softface. exe ;软件没有对界面输入的负数进行限制,负数数据输入会导致 软件死机。用于原始数据的存储地址是d: \softface\original\ ;用于最终结果的存储地址是d: \softface\result\ ;1.配置检测参数,Static ;Edit ;Button ;ComboBox ;ListBox ;SysTabControl32 ; SysListView32 ;SysDateTimerPick32 ;分类标准检测参数,按照窗口的句柄、控件的类型、窗体的坐标进行分类;测试次数,针对被测软件softface. exe测试次数本实施例设定为5000次;2.被测软件数据捕获,对被测软件softface. exe捕获其界面窗口数据,存入地址 d:\softface\original\ 中;3.数据分析,根据捕获的数据,分析出被测软件softface.exe的界面窗口数据 为:(hl, Static, (xl,yl))、(h2,Edit, (x2,y2))、(h3,Button, (x3,y3))类型,其中,hi, h2,h3 分别表示窗口句柄,(xl, yl), (x2,y2)、(x3, y3)分别表示窗 口类型 Static、Edit、 Button的坐标位置;4.测试数据生成过程首先根据软件界面窗口数据分类针对(hl,Static, (xl, yl))生成测试数据从 串集合中随机抽取 % d% d% d% d% d, %% 20η、% . 2048d、% . 2049d、% % 20x、% #0123456x% 08x% x% s% p% d% n% o% u% c% h% 1% q% j% z% Z% t% i% e% g% f% a% C% S%从数字集合中随机抽取 32767、-32768、65537、16777217,混合 组成10个可用测试数据,记为testl,作为对该窗口的测试数据;再根据软件界面窗口数据分类针对(h2,Edit, (x2, y2))生成测试 数据;从串集合中随机抽取%n%n%n%n%n、% % 20s、% . 4097d % 99999999999s、% . 4096d, % . 1025d, %% 20p, % 08x ;从数字集合中随机抽取 0x100、 -U-357913942、-99999999999、0x7ffffffe,65535,混合组成13个可用测试数据作为对该 窗口的测试数据,记为test2 ;而针对软件界面窗口数据分类(h3,Button, (x3, y3)),不能生成测试数据。从 testl和test2中各抽取一个数据,组成一个测试数据组,总共生成5000个数据组,组成本 次测试数据集;5.测试过程,运行被测软件softface. exe,将步骤4生成的测试数据集中的各测 试数据组逐一送到被测软件softface. exe的界面窗口,通过运行对被测的softface. exe 进行测试,因为测试数据testl和test2中有负数,因此,在检测过程中出现死机,含有负数 的测试数据组即为导致被测的softface. exe界面出现安全缺陷的数据,然后将含有这些 数据的测试数据组连同被测的softface. exe转步骤6处理;步骤6.测试结果记录处理将由步骤5输入的含有-32768、-1、-357913942、-99999999999的测试数据组连同被测软件softface. exe记录并存入地址d:\softface\ result\中的数据库中,作为对被测软件softface. exe安全缺陷数据、以备后继处理用。
权利要求
一种针对软件界面安全缺陷的检测方法,包括步骤1.设定检测标准设定配置标准检测参数、分类标准检测参数、测试次数、串集合、数字集合,并初始化设置于系统的参数初始化处理单元模块内;步骤2.被测软件数据捕获首先将被测软件在操作系统下运行,然后通过数据捕获单元模块利用操作系统捕获被测软件的所有界面窗口数据,并存储待用;步骤3.数据分析将步骤2得到的数据按照设定的配置标准检测参数和分类标准检测参数、分类后存储,以作为分析结果、送步骤4进行处理;步骤4.测试数据的生成根据设定的串集合、数字集合、由步骤3所得的分析结果按设定的测试次数生成测试用数据组并组成的测试数据集后,送步骤5进行测试;步骤5.测试将步骤4生成的测试数据集中的各测试数据组逐一送到被测软件界面窗口,通过运行对被测软件进行测试,如果有某组数据使得被测软件出现异常或死机、该组数据即为导致被测软件界面出现安全缺陷的数据,然后将该组测试数据连同被测软件转步骤6处理;如果步骤4生成的测试数据集使用完毕、则结束测试;步骤6.测试结果记录处理将由步骤5输入的测试数据连同被测软件记录并存入数据库中,作为该被测软件的安全缺陷数据以备后继处理用。
2.按权利要求1所述针对软件界面安全缺陷的检测方法,其特征在于所述设定的配置 标准是:Static 禾口 Edit、Button、ComboBox、ListBox、SysTabControl32> SysListView32 以 及 SysDateTimerPick32。
3.按权利要求1所述针对软件界面安全缺陷的检测方法,其特征在于所述分类标准 是窗口的句柄、控件的类型和窗体的坐标。
4.按权利要求1所述针对软件界面安全缺陷的检测方法,其特征在于所述的串集合是% η% η% η% η% η、% p% p% p% p% p、% s% s% s% s% s、% d% d% d% d% d、% x% x% x% x% x% s% p% x% . 1024d、% . 1025d、% . 2048d、% . 2049d、% . 409 6d、% . 4097d% 99999999999s, % 08x, %% 20n, %% 20p, %% 20s, %% 20d, %% 20x、% % >Eaassdsdasdasdsadasdsdasdassdd> % #0123456x% 08x% x% s% p% d% n% o%u%c%h% l%q% j%z%Z%t% i%e%g%f%a%C% S% 08x% %, % #0123456x% 08x% x% s% p% n% d% o% u% c% h% 1% q% j% z% Z% t% i% e% g% f% a% C% S%#0123456x%%1%%q%%j%%z%%Z%%t%%i%%e%%g%%f%%a%%C%%S%% 08x。
5.按权利要求1所述针对软件界面安全缺陷的检测方法,其特征在于所述的数字集合是O、_0、1、-1,32767, -32768,2147483647, -2147483647,2147483648, -2147483648、 4294967294、4294967295、4294967296、357913942、-357913942,536870912, -536870912、 1.79769313486231E+308.3.39519326559384E-313,99999999999, -99999999999、 0x100,0x1000,0x3fffffff,0x7ffffffe,0x7fffffff,0x80000000,Oxffff,Oxfffffffe, 0xffTfTfT、0xfTfTfTfT、0xl0000、0xl00000、0x99999999、65535、65536、65537、16777215、 16777216、16777217、-268435455、%% 20d,Oxfffffffffffffffffff
全文摘要
该发明属于网络安全技术领域中针对软件界面安全缺陷的检测方法。包括设定检测标准,被测软件数据捕获,数据分析,测试数据的生成,测试及其结果记录处理。该发明由于将待测软件首先通过捕获软件界面窗口数据,再采用设定的配置标准,分类标准对原始数据进行分类,然后根据设定的串集合、数字集合生成测试数据组,对软件按设定次数进行测试;本发明对软件的功能和性能无额外要求,通过自动捕获软件界面窗口数据、以生成测试数据和检测软件安全性缺陷及其原因。因而具有可通过界面对软件安全缺陷进行整体检测并准确提供导致其缺陷的数据、以便进行处理,其检测过程简单、范围广,对软件界面安全缺陷的适应性强,检测结果准确、可靠等特点。
文档编号G06F11/36GK101950270SQ201010294489
公开日2011年1月19日 申请日期2010年9月28日 优先权日2010年9月28日
发明者周勤民, 王光卫, 范明钰, 陈峥 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1