资源描述
软件系统安全测试
管理规范
上海理想信息产业(集团)
2024年9月24日
版本历史
版本
提案人
同意人
日期
描述
1.0
甘XX
.6.16
初建
【目录】
1 概述 5
1.1 编写目标 5
1.2 适用范围 5
1.3 角色定义 5
1.4 参考资料 5
2 项目背景 6
3 软件系统安全测试步骤 7
4 测试准备 9
4.1 测试准备 9
4.1.1 测试对象 9
4.1.2 测试范围 9
4.1.3 工作权责 9
4.2 测试方案 10
4.2.1 测试准备 10
4.2.2 测试分析 11
4.2.3 制作测试用例 12
4.2.4 实施测试方法 13
4.2.5 回归测试方法 14
4.3 测试计划 14
4.4 实施测试 15
4.5 回归测试 15
4.6 测试总结 15
1 概述
1.1 编写目标
建立和完善-系统安全测试管理制度。规范软件系统安全测试各步骤要求、规范各岗位人员工作职责、明确软件系统安全测试实施过程中管理行为及文档要求。
以规范化文档指导软件系统安全测试工作,提升管理效率、降低项目风险。
1.2 适用范围
本规范适适用于智能信息化系统建设项目软件安全测试管理过程。
1.3 角色定义
角色简称
角色定义
备注
总集PM
总集方负责业务系统项目经理
信息中心PM
信息中心负责业务系统项目经理
信息中心主任
信息中心责任人
厂商接口人
软件厂商负责学校责任人
安全测试人员
安全测试团体组员
1.4 参考资料
参考文件
备注
2 项目背景
校园内信息化软件众多,这些软件不光承载着学校关键业务,同时还生成、处理、存放着学校关键敏感信息:账户、隐私、科研、薪资等,一旦软件安全性不足,将可能造成业务中止、数据泄露等问题出现。
期望经过规范软件系统安全测试管理,改善和提升学校软件安全测试水准,将学校软件系统可能发生风险控制在能够接收范围内,提升系统安全性能。
3 软件系统安全测试步骤
软件系统安全测试步骤分为6个阶段:
1) 测试准备:确定测试对象、测试范围、测试相关人员权责;
2) 测试方案:按要求整理撰写《安全测试方案》,并完成方案审批;
3) 测试计划:测试方案经过后,协调确定各相关人员时间,形成测试计划;
4) 实施测试:按计划实施软件安全测试工作,输出《软件安全测试汇报》;
5) 回归测试:问题修复,回归测试循环进行,直到没有新问题出现;
6) 测试总结:测试过程总结,输出文档评审,相关文档归档。
其整体步骤见步骤图(下图):
4 测试准备
4.1 测试准备
明确此次安全测试软件系统及其测试范围,并对包含各方权责做出说明
4.1.1 测试对象
软件系统名称,软件厂商信息、软件开发语言等
系统信息
开发商:
体系结构:
编程语言:
操作系统:
WEB服务器:
数据库:
4.1.2 测试范围
软件内部程序、软件外部接口、数据库、网络服务器环境等
4.1.3 工作权责
序号
包含各方
权责说明
1
安全测试团体
1、 组织讨论、编写安全测试方案并经过评审
2、 测试人员分工安排
3、 搭建安全测试环境
4、 安全测试实施
2
图信
1、 参与讨论并确定测试方案
2、 进行程序开发或修改等集成相关实施工作
3
总集
1、 协调安全测试团体
2、 审核安全测试团体制订安全测试方案
3、 其它协调配合工作
4
系统厂商
1、 提供测试软件相关信息
2、 其它协调配合工作
4.2 测试方案
安全测试团体依据软件组成、软件环境和图信安全需求编制《X软件系统安全测试方案》 ;
此方案要求图信PM、总集PM均审核经过;
若审核未经过,由安全测试团体依据反馈提议,针对未经过业务内容进行修改或重新调研,完成后进行再提交审核 。
软件系统安全测试方案最少要覆盖以下内容:
1) 测试准备(对象、范围、分工)
2) 测试分析(系统分析、威胁分析)
3) 制作测试用例
4) 实施测试方法
5) 回归测试方法
4.2.1 测试准备
明确此次安全测试软件系统及其测试范围,并对包含各方权责做出说明
4.2.2 测试分析
测试分析关键是熟悉被测系统,经过系统外部环境分析、物理架构分析和逻辑架构分析,了解系统特征,便于后续威胁分析和对应用例编写。
4.2.2.1 系统分析
系统分析包含外部环境分析、物理架构分析和逻辑架构分析划分。
1) 外部环境分析
对系统所在外部环境,如操作系统、服务器、网络等进行分析
l 服务器安全防护(系统补丁、漏洞、木马、外挂、开放端口)
l 服务器用户及其权限管理,密码更新机制
l 服务器备份机制
2) 物理架构分析
根据系统物理架构分析其使用组件,如底层使用何种数据库,控制层使用何种组件,表示层使用何种前端库等,组件之间使用那些通信协议等,了解系统特征。
数据存放层:如MySQL、Oracle、Redis、Bigtable等;
控制层:如spring、Struts2、Tomcat、Weblogic等;
表示层:如ExtJS、Bootstrap等;
通信协议:如AMQP等
3) 逻辑架构分析
根据系统业务逻辑划分业务,再依据各业务数据流从身份验证、加密、输入校验、敏感数据、配置管理、授权、异常管理、会话管理、参数操作、审核和日志统计、布署和基础结构等方面入手分析。
4.2.2.2 威胁分析
系统分析后需要进行就是威胁分析,依据系统分析结果,选择适宜威胁模型,分析系统面临关键安全威胁。
常见威胁模型STRIDE,是基于数据流一个威胁分析模型,它包含六个维度威胁:
威胁模型STRIDE通常应用在二层数据流图上,在外界操作和系统内部模块之间、系统模块和外界存放之间需要画立信任边界。数据流图元素和STRIDE对应关系以下:
对于每一个威胁,其对应消减方法以下表:
4.2.3 制作测试用例
系统分析和威胁分析后就需要依据分析结果编写测试用例。
外界环境和物理架构这边,关键是针对系统或组件特点,罗列用例内容;
逻辑架构这边是测试用例关键,分析软件系统数据流图,针对分解每一个二层数据流图,对每一个数据流图元素,映射对应威胁,编写测试用例,用例必需根据模板输出。
测试用例具体内容包含:
用例名称:测试用例必需含有唯一可区分名称;
用例实施步骤:用例具体实施步骤,每一步必需无歧义,含有可实施性;
用例使用工具:用例实施过程中使用工具;
用例实施条件:用例实施必需含有条件,如网络可达、服务必需运行等;
用例输入和输出:用例实施过程中包含输入,和对应输出;
用例安全属性:现在要求安全属性包含管理通道安全、XSS、注入攻击、CSRF、身份认证、会话安全、敏感数据保护、越权、中间件安全、配置安全这10个维度;
用例实施优先级:用例实施优先次序,在用例数量很多情况下,应根据优先级高低次序实施。
4.2.4 实施测试方法
测试用例编写完就需要开始用例实施,具体测试包含自动化工具实施和手动测试。
自动化工具扫描包含:Nmap端口扫描、系统漏洞扫描、web安全扫描、协议安全扫描等;
手动测试包含:XSS、CSRF、SQL注入、XML注入、命令注入、横向/纵向越权、会话安全等等;
安全测试环境标准上使用软件系统测试环境,如必需在生产环境上进行,实施测试方法中必需包含《失败退回方案》,保护生产环境中数据和应用;
对于每一个用例测试过程,需要有对应操作截图,测试实施完成后需要输出对应《安全测试汇报》。
4.2.5 回归测试方法
《安全测试汇报》中需要给出每个安全问题或漏洞处理方案或提议。假如可能,处理方案应该具体到源码等级。
回归测试目标为了预防问题修复引入新安全问题,问题修复&回归测试是个循环过程,测试没有新问题时循环即终止。
4.3 测试计划
待《软件安全测试方案》总集审核、图信审核均经过后,由总集PM协调确定包含各方测试时间及地点安排,最终形成《软件安全测试计划》
《软件安全测试计划》关键包含以下内容:
1) 测试对象
2) 工作权责
3) 具体测试分工及测试时间地点安排
4) 附《软件安全测试方案》
4.4 实施测试
安全实施团体根据《软件安全测试计划》实施测试,包含各方现场或远程配合测试工作;
实施测试过程中,如多方存在问题或争议,由总集PM协调处理;
实施测试工作结束后,安全团体给出《软件安全测试汇报》,说明此次安全测试过程中发觉问题或漏洞,并给出推荐处理意见。
4.5 回归测试
待厂商完成《软件安全测试汇报》中问题及漏洞修复工作后,安全实施团体确定修复工作,并确定是否引入了新问题;
问题修复&回归测试是个循环过程,测试没有新问题时循环即终止。
4.6 测试总结
测试工作完成后,由安全测试团体总结此次测试过程中出现问题,并针对这些问题给出改善提议。
展开阅读全文