CISSP学习笔记-20(软件开发安全).pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

CISSP学习笔记-20(软件开发安全)

知识点

软件开发控制概述

软件开发

编程语⾔

编译型语⾔:C、Java、VB

优点--不易被第三⽅操纵

缺点--恶意⼈员以加⼊后⻔,安全缺陷绕过检测

解释型语⾔:Python、R、JS和VBS

优点——编程⼈员不易在解释型代码中插⼊恶意代码,因为最终⽤户以查看源代码并检查代码的准确性。

缺点——接触软件的任何⼈都能修改原始指令,并能在解释型软件中嵌⼊恶意代码。

开发⼯具集

⾯向对象编程

C++、Java 和.NET 语⾔

在OOP 模型中,每个对象都有对应其特定操作的⽅法。例如,账户对象以包括增加资⾦、扣除资⾦、关闭账户和转移所有权

的⽅法。

对象也以是其他对象的⼦类,并且继承⽗类的⽅法。例如,账户对象能有相关特定账户类型的⼦类,如储蓄、检查、抵押和

汽⻋贷款。

⼦类使⽤⽗类的⽅法,也拥有⾃⼰的⽅法。⽐如,检查对象能有⼀个⽅法名叫write_ check(),⽽其他⼦类则没有。

从安全的⻆度看,⾯向对象编桯提供了⼀个抽象的⿊盒。

好的编程实践:⾼内聚、低耦合

低耦合:因为对象更独⽴,所以低耦合提供了更优的软件设计。低耦合更易于检测故障和更新。

⾼内聚:内聚程度较低的对象需要⼤量来⾃其他对象的帮助才能完成任务,并且具有⾼耦合的特点。

保证

保证

确保在新应⽤程序中构建的安全控制机制在系统的整个⽣命周期内能正确地实现安全策略。

保证过程只是据此在系统⽣命周期内构建信任的正规过程。

通⽤标准(CC,提供了⼀种标准化的⽅法,⽤于为政府采购提供保证。

避免和抑制系统故障

输⼊验证

输⼊验证核实⽤户输⼊的值是否匹配程序员的期望,之后才允许进⼀步处理。这种类型的输⼊验证,通过代码检测确保数字

落在⼀个接受的范围,被称为限制检测。

身份认证

许多应⽤程序,特别是Web 应⽤,要求⽤户在访问敏感信息或修改应⽤程序中的数据之前进⾏身份验证。开发⼈员⾯临的⼀

个核⼼安全任务就是确保这些⽤户通过身份验证,只执⾏经授权的操作,并⾃始⾄终安全地跟踪会话。应⽤程序所需的身份

验证级别应直接与该应⽤程序的敏感程度联系起来。

使⽤现有的、经过加固的身份验证系统通常⽐尝试开发⽤于特定应⽤的身份验证系统更安全。如果做不到,也考虑使⽤外

部开发和验证的身份验证库。

会话管理

会话令牌应在指定的时间段后过期,并要求⽤户重新认证。

开发⼈员应禁⽌任何公开访问的服务器和应⽤程序提供详细的错误消息(禁⽌调试模式)。

应⽤程序应该被配置成将错误和其他安全事件的详细⽇志记录发送到集中⽇志存储库。

⽤于Web 会话管理的cookie仅在安全的、加密的信道上传输,并且这些cookie 使⽤的标识符应该⾜够⻓并且随机⽣成

错误处理

为系统故障做计划时有两个基本选择:

• 故障防护(fail-secure状态,将系统置⼊⾼级别安全性(甚⾄能完全禁⽤),直⾄管理员诊断问题并将系统还原⾄正常操

作状态。

• 应急开放(fail-open状态,允许⽤户绕过失败的安全控制,此时⽤户获得的特权过⾼。

⼀旦出现安全防护操作,能的选项是

停留在安全防护状态:要求管理员⼈⼯重启系统并监督这个过程,通过使⽤启动密码就以实施这个动作。

⾃动重启系统:并不要求⼈⼯⼲预,系统能够⾃⼰还原⾄正常运作状态,但仍存在⾃身特有的问题。

记录

OWASP 安全编码准则建议记录以下事件:

• 输⼊验证失败

• 认证尝试,尤其是失败的

• 访问控制失败

• 篡改尝试

• 使⽤

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档