软件安全性测试方法研究
软件安全漏洞检测技术研究

软件安全漏洞检测技术研究一、引言随着互联网的迅速发展,软件安全问题日益突出,黑客攻击、病毒传播等威胁用户的安全和隐私。
软件安全漏洞检测技术的研究与应用逐渐成为信息安全领域的热门话题。
本文将从软件漏洞的定义和分类入手,介绍常见的软件安全漏洞检测技术和漏洞检测实例分析,并分析当前漏洞检测技术的局限和未来发展趋势。
二、软件漏洞的定义和分类软件漏洞是指在软件设计、开发或维护过程中存在的错误、疏忽或缺陷,它们可被黑客或病毒利用,以获得未经授权访问、篡改或破坏系统的权限。
根据漏洞产生原因和影响范围的不同,软件漏洞可分为以下几类:1. 输入验证漏洞该类漏洞主要是因为开发人员未对用户输入数据进行充分的验证和过滤,导致用户可以通过特定的输入陷阱欺骗服务器或程序,从而绕过安全措施,获取非法权限或窃取敏感数据。
2. 访问控制漏洞该类漏洞主要是由于访问控制机制的缺陷导致的。
攻击者可以通过非法的访问手段绕过授权管理机制,获取不应有的数据或权限。
3. 缓冲区溢出漏洞该类漏洞是指当输入的字符长度超出程序分配的缓冲区大小时,溢出的数据将被写入到相邻的内存空间中,从而导致程序崩溃,或者执行恶意代码,破坏整个系统。
4. 代码注入漏洞该类漏洞主要是由于程序没有对用户输入的数据进行过滤和校验,导致攻击者可以在输入的数据中加入特定的代码,从而达到注入或者执行非法代码的目的。
三、常见的软件安全漏洞检测技术为了保障软件安全,软件漏洞检测技术得到了广泛应用。
目前常用的软件安全漏洞检测技术如下:1. 符号执行技术符号执行技术主要是通过对程序代码进行符号执行,从而生成可达路径,并利用路径约束求解器对每一条路径进行求解,以找到程序中可能产生错误的分支和数据。
通过该技术,可以精确地找出程序中及其子系统中的漏洞,并生成相应的测试用例。
2. 静态代码分析技术该技术主要是基于程序代码结构的分析,对源代码进行扫描,检查程序中可能产生漏洞的地方,并且推导出程序中潜在的运行错误。
面向机载软件的预期功能安全分析验证过程及方法研究

gersoftheairbornesystem牞analyzetheabnormalcontrolbehavioursofthesoftwareandtheircauses牞constructtheSOTIFtestscenariosandtestcases牞andformacompleteclosed loopoftheanalysisandvalidationofthesafetyoftheairbornesoftwarebasedonSOTIF.Finally牞theeffectivenessandfeasibilityoftheresearchresultsareverifiedthroughthetypicalengineeringapplicationofSOTIFtechnologyinthewheelturningcontrolsoft ware牞theSOTIFalanysisandverificationprocessandcapabilityforairbornesoftwareareformed牞whichcansupportthedeveloperstofullyidentifythecomplexfailuressuchassoft hard couplingconflicts牞human com puterinteractionanomalies牞andscenarioswitchinganomaliesintheprocessoftheoperationoftheairbornesoftware牞soastoensurethattheairbornesoftwaremeetstherequirementsofhigh securityandhigh reliabilitydevelopment.Keywords牶SOTIF牷airbornesoftware牷safetyanalysis牷safetyvalidation 机载软件对系统任务完成与运行安全有着决定性的影响,其一旦发生失效,轻则导致任务失败,重则导致飞行事故[1]。
软件项目 采用的研究、试验方法

