一、代码审计工具
1、商业代码审计工具: A、KlocworkB、FortifyC、CoverityD、C++TestE、TestBedF、CheckmarxG、PolySpaceI、CodeSecure
A、Klocwork

Klocwork公司是软件静态分析领域技术和市场领先的厂商,全球拥有超过1000家成功客户,其中包含许多全球财富500强企业。 
Klocwork软件是Klocwork公司基于专利技术分析引擎开发的,综合应用了多种近年来最先进的静态分析技术,是出色的软件静态分析软件。
Klocwork产品与其它同类产品相比,具有很多突出的特征:Klocwork支持的语言种类多,能够分析C、C++、C#和Java代码;
能够发现的软件缺陷种类全面,既包括软件质量缺陷,又包括安全漏洞方面的缺陷,还可以分析对软件架构、编程规则的违反情况;
软件分析功能全面,既能分析软件的缺陷,又能进行可视化的架构分析、优化;能够分析软件的各种度量;
能够提供与多种主流IDE开发环境的集成;能够分析超大型软件(上千万代码行)。

B、Fortify

Fortify SCA(Source Code Analysis) Fortify Software公司是一家总部位于美国硅谷,致力于提供应用软件安全开发工具和管理方案的厂商。
Fortify为应用软件开发组织、安全审计人员和应用 安全管理人员提供工具并确立最佳的应用软件安全实践和策略,帮助他们在软件开发生命周期中花最少的时间和成本去识别和修复软件源代码中的安全隐患。 
Fortify SCA是Fortify360产品套装中的一部分,它使用fortify公司特有的X-Tier Dataflow™ analysis技术去检测软件安全问题。
C、Coverity

Coverity公司是由一流的美国斯坦福大学的科学家于2002年成立的,产品核心技术是1998年至2002年在斯坦福大学计算机系统实验室开发的,用于解决一个计算机科学领域最困难的问题,在2003年发布了第一个能够帮助Linux、FreeBSD等开源项目检测大量关键缺陷的系统.
Coverity是唯一位列IDC前10名软件质量工具供应商的静态分析工具厂商,被第三方权威调查机构VDC评为静态源代码分析领域的领导者,市场占有率处于绝对领先地位。
Coverity公司提供最先进的和可配置的用于检测软件缺陷和安全隐患的静态源代码分析解决方案.
Coverity将基于布尔可满足性验证技术应用于源代码分析引擎,分析引擎利用其专利的软件DNA图谱技术和meta-compilation技术,综合分析源代码、编译构建系统和操作系统等可能使软件产生的缺陷.
Coverity是第一个能够快速、准确分析当今的大规模(几百万、甚至几千万行的代码)、高复杂度代码的工具.
Coverity解决了影响源代码分析有效性的很多关键问题:构建集成、编译兼容性、高误报率、有效的错误根源分析等。

D、C++Test

C++Test是Parasoft针对C/C++的一款自动化测试工具,Parasoft是全球领先的软件测试工具和整体解决方案的专业开发供应商;AEP(自动错误预防)理论的创始者,软件测试领域的领导者;成立于1987年,总部设在美国加利福尼亚州的蒙罗维亚市;
前身是一家专业为美国国防部提供并行计算等专业服务的机构。拥有20年丰富的专业技术积累和行业应用经验,专注于软件测试领域,18项软件技术专利,致力于帮助客户迅速提高软件质量的同时大幅缩短上市周期和降低开发成本,Parasoft公司拥有遍布全球的分支机构和分销商网络,全球超过10,000家客户,财富500强公司中的58% 、财富100强公司中的88%都正在使用Parasoft的产品和解决方案。
C++test支持编码策略增强,静态分析,全面代码走查,单元与组件的 测试,为用户提供一个实用的方法来确保其C/C++代码按预期运行。
C++Test 能够在桌面的IDE环境或命令行的批处理下进行回归测试。
C++test 和 Parasoft GRS 报告系统相集成,为用户提供基于Web且具备交互和向下钻取能力的报表以供用户查询,并允许团队跟 踪项目状态并监控项目趋势。

E、TestBed

LDRA公司是专业性软件测试工具与测试技术、咨询服务提供者,成立于1975年,具有丰富的软件测试经验,其总部位于英国利物浦。
其旗舰产品Testbed/TBrun功能强大、功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试,已成功地应用于国内各大研究机构、软件测试部门。
编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。
编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。
测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。
F、Checkmarx

Checkmarx CxSuite CxEnterprise 是以色列的一家高科技软件公司。
它的产品CheckmarxCxSuite专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险。
首创了以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术来扫描和分析源代码中的安全漏洞和弱点。
G、PolySpace

