- 收藏
- 加入书签
基于安全技术的软件开发与运维研究
摘要:近年来,各种网络安全事件频发,如病毒入侵、软件漏洞、非法入侵行为以及数据泄露等,这不仅给广大网民带来伤害,损害了广大人民群的正常上网权利。众多网络安全事件的发生除了因为不法分子的攻击手段多样和犀利之外,还因为软件开发人员和系统运维人员的工作疏漏,致使软件系统出现漏洞,且未能有效地对非法攻击进行防护,从而让不法分子有机可乘。因此,要提高软件系统的安全性,降低系统漏洞的出现率和安全事件的发生率,需要软件开发人员和系统运维人员进一步提高自身的安全技术水平和安全意识,加强软件系统的安全防护,加固软件系统的安全堡垒。在软件开发与运维的安全技术方面,目前有很多研究工作,但大部分的研究工作均侧重于系统运维方面,虽然系统安全运维是不可或缺的一部分,但一个软件系统如果在前期的软件开发阶段都没有做好安全分析、安全设计、安全编码和安全测试,仅依靠后期系统运维时修修补补是无法从根本上解决软件系统的安全问题,因此本论文尝试从需求分析安全技术、设计安全设计、编码安全技术、测试安全技术和运维安全技术五个方面探讨软件的安全技术。
关键词:软件开发;系统运维;安全技术;软件工程;网络安全
随着信息化的高速发展,各种软件系统如雨后春笋般涌现出来,随之而来的是各种软件系统漏洞的出现和网络安全事件的频发,有些是由于软件开发人员和系统运维人员的失误或失责导致的。因此,论文以软件开发人员和系统运维人员的视角,对软件开发过程和系统运维过程涉及的安全技术进行论述,归纳和总结软件开发过程和系统运维过程的安全经验,为后续的软件开发和系统运维提供安全技术指导,致力于降低软件漏洞的出现率和网络安全事件的发生率。
1、计算机网络安全技术应用
1.1病毒防护技术应用
大数据背景下,病毒防护技术能够更好地防止网络病毒等不良信息的非法入侵,计算机网络管理人员能够使用病毒防护软件,实时地对病毒进行查找、拦截和灭杀。在云计算环境中,病毒防护软件能够通过多个计算机的网络连接来实现整体的计算机病毒网络监控。监控过程中,一旦发现某一台计算机中存在病毒,防护软件能通过云计算平台快速找到针对该病毒的解决办法,及时下载相关程序对病毒进行灭杀。同时病毒防护软件还能将被灭杀的病毒程序特点以及代码及时上传到云平台,通过云平台的整合收集实现对网络管理下所有计算机的实时监控和保护。通过病毒防护技术的应用,能有效地保证用户的信息安全。针对经常使用计算机的用户,由于计算机系统需要定期更新来减少计算机系统漏洞的存在,所以病毒防护软件能够在计算机进行更新的时候对病毒进行查杀,在更新前和更新后进行双重查杀,之后将计算机更新的相关信息及时上传到互联网云平台中,有效降低病毒对计算机更新造成的不良影响。计算机使用者应该及时利用病毒防护软件对计算机系统进行定期查杀,通过这种方式确保大数据背景下计算机的网络安全。需要注意的是,在实际应用病毒防护技术的过程中需要计算机网络管理人员对病毒防护程序进行定期的检查,避免出现病毒防护程序没有及时开启或者没有按照定期扫描的策略来对计算机网络进行安全检查的现象,这样能够有效地提高病毒防护技术在计算机网络安全中的应用质量和效率,切实降低病毒出现在计算机网络中的几率。
1.2防火墙技术应用
防火墙技术是计算机网络技术在应用发展过程中出现的安全技术之一,能够有效地保证计算机系统在应用过程中避免出现信息泄露或者是病毒攻击等现象。大数据背景下,计算机网络安全防护中防火墙技术,主要用于检测计算机的状态和内部数据链路层的稳定安全。对于内部网络客户端所发出的请求,应用防火墙技术能够在开放的网络状态中实现数据信息的控制,针对数据信息的反馈做出相关的响应。在数据信息的传输过程中,数据往往是以打包加密的形式从一台计算机传输到另一台计算机,应用防火墙技术能够对数据信息传输进行加密,同时接收端的计算机防火墙能够通过相对应的密钥对数据包进行解密,从而降低数据信息在传输过程中出现泄漏的风险。接收端的计算机除了要对数据包进行解密之外,还应该对数据包的状态进行检测,一旦发现数据包接收的过程中出现损坏或者是其他异常状态,就会停止接收。利用防火墙技术对整个数据包进行扫描,避免数据包在传输过程中出现泄露以及病毒感染等危险因素,威胁到接收端计算机的网络安全。技术人员在使用防火墙技术时,也能够利用防火墙本身功能来实现数据包的二次加密,这样能够显著降低数据包被破解和泄露的风险,进而对信息的安全传输和计算机网络的安全使用起到积极的促进作用。
2、现状分析
在软件生命周期的各个阶段,由于相关人员的工作失误或者失责,均会为软件系统埋下安全隐患,归纳起来主要有以下几个方面的原因:
2.1网络安全意识不足
软件开发人员和系统运维人员的安全意识不足,缺乏对网络安全事故造成的后果严重性进行预判,或者低估网络安全攻击者的技术能力和执着,抱着侥幸的心理对待需求漏洞、设计漏洞、编码漏洞、测试漏洞和系统漏洞;
2.2安全防范技术缺乏
在软件需求分析、软件设计、软件编码和软件测试阶段,由于软件开发人员自身技术原因、只顾及软件系统功能的实现或者赶工等其他原因,从而在软件安全防范方面出现工作疏漏;
2.3网络安全设备缺乏
在软件上线运行后,由于软件系统建设和运行单位缺少资金购买相应的网络安全设备,缺乏相应的设备保障;
2.4网络安全管理不规范
软件系统建设和运行单位没有制订相关的网络安全管理规范,未对网络安全进行定岗、定人、定责和定流程等方面进行确定。
3、需求分析安全技术
在软件需求分析阶段,用户和需求分析人员往往仅关注软件的功能需求,而忽略了软件的安全性能,软件的安全性能应作为一项非功能性的指标加到项目考核和验收的依据里面,除了要考虑与软件系统功能相关的具体安全需求,还要对软件系统的总体安全需求进行规定,如系统漏洞出现概率、系统平均无故障工作时间、系统漏洞平均修复时间和系统平均修复时间等。只有在软件需求分析阶段做好安全需求的分析,才能为后续的软件开发和运维提供安全指引和依据。
4、设计安全技术
在软件设计阶段,需要重点在软件体系结构设计、软件业务流程设计、软件数据库设计和软件接口设计四个方面对安全技术进行研究与设计:
在软件体系结构设计方面,应重点关注基础设施方面的安全防护设计,比如将硬件防火墙、软件防火墙、入侵检测系统和上网行为检测等基础设施加入到软件的体系结构中,构造一个安全的网络环境,对软件系统有更好的保护作用;
在软件业务流程设计方面,应重点关注流程和数据的可控性,流程可控性即业务流程按照设计的规则进行,数据的可控性是指业务流程中的数据流是可控的,它仅能被有权限的用户可见和可操作,当不法分子尝试非法查看和操作时应及时报错而终止流程,实现流程和数据可控性的常规技术是对用户权限进行安全设计,通过对用户与功能模块建立一个确定的权限机制,从而确保软件的业务流程的安全性;
在软件数据库设计方面,应重点关注数据库的表结构设计,比如尽量不用或少用数字自增ID避免网络爬虫非法抓取数据,做好数据库的范式设计,注重数据冗余与存储空间、查询效率之间的平衡关系。此外还需注意尽量避免使用数据库默认的用户名、密码和端口,并且优化数据库配置管理中安全方面的设计,确保数据库安全与稳定运行;
在软件接口设计方面,开放API接口如果没有经过安全处理,则很容易出现三类安全问题,包括信息截获、篡改与泄露。因此对于软件接口的设计,应重点在接口权限和数据加密方面进行设计。接口权限的设计可以确保接口仅被拥有权限的一方调用,如限定软件接口调用的IP、采取令牌技术以及验证调用接口的相关参数等,而数据加密则可以确保接口数据的安全性,即使数据泄露给非法人员,但无法进一步解密也不会造成损失。
5、编码安全技术
在软件编码阶段,软件开发人员容易只注重软件系统的界面设计和软件系统的功能实现,而忽略了软件编码时应该采取的安全防范技术,导致软件系统很容易出现漏洞。因此,在软件编码阶段,软件开发人员尤其需要重点关注软件系统的权限、数据、文件和数据库操作四个方面的安全问题:
在权限方面,对于用户的操作首先应该判断是否存在相应的操作权限,如当前会话是否有效,当前用户是否有该操作权限等,以及是否存在过量访问和是否尝试次数过多等异常访问或操作等问题;
在数据方面,对于用户提交的数据,需要判断是否符合相关的要求和规定,是否存在非法字符,尤其是操作数据库的关键字,存储到数据库的关键敏感数据应该加密后保存,如用户的密码和身份证号码应加密保存,避免数据泄露给不法人员用于撞库造成二次安全事故,返回给用户的响应数据是否存在多余且关键敏感的数据等;
在文件方面,对于用户提交的文件,需要判断文件的格式是否符合预期的文件格式,以及文件报头信息是否一致等,存储文件前应该对文件进行重命名,可先存为临时文件并使用杀毒软件扫描通过后转为正式文件,且不能以任何方式向用户暴露文件的存储路径和文件名;
在数据库操作方面,应该判断用户是否有操作数据库的权限,写入数据库的数据是否存在安全隐患,是否存在诸如SQL注入漏洞等问题,操作数据库后还应记录相应的操作信息。
6、测试安全技术
在软件测试阶段,主要测试软件系统的安全编码是否有效、软件的安全设计是否已落实以及软件的安全性能是否满足软件的安全需求。测试软件的安全技术一般可以通过白盒测试、黑盒测试和渗透测试等技术来检查软件的安全性能。
白盒测试了解程序的内部逻辑结构和逻辑路径,通过输入和跟踪测试数据的变化可以检查数据的安全性,数据的流向和数据的表现形式是否符合软件系统的安全设计;
黑盒测试是通过测试来检测每个功能是否都能正常使用,同时,黑盒测试可以检查软件系统各个功能的安全性,功能的操作权限和功能的实现结果是否符合软件系统的安全设计;
渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制,渗透测试通过模拟不法攻击者,通过多种攻击形式多种技术手段来模拟攻击软件系统,从而检查软件系统的健壮性和安全性能。通过以上测试安全技术可以及时发现软件系统的漏洞,从而及时修复软件系统漏洞最终提高软件的安全性能。
7、运维安全技术
在系统运维阶段,主要由系统运维人员在安全管理制度的指导下,借助软硬件安全设施对软件系统进行运行和维护,因此可以在管理制度、软硬件设施和人员培训三个方面提高软件的安全性能:
在管理制度方面,软件系统运维单位应该制订包括但不限于以下方面内容的安全管理制度:系统运维组织机构、岗位责任、岗位人员、安全管理流程、安全管理奖励措施与安全事故惩罚细则等,为系统的安全运维提供制度保障;
在软硬件设施方面,软件系统运维单位应该规划保障软件系统安全的软硬件设施预算支出,包括但不限于以下软硬件设施:软硬件防火墙、入侵检测系统、蜜罐系统、安全认证介质、网络行为分析、安全等级保护认定、杀毒软件、HTTPS加密协议等,合理部署相关的软硬件安全设备,构建一个相对较安全的网络环境,为系统的安全运维提供设施保障;
在人员培训方面,软件系统运维单位应该加强软件系统运维人员的技术培训工作,包括对各种软硬件安全设施的使用、操作和分析技术,以及定期对应用软件、系统数据库和服务器进行备份,有条件应尽量采取异机异地的备份策略,及时修复应用软件、数据库系统和操作系统的漏洞,提高系统运维人员的安全意识,确保软件系统的安全和稳定运行。
结语
安全无小事,警钟需长鸣,计算机软件系统的安全关乎到广大人民群众和相关企事业单位的切身利益。本论文通过总结多年的软件开发经验和系统运维经验,从软件需求分析、软件设计、软件编码、软件测试和系统运维等软件生命周期的各个阶段所涉及的安全技术进行归纳和论述,为后续的软件开发和系统运维工作提供安全技术指引,致力于降低软件系统漏洞的出现率和网络安全事件的发生率,营造良好的网络安全环境,保护好广大网民和相关企事业单位的利益。
参考文献:
[1]郭燕子.信息安全环境下的计算机软件开发[J].计算机与网络,2021,47(19):50-51.
[2]田杰.安全技术在计算机软件开发中的应用分析[J].中国新通信,2021,23(23):127-128.
[3]侯中原.计算机软件开发安全技术[J].办公自动化,2021, 26 (15):20-22.
京公网安备 11011302003690号