安全评估技术:代码审查和渗透测试

  • Srini Penchikala
  • 侯伯薇

2010 年 12 月 18 日

话题:安全架构DevOps语言 & 开发文化 & 方法

对 Web 应用程序的安全测试和评估应该包含两种技术,那就是安全代码审查和渗透测试技术。 OWASP的委员会成员 Dave Wichers 最近在AppSec DC 2010 大会发言,谈到了代码审查和渗透测试方法在寻找 web 应用程序的安全漏洞过程中的优势和劣势。

Dave 说,代码审查和渗透测试都能够支持自动化分析工具,从而为该过程中的安全引擎提供帮助。 代码审查过程应该包括检查所有自定义开发的代码,还要检查应用程序的配置文件、库文件、框架以及部署应用程序的服务器。

他比较了每种方法的优势和劣势。 渗透测试的优势在于,它需要更少的专业技能,更容易设置和执行,从而试验整个应用程序的架构,并找到漏洞。 而代码审查方法的优势则在于,它易于找到特定类型缺陷的所有内容和所有实例,它会验证正确的控件以及用在所需位置上的控件。

Dave 还显示了这两种方法对于 OWASP Top 10安全风险列表的内容。 代码审查是找到下列类型风险更好的方法:

  • 注入缺陷
  • 跨站点脚本攻击
  • 直接对象引用
  • 伪造跨站点请求
  • 基于 URL 的访问控制
  • 加密存储
  • 重定向 / 指向缺陷

而渗透测试在找寻下列类型的安全漏洞时胜出:

  • 配置缺陷
  • 传输安全缺陷

其它问题,像认证缺陷以及找寻认证和会话管理缺陷,使用这两种技术都可以解决。 它们为下列问题都提供了价值:找到与认证相关的问题,像账户锁定、需要强壮的证书、记录认证事件的日志、在注销的时候恰当地让会话失效、以及提供充分的随机会话令牌。

安全团队应该在安全测试过程中使用这两种技术,但是代码审查的优势会随着应用程序的规模以及评估的严格程度而变的更显著。 Dave 对讨论作出结论:代码审查并非是更昂贵的方式。 如果你有具备正确技能的人,那么它实际上会更快、更有效。



 

查看英文原文:Security Assessment Techniques:Code Review v Pen Testing

安全架构DevOps语言 & 开发文化 & 方法