段凤
摘 要:近年来我国网络技术发展较快,加上计算机技术应用范围不断扩大,各类软件普及率在不断提升。开放性网络环境下,加上软件复杂程度、软件漏洞不断递增导致多项损失在逐步递增。软件安全性问题受到社会多领域高度关注,其中软件安全测试技术运用能有效补充软件应用中的各项缺陷而诞生。软件安全性测试技术能有效降低软件应用风险,保障软件应用安全性。目前要合理运用安全性测试技术,便于更好地掌握各类软件应用,能学会规避软件运用中的各项风险,构建稳定的软件应用环境,维护社会安定。
关键词:开放网络环境 软件 安全性测试技术 措施
中图分类号:TP311 文献标识码:A
Analysis of Software Security Testing Technology in Open Network Environment
DUAN Feng
(Changchun Jida Zhengyuan Information Technology Co., Ltd., Changchun, Jilin Province, 130000 China)
Abstract: In recent years, China's network technology has developed rapidly, coupled with the continuous expansion of the application scope of computer technology, the popularity of all kinds of software is constantly improving. Under the open network environment, coupled with the increasing complexity of software and software vulnerabilities, many losses are gradually increasing. The problem of software security is highly concerned by many fields of society, among which the application of software security testing technology can effectively supplement various defects in software applications. Software security testing technology can effectively reduce software application risks and ensure software application security. At present, it is necessary to make rational use of security testing technology to better master various software applications, learn to avoid various risks in software application, build a stable software application environment, and maintain social stability.
Key Words: Open network environment; Software; Security testing technology; Measure
軟件安全性主要包含软件失效安全性、保密安全性,其中失效安全性就是在软件不间断运行中,不会产生系统故障的能力。从软件安全性运行现状中能得出,安全性失效会导致单位财产、环境污染、人力损失等问题产生。保密安全性是各类软件运行中预防数据、程序非法窃取的能力。
1软件漏洞的相关概述
计算机安全漏洞又称之为计算机脆弱性问题,在计算机系统中对各类软件进行安装,需要设定系统软件防火墙技术、杀毒应用软件等。主要是为了能有效控制计算机系统软件漏洞中的多项安全威胁问题,安全漏洞就是应对各类恶意代码程序,之后其会伪装成各类正规应用文件。计算机应用人员打开或是通过后门入侵到计算机系统内,对计算机产生不同损害。从目前实际发展现状中能得出,目前各类杀毒应用软件以及防火墙技术运用具有较强的防范能力,但当黑客入侵电脑之后,会有部分漏洞问题得到有效巡查。但是未得到巡查的部分,将会致使黑客产生恶意攻击行为,导致诸多信息泄露以及信息完整性受损。所以在杀毒应用软件、防火墙运用中,在软件安装中要注重对各项负面问题集中管控,避免对计算机系统运行产生不良影响。目前可选取的防范技术主要是设定密码,但是仍旧存有诸多漏洞,需要将二者有效结合运用[1]。
2软件安全性测试的特点与分类分析
在软件安全性测试中更突出软件不应该去做什么,并非是应该执行什么。例如:软件应用阶段存在的缺陷问题产生的影响较小,但是难以发现部分软件中存有的致命性漏洞错误,这样将会导致诸多用户产生多项损失。软件安全性测试中会受到特殊性、安全性要素影响,与软件非安全性测试相比,安全性测试更加关注软件运行中的否定要求。例如软件在运行中,应用人员在登陆三次失败之后会锁定账号。与非安全性测试中的违反常规操作相比,安全性测试不足之处就是其会受到软件自身多项副作用影响。比如在非安全性测试中,原本要做G,最终做成了F。在安全性测试缺陷中,本应该做G,但是在做完G的同時顺带做成了F[2]。
在软件安全测试中,主要涉及到安全功能测试、安全漏洞测试。在软件安全漏洞中,需要在软件系统设计以及应用中,存有较多可被利用的漏洞。这样会导致较多不法分子对诸多软件漏洞不合理利用,会致使软件运用处于不安全的环境中。因此,在运用软件安全漏洞测试中,需要规范化整合软件中多项漏洞问题,做好规范化修补。对安全需求合理把控,主要是提升多项数据机密性、完整性、可靠性、不可否认性。其中还涉及到访问设置、追踪追查、身份认证、隐私保护等。
3软件安全性测试主要方法应用分析
3.1基于故障注入的安全性测试
故障注入的软件安全性测试中,相关技术人员需要基于各类协议数据包来植入不同的故障类型,这样能精确化测试出不同的目标软件能否对各类预制故障展开处理。在测试中通过Wenling Du组建,实现各类软件与环境合理交互,将故障注入技术用于各类安全性故障测试。此类操作是对协议中诸多数据合理修改,主要运用协议是HIP、HTTP、SNMP、WAP等。故障注入是基于故障注入函数,展开故障多重模拟,将程序强制性引入到不同状态中,当选取常规性故障测试技术将难以展开多向侦查。
3.2基于自盒的安全性测试
此项测试的重点是实现静态化分析,是用于不同数据竞争、缓冲区溢出等常见安全性缺陷代码模式。目前可用的主要有技术推断、约束性分析、数据流分析。在程序运行阶段为了能补充攻击性代码,以此来判断测试安全机制是否可用。在动态编译技术运用中来构建安全测试框架,这样能基于测试对程序运行中的各项攻击行为进行判断[3]。
3.3攻击树理论与威胁模型
在安全性研究方法运用中主要能对运用方法实施划分,分别为基于漏洞以及各项安全威胁的实践方法。在漏洞处理中运用多类软件实现安全漏洞识别,以此来识别软件内部存有的各项安全漏洞,来提升软件整体安全性。在安全性威胁中是基于程序分解,对出口点、入口点、数据流实施精准化描述与识别。当前要重点做好多项步骤的精准识别,以此来判断软件运行中的各项安全风险,对此类问题进行测试来判断其是否能正常运行。常用的威胁分类方式主要有信息泄露、信息篡改、拒绝服务、欺骗行为等。
4安全性测试的主要方法探析
4.1形式化安全测试
在此项安全测试中需要技术人员全面构建多样化的数学模型,基于规范化、科学化的语言应用为软件补充多项说明。当前能将此类测试方式进行针对性划分,首先是展开定理证明,要将多类软件程序转化为逻辑公式。在应用前基于各类理论、规则来精确判断各类程序合法性以及合规性。在模型检测阶段,要对软件行为实施精准化描述。其中S状态对应状态迁移系统,在软件描述执行中对于满足性质方面基于计算树逻辑F进行表示,再基于S展开自动化探索。这样能精准化找寻不满足F公式的状态,以此来整合各项软件漏洞问题。NASA实验室内JPL可以展开形式化安全测试,做好模型组建。例如在状态机内,可以对软件采取安全测试,实现状态空间搜索。集中判断多项应用路径中存有的违规不安全状态,这样能实现模型优化。对状态空间合理调整,还能对状态爆炸现状集中调控[4]。
4.2在模型基础上的安全功能测试
现阶段要进一步规范软件行为以及建模构建,之后再将软件模型对应生成相应的测试应用软件。目前可用的有有限状态机、马尔科夫链、UML模型等,对Robert Busser以及Mark Blackburn中的安全功能测试进行扩散。通过SCRModeling进行建模,在表单形式上组建对应的安全行为模型,再将表单模型合理转为说明模型。之后再生成向量,主要包含输出与输入变量。对各类驱动模式深入研发与测试,之后将测试向量输入测试驱动模式中,对测试模式运行现状进行调控。通过安全功能屙屎,能有效获取软件整体安全状态,但是此类测试仅仅适用于安全功能建模能力达到一定状态之后[5]。
4.3语法测试运用
目前接口类型较多,涉及到命令行、环境变量等,接口要对应需要输入的语法,此类语法会对数据格式、数据类型实施精确化定义。测试阶段,常规的测试就是对接口语法形式进行有效辨识。这样能产生多样化的测试用例,便于测试行为的有效执行。在测试范围调整中要对错误、不正确、不合理的语法进行覆盖,做好软件缺陷处理,可以结合测试需求将语法测试与故障注入技术有效结合。
4.4模糊测试
在软件安全漏洞整合中,要全面发挥模糊测试方法运用价值,将较多不完善的数据集中整合插入到应用程序中。以此来判断软件程序是否能接受较多的数据输入,综合判断模糊测试是否符合逻辑状态。通过杂乱数据供给来实现目标测试,通过间接性测试来判断逻辑思维中存有的安全漏洞问题。
5软件安全性测试的分析步骤
5.1故障检测处理软件分析思路
软件安全性分析要注重从软件运行环境条件以及异常影响进行分析,从软件自身性能需求、功能现状、设计实现临界条件等方面展开分析。分析的重点是从系统角度出发,对软件相关危险性进行分析,分析软件对系统产生的各项影响。如果在整体规定范围内,软件对系统产生的影响不会导致系统转入到不安全状态,其能判断为软件为安全的。所以在故障检测处理软件安全性分析中要选取以下思路,分析系统中存有的和软件相关的危险模式,据此来判断安全性关键的软件功能与对应特性。之后在分析影响安全性关键软件的功能与特性,由此判断软件中存有的危险要素。此外,还要对软件实现细节展开深入分析,精确化识别软件中影响系统安全的危险要素。对软件实现细节深入分析,识别软件中存有的设计缺陷。最后对分析结果展开总结归纳,判定软件危险风险系数等级。
要综合判断故障检测处理软件自身规模与特征,对故障检测软件实施多层次安全性划分。在功能层次上要注重对系统软件安全性需求进行判断,此部分内容主要涉及到系统级、分系统级、软件安全性分析工作、软件安全性需求分析。着重对软件发生概率、危险模式进行分析,整合安全性验证要求,对软件异常情况进行判断。做好软件功能设计完备性判断,分析软件应用能否满足系统整体安全性要求。在代码层次设计中需要对软件细节展开安全性分析,重点判断软件安全性需求实现的正确性、软件设计缺陷、软件应用临界条件相关问题,分析系统安全性的负面影响要素等[6]。
5.2主要分析步骤
当前相关人员要全面展开系统安全性分析,获取与应用软件相关的系统危险模式。在系统安全性分析基础上要对软件安全需求合理分析,判定软件安全性需求、安全性关键应用软件特征,标识出软件顶层设计结构中存有的不安全模式,做好软件危险问题排序分析。相关人员要做好软件代码以及测试覆盖分析,判定软件源代码设计的规范性、适用条件以及合理性,软件测试覆盖能否满足整体要求,加上软件运行中存有的不安全模式以及危险发生概率。对全部结果实施归纳,判定软件危险风险系数。
要重点做好软件安全性需求分析、软件代码安全性分析,并对其进行全面说明。首先从功能层次方面来看,要注重从系统化角度出发对软件安全性需求展开分析,此部分内容主要涉及到系统级、分系统级以及软件安全性分析活动、软件安全性需求分析。着重对软件相关的危险模式、发生概率进行判断,判定系统对软件安全性验证的各项要求。掌握软件承受异常问题的能力,以及软件功能设计的完备性、正确性,判定软件能否适应系统整体安全性要求。
在代码层次中要从设计角度对软件展开细节化的安全性分析,重点判断软件安全性需求实现的正确性、软件应用临界条件、软件设计缺陷等,判定系统安全性产生的多重负面影响。相关人员要展开系统安全性分析,获取和软件相关的系统危险模式。在系统安全性分析中要做好软件安全需求分析,分析软件安全性需求以及关键软件特性,标识出软件顶层设计中存有的不安全模式,展開软件应用危险系数排序。对软件代码以及测试覆盖分析,判定软件源代码设计的合理性、正确性以及对应的适用条件。分析软件测试覆盖以及整体要求符合性,判定软件存有的不安全模式以及发生概率。对各项结果集中归纳,判定软件风险系数。对软件安全型需求合理分析,做好软件代码安全性分析说明[7]。
在软件安全性需求分析阶段,需要参照以下步骤展开。在系统以及分系统层次分析中,和软件相关的系统、硬件、工作时序等,要判定软件对应的故障模式以及危险问题发生概率,做好输入、输出信号关键性等级判断。在系统以及分系统分析中,对软件存有的危险问题要注重做好深入细化分析,判定软件运行中各项问题的发生概率,这样能对安全性运行模式、控制模式实施有效转化,对关键控制信号以及功能分析重点进行判断。
当前要对不同运行状态中软件执行功能、控制流、数据流进行分析,做好逻辑判断,分析和系统安全相关的重要功能以及间接性功能。对此类功能的失效模式展开分析,提出对应的纠正措施,估算出问题产生概率。对软件功能执行方式、触发条件进行判定,分析软件功能执行时序以及对应的失效模式,提出具体的纠错措施。对软件安全型需求以及关键性特性进行确定,具体标出顶层设计结构中的不安全模式,展开危险排序。在软件代码以及测试覆盖分析中,要做好代码数据分析,主要涉及到变量定义分析、变量初值分析、变量限幅分析、变量计数清零分析、变量应用分析等。代码接口分析过程中,要注重做好输入地质、逻辑分析、输出时序分析、硬件初始化分析、软件内部接口分析、公共区域应用分析等。全面掌握多项安全性分析技术,在实际型号研制中合理运用。参与到各项技术与理论研究中,判定工程实际需求,注重分析工作对应价值与意义,解决工程多项需求,做好各项总结,整合适应发展的理论原则,完善诸多可操作性的技术方法[8]。
通过加设密码方式对计算机访问端进行加密,保障各项信息能够得到隐藏。对信息成功加密处理之后,需要将密钥管理与密文管理相互结合,对系统中多个用户基本身份进行验证,能够起到良好的加密作用。病毒具有较大的伪装性,在局域网中需要安装相应的病毒防护软件,确保计算机安全漏洞能够得到全面修复。然后再通过防火墙方式确保病毒能够被隔离,不会对计算机内部造成较大威胁,使得各项数据信息得到有效保护。
基于加密方式对计算机访问端实施加密处理,这样可以促使多类信息被有效隐藏。在信息数据加密处理完成之后,要注重灵活运用密文管理以及密钥管理,对系统内用户各项身份实施验证,这样能提升加密成效。目前计算机中诸多病毒伪装性较强,技术人员需要在局域网内安装多类病毒防护应用软件,对计算机安全漏洞中的多项行为实施修复。之后通过防火墙进行隔离管控,避免计算机运行受到较大威胁,也能对各项数据实施安全保护。
基于加密方式高效化运用能对计算机访问端实施加密处理操作,这样能保障多项数据信息得到有效保护。在信息数据加密处理中,要注重合理运用密文管理、密钥管理,对系统内用户多重身份实施综合验证,以此来强化加密成效。当前计算机中诸多病毒伪装性较强,相关技术人员要在局域网内规范化安装各类病毒防护软件,对计算机中存有的各项漏洞实施修复。之后做好防火墙隔离管控,防止计算机运行中受到不同程度威胁,也能对各项数据信息进行保护。
软件安全防护主要通过对访问通道的控制,对操作系统和数据库进行安全加固,对敏感隐私信息进行数据保护,在访问应用中防止认证绕过,防止纵向和横向越权,会话应使用业界主流的Web容器来随机生成,使用第三方组件/开源软件时,应禁止使用禁选类的版本,及时清除过时的、低版本的第三方组件/开源软件 ,禁止使用隐秘访问,产品开发合法监听接口应遵循国际标准及所在国的法律要求,禁止非法监听等有效措施来确保在开放网络环境下的软件安全。
6结语
在软件研发阶段做好安全性测试至关重要,通过测试掌握软件中存有的各项故障、缺陷,对其进行更正能有效控制各项破坏性问题发生。软件运用中最为理想化的成效就是运用相对偏少的测试实例来展开高效化、规范化的安全测试。在软件安全测试前,需要对测试软件类型实施判断,制定更为完善的测试应用方案。对测试结果实施分析,整理更为全面的测试材料,找寻对应的漏洞。传统网络安全测试不能适应软件定义网络的结构,不能对网络安全实施系统化测试评价,难以提升网络安全性。所以要注重做好软件定义网络的体系结构、技术体系、组织架构设计,提升安全性测试成效。
参考文献
[1] 吴爱华. 浅谈计算机软件测试技术与深度开发模式[J]. 电脑知识与技术,2021,17(18):89-90.
[2] 叶婷,曾幸钦,刘惠玲,等. 面向需求的软件安全性测试方法[J]. 电子元器件与信息技术,2021,5(10):168-169.
[3] 李雪飞,封二强. 航空装备机载安全关键软件安全性测试需求获取方法研究[J]. 航空标准化与质量,2021(3):38-42,52.
[4] 孫志科. 数据静态分析技术及其在安全软件测试中的应用[J]. 铁路通信信号工程技术,2021,18(5):9-14,32.
[5] 张天. 探究面向安全性分析的嵌入式软件测试方式[J]. 中国机械,2021(1):109-110.
[6] 陈敬后. 软件测试在面向对象技术开发中的应用设计[J]. 电脑爱好者(普及版)(电子刊),2021(5):251.
[7] 游泽青. 基于弹性伸缩集群的云负载测试技术[J]. 数码设计(下),2021,10(1):264.
[8] 吕韬,张雪,冯源,等. 数据库共享存储集群中缓存融合技术测试方法[J]. 工业技术创新,2021,8(4):60-66.