| 
					   
  
  
Veracode公司成立于2006年,最早的技术团队成员来自于Stake、Guardent、Symantec和 VeriSign。Veracode为应用软件提供自动化的静态和动态安全性测及和修复服务。Veracode扫描二进制代码,并按漏洞的风险程度生成报告。另外,Veracode还可以根据客户的风险管理政策利用Veracode的UI(或客户现有的 IDE)与开发人员一起来修复这些漏洞。  
  
在Gartner的‘Magic Quadrant for Static Application Security Testing’项目中,通过对包括HP和IBM代码测试产品等9款产品测试后,Gartner的结论是Veracode是真正进行二进制代码分析的产品。  
  
“Only one vendor, Veracode, has an offering that can perform true binary analysis.”  
                                                                 ——Gartner 
 
             Veracode的测试平台对应用软件的二进制代码采用静态和动态的分析,该分析过程会通过对可执行的机器码(这往往是攻击者所能接触到的)进行控制流和数据流的分析并由此产生一个行为模型。通过扫描二进制代码(也称为编译代码或字节代码)而不是源代码,Veracode的静态代码分析技术使企业能够更有效地、 更全面地测试软件,从而为组织机构提供更高的安全性,该分析技术被 行业分析师Gartner机构称做"突破"性的技术。与源代码检测工具的不同之处是这种方法不但能够准确检测到核心应用的问题还能延伸覆盖到第三方的库、预先包装的组件以及由编译器或平台的具体解释引入的代码。使用这种分析方法能有效的、持续地完成漏洞评估并帮助开发者在基础架构的各层快速部署安全技术。 
 
 
静态分析 ——不需要源代码,仅根据已发布的应用程序的二进制文件或字节码文件,就可以识别应用程序的安全问题,同时,由于不需要提供源代码,因此,也为更大范围的代码覆盖提供了可能性。所支持的语言包括:Java、 Windows、 Solaris and Linux 环境中的C/C+ +, Windows、 Solaris、 Linux、 Windows Mobile、 and BlackBerry环境中的.NET languages (including ASP.NET)、 ColdFusion和 PHP,也包括Ruby、Android/Java、Objective C。 
  
   
    
        
            | 
             Language 
             | 
            
             Platform 
             | 
            
             Version 
             | 
            
             Compiler 
             | 
         
        
            | 
             C/C++(32 or 64 bit except as noted) 
             | 
            
             Solaris (32/64)  
             | 
            
             8,9,10 (SPARC only) 
             | 
            
             gcc 3.3, 3.4, 4.0, 4.1 
             | 
         
        
            | 
             Linux   (32/64 except as noted) 
             | 
            
             Red   Hat Enterprise Linux 
            Dist   3,4, 5 (32/64) 
            Fedora   Core 6 (32) 
            SUSE 10.x (32) 
             | 
            
             gcc 3.2.2+, 3.3, 3.4, 4.0,   4.1, 4.2 
             | 
         
        
            | 
             Windows   (32/64)  
             | 
            
             Windows   XP/ 
            Windows   Server 2003 
            (IA32   Platform) (or later) 
             | 
            
             Visual   C++ 7.0 – in Visual Studio .NET (2002) 
            Visual   C++ 7.1 – in Visual Studio .NET 2003 
            Visual   C++ 8.0 – in Visual Studio 2005 
            Visual   C++ 9.0 – in Visual Studio 2008 
            Visual C++ 10.0 – in Visual   Studio 2010 
             | 
         
        
            | 
             Windows   Mobile(32) 
             | 
            
             Windows   Mobile 6.0, 6.1 
             | 
            
             Visual   C++ 8.0 – in Visual Studio 2005 with 
            Windows   Mobile 6 SDK and Visual C++ Smart 
            Device   Programmability 
             | 
         
        
            | 
             .NET/Windows(32/64) 
             | 
            
             .NET   2.0, 3.0, 3.5, 4.0 
             | 
            
             Visual   Studio 2005 and Visual Studio 2005 SP1 
            Visual   Studio 2008 
            Visual   Studio 2010 
             | 
         
        
            | 
             C# 
             | 
            
             .NET/Windows 
             | 
            
             .NET   1.1, 2.0, 3.0, 3.5,4.0 
             | 
            
             Visual   Studio .NET 2003 
            Visual   Studio 2005 and Visual Studio 2005 SP1 
            Visual   Studio 2008 
            Visual   Studio 2010 
             | 
         
        
            | 
             VB.NET 
             | 
         
        
            | 
             ASP.NET 
             | 
         
        
            | 
             Java  
             | 
            
             Java   SE 
            Java   EE 
            J2ME   BlackBerry 
             | 
            
             JRE   1.4 
            JRE   1.5 (aka Java 5) 
            JRE   1.6 (aka Java 6) 
             | 
            
             JDK   1.4 
            JDK   1.5 
            JDK   1.6 
             | 
         
        
            | 
             ColdFusion(beta) 
             | 
            
             ColdFusion 
            compiled   as Java 
             | 
            
             ColdFusion   7, 8, 9 
             | 
            
             ColdFusion   7, 8, 9 
             | 
         
        
            | 
             PHP  
             | 
            
             PHP 
             | 
            
             PHP   5.x 
             | 
            
             PHP   5.x 
             | 
         
        
            | 
             Ruby on Rails (beta) 
             | 
            
             Ruby   on Rails 
             | 
            
             Ruby   1.9.x/Rails 3.x 
             | 
            
             n/a 
             | 
         
        
            | 
             Java 
             | 
            
             Android 
             | 
            
             Android   API Level 8, 9(Android 2.2, 2.3) 
             | 
            
             JDK   1.6 
             | 
         
        
            | 
             Objective C(beta) 
             | 
            
             iOS 
             | 
            
             iOS   4.x, 5.x 
             | 
            
             XCode   3 (gcc), XCode 4 (gcc, LLVM) 
             | 
         
    
 
 
  
    动态分析——动态分析是在程序运行时进行测试和评估的技术,其目标是找到正在运行的程序的安全错误。Veracode的动态分析工具在web 应用程序的运行环境中对应用程序进行动态的测试,并通过对应用程序前端和后端的通信进行分析,识别安全漏洞和架构上的脆弱性,寻找那些可能会被黑客利用的漏洞,从而先于黑客发现Web应用程序的安全漏洞。  
  
