安全测试技术

2024-07-12

安全测试技术(共12篇)

安全测试技术 篇1

一、安全漏洞的概述

(一) 安全漏洞的定义和产生。

安全漏洞指的是在网络硬件、软件或协议中, 其系统安全策略在设计或应用时潜藏的安全隐患, 这些隐患可能导致网络系统在受到恶意攻击时发生问题, 导致网络系统瘫痪或重要数据丢失。任何一种新兴技术的应用都可能产生网络安全漏洞, 除此之外, 网络系统中的应用软件结构过于复杂也可能导致安全漏洞的数量增多。

(二) 安全漏洞的具体分类。

现阶段具有一定破坏性的网络漏洞共有120个大类, 在大类中, 又可进一步划分出835个小类, 网络漏洞可根据划分方式的不同出现多种类型, 可以按产生阶段分为设计类和实现类;也可以按危害程度分为功能类和安全类;还可以按照宿主类别分为操作系统类、软件产品应用系统类以及协议类, 现阶段普遍使用第三种方法对网络安全漏洞进行分类。

(三) 以SQL注入为例对安全漏洞具体分析。

SQL注入是现阶段一种比较流行的网站侵入模式, 具有操作简单、易上手等特点, 因此, 比较容易在网络系统中发生。在具体操作时将特定的代码加独到目标字符串中, 将其作为原有的数据参数传输到服务器中, 使服务器产生不当处理, 攻击者可以借此避开网络数据库中的权限控制系统, 轻松获得网络系统中的所有数据[1]。

二、Fuzzing测试技术及其具体应用

(一) Fuzzing概述。

Fuzzing又被业界普遍成为Fuzz Testing, 运用网络安全漏洞的检查程序, 将指定数据传输给相应组件, 或修复指定的残缺格式, 可以通过外部传输的有关数据对网络系统内部的一些行为进行控制, 对安全漏洞数量较多的网络系统测试效果尤其明显, 是目前比较先进的自动化软件测试技术。

(二) Fuzzing测试思想与工作流程。

Fuzzing测试的主要目的是用于检查计算机软件的应用性, 利用用户身份, 对计算机的大多数相关程序进行无规律的尝试, 以制造半有效数据, 之后将这些数据输入到需要进行测试的程序中, 根据该程序对其处理的过程, 分析系统中是否存在安全漏洞。而Fuzzing的工作流程如下:首先, 确定需要进行测试的程序;其次, 谨慎挑选进行测试的交互点;第三, 编写Fuzzing相关测试数据;第四, 将得到的有效数据传输到交互点中;第五, 对测试程序的状态进行实时监测;最后, 找出系统安全漏洞。

(三) Fuzzing测试工具。

Fuzzing的测试工具叫Fuzzer, 由数据生成、程序运用、目标监测三部分组成, 从程序设计方向可分为Record and Replay Type Fuzzer和Model-Based Type Fuzzer两种类型;而从数据产生方向上可分为Mutationbased Fuzzer和Generation-based Fuzzer两类。

三、以Fuzzing为基础的网络协议安全测试大体方案

(一) 网络协议概述。

网络协议是一种存在于两个或多个通信实体间的网络行为规范, 规定了两者或多者之间的相关责任和义务, 对网络系统交互做出保障, 一份网络协议的制定需要对协议规范、协议编址和寻址以及协议数据包进行重点把握。

(二) 网络协议Fuzzer设计与实现。

Fuzzing测试的主要针对对象为FTP、HTTP以及SMTP, 而网络协议Fuzzer的设计需要满足以下四种功能:其一, 在测试时可以提供出本地及远程两种Fuzzing测试方案;其二, 可以构建出若干种Fuzzing模式以供客户选择;其三, 对系统进行测试时可实时监控;其四, 满足多种协议需求。

(三) 网络协议安全性测试方案。

该方案需要安全漏洞测试、监控以及评析等相关工具, 在测试时, 首先建立与测试程序的联系, 之后编制Fuzzing数据, 然后将数据传输至指定目标, 并对测试程序进行实时监测, 收集有异常现象的信息, 之后针对异常对数据进行合理调整, 最后对安全漏洞做出评估, 完成整个网络安全协议的安全性测试过程。

结论

本文基于模糊测试技术, 对网络协议的安全性进行了分析, 论述了该技术的具体应用, 为网络协议未来的发展提供了依据。

摘要:现阶段的网络协议普遍存在不同程度的安全漏洞, 本文通过对安全漏洞的简述, 引出Fuzzing测试技术, 并分析该技术的具体应用, 最后给出以Fuzzing为基础的网络协议安全测试的大体方案, 以期网络协议可以更好的为信息化时代服务。

关键词:模糊测试技术,网络协议,安全性,测试

参考文献

[1]孙哲, 刘大光, 武学礼, 文伟平.基于模糊测试的网络协议自动化漏洞挖掘工具设计与实现[J].信息网络安全.2012, 08 (26) :179-180.

安全测试技术 篇2

1.所有工作人员必须听从工作负责人安排,严禁私自行动。测试工作进行前,由安全组负责检查风硐,确保风硐内无会损害主要通风机杂物后方可进行测试工作。

2.调整风叶角度时,严格按照正常程序进行,且每次确认风叶角度都必须是同一人,以防止因各人观察角度不同而产生误差。

3.1#通风机运行进行性能测试期间,工作人员应随时观察1#通风机负压、电流、电压、油温、油压等各项数据,注意检查1#通风机及同步电动机的运行情况,若发现异常,应立即汇报工作负责人,及时判断原因采取措施;若异常情况比较严重,应立即停机检查。

4.1#通风机投入主运行,待运行稳定后,检查其各系统运行正常后才能进行2#机的测试。

5.备用通风机进行性能测试期间,若主通风机运行出现异常情况,应立即停止测试,恢复备用通风机角度,并保证备用通风机能够随时投入使用。

6.通风机异常情况不能排除,应立即启用备用通风机,保证矿井正常通风,并及时抢修主通风机,尽一切努力查出问题并加以解决,决不能将故障延期处理,保证通风机一用一备。

7.运行工况发生较大变化,主通风机出现故障无法继续使用,备用通风机也无法启动的情况下,应立即汇报矿调度室,由调度室组织井下人员按照紧急避灾路线安全迅速撤离。

8.负责在测试风机闸门房的平台上贴木板进行改变工况的所有人员必须佩带保险绳,并系于牢固处。

9.贴木板时,手必须握住把钉,不得将手直接抓住木板往风窗上贴,以防挤手,同时,人员必须位于木板整体之后,以防伤及身体的其它部位。

10.必须提前在闸门房一侧的小风门的把手处系牢一根安全绳,关闭时,由3~4人抓紧绳子慢慢关闭。

11.站在梯子上施工时,梯子必须放稳,并且必须有专人扶梯子,站在梯子上的施工人员必须将保险带系在牢固的地方。

12.当一个角度测试完毕后,工况调节人员必须躲开北侧调节窗及小风门贴木板处,以防风机停止运转时木板掉落伤人。

13.测试完1#风机后,各小组必须把所用工具收放好,以便第二天继续测试2#风机用,全部测试完毕后,要对所用木板、绳子等与主要通风机运行无关的物品回收,以确保主要通风机的运行安全。

安全测试Windows 8 篇3

微软新近推出的Windows 8测试版不同于以往的开发者预览版,此次推出的是面向所有用户的消费者预览版,所有人都可以下载新的Windows 8预览版进行测试。但是作为测试版本,该版本仍难免存在各种缺陷,甚至存在严重的系统错误。为此,我们特意为大家介绍一种与众不同的测试方式,让大家都可以安全地测试新的操作系统。

我们可以选择在虚拟机上测试Windows 8,这将是最方便和最安全的方法,无论测试过程中Windows 8系统出现什么样的问题,物理硬盘上原有的数据仍旧可以确保安然无恙。但是虚拟机中操作系统与应用软件的运行速度较慢,我们肯定无法充分体验Windows 8的性能,因此,我们推荐大家在独立的硬盘分区上安装测试版Windows 8,这种方法可以尽可能地提高系统速度,唯一的问题是实现的步骤相对比较复杂。下面我们就分步骤为大家进行详细的介绍。

