1、应用系统开发安全管理规定第一章 总则第一条 制度目标:为了加强信息安全保障能力,建立健全的安全管理体系,提高整体的网络与信息安全水平,保证网络通信畅通和业务系统的正常运营,提高网络服务质量,在安全体系框架下,本制度旨在提高IT项目信息安全建设质量,加强IT项目建设安全管理工作。第二条 适用范围:本制度适用于所有TCP/IP网络IT建设项目,主要用于IT项目立项过程中方案设计、规划的安全要求参考。第三条 使用人员及角色职责:本制度适用于全体人员。第二章 应用系统的安全要求第四条 为了规避应用系统中的用户数据丢失、修改和误用,应用系统应设计有适当的控制措施、审计跟踪记录或活动日志。第五条 针对用以
2、处理敏感、脆弱或关键资产的系统,或者对此类资产有 影响的系统,还应根据风险评估的结果确定安全要求,并采取额外的控制措施。第六条 为了保证系统的安全性,必须在开发过程中对输入到应用系统中的数据进行严格的检查,以确保其正确性及适用性,避免无效数据对系统造成危害。第七条 对输入数据的验证一般通过应用系统本身来实现,并应在系统开发中实现输入数据验证功能。第八条 系统应采取有效的验证检查措施来检测故意破坏数据的行为,并在应用系统设计时引入数据处理控制,尽可能地减小破坏数据完整性的几率。可以采用的控制措施如下:(一) 应用系统不应在程序或进程中固化帐户和口令;(二) 系统应具备对口令猜测的防范机制和监控手
3、段;(三) 避免应用程序以错误的顺序运行,或者防止出现故障时后续程序以不正常的流程运行;(四) 采用正确的故障恢复程序,确保正确处理数据;(五) 采取会话控制或批次控制,确保更新前后数据文件的一致性; (六) 检查执行操作前后对象的差额是否正常;(七) 严格验证系统生成的数据;(八) 检查文件与记录是否被篡改。例如通过计算哈希值(HASH)进行对比。第九条 应用系统的输出数据应当被验证,以确保数据处理的正确性与合理性。第十条 应用系统正式上线前,需要对其数据库系统、主机操作系统、中间件进行安全加固,并在主管负责人批准后方可上线运营。第三章 系统文件的安全第十一条 为了最大限度地降低操作系统遭受
4、破坏的风险,应考虑采取如下控制措施:(一) 程序运行库(operational program libaries)的升级只能由指定的程序库管理员在获取授权后予以完成;(二) 操作系统应尽可能只保留应用程序的可执行代码;(三) 在系统测试、用户验收结束之前,及相应的程序源代码库升级之前,可执行代码不得在操作系统中运行;(四) 程序运行库的所有更新记录都应当予以保留;(五) 历史版本的软件应当予以保留,用作应急措施。第十二条 应对系统测试数据加以保护和控制,并避免使用含有个人隐私或敏感信息的数据去测试系统,确保测试数据的普遍性。第十三条 为降低系统程序遭受破坏的可能性,应严格控制对系统源代码的访问
5、,具体控制措施如:(一) 源代码尽量不要保留在操作系统内;(二) 为每个系统指定程序库管理员;(三) 控制系统支持人员对程序源代码库的访问;(四) 处于开发和测试阶段的程序不得保留于程序源代码库中;(五) 程序源代码库的更新及发布只能由指定的程序库管理员在经过该应用的主管领导授权后实施;(六) 程序清单应当保存在安全环境中;(七) 对程序源代码库的所有访问都应保留审计日志;(八) 老版本的源程序应当归档,并清楚记录其被正式使用的确切日期和具体时间,及所有相关的支持软件、功能说明、数据定义和程序(如流程图)等;第十四条 程序源代码库的维护和拷贝应当遵从严格的变更控制程序。第十五条 各职能管理部门
6、进行项目立项申请前,在进行项目规划和设计的过程中,应参照各安全技术规范中的相关技术要求进行安全建设。第十六条 项目安全性论证对项目的安全需求分析、安全功能说明、安全设备、性能指标以及技术方案的技术可行性进行总体分析和审计。第十七条 项目立项论证和评估过程中,信息安全工作组负责IT项目安全性建设的技术部分论证和评估。第十八条 在提交项目立项申请时,应在技术方案中增加安全方面的说明和文档,内容包括:(一) 根据安全规范中的要求,系统在建设过程中进行安全部署的说明;(二) 根据安全规范中的要求,系统在建设过程中无法实现的安全部署的说明和论证;(三) 系统在建设过程中具体的安全功能以及安全功能的实现方
7、法和技术;(四) 系统在建设过程中所采用的安全设备的品牌、型号、性能指标说明以及对于业务系统的影响分析。第十九条 IT项目安全性的论证和评估主要关注以下方面的内容:(1) IT项目建设中网络规划中安全域的划分、网络冗余、网络传输安全、网络访问控制、网络边界安全、远程访问安全;(2) IT项目建设中系统的性能、容量以及系统和业务的兼容性;(3) IT项目建设中应用系统中身份验证、角色访问控制、数据加密、备份、日志审计等安全功能;(4) IT项目建设中应用系统是否有后门、漏洞和不安全的隐患。第四章 开发过程的安全控制第二十条 在系统开发与运行维护的所有阶段(如:计划需求、设计、编码、测试、运行和维
8、护)强制实施严格的变更控制,对变更的申请、审核、测试、批准、执行计划与具体实施提出明确要求,确保系统安全性与控制措施不被损害。变更控制包括以下内容:(一) 审查变更控制措施和流程的完整性,确保未被修改和破坏;(二) 确保操作系统的更改不会对应用系统的安全性和完整性造成不良影响;(三) 确保系统文档在每次修改后得到及时更新,并确保旧文档被正确归档和处置;(四) 做好软件升级的版本控制,如保存历史版本;(五) 保留所有变更的审计跟踪记录;(六) 确保操作文档以及用户程序能在必要时被修改;(七) 确保及时更新业务连续性计划。第二十一条 应尽量避免修改厂商提供的软件包,如必须修改,应注意以下几点:(一
9、) 评估软件包内置的控制措施和完整性流程遭受破坏的风险;(二) 应征得原厂商的同意,由原厂商提供标准的升级程序来实现软件包的更改。第二十二条 在软件的原始采购、开发、使用和维护过程中,应采取如下防范控制措施:(一) 仅从信誉卓著的厂商处购买软件;(二) 尽量购买提供源代码的软件,以便进行检验,在投入使用之前检查所有源代码;(三) 使用通过权威机构评估测试的软件产品;(四) 一旦安装完毕,控制对源代码的访问和修改;(五) 安装并正确使用有关后门、特洛伊代码的检测和查杀工具。第二十三条 在外包软件开发时,应注意以下几个方面:(一) 选择信誉与质量保证能力好的软件承包商;(二) 签订软件许可权协议、
10、明确代码所有关系以及知识产权;(三) 对外包工作质量和准确性进行检验,并保留检查权利;(四) 明确承包方违约时应该采取的措施;(五) 明确代码质量的合同要求,如对编程标准的要求;(六) 在安装之前进行测试,以检测后门、逻辑炸弹和特洛伊代码。第五章 应用系统维护过程安全管理第二十四条 应用系统应该包括正式的注册、登录认证和注销模块,并且能够对不同用户的访问权限进行严格的访问控制。具体要求包括以下内容:(一) 应用系统和操作系统账号分离;(二) 逐步统一所有应用程序的认证,建立PKI;(三) 用户访问权限应得到上级领导和责任人的批准;(四) 确保服务提供者不能在授权程序结束之前提供访问服务;(五)
11、 保留所有注册人员使用服务的记录;(六) 修改或注销已经更换岗位或离开公司的用户的访问权限;(七) 定期核查并删除多余、闲置或非法的用户ID和账户。第二十五条 对系统管理帐户需要进行如下限制:(一) 确定不同系统的超级权限以及需要获得此类特权的人员类型;(二) 尽量对管理权限进行分割,把不同的管理权限赋予不同的账户;(三) 应用系统应该做好管理账户登录和管理操作的记录;(四) 定期对系统的日志进行审计,以发现异常登录、操作;(五) 做好超级权限拥有者无法行使职责时的应急安排,如角色备份。第二十六条 应用系统应该具有完善的日志功能,能够记录系统异常情况及其它安全事件。第六章 附则第二十七条 本制度由信息安全部制定,并负责解释和修订。由信息安全工作组讨论通过,发布执行。第二十八条 本制度自发布之日起执行。