与源代码扫描仪不同,Veracode的动态分析程序不访问应用程序的源代码,因此,它对应用程序的语言依赖性较小,它可以扫描JAVA/JSP、 PHP和其它引擎驱动的web 应用程序。它检查程序内部的目录、调试代码、残余的源代码以及资源文件,以发现隐藏的用户名/口令、SQL语句、ODBC连接器以及其它可能会被黑客发现并加以利用的敏感信息。该动态分析工具还可以模拟恶意用户对应用程序进行试探和攻击,以查看哪些结果不在预期结果集中,从而检查出在编码过程中引入的不该出现的失误。   
  
典型应用   
  
移动应用安全性及隐私性分析  
  
随着智能手机和平板电脑的日益普及和面向客户、面向企业的移动应用不断增长,组织机构和个人因为移动应用而面临的信息安全威胁日益严重。随着这些应用程序开始访问敏感数据和办理业务的关键操作,一方面提高了生产效率和个人应用的及时性、便捷性,另一方面也加重了安全和隐私问题。Veracode的移动应用安全性及隐私性分析将帮助客户了解这些内部开发或者是第三方开发的移动应用程序可能存在的安全风险和潜在的隐私侵犯行为。  
  
Veracode支持如下移动平台上的二进制代码扫描:  
    
        
            | 
             PLATFORM 
             | 
            
             VERSION 
             | 
         
        
            | 
             Android 
             | 
            
             API level 8, 9 (Android 2.2, 2.3),   Applications should be fully implemented in Java 
             | 
         
        
            | 
             BlackBerry 
             | 
            
             J2ME 
             | 
         
        
            | 
             Windows   Mobile 
             | 
            
             Windows Mobile 6.0, 6.1 
             | 
         
        
            | 
             iPhone、iPad 
             | 
            
             iOS 4.x, 5.x 
             | 
         
    
 
移动设备除了因为移动平台引入的固有漏洞外,还有可能受到由于应用程序代码缺陷导致的信息安全威胁以及由于恶意程序导致的数据泄漏。而Veracode在对这些软件进行扫描时: 
    - 可以检测出加密缺陷、缓冲区溢出、凭据管理、数值缺陷、代码之类、信息泄漏等代码缺陷类漏洞;
 
    - 也可以检测出程序中是否含有恶意代码,这些恶意代码可能导致对通讯簿数据、 电子邮件、 电话记录或短信蓄意传播,以及对麦克风、 GPS、 或照相机数据的秘密传输和通过sockets 泄漏e-mail, HTTP, SMS, DNS, ICMP, IR等信息。
 
 
APM解决方案 
Veracode的应用程序外围监控APM(Application Perimeter Monitoring)解决方案,通过提供一个快速、可大规模扩展的Web应用程序的风险管理方法,帮助企业更好地降低Web应用的风险。APM提供的即时或长期的风险管理包括: 
    - 准确获取当前Web应用的程序清单,使企业及时了解整个Web应用的程序分布状况
 
    - 快速准确的扫描漏洞
 
    - 大规模的、快速的风险评估,减少Web风险
 
    - 有效地监测应用程序的发展和变化,及时发现新应用引入的漏洞
 
    - 提供修复建议,迅速减少因漏洞引入的风险
 
 
APM侧重于企业违规行为和数据丢失等首要原因,使用由外到内的方法来管理Web应用程序的漏洞, 并且会在一年中提供多次监测结果。APM将以一种全新的方式来帮助企业启动应用程序安全管理。  |