Polyspace产品是MathWorks公司推出的代码静态分析和验证工具,Polyspace系列产品不仅可以帮助您快速地找到代码中的Bug,同时具有独特的代码验证功能,可以提供代码质量的相关度量信息。
使用Polyspace软件,可以帮助用户快速地开发高质量的嵌入式软件, 同时,Polyspace产品提供的对行业标准例如DO-178, ISO26262,IEC61508的相关支持可以帮助用户进行行业相关的标准认证。

H、PClint

PC-Lint 是GIMPEL SOFTWARE 公司研发的C/C++软件代码静态分析工具,他的全称是PC-Lint/FlexeLint for C/C++。
PC-Lint 能够在Windows、MS-DOS 和OS/2 平台上使用,以二进制可执行文档的形式发布,而FlexeLint 运行于其他平台,以源代码的形式发布。
PC-lint在全球拥有广泛的客户群,许多大型的软件研发组织都把PC-Lint 检查作为代码走查的第一道工序。
PC-Lint 不但能够对程式进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针连同冗余的代码,还能够有效地提出许多程序在空间利用、运行效率上的改进点。
1、PC-Lint是一种静态代码检测工具,可以说,PC-LINT是一种更加严格的编译器,不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。
2、PC-lint不但可以检测单个文件,也可以从整个项目的角度来检测问题,因为C语言编译器固有的单个编译,这些问题在编译器环境下很难被检测,而PC-Lint在检查当前文件的同时还会检查所有与之相关的文件,可想而知,它会对我们有很大的帮助。
3、PC-lint支持几乎所有流行的编辑环境和编译器,比如Borland C++从1.x到5.x各个版本、Borland C++ Build、GCC、VC、watcomC/C++、Source insight、intelC/C++等等,也支持16/32/64的平台环境。
4、支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。

I、CodeSecure
阿码科技成立于2006年,总部设立于美国加州圣克拉拉市,研发中心位于台湾的南港软件工业园区。阿码科技提供全方位网络安全解决方案,捍卫企业免于受到黑客利用 Web 应用程序的漏洞所发动的攻击。
阿码科技 CodeSecure可有效地协助企业与开发人员在软件开发过程及项目上线后找出 Web 应用程序风险,并清楚交代风险的来龙去脉 (如何进入程序,如何造成问题) 。
CodeSecure内建语法剖析功能无需依赖编译环境,任何人员均可利用 Web操作与集成开发环境双接口,找出存在信息安全问题的源代码,并提供修补建议进行调整。
CodeSecure依托于自行开发的主机进行远程源代码检 测,在保证速度稳定的同时方便用户进行Web远程操作。
优点:Web结合硬件,速度快、独具特色的深度分析
缺点:支持语言种类较少、价格不菲

2、开源代码审计工具:A、FindbugsB、CheckStyleC、SonarD、PMD
A、Findbugs
Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。Findbugs自带检测器,其中有60余种Bad practice,80余种Correctness,1种 Internationalization,12种Malicious code vulnerability,27种Multithreaded correctness,23种Performance,43种Dodgy。
我们还可以自己配置检查规则(做哪些检查,不做哪些检查),也可以自己来实现独有的校验规则(用户自定义特定的bug模式需要继承它的接口,编写自己的校验类,属于高级技巧)。 

B、CheckStyle
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。
它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。
Checkstyle配置是通过指定modules来应用到java文件的。
modules是树状结构,以一个名为Checker的module作为root节点,一般的checker都会包括TreeWalker子module。
可以参照checkstyle中的sun_checks.xml,这是根据sun的java语言规范写的配置。
在xml配置文件中通过module的name属性来区分module,module的Properties可以控制如何去执行这个module,每个property都有一个默认值,所有的check都有一个severity属性,用它来指定check的level。
TreeWalker为每个java文件创建一个语法树,在节点之间调用submodules的Checks。