新的Windows 8测试版中各项功能已比较完善,基本上能够满足一般用户日常工作、学习的需要。但是由于Windows 8相对于以往的Windows操作系统有较大的改变,因而,在使用过程中我们将会不可避免地遇到各种各样的问题。要真正用好Windows 8,充分发挥其性能,我们需要掌握一定的操作技巧,为此,我们还特意为大家准备了一些Windows 8预览版的使用技巧,感兴趣的用户可以参考本期经验技巧栏目中所介绍的相关内容。

安全测试技术 篇4

1 安全漏洞的概述

1.1 安全漏洞的定义和产生

安全漏洞指的是在网络硬件、软件或协议中, 其系统安全策略在设计或应用时潜藏的安全隐患, 这些隐患可能导致网络系统在受到恶意攻击时发生问题, 导致网络系统瘫痪或重要数据丢失。任何一种新兴技术的应用都可能产生网络安全漏洞, 除此之外, 网络系统中的应用软件结构过于复杂也可能导致安全漏洞的数量增多。安全漏洞主要产生于以下两种情况:非法改变程序的执行地址以及读取或输入数据的地址不合法。

1.2 安全漏洞的具体分类

现阶段具有一定破坏性的网络漏洞共有120个大类, 在大类中, 又可进一步划分出835个小类, 网络漏洞可根据划分方式的不同出现多种类型, 可以按产生阶段分为设计类和实现类;也可以按危害程度分为功能类和安全类;还可以按照宿主类别分为操作系统类、软件产品应用系统类以及协议类, 现阶段普遍使用第三种方法对网络安全漏洞进行分类。

1.3 以SQL注入为例对安全漏洞具体分析

SQL注入是现阶段一种比较流行的网站侵入模式, 具有操作简单、易上手等特点, 因此, 比较容易在网络系统中发生。在具体操作时将特定的代码加独到目标字符串中, 将其作为原有的数据参数传输到服务器中, 使服务器产生不当处理, 攻击者可以借此避开网络数据库中的权限控制系统, 轻松获得网络系统中的所有数据[1]。

2 Fuzzing测试技术及其具体应用

2.1 Fuzzing概述

Fuzzing又被业界普遍成为Fuzz Testing, 运用网络安全漏洞的检查程序, 将指定数据传输给相应组件, 或修复指定的残缺格式, 可以通过外部传输的有关数据对网络系统内部的一些行为进行控制, 对安全漏洞数量较多的网络系统测试效果尤其明显, 是目前比较先进的自动化软件测试技术。

2.2 Fuzzing测试思想与工作流程

Fuzzing测试的主要目的是用于检查计算机软件的应用性, 利用用户身份, 对计算机的大多数相关程序进行无规律的尝试, 以制造半有效数据, 之后将这些数据输入到需要进行测试的程序中, 根据该程序对其处理的过程, 分析系统中是否存在安全漏洞。而Fuzzing的工作流程如下:确定需要进行测试的程序;谨慎挑选进行测试的交互点;编写Fuzzing相关测试数据;第四, 将得到的有效数据传输到交互点中;第五, 对测试程序的状态进行实时监测;最后, 找出系统安全漏洞。

2.3 Fuzzing测试工具

Fuzzing的测试工具叫Fuzzer, 由数据生成、程序运用、目标监测三部分组成, 从程序设计方向可分为RecordandReplayType Fuzzer和Model-Based Type Fuzzer两种类型;而从数据产生方向上可分为Mutation-based Fuzzer和Generation-based Fuzzer两类[2]。

3 以Fuzzing为基础的网络协议安全测试大体方案

3.1 网络协议概述

网络协议是一种存在于两个或多个通信实体间的网络行为规范, 规定了两者或多者之间的相关责任和义务, 对网络系统交互做出保障, 一份网络协议的制定需要对协议规范、协议编址和寻址以及协议数据包进行重点把握。

3.2 网络协议Fuzzer设计与实现

Fuzzing测试的主要针对对象为FTP、HTTP以及SMTP, 而网络协议Fuzzer的设计需要满足以下四种功能:在测试时可以提供出本地及远程两种Fuzzing测试方案;可以构建出若干种Fuzzing模式以供客户选择;对系统进行测试时可实时监控;其四, 满足多种协议需求[3]。

3.3 网络协议安全性测试方案

该方案需要安全漏洞测试、监控以及评析等相关工具, 在测试时, 首先建立与测试程序的联系, 之后编制Fuzzing数据, 然后将数据传输至指定目标, 并对测试程序进行实时监测, 收集有异常现象的信息, 之后针对异常对数据进行合理调整, 最后对安全漏洞做出评估, 完成整个网络安全协议的安全性测试过程。

摘要:随着全球化进程的日益加快与互联网技术的普及, 人类的对信息的存储方式也由纸张书写转变为数据信息存储, 而信息数据存储之所以可以正常运转, 全都有赖于网络协议, 但是现阶段的网络协议普遍存在不同程度的安全漏洞, 文章通过对安全漏洞的简述, 引出Fuzzing测试技术, 并分析该技术的具体应用, 最后给出以Fuzzing为基础的网络协议安全测试的大体方案, 以期网络协议可以更好地为信息化时代服务。

关键词:模糊测试技术,网络协议,安全性,测试

参考文献

[1]孙哲, 刘大光, 武学礼, 文伟平.基于模糊测试的网络协议自动化漏洞挖掘工具设计与实现[J].信息网络安全, 2012, 8 (26) :179-180

安全教育测试总结 篇5

生命弥足珍贵,安全重于泰山。为了进一步强化学生的安全意识,加强我校的安全教育,按照县、校要求,我们九年级于1月16至17日进行了安全教育测试,现将有关情况总结如下:

一、测试方案

本次安全测试试题分为单项选择,判断题,以及填空题。内容涵盖了和中学生生活息息相关的诸多方面。同时题型方便学生快速完成,并容易掌握。测试时间30分钟。

二、测试情况

本次测试从元月16日开始,利用自习和课余时间进行了测试,17日全部结束。参加测试的学生共有73名,测试结果A级8名,占测试人数的10%;B级11名,占测试人数的15%;C级51名,占测试人数的54%;D级为3名,占测试人数的5%。

三、成绩和不足

这次安全知识测试,学校、年级组织及时,教师、班主任、学生参与率高。测试中,所有学生能在规定时间内完成测试。完成度较高。

1、大部分学生能快速完成测试,能够积极参与,关注自己的日常安全生活。

2、部分学生对于部分安全知识了解不清楚,有含糊现象。

3、极少数学生对于完成安全教育的测试试题较为吃力,安全意识不够重视。

通过这次测试,我们感到安全教育需要警钟长鸣,还需要我们在以后工作中给予重视,另外,个别笔试成绩优异的学生却口试成绩不理想,也告诫我们,在素质教育和新课改的背景下,我们要重视学生的各方面能力培养,更要注重学生的安全教育,让生命在安全的直线上绽放生命的光彩。

安全测试技术 篇6

此次中哈边境电磁环境测试工作是根据国家无线电管理局2012年度工作计划的部署,为全面了解中哈边境电磁环境情况、做好中哈第二次边境地区无线电频率协调会提供技术储备。工作由新疆自治区无线电管理局牵头,自治区广播电影电视局、新疆电信等各家公司,同江苏省无线电监测站联合组成的中哈边境电磁环境测试组进行的。此次测试任务难度大、要求高,通过全体人员的不懈努力,取得了预期的效果。

前期准备充分

测试前的周密保障,为测试工作奠定了基础。为了了解新疆当地电磁环境状况以及无线电管理和监测方法,确保测试工作顺利进行,江苏省无线电监测站工作人员会同新疆无线电测试人员在开展测试前,做了大量而细致的协调保障工作。

