安全编码实践三:C/C++静态代码分析工具Prefast

本文介绍了微软的C/C++静态代码分析工具Prefast,探讨了其在安全编码实践中的作用,强调了 Prefast 在Visual Studio和Windows驱动程序开发包中的应用,并列举了一些常见的安全相关警告,如未初始化的内存、缓冲区溢出等问题,提倡在开发过程中使用静态代码分析工具以减少安全漏洞。
摘要由CSDN通过智能技术生成

《程序员》5月文章。申明。文章仅代表个人观点,与所在公司无任何联系。

 

  1. 概述

   在前面的安全编码实践的文章里,我们讨论了GS编译选项和数据执行保护DEP功能。 结论是GSDEP可以有效的缓解缓存溢出类型的安全漏洞的危害。关于这个结论,有两个大家需要值得注意的地方。

   第一:GSDEP是缓解(mitigation)措施。也就是说,代码本身仍然存在着安全漏洞,只是由于GSDEP低了其危害程度。

   第二:GSDEP存在其自身的局限性。例如,GS不是对每一个函数都适用,而DEP则需要一定的硬件支持。

    那么,一个很自然的问题就是,有什么工具可以帮助我们在开发过程中,及早发现并修补代码中存在的安全漏洞?

   答案之一是静态代码分析工具。本文会着重介绍微软提供的C/C++的静态代码分析工具:Prefast。对于托管代码(managed  code),微软提供的静态代码分析工具是FxCop。关于FxCop,我们会在以后的安全编码实践的文章中专门介绍。

  1. Prefast介绍
  • 2.1历史

   Prefast是微软研究院提出的静态代码分析工具。主要目的是通过分析代码的数据和控制信息来检测程序中的缺陷。需要强调的是,Prefast检测的缺项不仅仅是安全缺陷,但是安全缺陷类型是其检测的最为重要的部分。Prefast推出后在微软内部得到了广泛的使用,并经历了若干格版本的升级。现在,微软将这个内部工具商业化,以提供给外部的开发人员使用。

  • 2.2 如何获得Prefast


 

   目前有两个办法可以获得Prefast工具。

  • Prefast包括在Visual Studio 2005 /2008的团队版本(team edition)中。
  • Prefast包括在Windows驱动程序开发包(Microsoft Windows Driver Kits)的开发环境中。


 

   需要指出的是,Visual Studio的团队版本的价格要高于Visual Studio个人版本,而Windows驱动程序开发包是免费下载的,那它们提供的Prefast版本有什么区别?在Visual Studio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值