软件开发和服务过程中的安全
目标:维护应用系统软件和信息的安全性。
应该严格控制项目和软件开发环境。负责应用程序开发的管理人员还应该负责项目和开发环境的安全。他们应该确保对所有提议的系统变更进行审查,检查这些变更是否破坏系统和操作环境的安全。
变更控制程序
为最大限度地减少信息系统崩溃,应对变更实行严格控制。应该强化正式的变更控制过程。应确保不破坏安装和控制的程序,只赋予程序员访问他们工作需要的那一部分系统的权限,在进行任何变更前必须获得正式的许可和批准。
许多组织都维护一个用户测试新软件的环境,这个环境将开发环境和生产环境分隔开。这就提供了一个方法,既控制新软件,又可以保护用于测试目的的操作信息。
对软件包变更的限制
不鼓励对软件包进行变更。使用服务提供商提供的软件包应尽可能不做变更。在确实需要修改软件包的情况下,应考虑以下几点:
a)内置的控制措施和完整性进程被破坏的风险;
b)是否获得服务提供商的同意;
c)当标准程序更新时从服务提供商获得所需要变更的可能性;
d)在发生变化时组织是否负责以后软件维护的影响。
如果变更是不可避免的,那么应保留原始软件,只对确定的副本进行变更。所有的变更应得到完整的测试并进行记录,这样将来需要对软件进行升级时可以重新应用这些变更。
隐蔽通道和特洛伊代码
隐蔽通道可以通过某些间接和模糊的方法暴露信息。激活通道的方法有两种:更改系统中安全和不安全用户都可访问的参数或者将信息嵌入数据流。
特洛伊代码以非法的隐蔽的方式影响系统,这些代码是接收者或程序用户不需要的。
在出现隐蔽通道或特洛伊代码的地方,应考虑以下方法:
a)只从信誉较好的地方购买程序;
b)购买使用源代码的程序,这样可以检测代码;
c)使用经过评估测试的产品;
d)在操作使用前检查所有源代码;
e)安装后控制对源代码的访问和修改;
f)只允许证明值得信赖的人员使用关键系统。
外包的软件开发
当软件开发外包时,应考虑以下几点:
a)许可管理、代码所有权和知识产权
b)质量证明和完成工作的准确性
c)在出现第三方事故时的第三者义务条款;
d)对代码质量的合同要求;
e)在安装前进行测试检查是否有特洛伊代码。