江苏省无线电监测站的工作人员到达伊犁后就立即跟随测试组来到了新疆阔尔克无线电培训中心,首先对自治区无线电管理局下发的《新疆中哈边境地区电磁环境测试计划及实施方案》进行了认真的学习和讨论,重点对测试方法展开了交流。会后,技术人员在阔尔克无线电培训中心广场按照测试方案制定的步骤做了认真仔细的预测,对携带的仪器设备进行了校准、比对,对移动监测车测试系统自身产生的假信号进行了鉴别,对测试方法、步骤、细节进行了沟通和交流。

8月15日,江苏省无线电监测站的工作人员还参加了由新疆自治区无线电管理局组织召开的“新疆中哈边境地区电磁环境测试会议”。会上,自治区经济和信息化委员会无线电管理处副处长郭玉峰简述了本次中哈边境电磁环境测试的意义和目的,要求各单位做好测试的前期准备工作,加强相互之间的交流与沟通,做好本次测试数据记录、存储、分析工作,力争准确、详实、有效地掌握中哈边境电磁环境情况;自治区监测站副科长王东晓依据《新疆中哈边境地区电磁环境测试计划及实施方案》就本次测试的测试设备、测试标准、测试方法和测试报告进行了讲解,对测试过程中可能存在的不确定因素进行了分析,确保了中哈边境电磁环境测试结果的精准性。通过阔尔克培训中心的预演练和在奎屯市专门组织的培训,使江苏省无线电监测站的工作人员对此次测试工作有了一个全新的认识和理解。

测试工作圆满完成

测试组根据《新疆中哈边境地区电磁环境测试计划及实施方案》,于8月13-26日在中哈边境霍尔果斯口岸、都拉塔口岸和昭苏格登碑、阿拉山口边防一连、阿拉山口287高地、玉科克瞭望所、巴克图口岸、塔斯提边防哨所、吉木乃口岸、阿黑土别克口岸共10个测试点,涉及伊犁州、博州、塔城地区、阿勒泰地区四个地州开展电磁环境测试,主要目的是摸清上述地州沿边境及口岸电磁环境状况、无线电频率使用情况,掌握越境信号和无线电干扰(我方、哈方)情况,建立较完整的新疆中哈边境地区电磁环境基础数据。

整个测试分为4个组,江苏省无线电管理局参加了中哈边境第一组的测试工作,该组由伊犁州无线电管理局、伊犁军分区、巴州无线电管理局、江苏省无线电管理局、伊犁州文化体育广播影视局和伊犁州三家通信运营企业组成,共20人,主要在霍尔果斯口岸、都拉塔口岸和昭苏格登碑开展测试。

测试工作分为白天测试和夜间测试,白天测试公众移动通信业务频率,夜间测试广播电视业务频率。测试工作异常艰苦,工作人员必须克服昼夜温差大、狂风肆虐、尘土飞扬、交通环境恶劣等带来的困难,全神贯注地监测每一个测试频段,仔细地甄别每一个频率,分辨是合法用户还是违规设台,是中方信息还是哈方信息。

根据测试任务的要求,小组成员积极配合,认真测试、记录、分析数据,工作到第二天凌晨,终于完成了首站霍尔果斯口岸的测试任务。第二天上午8点至第三日凌晨,工作人员经过21小时的奋战,结束了都拉塔测试工作。由于第三个测试点昭苏县格登碑距伊宁市有240公里,测试组沿险峻的伊昭公路,经过近4个小时的行程安全抵达了昭苏县格登碑,经过短暂休整后立即投入到测试工作中。

经过三天的努力,江苏省无线电管理局所在的第一测试组行驶近3000公里,测试30多个小时,收集、测量和分析了大量的国、内外广播电视信号和公众移动通信业务信号,存储频谱图251张,音频文件52个,国、内外无线电频率251个(其中国外无线电频率59个),较圆满地完成了3个测试点的电磁环境测试工作。

无线网络结构分析与安全测试技术 篇7

随着无线网络的不断发展, 越来越多的单位都构建了无线网络, 因为无线网络不仅接入速度较高, 而且其在组网灵活性方面有着独特的优势。但是, 随之也带来了不少问题, 尤其是无线网络的安全性问题, 主要体现在以下几个方面:信道的开放性特点, 给用户便捷的同时也方便了一些非法接入以及窃听的网络攻击行为;无线网络是基于电磁波的, 在其影响范围内, 所有无线网络的用户都可以接收一些信息, 这对于不想接收信息的用户而言势必会造成一定的干扰;无线电波会由于外界因素而导致不同程度的信号衰减, 从而出现信号丢失的现象。可见, 研究无线网络的结构, 确保无线网络的安全是极其重要的, 这对于促进无线网络的发展, 为用户提供更加优质的无线网络服务起到了重要的作用。

1 无线网络结构的剖析

1.1 基本的结构模式

无线网络的基本结构模式主要有两种, 分别是:存在基站的无线网络;不存在基站的无线网络。其中, 存在基站的无线网络也称为Infrastructure结构, 该网络中的通信都需要借助于基站才能完成, 基站也可称为接入点。而不存在基站的无线网络是Ad Hoc结构, 无线网络中的各终端是直接进行通信的, 最终形成多单元的无线通信网络。

1.2 网络拓扑结构

无线网络中的拓扑结构主要有3种, 分别是:点对点、Hub型、无中心拓扑。其中, 点对点主要是借助于点频或者是扩频微波电台等方式进行网段连接, 其结构比较简单, 能够获取到中远距离范围的高速率链路。Hub型要求存在一个无线站点作为中心点, 并控制该无线网段内的所有站点, 同时可以借助于蜂房技术实现空间以及频率的复用, 该拓扑结构如图1所示:

2 无线网络的安全测试技术

2.1 基于访问点的安全测试技术

要想提高无线网络的安全性, 管理员应该意识到访问点AP的重要性, 因为AP是整个无线网络的基础, AP安全性有了保障, 无线网络的安全性将会大大提高。

1) WEP。WEP是安全保护协议, 属于802.11协议中的一部分, 现大部分的商家都支持128位的密钥, 虽然WEP协议也存在一些安全隐患, 但在无线网络中引入WEP可以杜绝一些攻击水平不太高的黑客, 也能对安全起到一定的保障作用;2) MAC地址过滤。MAC地址是无线网络中较为理想的一种访问控制方式, 但现有无线网络中已出现能伪造合法MAC的软件, 但笔者认为无线网络中仍应引入MAC地址过滤技术, 这样可以将一部分网络入侵者过滤在外;3) DMZ非军事区技术。DMZ是无线网络中的一个特殊区域, 如果AP点位于DMZ, 就算该AP遭受到了攻击, 攻击者也不能对无线网络内部信息进行窃取。但需要明确的一点是, DMZ可以保护无线网络的内部资源, 但不能保护无线用户。

2.2 基于防火墙及RADIUS的安全测试技术

从本质上而言, 防火墙是由软件以及硬件共同组成的一个系统, 主要实现两个网络之间的接入控制。其控制策略则是由用户自行在防火墙上进行设置的, 其作用主要是为了实现有效的阻止以及允许。由防火墙连接的两个无线网络分组过滤路由器必须是支持标准格式的设备, 这样才能更好地实现分工检测, 一个负责进入无线网的分组检查, 另一个负责对无线网络输出的信息进行检查。

而RADIUS (Remote Authentication Dial-In User Service) 是远程身份验证的拨入用户服务检测技术, 能够实现对无线网络远程链接用户的身份验证, 并提供授权和相关的记录日志。Radius除了用户身份验证, 还可用于访问点身份验证, 可实现双向身份认证, 这样, 黑客就无法假冒访问点对网络进行攻击。Radius可全面的控制访问授权, 如时间限制及密钥重新生成周期。Radius服务器的典型设置如图2所示:

2.3 基于公钥体制身份认证的安全检测技术