软件项目采用的研究、试验方法在软件项目开发过程中,采用合适的研究和试验方法对于保证项目质量和成功至关重要。
不同的研究和试验方法可以帮助项目团队更好地了解用户需求、测试产品功能、评估技术可行性以及解决各种技术难题。
本文将从不同的角度探讨软件项目可能采用的研究、试验方法,并分析它们的优缺点。
1. 用户调研用户调研是软件项目中非常重要的一环。
通过对用户需求、行为和偏好的调查和分析,项目团队可以更好地了解用户的真实需求和期望,指导产品功能的设计和开发。
常见的用户调研方法包括问卷调查、用户访谈、焦点小组讨论等。
问卷调查可以帮助项目团队快速获得大量用户反馈,但可能存在回答不真实或不完整的问题。
用户访谈和焦点小组讨论则可以深入了解用户需求背后的原因和动机,但需要花费更多的时间和人力。
2. A/B测试在软件项目中,A/B测试是一种常用的试验方法。
项目团队可以针对同一功能或设计制定两个或多个不同版本,然后让用户使用这些版本进行比较,以确定哪个版本对用户更友好或更有效。
A/B测试可以帮助项目团队快速了解用户对不同版本的偏好,帮助优化产品设计和功能。
3. 原型验证原型验证是一种通过让用户试用产品原型来获得用户反馈的方法。
项目团队可以制作产品的初步原型,并邀请用户参与试用和评估。
通过观察用户在试用过程中的行为和反馈,项目团队可以及时发现并解决产品设计中的问题,确保最终产品符合用户期望。
4. 技术可行性分析在软件项目的早期阶段,项目团队需要进行技术可行性分析,评估所选技术方案是否能够满足项目需求,并确定最佳的技术架构和实现方式。
技术可行性分析通常包括原型实现、性能测试、安全性评估等试验方法,以验证技术方案的可行性和稳定性。
软件项目采用的研究、试验方法多种多样,每种方法都有其适用的场景和优缺点。
项目团队需要根据项目需求和目标,选择合适的方法来帮助解决问题和取得进展。
通过不断尝试和验证,项目团队可以逐步改进产品设计和开发流程,提高项目成功的概率。
软件可靠性分析与评估方法研究

软件可靠性分析与评估方法研究软件在现代社会已经无处不在。
从个人电脑到移动设备,从医疗设备到工业控制系统,几乎所有的领域都依赖于软件的运行。
然而,软件的可靠性一直是一个重要的挑战。
软件的错误可能导致严重的损失,包括财务损失、人身伤害、甚至生命危险。
因此,对软件进行可靠性分析和评估是保证软件运行安全性的重要一环。
软件可靠性是指在规定的环境和条件下,软件在一定时间内能够按照要求进行工作的能力。
为了评估软件的可靠性,需要科学有效的方法来分析和评估软件系统的性能和可靠性,以及发现和解决潜在的问题。
下面将介绍几种常见的软件可靠性分析和评估方法。
1. 故障树分析(FTA)故障树分析是一种用于分析软件系统故障的可靠性工具。
它通过构建故障树来分析和评估系统中可能发生的故障,以及故障发生的条件和原因。
故障树是一个由事件和逻辑门组成的树状结构,通过分析逻辑关系和概率计算,可以确定导致系统故障的主要原因和潜在风险。
2. 可靠性块图(RBD)可靠性块图是一种图形化工具,用于描述和评估系统的可靠性。
它通过将系统划分为不同的块和连接它们的可靠性连接符号来表示系统的结构和功能。
通过计算不同块之间的可靠性指标,可以评估系统在不同条件下的可靠性表现,并找出可能导致系统故障的关键组件。
3. 可靠性指标模型(RIM)可靠性指标模型是一种数学模型,用于度量软件系统的可靠性。
它通过定义和计算不同的可靠性指标,如平均故障间隔时间(MTBF)、故障率(Failure Rate)和可用性(Availability),来评估系统的可靠性性能。
可靠性指标模型可以帮助分析和预测系统的可靠性,并制定相应的改进和优化策略。
4. 可靠性测试可靠性测试是一种直接评估软件系统可靠性的方法。
它通过设计和执行一系列测试用例,模拟和测量系统在特定条件下的行为和性能,从而评估系统的可靠性。
可靠性测试可以揭示系统可能存在的缺陷和故障,并为改进和优化系统提供参考。
5. 可靠性建模与仿真可靠性建模与仿真是一种基于数学模型和仿真技术的软件可靠性评估方法。
安全关键软件安全性评估方法

