首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码评审策略

代码评审策略
EN

Security用户
提问于 2011-04-20 04:24:50
回答 4查看 2.4K关注 0票数 10

根据我的信息,没有硬和快速的规则进行安全代码审查,但我们都制定了自己的战略,为同样的。我想知道我们是否都能共享安全代码评审中涉及或使用的不同策略。

EN

回答 4

Security用户

回答已采纳

发布于 2011-04-20 06:44:17

正如@sonofaaa提到的,在“软件安全评估的艺术”一书中,作者在第4章(第一部分的结尾)中讨论了代码审核策略。

特别讨论了外部流灵敏度(数据流和控制流)和跟踪方向(正反向切片)以及许多中立的回顾方法。其他专题将详细讨论。这是关于安全代码评审主题的最好的书面材料。

我还应该提到“使用静态分析进行安全编程”--一本由Brian和软件撰写的书。它们涵盖了以安全为中心的静态分析工具的内部和使用,并将它们与安全代码审查世界中的其他形式/工具进行了比较。

如果您想要查看以安全为重点的现代静态分析器,我建议您首先使用一些开源或免费工具,例如CAT.NET for .NET (通常是C#、VB.NET和/或ASP.NET)、发现-秒-错误 (或旧的LAPSE+)、Java和JSP,以及RIPS。您通常不会发现支持动态语言的以安全性为中心的静态分析器,因为它们不依赖于类型系统,但是如果您对Python、Ruby或其他动态语言(或任何其他语言)感兴趣,请告诉我,我将尝试为您指明正确的方向。首先,尝试Bandit ( Python的OpenStack项目)和。

以商业安全为重点的静态分析器是为训练有素和专业的面向安全的应用程序开发人员而设计的。他们的成本假设有人将每天运行和分析这些工具,作为一项全职工作,一年到头。如果您有兴趣看到快速的结果--查看全氟辛烷磺酸 --但是如果您有兴趣将这些工具集成到一个长期的、具有风险的应用程序组合中,请查看Cigital电除尘器。还有许多应用程序安全精品店和咨询公司为他们的客户运行和优化这些工具。根据您的地区和战略方向,我会选择与一个伙伴,无论我提到的其他任何事情,因为他们可以宝贵的成功,一个appsec计划。在LinkedIn上搜索“应用程序安全咨询”()应该是可行的,如果您不去下一步的话。

票数 12
EN

Security用户

发布于 2011-04-20 20:05:02

与您的声明相反,我认为(安全)代码评审不应该是一项主要是临时的活动。有一些非常强大的方法可以用来进行有效的代码评审。为了获得最好的结果,应该以增量和迭代的方式进行。

下面是这样一种方法的高级大纲的示例,并附有一些指导原则:

  • 了解你的系统(架构,设计,.)。用事先准备好的问题单..。
  • 确定明确的目标
    • 作用域
    • 约束
    • 目标
    • 非进球!
    • 安全问题的类型
    • 时限

  • 分析威胁(例如使用威胁建模),以帮助关注高风险领域
  • 利用自动化工具进行初步扫描
  • 检查复杂/脆弱的部分
    • 复杂代码(例如圈复杂度)
    • 有大量历史臭虫的地区
    • 甚至有许多自动扫描的“假阳性”

  • 标识所有输入的数据验证
    • 信托问题帐户

  • 网页中的数据输出
  • 特别是深入审查所有安全机制(例如身份验证、密码等)
  • “有趣的”连接,例如
    • 创建过程
    • 线程和同步(特别是在静态方法和构造函数中)
    • 资源访问(如数据访问、文件系统等)
    • 默认代码
    • 提升的特权
    • 未经认证的访问
    • 网络

  • 语言特定问题,
    • 例如C/C++:缓冲区溢出(堆栈/堆)、整数溢出、格式字符串、动态LoadLibrary()s、“禁用”API等。
    • 或用于.NET: InterOp、反射、动态Assembly.Load()、CAS/完全/部分信任、不安全代码等。
票数 6
EN

Security用户

发布于 2011-04-20 04:45:01

我通常从清单开始。例如OWASP前10名或CERT编码指南(或我自己的书中的章节!)我让团队评估与清单相关的代码,并进行无定向测试和检查。公开评审中的“流行”问题被添加到清单中,取代原来在清单上出现的非问题。

此外,在可用的地方使用静态分析工具。

这种方法的好处也是它最大的缺点。清单上的问题很容易发现,但往往是唯一的问题,因为创造性的找虫并不容易。

票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/3197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档