无线网络应用基于公钥体制身份认证的安全检测技术, 能够在很大程度保证无线网络的安全。在公钥体制中, 私钥和公钥是不可以互推的, 也正是因为这一点, 保证了无线网络良好的安全性。该安全检测技术的实现分成以下两大步骤:

首先, 用户UserA生成一个认证请求, 并将这个认证请求发送给相应的AP。当AP接收到UserA发送的认证请求后, AP就是检验相应的Gid以确定该UserA是不是在其管理范围内, 同时通过私钥进行解密处理, 并用UserA的公钥检验解密签名, 以进一步验证UserA是不是合法身份。

其次, AP对UserA认证结束之后, 就会自动生成一个反馈响应。UserA接收到这个反馈响应后就可以直接用自己的私钥进行解密后获取PK, 并通过AP的公钥对AP的身份进行验证。

3 结论

无线网络能得到越来越广泛的应用, 主要原因在于无线网络的灵活性以及开放性, 为了确保无线网络的安全, 网络建设者应该在物理层使用扩频技术, 在数据链路层使用WEP协议进行加密处理, 在网络层使用防火墙等技术进行信息过滤及验证。

但这些无线网络安全措施不能单独应用于无线网络以保证安全性, 只有进行安全测试技术的综合运用才能大大提升无线网络的安全性。

参考文献

[1]Tara.Charles, Elden.Wireless Security and Privacy:Best Practices and Design Techniques[J].Addison Wesley, 2011.

[2]刘乃安.无线局域网 (WLAN) 原理、技术与应用[M].西安电子科技大学出版社, 2010.

[3]Adam Stubblefield, John Ioannidis, Ariel D.Rubin.Using the Flusher, Mantin and Shamir Attack to Break WEP Revision2, AT&T Labs Technical Report.2009.

安全测试技术 篇8

该项目通过采用“汽车—物—网络通讯系统”, 将汽车与汽车、汽车与基础设施相互联成网络, 及时提醒司机路面障碍、恶劣天气、前车紧急刹车、下一个施工地路况、行驶到下一个路口为绿灯的最佳速度等情况, 同时, 采取匿名方式, 将车辆行驶信息传输给交通中心, 不断优化更新更大范围、更反映实际、更为精确的交通状况, 从而显著提高了交通运输的效率和行驶的安全性。

项目由德国汽车工业协会 (VDA) 发起动议, 2012年8月6日开始实施。具体由奔驰公司负责协调, 欧宝、奥迪、宝马、福特、大众、福特等汽车制造商、博世和大陆集团2个汽车零部件供应商以及德国电信、弗朗霍夫协会、德国人工智能研究中心、慕尼黑工大、柏林工大以及德国黑森州交通和道路管理局、法兰克福市等共同承担。联邦政府、黑森州政府和VDA共同投入6 900万欧元, 其中联邦政府的经济技术部、教研部和交通建设和城市规划部共投入3 800万欧元。

安全测试技术 篇9

1模糊测试的概述

1.1模糊器的类型

模糊器根据被测的目标程序可以分为本地模糊器、远程模糊器、模糊器框架三种类型。1.1.1在setuid应用程序中,普通用户可以临时查看文件

因此,当有安全漏洞存在于setuid应用程序中时,用户会永久的拥有权限。针对被测的setuid应用程序,模糊器能够进行畸形参数和变量的传递。

1.1.2远程模糊器主要被用来测试基于网络的应用程序,可以分为网络协议模糊器和Web应用程序模糊器

由于各种服务器软件属于基于网络的应用程序,因此,基于网络的应用程序已经成为了测试对象的最主要的部分。如果基于网络的应用程序出现了安全漏洞,那么攻击者就可以拥有得进入服务器的权限,获得服务器中的重要信息。

1.1.3模糊测试框架主要被用于不同类型的应用程序

模糊测试框架由库、例程、开发脚步语言组成,具有可重用性和分工协作的优点。但是,模糊测试框架也具有一定的局限性和复杂性,并且需要大量的时间来进行开发。

1.2模糊测试的方法

模糊测试方法主要包括预生产测试用例、随机方法、人工协议变异测试、自动化变异、自动协议生产测试五种方法。预生产测试用例主要被应用于检测系统的规范性。虽然相同的协议可以使用同一测试用例,但是测试用例具有一定的有限性。随机方法虽然能够很快的发现软件存在着安全漏洞,但是这种方法不能够追踪到测试数据的源头。因此,随机方法并不能高效的进行工作。人工协议变异测试法比较的简便。测试者本身可以通过不合法的数据使服务器出现异常现象,提高了人工协议变异测试法的效率。自动化变异法是通过自动化来生产和发送测试数据。这需要大量的样本来覆盖数据包。自动协议生产测试是自动化变异法的升级版。这种方法需要通过语法模板来识别数据包中的静态和动态部分,提高了效率。但是这种方法中的语法模板会浪费大量的时间。

1.3模糊测试的流程

1.3.1模糊测试需要确定测试对象和输入向量

模糊测试只有选择了测试对象,才能选择模糊测试的方法和类型。应用程序在接受用户的输入数据时并没有进行及时的处理,这使得软件出现了安全漏洞。因此,模糊测试必选确认输入向量,而任何应用程序接受的数据都可以被称作是输入向量。

1.3.2通过测试对象的数据的格式

模糊测试通过自动化的方式或者变异数据样本来生产数据。

1.3.3执行模糊测试数据是和生产模糊测试数据同时进行的

执行模糊测试数据是通过自动化的方式来实现对于测试对象的启动以及将生产的模糊测试数据发送到测试对象。第四,监测异常能够追踪到引发安全漏洞的测试数据的源头。另外,监测异常的过程是可以单独进行。第五,专业人员通过手工来确定bug的可利用性。因此,专业人员必须具有一定的专业知识和相关经验。

1.4模糊测试的基本要求

模糊测试必须具有一定的可重现性。模糊测试的可重现性能够发现测试数据的源头。这样能够尽快的找到测试对象出现异常的原因。在实际的操作中,测试文档记录能够实现模糊测试的可重现性。

模糊测试通过模块化的方式使其能够被重复应用到相同的模块。这样可以为模块测试节省大量的时间,提高了模糊测试的效率

模糊测试通过代码覆盖能够使测试对象达到所以代码的数量。目前,由于代码覆盖具有一定的难度,因此模糊测试工具并不具备代码覆盖的要求。

模糊测试不仅要对测试对象进行生产和发送数据,还要对测试对象出现的异常情况进行监测。模糊测试通过通信的方式可以判定目标程序的工作状态。另外,模糊测试可以通过分析系统的文件等方法来进行目标程序的工作状态的判定。

2软件安全漏洞发掘技术的概述

2.1软件安全漏洞的内涵

软件安全漏洞主要指自动化系统的安全和管理中存在着一定的缺陷。这些缺陷能够直接或间接的影响到系统中的硬件、软件、组织等的正常活动。由于软件开发的复杂性,因此软件开发的各个阶段都会存在一定的缺陷,这些缺陷直接导致了软件安全漏洞的产生。攻击者通过这些缺陷能够得到系统的权限,从而直接破坏系统的数据。

2.2产生软件安全漏洞的原因

由于受到设计人员的专业技能和经验的限制,应用程序在设计的过程中可能会出现一些错误。另外,设计人员无法排除程序在运行过程中所出现的任何情况。因此,这些问题直接导致了软件安全漏洞的产生。

设计人员在设计的过程中只考虑到程序正常运行的情况,而忽视了程序可能出现的运行失误的问题。因此,当问题出现在设计人员假设的正常运行中时,应用程序就会出现安全漏洞。

目前,各种软件都在不断的更新,同种软件出现了大量不同的版本。而在同种软件的不同版本中也可能会出现安全漏洞的问题。另外,如果配置环境不同,那么同一个软件也会出现不同的安全漏洞。

软件在被使用之后,设计人员会从系统中会发现安全的漏洞的存在。这时设计人员就会通过更新软件来进行修补,但是软件在更新的同时也会引入新的漏洞。因此,安全漏洞会通过新的形式来代替旧的形式,并且一直存在于软件当中。

