安全设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安全设计说明书
北京炎黄新星网络科技有限公司二零一四年月
本报告修改记录:
目录
目录 (3)
1 文档概述 (4)
1.1 本文档的目的 (4)
1.2 参考文档和文献 (4)
1.3 假设和约束 (4)
1.4 本文档概述 (4)
1.5 名词解释 (4)
1.5.1 术语 (4)
1.5.2 简写 (4)
2 产品安全 (4)
2.1 身份与访问控制 (4)
2.2 会话管理 (5)
2.3 密码算法 (5)
2.4 日志安全 (5)
2.5 系统通信安全 (5)
2.6 系统密码安全 (6)
2.7 对文件上传/下载的限制 (6)
2.8 系统资源释放 (6)
3 代码质量安全 (6)
3.1 防范跨站脚本攻击 (6)
3.2 防范跨站请求伪造防范SQL注入攻击 (6)
3.3 不安全的直接对象引用 (6)
3.4 不安全的通信....................................................... 错误!未定义书签。
3.5 对其他各类用户输入的过滤 (6)
4 已发生的安全事故案例的相关安全考虑点 (6)
5 运行环境安全 (7)
5.1 硬件软件功能的分配原则 (7)
5.2 容灾设计 (7)
6 数据安全 (7)
6.1 传输安全 (7)
6.2 容错设计 (7)
6.3 容灾设计 (7)
备注:本文档模版中蓝色的文字部分为需要输入的部分
1文档概述
1.1项目说明及文档目的
[阐明该需求规格说明书的目的。并概要说明项目的大致情况、功能、作用等]
1.2参考文档和文献
[本小节应完整列出此说明书中所引用的任何文档。每个文档应标有标题、报告号(如果适用)、日期和出版单位。列出可从中获取这些参考资料的来源。这些信息可以通过引用附录或其他文档来提供。]
1.3假设和约束
[本小节应说明该说明书的前提条件和约束条件。]
1.4本文档概述
[本小节应说明该说明书中其他部分所包含的内容,并解释此文档的组织方式。]
1.5名词解释
1.5.1术语
[本小节应定义该说明书中用到的术语。]
1.5.2简写
[本小节应定义该说明书中用到的简写。]
2产品设计安全
[本小节从产品功能出发考虑安全设计包括:。]
2.1身份与访问控制
1,应用系统认证要求
[注:此部分涉及系统身份验证,此部分也是涉及安全问题较多的部分。
例如:应写明身份验证过程是否是与服务器交互完成(禁止完全由js脚本进行验证)。]
2,认证加密要求
[注:这里应写明身份认证过程是否按系统安全要求,对关键内容进行加密处理;使用的加密算法是否足够安全等;]
3,帐户密码修改功能
[注:应写明对帐户密码修改或重要内容修改时的通知功能,以及二次验证机制;]
4,登录控制安全
[注:这里应写明诸如用户登录频率、失败次数阀值、登录次数限制、登录失败的后续处理等情况;
登录过程应考虑,终端到服务器端传递过程被非法修改的可能性。写明对于重要字段是否需要在服务器端进行二次验证(具体可参考安全事故案例文档青海B2B 系统重置任意账户密码(功能设计问题,提交数据未验证)的内容)。]
5,登录验证码
[注:此处应写明,在登录时如果涉及验证码,则验证码的细节设定,如,干扰、扭曲、变形、粘连等效果(细节参考安全设计规范或验证码设计文档)]
6,登录认证失败提示
[注:写明当验证失败时,系统如何提示(应模糊提示);]
7,用户关键信息安全
[注:这里写明对于用户的关键信息(密码、ID等)是否安全加密后保存;]
8,系统及应用的配置文件安全
[注:这里应说明,重要的系统、中间件、数据库等配置文件应妥善保存,不应暴露于公网目录;]
9,其他登录安全考虑
[注:此处的其他安全方面,诸如:保存登录/自动登录功能、帐户权限-横向、纵向访问控制等安全点,并非所有系统都有相应安全要求,如涉及则根据情况灵活编写。]
2.2会话管理
1,会话产生及会话标识
[注:写明会话标识的产生、更新(登录前后是否更新)、及长度等;]
2,会话超时及结束
[注:写明会话超时时间及会话结束的处理情况;]
2.3密码算法
1,使用安全的密码算法
[注:写明在涉及加密时使用那种安全的加密算法,以及密钥的管理;]
2.4日志安全
1,具体日志内容应包含
[注:应注明,日志记录那些关键内容,关键内容是否需要加密等;]
2,日志的保存
[注:主要描述日志的安全保存,例如,不保存于公网可访问地址、个人敏感信息是否保存等;]
2.5系统通信安全
[注:主要描述是否涉及系统通信方面的安全,例如,重要通信是否需要SSL;]
2.6系统密码安全
[注:这里主要描述诸如,系统帐号、中间件、数据库等帐号,应遵循相应的密码安全规范。例如,帐号密码的长度、字符范围、有效期、存储(是否需要加密存储)等;具体参见安全设计规范内容;]
2.7对文件上传/下载的限制
[注:如果系统涉及文件的上传,则应描述清楚,如何对上传文件进行检验。例如,如何规定文件大小、后缀名、格式、用户端是否做校验、服务器端是否做校验、文件保存位置等安全点;
另外,可参考公司的安全事故案例-〉多个B2B系统的图片上传验证漏洞;]
2.8系统资源释放
[注:这里主要是java开发规范的相关内容,写明例如打开的文件,数据库连接等,使用完成后是否释放资源;]
3代码质量安全
[本小节从代码质量方面出发考虑安全设计包括:。]
3.1防范跨站脚本攻击
[注:跨站与SQL注入都是web系统最常见的攻击方式,这里请描述如何进行的预防(例如公司的安全包)。另外,需具体说明对哪些关键输入或字段进行了过滤。]
3.2防范跨站请求伪造防范SQL注入攻击
[注:同上;]
3.3不安全的直接对象引用
[注:主要检查用户重要参数是否暴露(具体可参见安全设计开发规范 2.4不安全的直接对象引用);]
3.4对其他各类用户输入的过滤
[注:部分内容同跨站及注入的过滤;但对于相关参数长度应说明,以避免过长的参数输入引起参数溢出漏洞;]
3.5引用开源程序的注意事项
[注:此部分主要检查,项目中是否涉及第三方的开源程序引用,如果有,则需检查是否包含恶意代码、冗余功能代码、广告类代码及不必要的页面文件以及是否嵌套其他安全考虑点。]
4已发生的安全事故案例的相关安全考虑点
[注:因各类系统涉及功能广泛,公司的规范文档可能考虑不周,对于已经发生的安全事故,其中也有相应的安全设计考虑点,在设计新系统时应进行相应的考虑。]
1,终端-服务器交互过程防篡改(注:提交的重要数据需要进行二次验证)