软件开发 安全管理-开发管理
《软件研发安全管理制度》会员分享,可在线阅读。 更多《软件研发安全管理制度(6页珍藏版)》请在人人图书馆在线搜索。
1. 文件保密等级:一般 文件状态:草案正式发布,修订中 受控状态:受控 非受控版本说明 作者审阅日期 版本 2015-01-08 A0A版首次发布 质量组孙培莲春华目录 1. 适用于本规程涉及公司软件生产过程安全管理。 2.目的为了有效地控制与公司软件生产相关的策划、开发、测试、交付等过程,特制定本程序。 三、职责 1)技术负责人负责审批各项软件开发项目和开发计划。 2)研发中心负责软件生产过程,包括规划、开发、测试、交付等过程。 3)信息部负责基础设施的维护,包括开发服务器、测试服务器、硬件开发PC、操作系统、杀毒软件。 4.相关文件《信息安全管理手册》 5.要求 5.1. 安全需求的规划和分析
2、研发中心应根据开发任务的要求编制软件开发需求文档。 软件开发需求文档应包括功能需求背景、项目建设目标、项目建设原则、具体功能需求、项目开发时间要求、安全要求等,软件开发需求提交技术负责人审核。 安全需求分析的内容可以作为软件开发需求文档的一部分,也可以单独编写。 软件开发的安全要求应包括以下几个方面: 1) 客户的安全要求:在与客户的沟通中软件开发 安全管理,客户明确要求软件应具备的安全功能和安全性能,如客户对存储数据安全、传输数据安全、行为审计、权限分配、抗抵赖等。 2)技术安全需求:技术安全需求包括两部分,一是客户安全需求的技术实现。
3.技术安全要求满足第3项要求的数字签名技术); 二是软件本身涉及的技术的安全性,包括业界通用的安全技术,如数据库安全技术、Java安全技术等; 3)法律法规安全要求:法律法规安全包括国内和国际法律法规要求的安全技术和标准,以及业界公认的安全技术和标准。 例如,单向哈希技术应该用于密码保护。 使用商用密码产品的,应当经国家有关部门批准; 5.2. 系统设计和安全编码 在系统设计和编码过程中,开发者应注意系统架构和软件代码本身的安全性和健壮性: 确保: 1)输入数据的安全性:开发者应考虑用户的不确定性输入数据,在设计和编码时采取以下控制措施: a) 双输入
4. 或其他输入检查,例如限制特定输入数据范围的边界检查或字段,以检测以下错误: i. ii. 超出范围的值。 数据字段中的无效字符 iii。 数据缺失或不完整 iv. 超过数据容量上限和下限 v. 未经授权或自相矛盾的控制数据 b) 不得擅自更改系统文件; c) 软件错误应及时响应; d) 数据输入过程中涉及的定义 e) 数据输入过程中涉及的活动日志的创建; 2) 内部处理的控制:应用系统的设计和实现应确保处理失败导致完整性损失的风险最小化。开发软件时要考虑的具体领域应包括: a) 使用添加、修改和删除功能影响数据变化; b) 防止程序以错误的顺序运行或在先前的处理失败后运行
5. 机制; c) 从故障中恢复以确保正确处理数据的机制,以及 d) 防止利用缓冲区溢出/溢出的攻击。 3) 消息完整性 如果需要保护消息的完整性,可以使用密码技术,见加密管理系统 4) 输出数据的确认 输出确认应包括: a) 调整控制计数以确保所有数据都被处理; 后续处理系统提供足够的信息来确定信息的准确性、完整性、精确性和分类; c) 定义参与数据输出过程的所有人员的职责; d) 在数据输出验证过程日志中创建活动。 5.3. 安全测试 公司开发的所有软件产品在发布给客户之前都必须进行安全测试。 测试过程应包括安全测试。安全测试环境应独立于公司开发环境和日常办公环境,包括网络的隔离,避免安全测试
6、对公司其他业务和系统的影响。 安全测试应包括以下内容: 1) 客户安全需求测试:包括客户安全需求的功能和性能测试,验证软件是否满足客户安全需求; 2) 技术安全要求测试: a) 应测试输入数据 b) 缓冲区溢出测试; c) 边界值和特殊值验证; d) 行业安全技术测试:如数据库安全测试等; 安全技术的使用不违反国家或国际相关法律法规,不使用具有知识产权问题的安全技术,不使用违反行业公认标准的安全技术; 在测试过程中,严禁使用包含个人信息或其他敏感信息的操作数据库进行测试。如果测试使用个人或其他敏感信息,所有
7.网站的敏感细节和内容。 作为项目文档的一部分,测试数据应在 VSS 中存储和保护,参见风险评估和用户访问管理系统的相关文档; 测试完成后,应编写软件测试报告,将安全测试的内容作为报告的一部分,或单独编写软件安全测试报告。 5.4. 发布与运行 软件产品的发布方式应符合以下要求: a) 将产品(可执行代码及相关组件)打包后软件开发 安全管理,通过FTP或其他方式发送至客户指定的服务器。 客户服务器帐号和密码应由专人保管,不得泄露。 如需长期保管客户服务器帐号和密码,应与客户协商,定期(至少3个月一次)更改服务器密码; 产品包装至少应使用压缩加密 解密密码可通过电话、邮件等方式告知客户,但不得以产品交付时的方式将解密密码传送给客户。 b) 将产品加密打包,刻录成光盘,邮寄给客户。 解密密码不随光盘邮寄给客户,可通过电话、邮件等方式通知客户。 c) 产品源代码只能发送给客户,否则产品源代码不得发送给任何第三方。发送方式见a)和b)项; 6.记录软件开发需求书/软件开发安全需求书软件测试报告/软件安全测试报告