2.3软件安全漏洞的分类

软件安全漏洞主要分为缓冲区溢出、格式化字符串、整数溢出漏洞、逻辑漏洞四种。软件安全漏洞中的绝大部分都是由缓冲区溢出引起的。程序在读入数据时没有对空间进行检查,导致缓冲区的空间无法满足输入数据的长度。因此软件就会出现缓冲区溢出的现象。格式化字符串主要是由于软件不能够对输入数据进行有效的验证,使得软件出现了安全漏洞。整数溢出漏洞主要分为存储溢出、计算溢出和符号问题三种情况。整数溢出主要是由于系统的运算结果超出了整数的范围造成的。逻辑漏洞主要是由于设计人员在设计的过程中出现了失误导致程序出现了漏洞。逻辑漏洞只能通过检测相关的函数来发现。

2.4软件安全漏洞发掘的方法

2.4.1静态分析法

静态分析法通过静态分析程序来实现对于应用程序的信息和特性的获取。静态分析法主要包含有数据流分析法、补丁比较分析法、模式匹配分析法等。静态分析法的效率比较高,只需要通过很短的时间就可以完成对于软件的分析。这也成为了开发和测试人员分析软件的常用的方法。静态分析法可以使测试人员通过自动化来实现对于程序的代码的检查,并且可以同时对程序的多个数据包进行分析检查,提高了测试者的效率。因此大型项目的检查适合用静态分析法。

2.4.2动态分析法

动态分析法是指通过观察测试对象的运行过程来找出程序所存在的安全漏洞。动态分析法一方面通过设置断点来跟踪测试对象中的代码流,另一方面通过数据流来分析程序中的错误数据。首先,动态分析具有一定的准确性。在程序运行的过程中,动态分析法来实现对于程序的分析。这种分析法能够检测出程序的真实存在的安全漏洞。其次,动态分析法具有较强的针对性。动态分析法通过模拟的输入数据来对程序的运行状态进行有效的分析,这样能够更加的准确的检测到程序的异常情况。

3基于模糊测试的软件安全漏洞发掘技术的研究

3.1不安全函数定位技术

3.1.1不安全函数的含义

不安全函数是指开发人员在不当调用函数时缺乏对于函数的参数的检查,出现了具有缓冲区溢出漏洞的现象的函数。另外,开发人员会在设计的过程中大量的使用这些函数,因此,不安全函数造成了缓冲区溢出现象的出现。不安全函数的形式主要包含了两种。一种是采用普通函数调用的形式。另一种是采用函数固有形式。

3.1.2不安全函数的识别

不安全函数的识别主要是通过反汇编测试对象的代码来进行的。反汇编是将测试对象的代码转换成汇编代码,能够直接了解到测试对象的代码。反汇编可以独立的完成对于测试对象的代码的转换,因此,反汇编不具有一定的依赖性。

3.2动态追踪技术

安全漏洞的原因主要包含了程序外部和内部两个方面。一方面程序通过接收用户输入的数据而使程序出现了安全漏洞。另一方面开发人员对于软件内部的不安全函数的调用使程序出现了安全漏洞。因而,基于输入和函数调用的动态追踪技术提高了软件安全漏洞发掘技术的效率和针对性。

3.2.1输入数据截获

动态追踪技术的首要任务是对输入数据的截获。测试人员首先应找到程序存储输入数据的位置。其次,测试人员应当对输入数据的输入点进行实时的监控,这样能够对于输入数据的使用情况进行有效的跟踪。最后,测试人员可以通过动态调式工具来监控程序中接受输入数据的函数。这样能够及时的中断输入数据的存放并且确定输入点。

3.2.2监控处理输入数据的函数

动态追踪技术截获了输入数据之后,必须及时的处理输入数据。在测试对象的不安全函数调用外部输入数据时,漏洞就会在此时产生。测试对象的函数通过计算和转换外部的输入数据来检查程序的内存。如果测试人员通过测试不安全函数来进行发掘漏洞,那么则会忽视安全代码的存在。因此,测试人员将输入数据可能访问的函数作为发掘安全漏洞的测试对象。

3.3模糊数据生产技术

3.3.1基于漏洞类型的模糊数据生成

模糊测试中最主要的部分是模糊数据的生成。模糊数据的生产决定了模糊测试的可行性和效率。在测试的过程中,测试人员必须选择可能引发漏洞的模糊数据来进行测试。这样能够有效的减少模糊测试所用的时间和空间。当模糊测试的程序比较大时,如果模糊测试的用例数量多则会消耗大量的时间,可能会使模糊测试无法再规定的时间内完成。因此,选择可能引发漏洞的模糊数据进行测试能够有效的提高模糊测试的效率。

3.3.2基于代码覆盖的测试数据生成

代码覆盖主要是用来度量测试对象的测试程度。代码覆盖是将附加的代码插入到代码的源头来实现对于代码的覆盖。在模糊测试中,如果软件中的代码没有被覆盖,那么软件的代码中的安全漏洞就不能被发掘。因此,传统的黑盒测试存在着很大的漏洞,具有一定的局限性。针对这些问题,测试人员可以通过软件的代码的字符和静态整数来生成测试用例,保存测试数据,提高代码覆盖的效率,加强对于软件的代码中的漏洞的发掘。

4结语

综上所述,随着网络的发展,网络程序的安全问题受到了人们的广泛关注。软件安全漏洞使得用户的数据信息的安全受到了严重的威胁。目前,基于模糊测试的软件安全漏洞发掘技术具有着非常重要的作用。笔者在本文中分析了模糊测试的类型、方法、流程和基本要求以及软件安全漏洞的内涵、原因、原理和软件安全漏洞发掘技术的方法,通过不安全函数定位技术、动态追踪技术和模糊数据生成技术来研究基于模糊测试的软件安全漏洞发掘技术,提高了软件安全漏洞发掘的效率。

参考文献

[1]都娟.基于模糊测试方法的Web应用安全性测试技术的研究及其工具实现[D].华东师范大学,2011.

[2]苑立娟,张育玉.基于模糊测试的软件安全性测试框架的研究与设计[J].煤炭技术,2010(08).

[3]刘金刚.模糊测试下软件安全漏洞发掘技术分析[J].网友世界,2013(04).

[4]黄奕.基于模糊测试的软件安全漏洞发掘技术研究[D].中国科学技术大学,2010.

[5]王晓飞.软件安全漏洞发掘技术研究[D].国防科学技术大学,2006.

安全测试技术 篇10

当前, 很少有软件应用系统能够离开Web模式, 并且也成为了今后软件最主要的发展方向。虽然对于软件测试还仅仅处于一个起步阶段, 但是越来越多的软件公司开始重视它的存在。而一个系统质量的好坏, 测试也是一项关键性因素。

1 Web常见的安全问题

1.1 常见分类

目前, Web应用汇面临诸多风险, 对于其风险的分类以及安全漏洞也有很多种, 本文主要是通过国外权威机构对于Web安全层次性的理解, 从而将其大致分为了三个层次风险:

第一, 网络边界安全:主要是网络拓扑结构、路由器、防火墙等方面的安全性问题, 除了部分配置问题之外, 绝大部分都涉及到系统分布、结构所造成的安全性问题;第二, Web应用程序安全:Web应用程序在提供服务时可能会存在安全性漏洞, 这一些文体的出现主要是因为在变与存的时候, Web应用程序存在一定缺陷所引起的;第三, 服务于系统安全:操作系统和在操作系统上运行的应用服务的安全, 例如Unix/Window等系统本身存在漏洞或者是其上的Web应用服务器安全存在问题, 例如:Weblogic/Apache/IIS等应用服务器本身存在的安全性漏洞。

1.2 Web应用常见的安全缺陷

1.2.1网络边界

