首页 百科知识 应用系统开发过程安全

应用系统开发过程安全

时间:2022-07-21 百科知识 版权反馈
【摘要】:1)应用系统开发过程安全的意义应用系统开发过程是软件开发项目的实际执行阶段,是软件从无到有实际产生的必然阶段。2)应用系统开发过程安全的要求开发人员安全。在系统开发的过程中,需要保持应用系统开发和应用系统运维管理的职权分离,最好设立单独的开发部门和运维部门,这样可以更好地进行安全信息保护。目前已对Java和C/C++语言制订了详细的安全编程规范。

1)应用系统开发过程安全的意义

应用系统开发过程是软件开发项目的实际执行阶段,是软件从无到有实际产生的必然阶段。如同软件开发过程是软件设计的贯彻执行一样,软件开发过程的安全同样也是软件设计安全的重要履行阶段,是系统软件项目成功和软件安全保证最重要的保障。忽视了软件开发过程的安全,即使有再好的安全性设计,实现环节没有很好地贯彻执行,软件的安全性也会大打折扣。就如建造房屋时忽视了工人的技能和安全管理,即使有再好的设计图纸,建好的房屋也经不起些许风雨的侵袭。

应用系统开发阶段是应用系统实际生成的重要过程,是系统安全的重要执行部分,需要在代码开发中重点考虑安全设计。这里包括开发人员安全、开发运维分离、代码编写安全、代码测试安全等。

2)应用系统开发过程安全的要求

(1)开发人员安全。在系统开发的过程中,首先应当明确开发项目中开发人员的身份、职责。具体包括:

其次要明确项目各个人员在整个开发项目的工作范围,明确相关开发任务及计划要求,给予开发权限并对开发结果负责。开发人员必须按照项目安全管理规定及管理流程进行任务开发,保障开发内容的安全性,并及时向项目的负责人员汇报开发的相关信息。

另外还需要有开发人员的管理措施,包括在日常工作中记录员工开发工作相关的信息以供事后审计,员工开发岗位如有调整也应立即调整其相应的开发权限。

最后还需要教育和培训开发人员的安全代码开发能力,包括:

(2)开发运维分离。在系统开发的过程中,需要保持应用系统开发和应用系统运维管理的职权分离,最好设立单独的开发部门和运维部门,这样可以更好地进行安全信息保护。通常这样做可以保障以下系统安全问题:

3)代码编写安全

应用系统开发需要制订代码编写规范用于指导程序员进行程序开发,减少系统开发产生的安全问题。其中可以制订统一的编程规范,也可以指定针对特定语言的编程规范,例如Java和C/C++语言。通常情况下,制订代码编程规范可以很好地规避系统安全问题或程序陷阱,从而保障信息的完整和保密,大大增强了系统的可用性通用的编程规范包括:

(1)输入验证。在客户机/服务器环境下,进行服务端的验证而不是客户端的验证。

(2)系统应进行边界值检查,这样可以有效地降低程序缓冲区溢出问题。

(3)需要对操作系统的环境变量获得的数据进行保护,不得在环境变量中存放安全信息及敏感数据。

(4)错误输出。显示给使用用户的错误输出不应该包含应用系统的内部信息,而应该使用错误代码的形式进行输出,这种信息一般只有开发人员才能解析。

对于特定的编程语言需要制订相应的代码安全开发规范,即使是相同的编程语言,在不同应用系统的开发过程中还可以制订更加细化的编程规范,包括变量定义、程序风格、错误输出、逻辑控制等,用于指导本应用系统开发人员进行代码开发。通常使用相同的编程规范开发出的程序比较统一,在后期维护、运行、查错等方面都具备较高的安全性和操作性。目前已对Java和C/C++语言制订了详细的安全编程规范。

4)代码测试安全

代码开发过程中,离不开代码测试,代码测试是代码开发阶段的重要环节。代码测试包括:测试计划、测试种类、测试环境和测试数据。

(1)测试计划。制订测试计划需要包含测试内容、测试方法、测试环境以及测试预期结果。测试完毕后,需要对测试结果进行评估,确定与预期结果的偏离程度,并根据偏离程度的大小作出测试结论,用于指导后续问题的修复紧迫程度。

(2)测试种类。根据测试过程的测试人员及测试目的,可以分为:

(3)测试环境。一般对于应用系统的测试环境,需要通过物理方式保持与生产运行环境的隔离控制,保障生产环境的软件修改均在授权条件下进行。同时对于测试不同种类及阶段,也可以搭建相应的测试环境,保障测试环境的稳定与独立,使得测试工作得以顺利开展,确保程序问题不因测试环境问题的漏测、误测而没有被发现。

(4)测试数据。测试的数据一般都是虚拟产生的,但是有时候也需要使用实际的真实数据进行测试。当该数据包含敏感信息时,需要制订保护测试数据安全的相关措施。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