。
软 件 安 全 可 靠 度 (ot aesft e a it) 在 s f r aeyrl bly : w i i
规 定 的 条 件 下 和 规 定 的 时 间 内 , 件 执 行 任 务 过 软
有模糊 信 息 , 取 的风 险水 平也 是模糊 的 。 获 于是 一些 研 究 者试 图引 入模 糊 数学 方 法 进行 模 糊 信 息处 理 , 以方 便 软件 安 全性 评估 , 献 [ ] 出 , 于 软件 测 文 9提 基 试 阶段 的客 观 失效 数 据 , 用语 言变 量表 述 安 全性 评
究。
1 软 件 安 全 性 评 估 方 法 的分 类及 发展
李 新俊 、 金力 等分 别 在文 献 [ — ] 23 中对 软件 安 全 性 评估 方法 进行 了总 结 和分析 , 文在 此基础 上 , 本 针
对 查 阅的科 研文 献从 安全 性评 估方 法所 需 的输 人 数
计、 测试 、 验证 与确 认 、 估 等方 面 。 件安 全性 评估 评 软 的 目的是 判 断软件 安全 性是 否 满足要 求 。本文 针 对
s f t e u r m e t fs s e ,t e e o e t h s v r m p r a t sg i c n e t n u e a d v rf o t r a e y r q ie n s o y t m h r f r ,i a e y i o t n i n f a c o e s r n e iy s fwa e i
2
平 均 事 故 间 隔 时 间 MTB men t ewen A( a i bt e me ac et : 软 件 事故 概率 的倒 数 , 为 7 , : ci n ) 为 d 计 即
软件测试方法分析与实践的开题报告

软件测试方法分析与实践的开题报告一、选题背景随着现代软件开发的迅速发展,软件质量的要求也越来越高,软件测试作为软件质量保证的重要手段,成为软件开发过程中不可或缺的一环。
软件测试方法是指在软件测试过程中采取的具体的测试手段和技术方法。
不同的测试方法可以用来测试不同类型的软件,可以检测出不同的缺陷和问题。
因此,了解和掌握各种测试方法对于软件测试工作的有效性和效率具有重要的意义。
二、研究目的本文主要是对于现有的软件测试方法进行分析和总结,通过对比分析各种测试方法的优缺点以及适用场景,拓展软件测试工程师的测试视野,提升软件测试工程师的测试能力和水平。
具体目的如下:1. 分析现有的软件测试方法,对测试方法的特点、优点和缺点进行分析,总结各种测试方法的适用场景,并进行比较和评价。
2. 针对某些测试方法的特点和问题,提出一些测试方法的改进和优化策略。
3. 探讨不同领域和应用场景下,应如何选择合适的测试方法,以达到最优的测试效果。
三、研究内容和方法1. 研究内容本文主要从软件测试方法的角度来对软件测试进行研究。
主要包括以下内容:1.1 常见的测试方法,包括黑盒测试、白盒测试、灰盒测试、功能测试、性能测试、负载测试、安全测试等。
1.2 对测试方法进行分析,总结测试方法的特点、优点和缺点,并比较各种测试方法的适用场景,以便更好地选择合适的测试方法。
1.3 针对某些测试方法的问题,提出一些改进和优化策略。
1.4 探讨不同领域和应用场景下,应如何选择合适的测试方法,以达到最优的测试效果。
2. 研究方法本文采用文献调研和案例分析相结合的方法来进行研究。
具体如下:2.1 文献调研:对现有的软件测试方法进行系统的梳理和分析,搜集和整理相关的文献和数据,对不同的测试方法进行研究和探讨。
2.2 案例分析:通过对不同类型软件的测试实例进行分析,评估不同测试方法的适用情况和测试效果,对测试方法的选择和使用提出建议和思考。
四、研究意义本文对于软件测试方法进行研究和总结,具有以下意义:1. 通过对软件测试方法的分析和总结,帮助测试工程师更好地选择适合的测试方法,提高测试效率和测试质量,确保软件的质量和稳定性。
软件安全策略研究