(1) 网络结构不够合理。作为Web应用服务的基础, 如果存在网络结构不合理情况, 例如:不合理的防火墙位置或者是不合理的Web应用服务器位置, 都可能导致Web应用系统安全机制失去效力, 导致Web应用完全暴露在外部攻击中, 常见的拒绝服务攻击一般都是因为网络结构的不合理, 无法对这一类型的攻击加以抵御, 甚至是因为内部病毒的传播, 也可能因为拓扑结构的不合适, 导致病毒传播。

(2) 传输层保护不够充分。传输层保护不够充分主要是在信息的传输过程中, 第三方不可信的组件获取访问, 也就是对于站点所传输的信息, 没有使用SSL/TLS进行加密或者是加密机制存在一定问题, 导致这一部分信息被非法用户获取, 甚至是对通信内容加以篡改。

1.2.2Web应用程序

(1) 输入处理错误。在Web应用程序常见的弱点中, 输入处理无措是常见的弱点之一, 例如:缓冲区的溢出、命令执行、SQL注入等都是由于输入处理错误所造成的。在进行Web应用程序的输入处理, 一般都是对输入信息加以验证、过滤、编解码等内容, 如果信息验证不全面或者是代码中存在逻辑错误, 就可能出现非法信息被当做了正常数据, 从而通过Web应用程序进行逻辑处理, 从而导致Web应用出现损害。在这一问题处理中, 需要针对所有来自客户端的数据, 例如:HTTP请求中所有内容、表单信息, 都认为可能有安全风险的存在, 只有通过检验, 才能够被逻辑程序加以处理。

(2) 输出处理错误。输出处理主要指的是应用程序如何产生输出数据, 一般来说, 错误的输出处理包含了协议错误、数据处理错误以及应用程序错误三个方面。如果信息被直接返回给访问者, 就可能导致Web应用系统敏感的信息出现泄露的情况, 或者是恶意攻击人员就可能通过返回的错误信息对于Web应用是否存在特定安全的问题加以判断。

(3) 信息泄露;信息泄露主要是Web应用程序当中敏感的信息被非法进行访问, 例如:在Web应用当中的用户设置信息、技术细节以及环境信息等方面的问题, 一旦被泄露, 就可能严重影响到Web应用。因此, 需要采取一定的手段来防止信息泄露, 一般, 主要是以下几种原因导致信息泄露:注释代码当中存在敏感信息、对于合法与非法的的输入数据应用程序都有着不同的页面相应或者是应用程序出现了配置不当等情况。

(4) 索引不安全;索引不安全主要指的是能够对敏感文件进行访问的过程对敏感信息进行访问, 以此来判断文件的存在以及文件的具体内容, 这一部分信息都是通过服务索引所获取的。针对这一个问题, 有一个典型的例子, GOOGLE HACK通过搜索引擎从而获取了站点信息, 就有可能将站点辈备份的代码位置获取、后台管理地址, 甚至包含了数据库存放的地址。像这一类型的安全攻击就难以预防, 这是因为对于合法请求、非法请求很难分开, 如果想要解决这一问题, 需要对权限加以控制, 也可以通过robots.txt等手段避免不应泄露的信息被泄露出去。

2 Web服务安全性测试框架

Web服务系统的安全性测试框架主要分为了以下几个阶段, 从下面的图1中可以看出:

第一阶段主要是确定安全目标, 确定威胁漏洞并且做好评级;第二阶段要求结合软件的具体需求以及威胁, 从而确定好测试对象与内容, 并且做好资源的分配;第三阶段的测试策略文档记录主要是做好应用系统中程序总统架构、缺陷跟踪变更以及资源需求的控制, 二测试计划主要是描述人员进度安全、测试环境以及安全测试需求等方面;在测试的执行以及报告阶段则是记录测试结果并且创建出测试报告。

3 安全性测试技术

3.1 体系安全性

测试Web应用系统的体系结构的安全性可以找出很多的漏洞, 因此, 也有利于提升Web应用系统的整体安全性。在设计阶段, 检测并修复安全漏洞, 就能够将后期出现的安全问题加以解决, 并且也有利于提高安全测试的经济型。在开发阶段, 充分考虑到目标部署环境的相关设计, 才有利于完善Web应用系统, 也有利于其安全性。

3.2 应用和传输安全

在Web应用系统设计完毕之后, 对于系统当中的漏洞, 就可以通过安全性测试对于可能存在的漏洞加以修复, 并且完善未来的设计与创建工作。“黑箱子”的测试手段也就是在正常运行使用目标系统之后, 可以通过对于Web应用系统正常运行不影响的方式进行远程的安全技术测试, 通过黑客入侵的模拟, 来实现在模拟攻击下目标系统的安全性测试。进行Web应用系统的安全性技术测试主要分为了应用级、传输级。应用级的安全性测试是通过检查Web应用系统的自我程序, 并且找出设计当中可能存在的安全漏洞, 在测试应用级上, 主要包含了目录设置、在线超时、注册、登陆、备份、恢复等多个区域测试;传输级主要是针对Web应用系统的传输特殊性, 测试目标主要是数据信息从客户端传输到服务器这一过程中的安全漏洞, 这也有利于服务器拒绝非法访问能力的提升, 传输级测试内容包含了防火墙、SSL、数据加密等。

总之, 本论文主要是基于Web常见的安全问题, 从而提出了常见缺陷和主要的安全性测试技术, 希望能够对今后的Web应用系统的安全性测试技术提供一部分帮助。

摘要:由于当前对于Web应用系统安全性的研究仅仅停留在服务安全的实现方面, 对于安全测试性技术研究依然薄弱。随着Web应用的普及, 越来越多的技术研究人员开始重视Web应用系统的安全性检测, 越来越多的检查工具被开发了出来。本文基于Web常见的安全性问题, 分析Web服务安全性测试框架, 以此来探讨安全性测试技术, 希望能够提升Web应用系统的安全性。

关键词:Web应用系统,安全性,测试

参考文献

[1]于莉莉, 杜蒙杉, 张平, 纪玲利.Web安全性测试技术综述[J].计算机应用研究.2012 (11) :56-57

[2]朱辉.沈明星.李善平.Web应用中代码注入漏洞的测试方法[J].计算机工程.2010 (10) :77-78

关于软件安全性测试方法研究 篇11

【关键词】安全性测试;安全功能测试;语法测试;模糊测试

安全性是软件质量的一个重要属性。传统上国内学者较多关注软件的失效安全性,即软件运行不引起系统事故的能力,强调的是一类安全关键软件的安全性失效可能造成重大人员伤亡、财产损失、环境污染等危险事故。

1.软件测试方法

1.1静态测试

静态测试在对软件代码进行分析、检查和测试时不实际运行被测试的程序,同时这种测试方法还可以用于对各种软件文档进行测试。例如对需求文档的验证和确认,系统设计文档的检查以及程序代码的检查。

1.2動态测试

动态测试就是通过运行软件来检验软件的动态行为和运行结果的正确性。动态测试的主要特征是计算机必须真正运行被测试的程序,通过输入测试数据,对其运行情况进行分析。

1.3黑盒测试(功能测试)

在黑盒测试或功能测试中,测试条件主要是基于程序或者系统的功能,测试人员不需要了解程序是如何运作,只是关注程序的功能是否与规格说明书所描述的一致。

1.4白盒测试(结构测试)

在此项测试中,测试条件是基于程序逻辑,测试人员查看程序或者系统的内部机构。测试人员需要了解内部程序结构和逻辑,关注生产出来的代码,而不需理会其功能是否与说明书上的功能相同。

2.安全性测试主要方法

随着软件安全性受到人们的重视,安全性测试方法相关研究取得了一定进展。

2.1形式化安全测试

形式化方法的基本思想是建立软件的数学模型,并在形式规格说明语言的支持下,提供软件的形式规格说明。形式化安全测试方法可分为两类,即定理证明和模型检测。定理证明方法将程序转换为逻辑公式,然后使用公理和规则证明程序是一个合法的定理。模型检测用状态迁移系统S 描述软件的行为,用时序逻辑、计算树逻辑或演算公式F 表示软件执行必须满足的性质,通过自动搜索S 中不满足公式F 的状态来发现软件中的漏洞。

