安全设计文档模板
目 录
1 前言
1.1 目的
【编写提示:说明编写该文档的目的】
1.2 内容提要
【编写提示:说明该文档的主要内容。】
1.3 术语定义
【编写提示:说明该文档内有关的术语,并解释术语的英文含义。】
1.4 参考资料
【编写提示:说明编写该文档的参考资料。】
2 总体安全设计
【编写提示:描写本系统的总体安全设计从哪几方面考虑和实现的,如系统软件,包括包括操作系统和数据库等的安全性,数据的存放、传输;应用系统在设计上的安全性考虑,包括密码的存放和加密方式,数据的存放和操作,系统日志,日期格式,故障的处理能力等;应用系统操作的安全性,是否容易诱发误操作等问题;应用系统接口的安全性设计。这些方面在总体上是如何考虑和设计的。】
3 详细安全设计
3.1 系统软件的安全性
【编写提示:可以从以下方面进行描述,如: 网络安全、操作系统、数据库系统、中间件等方面】
3.1.1 网络环境
3.1.1.1 基本安全性要求
【编写提示:描述密码在网络上传送形式,如何保证接收数据的完整性,数据是如何传送的;描述目标环境提供的网络结构,网络的基本安全要求,如筛选规则、端口限制、支持的协议;应用程序设计时打开的新端口或使用新协议所带来的威胁如何处理的;域名服务的安全性如何设计的】
3.1.1.2 高级安全性要求
【编写提示:通信双方的身份校验采用何种方式,通信通道安全如何设计的】
3.1.1.3 访问控制
【编写提示:描述网络访问如何控制,例如:网络服务使用策略、外部链接用户的鉴别、远程访问策略等】
3.1.2 操作系统
【编写提示:选择的是哪种操作系统,相关安全性的说明】
3.1.3 数据库系统
【编写提示:选择的是哪种数据库,及选择此数据的安全优势】
3.1.4 中间件
【编写提示:描述所选中间件的安全策略,如在应用服务器上部署的代码如何防止内存泄漏】
3.1.5 web应用的安全性
【编写提示:含密码信息操作、非查询类操作安全方面如何考虑的;如何防止客户端采用技术手段恶意重复登录,探测用户密码;为防止浏览器端通过页面回退重新登录,用户登录界面如何设计的;输入验证、身份验证采用哪种方法;对敏感数据如何处理的;会话管理,攻击者捕获会话 cookie 并利用它访问应用程序,如何防止;参数操作,如cookie中敏感数据如何保护。】
3.1.6 其他软件
【编写提示:应从加密、授权、审核和记录、异常管理等方面描述安全性如何考虑的】
3.2 数据的安全性
3.2.1 数据的存放
【编写提示:描述核心数据存放位置、关键身份认证数据存放的要求,重要数据存放的要求;历史数据的存放考虑数据量的影响应如何设计】
3.2.2 外系统接口数据的安全性
【编写提示:描述核心数据与其他系统之间的接口方面的安全性要求,如何保证接口数据的安全】
3.2.3 数据的修改
【编写提示:对核心数据、敏感数据的修改有何要求,数据修改如何控制】
3.2.4 数据的查询
【编写提示:对核心数据、敏感数据的查询如何限制,保证操作者只能查询到自己权限以内的用户数据。】
3.2.5 数据的传输
【编写提示:数据传输采用的是哪种加密算法,及相应的加密过程】
3.2.6 数据的备份和恢复
【编写提示:为减少备份的时间与数据量,应采用哪些备份方式,备份策略的详细描述;备份文件名的命名应保持唯一性,本系统如何命名的。恢复备份时为确保恢复准确应如何操作,是否进行过恢复的测试。】
3.2.7 数据的管理能力
【编写提示:提供对制订数据的存放管理制度的建议,避免因数据管理不当造成关键数据的丢失。如:系统设计应尽可能以参数化形式进行配置,确保系统的灵活性与稳定性。】
3.3 应用系统的安全性
3.3.1 用户管理和权限管理
【编写提示:如用户管理、权限管理都是通过操作操作员管理的,操作员的登录是如何设置的,多次登录不成功是否有限制,操作员对系统功能的权限是如何控制的,系统是否需要设定多个不同职能的操作员,是否控制了第三方人员对本系统的访问和操作权限……等】
3.3.2 密码管理
【编写提示:应用系统和数据库的超级用户密码是如何管理和维护的,密码存放是否经过加密处理,加密算法如何实现的,用户密码规则如何设计的,是否有强制或提醒用户更改密码措施,是否设计的动态密码及设计动态密码的优点】
3.3.3 操作员日志
【编写提示:日志记录是如何设计的,是否能够完整的记录修改前和修改后的状态。对应用系统运行环境各配置项的变化如何侦测的。】
3.3.4 抗抵赖
【编写提示:描述抗抵赖功能达到的标准。】
3.3.5 大额操作
【编写提示:大额操作是否有预警、监控、日志,采用何种方法实现,对出现的异常是如何处理的。】
3.3.6 重复操作
【编写提示:对重复操作是否有控制,如何控制的。】
3.3.7 故障预防、处理和恢复
【编写提示:故障和灾难发生时候,系统应该可以有应急交易的措施和事后完整的补救手段。需要制订明确详细的应急处理计划。】
3.3.8 可扩展性和可维护性
【编写提示:设计应当具有比较高的易维护性和可扩展性,如程序升级兼容性的考虑,升级失败的处理,是否有详细的日志记录,版本的管理是否统一。】
3.4 系统操作的安全性
3.4.1 操作界面的一致性
【编写提示:描述对页面整体设计风格、元素风格、功能操作等如何保持一致性设计的。】
3.4.2 错误提示
【编写提示:错误提示信息应准确而友好,例如,提示信息是否是通过特殊图形或颜色来确认的,使客户很容易明白,提示信息如何避免歧义的,操作某项动作时是否需要提前确认等。】
3.4.3 配置管理
【编写提示:配置项被修改后应怎样提示,重要配置项如何存放】
3.4.4 帮助
【编写提示:操作手册、维护手册需能保证是完整的,除了操作手册还有哪些可给用户提供帮助的。如:状态栏或控件上的提示文本,专用术语等难理解词汇如何处理的。】
3.4.5 其他
【编写提示:若有需要,可自行增加章节】
3.5 部署的安全性
【编写提示:考虑各操作系统的互联、注册表的修改,发布、升级、补丁包、下载,防止源代码泄漏的措施,如操作系统、数据库软件等版本标识的明确,安装部署时,对系统软件(尤其是操作系统和数据库)的默认配置项进行调整的,如何说明的。版本发布到生产系统之前如何验证版本的正确性】
3.6 接口的安全性
【编写提示:描述接口文档格式、接口内容、可扩展性、加密和校验、权限管理、版本标识等的安全性考虑】
3.7 其他安全性考虑
【编写提示:描述网络管理方面网络隔离、杀毒软件等的设置,备份方面是否能够进行在线热备份离线冷备份,权限管理如何分工等。若有需要,可自行增加章节进行补充其他安全设计的内容】