软件安全策略研究bug与漏洞随着现代软件工业的发展,软件规模不断扩大,软件内部的逻辑也变得异常复杂。
为了保证软件的质量,测试环节在软件生命周期中所占的地位已经得到了普遍重视。
在一些著名的大型软件公司中,测试环节(QA)所耗费的资源甚至已经超过了开发。
即便如此,不论从理论上还是工程上都没有任何人敢声称能够彻底消灭软件中所有的逻辑缺陷--bug。
在形形色色的软件逻辑缺陷中,有一部分能够引起非常严重的后果。
例如,网站系统中,如果在用户输入数据的限制方面存在缺陷,将会使服务器变成SQL注入攻击和XSS(Cross Site Script,跨站脚本)攻击的目标;服务器软件在解析协议时,如果遇到出乎预料的数据格式而没有进行恰当的异常处理,那么就很可能会给攻击者提供远程控制服务器的机会。
我们通常把这类能够引起软件做一些"超出设计范围的事情"的bug称为漏洞(vulnerability)。
(1)功能性逻辑缺陷(bug):影响软件的正常功能,例如,执行结果错误、图标显示错误等。
(2)安全性逻辑缺陷(漏洞):通常情况下不影响软件的正常功能,但被攻击者成功利用后,有可能引起软件去执行额外的恶意代码。
常见的漏洞包括软件中的缓冲区溢出漏洞、网站中的跨站脚本漏洞(XSS)、SQL注入漏洞等。
漏洞挖掘、漏洞分析和漏洞利用利用漏洞进行攻击可以大致分为漏洞挖掘、漏洞分析、漏洞利用三个步骤。
这三部分所用的技术有相同之处,比如都需要精通系统底层知识、逆向工程等;同时也有一定的差异。
1.漏洞挖掘安全性漏洞往往不会对软件本身功能造成很大影响,因此很难被QA工程师的功能性测试发现,对于进行"正常操作"的普通用户来说,更难体会到软件中的这类逻辑瑕疵了。
由于安全性漏洞往往有极高的利用价值,例如,导致计算机被非法远程控制,数据库数据泄漏等,所以总是有无数技术精湛、精力旺盛的家伙在夜以继日地寻找软件中的这类逻辑瑕疵。
软件安全性测试技术研究

