「第一篇」介绍
批注
[……] 表示他人、自己、网络批注
参考资料来源于
* 书中批注
* CSDN
* GitHub
* Google
* 维基百科
* YouTube
* MDN Web Docs
由于编写过程中无法记录所有的URL
所以如需原文,请自行查询
{……} 重点内容
*……* 表示先前提到的内容,不赘述
「第一篇」介绍
「第一章」前言
[本章中的我均指Eoin Keary(OWASP董事会成员)]
OWASP代码审计指南刚开始包含在OWASP Testing Guide中,比较符合的发展状况
但随着代码审计的不断发展,逐渐形成了独有的规范标准
我在2006年开始代码审计指南的编写项目
当前版本于2013年4月重新启动,并获得美国国土安全部的资助
OWASP代码审计团队由一群有才华的志愿者组成,他们在全球各类型的企业或组织中开展代码审计工作,从小型初创公司到全球大型的软件开发企业
众所周知,当在系统开发生命周期的早期阶段检测到安全问题时,修复成本更低
从安全角度看,把代码审计与SDLC整合有利于产出高质量代码
系统本身安全是抵御攻击者的最佳方法
攻击者找系统漏洞的时间比防御者多
攻防是一场不公平、不对称的对抗
本指南没有涵盖所有的编程语言,主要集中在C#、.NET和Java,可能也会包括C、C++、PHP等。但指南中提到的技术基本能够适配任何代码环境
幸运也是不幸的一点是,web应用中的安全缺陷在不同的编程语言中非常一致
「第二章」介绍
欢迎使用第二版的OWASP代码审计指南
第二版更新了最新的威胁和应对措施,也加入了OWASP成员在代码审计方面积累的经验和最佳实践
「2.1主要内容」
《代码审计指南》第二版旨在为软件开发人员和管理人员提供代码安全审计的最佳实践和建议,以及如何在软件安全开发生命周期中使用该指南
该指南首先介绍了如何进行代码安全审计,如何将其引入公司的S-SDLC,并根据具体的技术,给出审计人员应该寻找什么的代码示例
具体而言,该指南涵盖
2.1.1概述
如何进行代码安全审计及优势等
它概述了安全代码审计技术,并将代码审计与其它源码分析技术比较
2.1.2方法论
方法论部分更详细地介绍了如何将安全审计技术整合到开发组织的软件开发生命周期中,以及审计代码的人员如何确保他们有正确的上下文进行有效审计
主题包括将基于风险的安全代码审计,通过威胁建模来了解正在审计的应用程序,以及了解外部业务驱动因素如何影响对代码安全审计的需求
「2.2如何使用本书」
这本指南的内容和结构都经过精心设计
此外,所有贡献的章节都经过精心编辑,并整合到一个统一的框架中,提供了统一的结构和风格
本指南内容从三种不同的视角展开
* 管理团队希望了解为什么需要代码审计,以及为什么在为当今组织开发安全企业软件的最佳实践中包括代码审计
高级管理人员应该至少阅读本指南的第一节和第二节
如果进行安全编码将成为组织软件开发生命周期的一部分,那么,管理层需要考虑以下事项
* 组织项目评估是否为代码审计分配时间?
* 管理层是否有能力跟踪每个项目和程序员的代码审计和静态分析的相关指标?
* 管理层需要决定在项目生命周期中什么时候应该进行代码审计,以及对现有项目的哪些变更需要在审计之前完成代码审计
* 软件负责人希望在代码审计中向同行提供有足够经验的反馈,以帮助他们的组织创建 安全的企业软件
他们应该考虑
* 作为一名同行代码审计员,要使用这本书,你首先要决定你想完成的代码审计类型
让我们花几分钟时间来复习每一种类型的代码,以帮助决定这本书如何对您有所帮助
* 应用编程接口/设计代码审计
使用这本书来理解架构设计如何导致安全漏洞
此外,如果应用编程接口是第三方应用编程接口,代码中有哪些安全控制来防止安全漏洞
* 可维护性代码审计
这些类型的代码审计更倾向于组织内部的最佳编码实践
这本书确实涵盖了代码度量,这可以帮助代码审计者更好地理解如果一段代码过于复杂,应该查看哪些代码的安全漏洞
* 集成代码审计
同样,这些类型的代码审计更倾向于组织内部的编码策略
正在集成到项目中的代码是否经过了IT管理层的全面审核和批准?许多安全漏洞现在都是通过使用开源库来实现的,这可能会带来不安全的依赖关系
* 测试代码审计
敏捷和测试驱动设计,程序员创建单元测试来证明代码方法如程序员所愿
此代码不是测试软件的指南
代码审计者可能希望关注单元测试用例,以确保所有方法都有适当的异常;代码以安全的方式失败
如果可能的话,代码中的每个安全控制都有适当的单元测试用例
* 代码安全审计者,希望获得关于如何将代码安全审计集成到组织的安全软件开发生命周期中的更新指南
这本书也将作为代码审计流程中的代码审计参考指南
这本书提供了代码审计者所需的完整信息来源
首先应该把它作为一个关于代码审计的故事来阅读,然后作为桌面参考指南来阅读
|