NASA(national aeronautics and space administration)的一个实验室JPL(jet propulsion laboratory)开展过形式化安全测试方面的项目。主要思路是建立安全需求的形式化模型,例如状态机模型。输入输出序列决定安全状态转换。安全测试即搜索状态空间,看是否能从起始状态找到一条路径到达违反规约的不安全的状态。随着模型大小与复杂性增长,状态空间呈指数增长,JPL 开发了一种使用SPIN 的形式化建模框架(flexible modeling framework,FMF)解决状态爆炸问题,并开发了基于属性的测试工具(property based tester,PBT)。

2.2基于模型的安全功能测试

基于模型的测试方法是对软件的行为和结构进行建模,生成测试模型,由测试模型生成测试用例,驱动软件测试[3]。常用的软件测试模型有有限状态机、UML 模型、马尔可夫链等。

Mark Blackburn、Robert Busser 研究了基于模型的安全功能测试[4]。主要项目支撑是NIST CSD(computer security division)部门的项目Automated Security Functional Testing。主要思路是利用SCRModeling 工具对软件的安全功能需求进行建模,使用表单方式设计软件的安全功能行为模型,将表单模型转换为测试规格说明模型,利用T-VEC工具生成测试向量(由一组输入变量,期望输出变量组成),开发测试驱动模式和目标测试环境的对象映射,将测试向量输入测试驱动模式执行测试。这种方法是一种一般的安全功能测试方法,它的适用范围取决于安全功能的建模能力,特别适用于建模用与或子句表达逻辑关系的安全需求,对授权、访问控制等安全功能测试比较适用。

2.3语法测试

语法测试是根据被测软件的功能接口的语法生成测试输入,检测被测软件对各类输入的响应。接口可以有多种类型,命令行、文件、环境变量、套接字等。语法测试基于这样一种思想,软件的接口或明确或隐含规定了输入的语法。语法定义了软件接受的输入数据的类型、格式。语法定义可采用BNF或正则表达式。语法测试的步骤是识别被测软件接口的语言,定义语言的语法,根据语法生成测试用例并执行测试。

生成的测试输入应当包含各类语法错误,符合语法的正确输入,不符合语法的畸形输入等。通过察看被测软件对各类输入的处理情况,确定被测软件是否存在安全缺陷。语法测试适用于被测软件有较明确的接口语法,易于表达语法并生成测试输入的情况。语法测试结合故障注入技术可得到更好的测试效果。

2.4基于故障注入的安全性测试

Wenliang Du将故障注入技术用于软件安全性测试,建立软件与环境交互(environment-application interaction,EAI) 的故障模型。故障注入针对应用与环境的交互点,主要包括用户输入、文件系统、网络接口、环境变量等引起的故障。相关项目有OUSPG(university of oulu,secure programming group)的项目PROTOS SecurityTesting of Protocol Implementations,该项目的目标是测试协议实现的安全性。主要思路是通过构造各类协议数据包测试目标软件是否能正确处理。实质是在各类协议数据包中植入故障,如修改某些协议字段的值等,支持的协议有HTTP、SIP、WAP、SNMP等。故障注入可以有效地模拟各种各样的异常程序行为,通过故障注人函数能够强制性地使程序进入到某些特定的状态,而这些状态在采用常规的标准测试技术的情况下一般是无法到达的。

2.5 模糊测试

模糊测试是一种发现安全漏洞的有效的测试方法,在安全性测试中越来越受到重视。模糊测试将随机的坏数据插入程序,观察程序是否能容忍杂乱输入。模糊测试是不合逻辑的,只是产生杂乱数据攻击程序。采用模糊测试攻击应用程序可发现其它采用逻辑思维来测试很难发现的安全缺陷。

2.6 基于属性的测试

描述了基于属性的测试方法,采用TASPEC 语言对软件的安全属性进行描述,生成安全属性规格说明,利用程序切片技术抽取与这个安全属性相关的代码,并测试这部分代码是否违反安全属性规格说明。基于属性的测试有针对性的测试目标软件的特定安全属性,可满足安全属性的分类和优先级排序要求,且部分与具体软件无关的属性规格说明是可重用的。

3.结束语

软件测试是所有工程学科的基本组成单元,是软件开发的重要部分。软件测试是为了发现故障而执行程序的过程,其目的是以尽可能少的时间和人力发现并改正软件中潜在的各种故障及缺陷。如何利用较少的测试用例,实现最大的测试覆盖,最大限度地发现软件瑕疵,是软件测试的目标之一;制定完善的测试计划、测试方案、结果分析、文档资料管理,亦是保证软件测试功效的前提。软件测试只能查找程序中的错误,不能证明程序中没有错误。

未来软件安全性测试技术主要发展方向包括:软件授权、访问控制等安全功能建模与测试研究;形式化安全测试方法研究;基于风险的安全测试及其在软件工程实践中的应用;故障注入、模糊测试、语法测试、基于属性的安全测试方法研究;利用威胁模型与攻击树指导安全测试过程;漏洞发现过程的建模及利用模型定量预测安全漏洞。

另外近年来基于Web 服务的分布式软件快速发展,如何对Web 服务开展安全性测试是分布式软件安全性测试面临的崭新课题。 [科]

【参考文献】

[1]陆璐,王柏勇.软件自动化测试技术[M].北京:清华大学出版社,2006.

[2]郭群.软件测试设计技术[J].电脑知识与技术,2007,(17).

安全测试技术 篇12

随着信息技术的快速发展,越来越多的应用开始通过Web形式对外提供,方便快捷的Web应用在政府、企业、军队等都得到了广泛应用。然而,不安全的Web应用使得我国金融、医疗、国防、能源和其他重要网络架构面临严峻的安全威胁。随着数字化架构变得越来越复杂 并相互关联, 实现Web应用程序安全的难度也呈指数级增加。Web应用程序越来越复杂,导致固有的漏洞和缺陷越来越多,因此也正面临着来自网络的越来越多的攻击。目前,Web应用程序安全问题已经成为我国信息技术发展重要的技术挑战, 需要有针对性的防护Web应用攻击, 即针对不同的攻击行为采用不同的防护技术。因此,研究设计Web应用程序综合测试平台进行安全检测, 及时发现Web应用程序漏洞, 对于防范各类Web应用攻击意义重大。

2研究现状及存在不足

在Web应用软件分析和测试研究方面,Ricca和Tonella在中提出了一个基于UML的模型。Kung等人将Web应用软件或者Web网站用一张图来表示, 根据页面浏览的导航顺序,构建测试树,从而生成测试用例以检测状态行为错误的方法。Kallepalli等人提出了一个基于统 计使用数 据信息建 立统一的 马尔可夫 模型 (Unified Markov Model)方法用于应用测试、性能评估及可靠性分析。

在Web应用脆弱性的自动探测技术方面, 微软将安全漏洞分为十个大类, 并在此基础上明确了Web应用程序安全框架的需求。OWASP按照若干漏洞是否紧密相关、是否使用类似的反制措施和是否经常出现在Web应用体系结构的标准,给出了十大应用程序漏洞列表。文献[6,7]针对来自不可信的来源的危险数据,利用动态追踪技术(Dynamic Tainting Technique),高效探测进入敏感区的危险数据。

相对于国外, 国内对Web应用安全测试的研究还比较薄弱。比较有代表性的研究有武汉大学的卢虹等人从状态测试的角度对Web应用的测试问题进行了讨论, 清华大学的武海平等人则开发了一个Web服务器性能测试系统,合肥工业大学的吴蕾等人应用环境错误注入的方法进行了安全性测试的研究,国防科技大学的郑理华等人正在研究基于网络的Web应用安全测试评估系统, 解放军理工大学的Zhanwei Hui等人在基于软件安全缺陷(SSD)的Web应用安全测试方法上面进行了有益的探索。

通过上述国内外现状分析不难发现,我国现有Web应用安全性测试技术还不能满足信息系统建设的迫切需求,具体差距表现在几个方面。