软件安全性测试技术研究随着信息化时代的到来,越来越多的企业和个人开始使用软件来解决实际问题。
然而,随之而来的软件安全问题也越来越严重,各种安全漏洞、恶意程序和网络攻击频繁出现。
这给用户带来了很大的安全隐患,也给开发者带来了很大的压力。
为保障软件系统的安全性,软件安全性测试技术应运而生。
一、软件安全性测试的概念软件安全性测试是指对软件系统进行安全分析和漏洞探测的过程。
其目的是发现软件系统中潜在的安全漏洞和缺陷,并对它们进行修补,以提高软件系统的安全性和可靠性。
软件安全性测试主要包括黑盒测试和白盒测试两种方法。
二、黑盒测试黑盒测试是一种测试方法,其测试者对被测试软件的内部结构和代码并不了解,只是通过输入某些数据和指令来观察其输出结果,从而分析软件系统的安全性能。
黑盒测试主要检测软件系统的安全性能如:密钥管理、认证、授权等。
三、白盒测试白盒测试相较黑盒测试,在测试的过程中需要对被测试的软件进行源代码分析,从而获取其内部的运行细节和逻辑结构,以更深入地挖掘软件系统中可能存在的问题,对软件系统进行安全性能评估。
四、软件安全性测试技术的研究方向1.漏洞挖掘技术随着软件系统的更新换代,越来越多的漏洞被发现和公开。
漏洞挖掘技术是指通过黑盒、白盒等方式对程序进行测试,尝试发现其中可能存在的漏洞和弱点。
2.静态分析技术静态分析技术是指对软件程序源代码进行分析的过程,以检测代码中可能存在的问题和风险。
静态分析技术分为两种:符号执行技术和抽象解释技术。
前者是对程序的各个语句和数据进行符号化,从而在程序实际执行之前进行分析,发现程序中可能存在的问题;而后者是以程序的抽象形式为基础,对其进行逐一分析。
3.动态测试技术动态测试技术是指在执行程序的同时,监测程序的行为和输出结果,以判断程序的运行是否符合预期。
动态测试技术分为两种:代码插桩技术和模糊测试技术。
前者通过在程序的执行路径上插入各种监测点,对程序的运行过程进行监控和调试;后者则是通过在程序输入的数据中注入各种形式的模糊性,尝试让程序运行出各种可能的异常情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安全性测试(Security Testing)的主要方法和技术。
2 安全性测试的特点和分类
软件安全性测试是确定软件的安全特性实现是否与预期 设计一致的过程, 包括安全功能测试、渗透测试与验证过程。软 件安全性测试有其不同于其它测试类型的特殊性, 安全性相关 缺 陷 不 同 于 一 般 的 软 件 缺 陷 。一 个 很 难 发 现 的 软 件 安 全 漏 洞 可 能导致大量用户受到影响, 而一个很难发现的软件缺陷可能只 影 响 很 少 一 部 分 用 户 。安 全 性 测 试 不 同 于 传 统 测 试 类 型 最 大 的 区别是它强调软件不应当做什么, 而不是软件要做什么。非安 全性缺陷常常是违反规约, 即软件应当做 A, 它却做了 B。安全 性 缺 陷 常 常 由 软 件 的 副 作 用(Side- Effect )引 起 , 即 软 件 应 当 做 A, 它做了 A 的同时, 又做了 B。传统 测试 类 型 强调 软 件 的肯 定 需 求 (Positive Requirements), 例 如 用 户 账 户 3 次 登 陆 失 败 则 关 闭 此 账 户 。 安 全 性 测 试 更 强 调 软 件 的 否 定 需 求 (Negative Re- quirements), 例如未授权用户不能访问数据。技1Fra bibliotek引言术
安 全 性 是 软 件 质 量 的 一 个 重 要 属 性 。传 统 上 国 内 学 者 较 多
创 关 注 软 件 的 失 效 安 全 性(Safety),即 软 件 运 行 不 引 起 系 统 事 故 的 能力, 强调的是一类安全关键软件的安全性失效可能造成重大
新 人员伤亡、财产损失、环境污染等危险事故。对失效安全性的度 量 主 要 有 建 立 在 可 靠 性 理 论 基 础 上 的 安 全 度 、失 效 度 、平 均 事
施寅生: 硕士研究生 基 金 资 助 : 总 装 “十 一 五 ”预 研 项 目 (编 号 不 公 开 )
软 件 安 全 性 测 试 可 分 为 安 全 功 能 测 试 (Security Functional Testing)和 安 全 漏 洞 测 试 (Security Vulnerability Testing)两 个 方 面。安全功能测试基于软件的安全功能需求说明, 测试软件的 安全功能实现是否与安全需求一致, 需求实现是否正确完备。 软 件 安 全功 能 需 求主 要 包 括数 据 机 密性 、完 整 性、可 用 性 、不 可 否 认 性、身 份 认 证、授 权 、访 问控 制 、审 计跟 踪 、委 托、隐 私 保 护 、 安全管理等。安全漏洞测试从攻击者的角度, 以发现软件的安 全 漏 洞为 目 的 。安全 漏 洞 是指 系 统 在设 计 、实 现、操 作 、管 理 上 存 在 的 可 被 利 用 的 缺 陷 或 弱 点 。漏 洞 被 利 用 可 能 造 成 软 件 受 到 攻击, 使软件进入不安全的状态, 安全漏洞测试就是识别软件 的安全漏洞。
注人函数能够强制性地使程序进入到某些特定的状态, 而这些 状态在采用常规的标准测试技术的情况下一般是无法到达的。
3.5 模糊测试 模糊 测 试(Fuzz Testing)是一 种 发 现安 全 漏 洞 的 有 效 的 测 试 方法, 在安全性测试中越来越受到重视。模糊测试将随机的坏 数据插入程序, 观察程序是否能容忍杂乱输入。模糊测试是不 合逻辑的, 只是产生杂乱数据攻击程序。采用模糊测试攻击应 用程序可发现其他采用逻辑思维来测试很难发现的安全缺陷。
冲区溢出等。
创
新
图 1 自动化安全功能测试处理流程图 3.3 语法测试 语法测试是根据被测软件的功能接口的语法生成测试输 入, 检测被测软件对各类输入的响应。接口可以有多种类型, 命 令 行 、文 件 、环 境 变 量 、套 接 字 等 。语 法 测 试 基 于 这 样 一 种 思 想 , 软 件 的 接 口 明 确 或 隐 含 规 定 了 输 入 的 语 法 。语 法 定 义 了 软 件 接 受的输入数据的类型、格式。语法定义可采用 BNF 或正则表达 式。语法测试的步骤是识别被测软件接口的语言, 定义语言的 语法, 根据语法生成测试用例并执行测试。生成的测试输入应 当包含各类语法错误,符合语法的正确输入, 不符合语法的畸形 输入等。通过查看被测软件对各类输入的处理情况, 确定被测 软 件 是 否 存 在 安 全 缺 陷 。语 法 测 试 适 用 于 被 测 软 件 有 较 明 确 的 接口语法, 易于表达语法并生成测试输入的情况。语法测试结 合故障注入技术可得到更好的测试效果。 3.4 基于故障注入的安全性测试 Wenliang Du 将故 障 注入 技 术 用 于 软 件 安 全 性 测 试 , 建 立 软件与环境交互(Environment- Application Interaction , EAI)的 故 障模型。故障注入针对应用与环境的交互点, 主要包括用户输 入 、文 件 系统 、网 络 接口 、环 境 变量 等 引 起的 故 障 。相关 项 目 有 OUSPG (University of Oulu, Secure Programming Group)的 项 目 PROTOS Security Testing of Protocol Implementations, 该 项 目 的 目 标 是 测 试 协 议 实 现 的 安 全 性 。主 要 思 路 是 通 过 构 造 各 类 协 议 数 据 包 测 试 目 标 软 件 是 否 能 正 确 处 理 。实 质 是 在 各 类 协 议 数 据 包中植入故障, 如修改某些协议字段的值等, 以发现被测软件 是否存在安全漏洞, 支 持 的协 议 有 HTTP、SIP、WAP、SNMP 等。 故障注入可以有效地模拟各种各样的异常程序行为, 通过故障
3 安全性测试主要方法
随着软件安全性受到人们的重视, 安全性测试方法相关研 究取得了一定进展。
3.1 形式化安全测试 形式化方法的基本思想是建立软件的数学模型, 并在形式 规 格 说 明 语 言 的 支 持 下 ,提 供 软 件 的 形 式 规 格 说 明 。常 用 的 形 式 规格 说 明语 言 有 基于 模 型 的语 言,如 Z、VDM 和 B 等 ; 基 于 有 限 状 态 的 语 言,如 有 限 状 态 机 、SDL 和 状 态 图 等;基 于 行 为 的 语 言, 如 CSP、CCS、LOTOS 和 Petri 网等。形式化安全测试方法可分为 两类, 即定理证明和模型检测。定理证明方法将程序转换为逻 辑 公 式,然 后 使 用 公 理 和 规 则 证 明 程 序 是 一 个 合 法 的 定 理 。模 型 检测用状态迁移系统 S 描述软件的行为,用逻辑公式 F 表示软 件执行必须满足的性质, 通过自动搜索 S 中不满足公式 F 的状 态 来 发 现 软 件 中 的 漏 洞 。 National Aeronautics and Space Ad- ministration (NASA)的 一个 实 验 室 Jet Propulsion Laboratory (JPL) 开 展 过 形 式 化 安 全 测 试 方 面 的 项 目 。主 要 思 路 是 建 立 安 全 需 求 的形式化模型, 例如状态机模型。安全测试即搜索状态空间, 看 是否能从起始状态找到一条路径到达违反规约的不安全的状 态。形式化安全测试方法有一定的局限性。对于定理证明方法 , 由于定理证明过程难以完全自动化, 需要高素质分析人员的大 量参与,证明过程非常耗时费力,一般只用于验证设计阶段的程
(北京系统工程研究所)施 寅 生 邓 世 伟 谷 天 阳
S HI YINS HENG DENG S HIWEI GU TIANYANG
摘要:软 件 安 全 性 测 试 是 保 证 软 件 安 全 性 的 重 要 手 段 。本 文 论 述 了 软 件 安 全 性 测 试 的 特 点 和 主 要 内 容 , 重 点 研 究 了 国 内 外 软
技 Lori Pollock 提 出 一 种 基 于 动 态 编 译 技 术 的 安 全 测 试 框 架 , 可
在 程 序 运 行 时 插 入 攻 击 代 码 , 测 试 安 全 机 制 是 否 可 用 完 备 。主
术 要用 来 测试 基 于 程 序 的 攻 击(Program- Based Attacks),如 堆 栈 缓
属 性 。软 件 安 全 性 是 软 件 在 受 到 恶 意 攻 击 时 仍 提 供 所 需 功 能 的
能力。对于保密安全性测试(Security testing), 目前主要有静态分
析、形 式 化方 法 、故 障注 入 、基 于模 型 的 测试 、基 于 属性 的 测 试、
语法测试、模糊测试(Fuzz Testing)等测试方法。本文将重点关注
- 56 - 360元 / 年 邮局订阅号: 82-946
《现场总线技术应用 200 例》
您的论文得到两院院士关注
信息安全
序规范而非实际代码。对于模型检测方法, 由于需要穷尽程序 的所有实际执行状态,所以模型检测的效率较低,并且很难检验 无穷状态系统。
3.2 基于模型的安全功能测试 基于模型的测试方法是对软件的行为和结构进行建模, 生 成测试模型, 由测试模型生成测试用例, 驱动软件测试。常用的 软件测试模型有有限状态机、UML 模型、马尔可夫 链 等 。Mark Blackburn、Robert Busser 研 究 了 基 于 模 型 的 安 全 功 能 测 试 。 主 要项目支 撑 是 NIST Computer Security Division (CSD)部 门 的 项 目 Automated Security Functional Testing。 主 要 思 路 是 利 用 SCRModeling 工 具 对 软 件 的 安 全 功 能 需 求 进 行 建 模 , 使 用 表 单方式设计软件的安全功能行为模型, 将表单模型转换成测 试 规 格 说 明 模 型 , 利 用 T- VEC 工 具 生 成 测 试 向 量 (由 一 组 输 入 变 量 , 期 望 输 出 变 量 组 成 ), 将 测 试 向 量 输 入 测 试 驱 动 执 行 测 试(如 图 1)。 这 种 方 法 是 一 种 一 般 的 安 全 功 能 测 试 方 法 , 它 的适用范围取决于安全功能的建模能力, 特别适用于建模用 与 或 子 句 表 达 逻 辑 关 系 的 安 全 需 求 , 对 授 权 、访 问 控 制 等 安 全功能测试比较适用。