C、Sonar
Sonar (SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。
支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。

D、PMD
PMD是一种开源分析Java代码错误的工具。与其他分析工具不同的是,PMD通过静态分析获知代码错误。也就是说,在不运行Java程序的情况下报告错误。
PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题。
PMD的核心是JavaCC解析器生成器。PMD结合运用JavaCC和EBNF(扩展巴科斯-诺尔范式,Extended Backus-Naur Formal)语法,再加上JJTree,把Java源代码解析成抽象语法树(AST,Abstract Syntax Tree)。显然,这句话不那么好懂,且看下文具体说明。

二、最受欢迎的十大WEB应用安全评估系统
1.IBM Rational AppScan
IBM公司推出的IBM Rational AppScan产品是业界领先的应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界。Rational AppScan 可自动化 Web 应用的安全漏洞评估工作,能扫描和检测所有常见的 Web 应用安全漏洞,例如 SQL 注入(SQL-injection)、跨站点脚本攻击(cross-site scripting)及缓冲溢出(buffer overflow)等方面安全漏洞的扫描。
游侠标注:AppScan不但可以对WEB进行安全评估,更重要的是导出的报表相当实用,也是国外产品中唯一可以导出中文报告的产品,并且可以生成各种法规遵从报告,如ISO 27001、OWASP 2007等。
2.HP WebInspect
目前,许多复杂的 Web 应用程序全都基于新兴的 Web 2.0 技术,HP WebInspect 可以对这些应用程序执行 Web 应用程序安全测试和评估。HP WebInspect 可提供快速扫描功能、广泛的安全评估范围及准确的 Web 应用程序安全扫描结果。
它可以识别很多传统扫描程序检测不到的安全漏洞。利用创新的评估技术,例如同步扫描和审核 (simultaneous crawl and audit, SCA) 及并发应用程序扫描,您可以快速而准确地自动执行 Web 应用程序安全测试和 Web 服务安全测试。
主要功能:
·利用创新的评估技术检查 Web 服务及 Web 应用程序的安全
·自动执行 Web 应用程序安全测试和评估
·在整个生命周期中执行应用程序安全测试和协作
·通过最先进的用户界面轻松运行交互式扫描
·满足法律和规章符合性要求
·利用高级工具 (HP Security Toolkit) 执行渗透测试
·配置以支持任何 Web 应用程序环境
游侠标注:毫无疑问的,WebInspect的扫描速度相当让人满意。
3.Acunetix Web Vulnerability Scanner
Acunetix Web Vulnerability Scanner是一款自动的Web应用安全性测试工具,它能够通过发现Web应用的Hacking弱点来监测你的网站。自动扫描能够更快速有效的对你的网站和Web应用进行深度测试。
大约有70%的网站存在安全隐患,这些漏洞可能会导致信用卡信息或客户列表等敏感的公司数据被盗。
对web应用hacking来说,防火墙,SSL和锁定的服务器几乎是无用的。
从80/443端口发起的针对web application的攻击,能够直接穿过防火墙,越过操作系统和网络级的安全措施,到达您的应用的心脏和企业数据。模块类的web应用通常都没用作足够的测试,有隐藏的弱点,及易受到攻击。
Acunetix具有领先的web应用安全扫描技术:我们的工程师从1997年开始就专注于网站分析和弱点侦测。Acunetix Web Vulnerability Scanner包括许多开创性的功能:
·自动的Javascript分析器可以测试Ajax和Web2.0的应用,
·行业内最先进,最深入的SQL注入和跨站点脚本测试,
·Visual macro recorder使Web form和密码保护区域测试更容易,
·扩展的报表工具包括VISA PCI compliance报表,
·多线程和快速扫描工具能够轻松检验成千上万的页面,
·智能的Crawler能够探测Web服务器的种类和应用的编程语言,
·Acunetix 可以探测和分析网站上的Flash内容,SOAP和AJAX。
4.绿盟极光远程安全评估系统-Web应用扫描
绿盟远程安全评估系统Web应用扫描增强模块,是绿盟科技研究团队多年深入研究当前各种流行的Web攻击手段的技术结晶,是专门面向 Web 应用安全管理员进行专业安全评估及检测的自动化工具。可以进行Web应用、Web 服务及支撑系统等多层次全方位的安全漏洞扫描、审计和辅助逻辑分析,全面发现各类安全隐患,提出针对性的修复建议,以及形成多种符合法规、行业标准的报告。
5.安恒信息MatriXay明鉴WEB应用弱点扫描器
明鉴WEB应用弱点扫描器(简称:MatriXay 3.6)是安恒安全专家团队在深入分析研究B/S架构应用系统中典型安全漏洞以及流行攻击技术基础上研制而成,该产品1.0版本于2006年8月世界安全大会BlackHat和Def-Con上首次发布,2.0版本于2007年12月 发布,并在08奥运WEB安全保障中发挥了重要的作用。与市场上同类产品的不同之处在于:不仅具有非凡的扫描功能,还提供了强大的渗透测试、网页木马检测功能。
作为公安部等级保护测评中心专用应用安全测评工具,工信部安全中心运营商安全Web和数据库安全检查工具,MatriXay 3.6 (2009版)可以帮助用户充分了解WEB应用存在的安全隐患,建立安全可靠的WEB应用服务,改善并提升应用系统抗各类WEB应用攻击的能力(如:注入攻击、跨站脚本、钓鱼攻击、信息泄漏、恶意编码、表单绕过、缓冲区溢出等)。
6.安域领创WebRavor
新一代应用安全扫描工具WebRavor,全面超越现有的此类工具,是目前世界上最好的商业级安全产品,被客户评价为“技术和艺术的完美结晶”,并且已经取得多项专利保护(200920105886.0/200910078545.3)。
安域领创的安全服务团队具有丰富的实施和规划经验,从2001年开始就参与规划和实施多种类型的安全咨询和服务项目,遍及政府、金融、电信、移动、联通等国内各大行业客户。
WebRavor是在深入研究分析WEB应用系统中典型安全漏洞及流行攻击技术的基础上,由国内顶尖团队开发的一款WEB应用安全评估产品。研发及测试时间历经4年,经过10万多个真实系统的测试,是目前业界最强悍的专注于WEB应用安全弱点的评估工具。WebRavor在2006年8月的世界安全大会BlackHat和Def—Con上发布后,被评价为“最佳的WEB安全评估工具”。
7.诺赛科技Jsky/Pangolin
JSky Web应用安全漏洞扫描系统是一款简明易用的自动化Web漏洞扫描与漏洞利用平台。帮你发现并解决现有Web系统中存在的安全隐患;杜绝黑客攻击;保护企业核心资产。
诺赛科技为您提供专业且全面的安全解决方案。JSky作为自动化的Web应用漏洞扫描软件模拟“攻击者”给你全方位的视角和完善的建议。让你对入侵者的操作一目了然,从而制定有针对性的防护方案。
8.知道创宇“知道网站安全体检中心”
知道创宇专注于WEB安全,致力于提供产品、技术、服务来改善日益恶化的中国互联网安全环境。
9.智恒联盟WebPecker网站整体威胁检测系统
“网站啄木鸟”是北京智恒联盟科技有限公司技术研究团队多年深入研究当前各类流行Web攻击手段(如网页挂马攻击、SQL注入漏洞、跨站脚本攻击等)的经验结晶。该系统是目前国内最早的一款商业化Web安全检查系统,通过本地检测技术与远程检测技术相结合,对网站进行全面的、深入的、彻底的风险评估,综合性的规则库(本地漏洞库、ActiveX库、网页木马库、网站代码审计规则库等)以及业界最为领先的智能化爬虫技术及SQL注入状态检测技术,使得相比国内外同类产品智能化程度高,速度快,误报率极低。
经过数百个用户的实践证明,“网站啄木鸟”是Web安全性价比最高的产品,相比国外的Web安全扫描产品来说,速度快,具备紧密跟踪国内最新网页木马的快速响应及更新能力;相比国内的Web安全扫描产品来说,功能多,结果准,该系统是我国等级保护测评以及网站安全保密检查必备软件系统。
10. Syhunt Sandcat
Sandcat是一款远程网络应用程序安全评估扫描器。它允许你以黑客的视角扫描最常见的网络应用程序缺陷。Sandcat在远程分析WEB应用程序存在的问题,包括但不仅限于:如:SQL注入、XSS等。
SandCat有Free版和Pro版,前者可以免费下载

三、20款最佳的WEB代码审查工具
1)CodeStriker
CodeStriker是一个免费&开源的Web应用程序,可以帮助开发人员基于Web的代码审查。
它不但允许开发人员将问题、意见和决定记录在数据库中,还为实际执行代码审查提供了一个舒适的工作区域。
官方网站: http://codestriker.sourceforge.net/index.html 
2)RhodeCode
RhodeCode是另一款非常棒的代码审查工具,能让你发现代码中的bug和问题,并在检查过后删除它们。
官方网站: https://rhodecode.com/ 
3)Codebrag
Codebrag是一款简单轻巧,提高进程作为的代码审查工具。它能帮助我们解决不少问题,如非阻塞代码审查、智能邮件通知、联机注释等等。
官方网站: http://codebrag.com/ 
4)Phabricator
Phabricator是一个开源软件和web应用,包括代码审查、托管GIT /Hg/ SVN、寻找bug、浏览和审计源代码等功能。
官方网站: http://phabricator.org/ 
5)Codifferous
Codifferous是一款免费的代码审查工具,能为我们提供更快的代码审查服务。无论你在何时何地,Codifferous能让你的团队协作审查工作变得更容易。你忘记了一个pull请求?没事。Codifferous允许你检查任意分支上的代码,无论何时你都可以留下注释、获得反馈。
官方网站: https://codifferous.com/ 
6)Getbarkeep
Barkeep是“非常友好的代码审查系统”——让你用一种快速又有趣的方式来检查代码。你也可以用它翻阅Git存储库的提交,看diff文件,写注释,并且你还可以将这些注释通过电子邮件发送给下一位提交者。
官方网站: http://getbarkeep.org/ 
7)Crucible
Crucible是另一款超级受开发人员欢迎的代码审查工具,可以审查代码、讨论修改,通过Crucible灵敏的审阅流程来确定缺陷。Crucible能够使得Subversion、CVS、Perforce等版本控制软件的代码审查变得简单起来。
官方网站: https://www.atlassian.com/software/crucible/overview 
8)Code Review Tool
Code Review Tool允许团队成员通过一种简单而有效的方式来协作审查代码。它提供了正式代码检查的所有优势,而且相比而言,所需的精力和时间更少。它既支持正式,也支持轻量级的代码审查进程。
官方网站: http://codereviewtool.com/ 
9)Malevich
用Malevich审查代码真的很简单。审查人员在同一个浏览器中,既可以看文件的原始版本,也可以看它的新版本。如果想要给某一行代码添加注释,只需要点击那一行,直接打字就可以了。提交注释之后,其他代码审查人员都可共享。
官方网站: http://malevich.codeplex.com/ 
10)SmartBear
SmartBear是一个有助于团队通过共同的开发、测试和管理工作以便能生产出高质量代码的代码审查工具。它允许团队在一个透明、协作的框架下进行同行代码审查、用户故事和测试计划——即时保持整个团队知晓对代码所做的更改。
官方网站: http://smartbear.com/product/collaborator/overview/ 
11) Veracode
代码审查是对计算机源代码的检查工作。它用于找到并修复在应用开发过程中产生的错误,以便改进程序质量和提升开发人员的技能。代码审查通常通过结对编程、讨论和正式审查等形式进行。
官方网站:http://www.veracode.com/security/code-review 
12) Gerrit
Gerrit是一个基于 Web 的代码审查系统,适于采用 Git 版本控制系统开发的项目进行在线代码审查。
13)Review Assistant
Review Assistant是一款支持Visual Studio的简单又优秀的代码审查工具。
1)在审查级别、特定的源代码块或源代码条上添加你的注释。
2)在预定会议之外启动与团队成员之间就代码的讨论。
3)标记需要修正的注释和缺陷之处。
4)在代码编辑器显示审查注释。
5)在审查注释和代码之间进行即时切换。
官方网站: https://visualstudiogallery.msdn.microsoft.com/9ef817b4-2c6d-4213-8b08-5be48f9d91b9 
14)Review Board
Review Board是程序员节约时间、资金和精力的代码审查好工具。语法高亮的代码,可便于更快读取。
15)Peer Review Plugin
此款插件通过提供基于Web的友好的审查环境,来节省开发人员在代码审查会议上所需要浪费的时间。
官方网站: http://trac-hacks.org/wiki/PeerReviewPlugin 
16)Codereview
官方网站:https://codereview.appspot.com/ 
17)Code Reviewer
Code Reviewer是一款免费的、简单的又易于部署和使用的代码审查工具,由SmartBear开发——也是Collaborator的发明者,业界第一家推出商用代码审查工具的公司。
官方网站: https://codereviewer.org/ 
18)Code Analysis Tool
CAST代码分析技术着眼于解决两个基本问题。首先,最现代化的IT系统是由成千上万的组件构成,由多个团队和许多开发人员构建的。其次,测量这些系统的软件质量需要涉及多种技术和代码工具。
官方网站: http://www.castsoftware.com/products/code-analysis-tools 
19)jArchitect
JArchitect可简化复杂Java代码库的管理。你可以使用JArchitect分析代码结构、指定设计规则、执行高效的代码审查,以及通过比较不同版本的代码掌握作出的改进。
官方网站: http://www.jarchitect.com/ 
20)Reviewale
Reviewale是市面上新出来的代码审查工具,它的功能包括语法高亮、发现bug/问题、改进代码、干净的用户界面、自定义代码字体等等。
官方网站: https://reviewable.io/ 

易霖博信息安全攻防实验室:本站部分内容来自互联网,版权归原作者所有,如不慎侵害到您的相关权益,请留言告知,我们将尽快处理,谢谢!(Part of the information in our website is from the internet.If by any chance it violates your rights,we will delete it upon notification as soon as possible.Thank you for cooperation.)