安全建设管理-(四)自行软件开发
安全建设管理
控制点
4.自行软件开发
为保证软件开发过程的安全性和规范性,应制定软件开发方面的管理制度,以规定开发过程的控制方法、明确人员行为准则。对整个开发过程,以及软件测试、开发文档的保管、使用及后续程序资源库的访问、维护,都应严格管理并加以限制。
a)
安全要求(重要):应将开发环境与实际运行环境物理分开,测试数据和测试结果受到控制。
要求解读:为避免开发过程中对系统造成影响,要保证开发环境与实际运行环境物理分开,测试数据和测试结果受到控制。应将开发人员和测试人员分离,即开发人员不能做测试人员;测试数据和测试结果受到控制,是指他们应该与软件设计相关文档一起有专人管理,并且他们的使用和访问应该进行严格限制。
测评方法
1.访谈建设负责人,了解开发的控制流程和控制措施有哪些。
2.核查与软件开发相关管理的规定和要求。
3.核查管理文档是否规定覆盖开发环境与运行环境分开,以及测试数据是否受控。
期望结果
1.开发环境与运行环境是分开的。
2.有明确的管理要求用于控制测试数据和测试结果的使用。
b)
安全要求(重要):应制定软件开发管理制度,明确说明开发过程的控制方法和人员行为准则。
要求解读:为保证软件开发过程的安全性和规范性,应制定软件开发方面的管理制度,规定开发过程的控制方法和人员行为准则。
测评方法
1.访谈安全建设负责人,了解是否有软件开发方面的管理制度。
2.核查管理制度的内容是否覆盖了软件开发的整个生命周期。
3.核查开发文档是否包含开发过程中的控制方法和行为准则。
期望结果
软件开发管理制度明确了开发过程中的相关管理要求。
c)
安全要求(重要):应制定代码编写安全规范,要求开发人员参照规范编写代码。
要求解读:一个应用软件需要好多名开发人员共同开发,然而,不同开发人员有不同的代码编写风格,这给代码的维护、整合等工作带来了很大的困难。因此,应针对不同的开发语言制定相应的代码编写规范,并要求所有开发人员都按照相应的规范编写代码——这将给代码的阅读、理解、维护、修改、跟踪、调试、整合等带来极大的便利。
测评方法
1.访谈建设负责人,了解是否有代码编写安全规范。
2.核查代码编写安全规范是否明确了代码编写规则。
期望结果
有代码编写安全规范。
d)
安全要求(一般):应具备软件设计的相关文档和使用指南,并对文档使用进行控制。
要求解读:系统开发过程中,开发人员需编制软件设计的相关文档和使用指南,对系统开发文档的保管、使用应严格管理,并加以限制。
测评方法
1.访谈系统建设负责人,了解是否有人员负责对软件设计的相关文档进行管控。
2.核查被测评系统是否有开发文档和使用说明文档。
期望结果
有软件开发过程中的相关文档(例如软件概要设计文档、软件详细设计文档)和使用指南。
e)
安全要求(关键):应保证在软件开发过程中对安全性进行测试,在软件安装前对可能存在的恶意代码进行检测。
要求解读:应在软件开发过程中加强软件的安全性测试,以便及早发现软件的安全漏洞。在软件安装前进行代码安全审计,通过工具测试和人工确认的方式识别代码中恶意代码,是保证软件安全运行的最后一道屏障。针对恶意代码,可以通过第三方检测机构进行检测,或者在机构内部自行测试。
检查方法
1.访谈安全建设负责人,了解是否在软件开发的生命周期中进行安全性方面的测试。
2.核查是否具有安全性测试报告和代码审计报告。
期望结果
有阶段性的软件安全测试报告和软件安装前的代码审计报告。
f)
安全要求(重要):应对程序资源库的修改、更新、发布进行授权和审批,并严格进行版本控制。
要求解读:应对程序资源库的访问、维护等应进行严格管理。
程序源代码及源程序库的修改、更新和发布都得到授权和批准。这里的发布既包括向程序员发布程序源代码,也包括修改或更新程序源代码后应用软件重新上线。
测评方法
1.访谈系统建设负责人,了解是否已对程序资源库进行管控。
2.核查是否有管控记录文件。
期望结果
有程序资源库修改、更新、发布的授权批准记录。
g)
安全要求(一般):应保证开发人员为专职人员,开发人员的开发活动受到控制、监视和审查。
要求解读:在软件开发过程中,应保证开发人员为专职人员,并能够对其开发过程进行有效控制。
测评方法
1.访谈系统建设负责人,了解开发人员是否为专职人员。
2.核查软件开发管控制度是否对开发过程和开发人员的行为准则进行了规定和提出了要求。
期望结果
开发人员为专职人员,有相关管理要求或手段对开发人员进行控制监视或审查。