(1) 缺乏集成统一的Web应用安全性测试框架。当前主流的Web应用测试框架和工具通常只针对某些特定Web应用安全漏洞, 无法对安全缺陷展开全面的测试,难以满足Web应用安全性测试的要求。

(2) 缺乏有效的Web应用未知漏洞的自动扫描和发现技术。当前的Web应用安全性测试主要利用渗透攻击检测已有的安全漏洞,对未知安全漏洞的检测缺乏可行的方法。

针对Web应用程序安全性测试的切实需求, 本文针对上述不足, 深入研究Web应用的安全性测试技术体系,建立一个插件式、可扩展、重动态交互的Web应用安全性测试工具。以确保安全测试准确性和高效性为出发点,突破未知漏洞智能发掘方法和支持自定义的测试工具集成方法等关键技术, 最终为Web应用安全测试提供一整套健壮的、智能化的综合测试工具奠定基础,从而在Web应用运行前和运行时,对其进行安全扫描和风险发现,确保Web应用的安全可靠运行。

3Web 应用程序安全

Web应用是一个客户机 / 服务器软件应用系统,其中的客户程序和服务器程序通过HTTP/HTTPS协议进行交互,通常包括五个组成部分,即客户端(浏览器)、Web服务器、应用服务器、Web应用程序、数据源,它们彼此之间通过一定的机制来进行通信, 典型的Web应用架构模型如图1所示。

由于组成Web应用的软件系统相对复杂, 涉及网络、操作系统、服务器等多个方法,目前国内外对Web应用安全并没有一个统一的、标准的定义。严格意义上来讲,Web应用安全应该包括其体系结构中涉及的所有安全问题,如网络安全、操作系统安全、浏览器安全、Web服务器安全、应用服务器安全等。企业、政府、军事单位多采用防火墙、SSL、杀毒软件、入侵检测系统等措施来保护Web应用安全,但据Gartner调查,当前大多数Web攻击都直接针对Web应用程序本身。攻击者通过构造表面合法的HTML、XML、SOAP和Web Services等数据流, 传送恶意代码直接针对Web应用程序的安全漏洞 进行攻击 。OWASP (Open Web Application Security Project)组织发布的Web应用程序安全风险报告显示,跨站脚本、SQL注入等已成为Web应用程序安全的重大威胁,如图2所示,传统的边界防护、病毒查杀等安全手段对此心有余而力不足。

Web应用程序是开发和组成Web应用的核心组成部分,要保护Web应用程序安全,需要针对不同的攻击行为采用不同的防护技术。这就要求在真实攻击发生前,及时的发现Web应用程序存在的各种安全漏洞,并采取相应的防范措施进行加固。WhiteHat调查报告指出,漏洞发现得越早、弥补得越及时,攻击者利用漏洞进行攻击的机会就越小。因此,深入研究Web应用程序的安全性检测技术, 开发测评工具对Web应用程序进行安全性测试,及时发现Web应用程序所存在的漏洞,对于防范Web应用攻击意义重大。

4Web应用安全综合测试平台关键技术研究

4.1 基于插件的 Web 应用安全测试集成框架

Web应用安全漏洞成为应用系统安全风险的重灾区,而且呈现逐年上升的趋势。当前的Web应用安全测试工具虽然种类繁多,但是无一例外存在一些缺陷,运行效率相对较低。为克服这些缺陷,本文设计了图3所示的基于插件的Web应用安全测试集成框架,主要由三大部分构成:插件管理部件、扫描管理部件和全局管理部件。

插件管理部件主要负责对漏洞扫描插件的管理与维护,主要包含以下模块:插件接口层,为扩展层提供插件接插的标准接口和规范;插件管理模块,维护插件库的完整性和时效性,保证框架自身的安全性;插件调度模块,根据Web应用系统的业务逻辑属性,自主智能地调度最优的测试插件进行测试,保证系统运行效率和漏洞检出率。在这三个模块之上,是插件库及插件库维护模块,插件库用于存储各种插件,包括本地库和在线库两个部分,以方便系统快速检索并加载插件,其中包括标准的CVE漏洞扫描插件、第三方基准测试插件(包含接口合规性测试等插件), 以及用户根据系统特定属性定义的漏洞扫描插件等。插件库维护模块主要负责本地库与在线库之间的插件传输、插件审核以及插件库的完 整性维护等功能。

扫描管理部件负责调用各种扫描插件,利用插件基于各种先验知识库、基准漏洞库对Web应用展开漏洞扫描。其中主要包括几种模块:知识库 / 基准漏洞库,用于存放各种已知的或习得的先验知识和基准漏洞,作为扫描以及启发式学习的基础;Web应用信息收集模块, 主要用于截获测试框架与Web应用间的消息, 以提供给扫描插件作为分析的资料;插件调用代理模块,作为具体插件在扫描部件中的抽象,通过该模块,扫描部件可以调用相应的插件,并保持扫描部件与插件管理部件的松散耦合;测试报告生成模块,根据测试结果生成相应的测试报告并反馈给测试人员。

全局管理部件,负责对整个框架的运行进行监控与支持。主要包括以下模块:系统配置模块,对全系统各个部件进行配置, 保证系统按照测试人员的预期运行;虚拟用户生成与管理模块,产生并维护具有不同权限的不同角色的虚拟用户, 利用虚拟用户可以对Web应用展开近似于实际环境的测试;用户交互模块,使用测试报告生成模块生成的测试报告产生友好的供测试员阅读的测试分析结果;错误处理模块,对系统运行中出现的错误进行及时的响应和处理。

4.2 支持未知漏洞发现的漏洞智能挖掘技术

为了最大可能的发掘新型安全漏洞、检测与具体Web应用紧密相关的安全缺陷,本文提出并设计了基于智能挖掘的未知漏洞检测方法,流程如图4所示。

在基于智能挖掘的未知漏洞检测中,智能漏洞挖掘模块在常规漏洞检测中,通过自学习服务不断学习并获取具体的业务逻辑和应用特征。然后基于已知的漏洞库,在启发模板的指导下,采取类似“基因变异”的思想, 通过未知漏洞服务生成特定的针对具体Web应用的新攻击向量,检测应用是否存在已知漏洞库之外的未知漏洞。针对各种Web应用新型漏洞和与具体应用紧密相关的漏洞层出不穷的问题,论文提出的基于智能挖掘的未知漏洞检测技术,能够采用启发式学习机制和自学习机制来检测可能存在的未知漏洞, 增强了对Web应用未知漏洞的检测能力,提高了工具自动化、智能化检测能力,能够更加有效的测试应用安全。智能漏洞挖掘建立在常规漏洞检测基础之上, 并不能取代常规漏洞检测。智能漏洞挖掘需要通过常规漏洞测试,获取Web应用输入和输出信息以及数据流、控制流信息,取得具体的应用特征后,才能扩大测试覆盖面并生成新的攻击去检测新的安全漏洞。

4.3 Web 应用安全性测试工具实现技术

根据上述理论和技术, 最后实现一个针对Web应用的可用的安全性综合测试工具。该工具将集成上述安全测试技术,对Web应用的已知漏洞、接口合规性、业务动态安全性以及未知漏洞展开全面的测试, 确保在Web应用上线前发现大部分潜在的安全漏洞,保证基于Web应用的新型信息系统的安全可靠运行。一个利用该工具的典型Web应用安全测试场景如图5所示。

测试人员使用控制台对测试工具进行配置并启动测试过程,测试框架根据测试人员的配置调用相应的插件构造测试代理(即一个经定制的测试工具的实例),该代理生成若干具有不同身份、不同角色的虚拟角色,虚拟角色通过网络向带测试的Web应用发起测试请求, 测试工具截获请求与服务返回的响应,之后使用配置好的插件对Web应用的安全漏洞进行智能的发现与挖掘,高效地发现大部分Web应用安全漏洞。

5结束语

上一篇:过压继电器与电气控制下一篇:集成体系