以色列Checkmarx公司的CxEnterprise静态源代码安全漏洞扫描和管理方案是业界最全面的、综 合的源代码安全扫描和管理方案,该方案提供用户、角色和团队管理、权限管理、扫描结果管理、扫描调度和自动化管理、扫描资源管理、查询规则管理、扫描策略 管理、更新管理、报表管理等多种企业环境下实施源代码安全扫描和管理功能。最大程序上方便和节约了企业源代码安全开发、扫描、审计和风险管理的成本和开 销。其无与伦比的准确性和方便的企业部署和实施的特性赢得了全球众多客户的青睐。比如Salesforce.com、道琼斯(新闻集团)、雅高、NDS公司、美国陆军、Amdocs等都在采用这种新一代的静态分析技术做源代码安全检测和风险评估。如今,Checkmarx的客户量数目庞大,其中包括涉及电信、金融银行、保险、汽车、媒体娱乐、软件、服务和军事等行业的财富1000的企业。2010年4月15日Checkmark被全球领先的行业分析公司Gartner评为“2010年度最酷应用安全供应商”。
“Checkmarx is the first code analysis company that can inspect and summarize application security risk quickly, non-intrusively and with tremendous accuracy.”
--- 摘自Gartner “ Cool Vendors in Application Security, 2010”报告。
Checkmarx产品的部分国外客户
Checkmarx 产品的部分中国客户
二、 Checkmarx CxEnterprise 主要功能组件
1. CxManager Application Server:接受CxClient扫描和查询请求,规则自定义,集中式提供企业级的用户、角色和团队管理、权限管理、扫描结果管理、扫描调度和自动化管理、扫描资源管理、查询规则管理、扫描策略管理、更新管理、报表管理。
2. CxEngine Scan server:执行具体扫描(分布式扫描和并行扫描),接受CxManager的扫描任务,并将扫描的结果存放在数据库,供CxManager查询和管理。
3. Database:存放扫描规则、系统配置、扫描用户、扫描结果、扫描任务等所有预先配置的信息和结果信息。
4. CxClient:CxManger的瘦客户端,可以允许多个客户端按照所赋予的权限和级别执行相应的代码扫描和结果审查及管理。客户可以通过CxClent组件、Internet、IDE(Eclipse/VS2005/Vs2008)等多种方式访问CxManager Application Server。
5. CxPortal:Web services用于公司局域网或者外部网络采用Web browser或者IDE开发插件使用扫描服务。
6. Web浏览器、Eclipse和Visual Studio Plugin:CxPortal客户端,用于公司局域网或者外部网络用户采用web browser 或者IDE开发插件使用扫描服务和管理扫描结果。
Web浏览器客户端
Eclipse Plugin客户端
三、Checkmarx CxEnterprise主要功能及特性
1. 操作系统独立。
代码扫描不依赖于特定操作系统,只需在在企业范围内部署一台扫描服务器,就可以扫描其它操作系统开发环境下的代码,包括但不限于如下操作系统Windows、Linux、AIX、HP-Unix、Mac OS、Solaris,无需在每种平台安装相应的版本,节约相关平台的软硬件成本。
2. 编译器独立、开发环境独立、搭建测试环境简单快速且统一。
由于采用了独特的虚拟编译器技术,代码扫描不需要依赖编译器和开发环境,无需为每种开发语言的代码安装编译器和测试环境,只需要通过CxClient、浏览器、开发环境集成插件登录到CxManager Application服务器,提供本地代码扫描代码的目录、远程代码目录、和版本管理代码目录(Subversion、CVS,ClearCase即可,扫描代码无需通过编译过程。搭建测试环境快速简单,无需像其它的静态分析工具,必须在相应的操作系统上安装相应的工具软件包,安装众多开发工具和代码依赖的第三方库及软件包、调试代码通过编译,方可进行测试。CxSuite CxEnterprise安装一次,即可扫描Java代码、C/C++代码、.NET代码JSP、JavaSript、VBSript、C#、ASP.net、VB.Net、VB6、ASP、Perl、Apex Visual Force等各种语言代码,并且不管这些代码是在windows平台、Linux平台或者其它平台的。
3. 工具学习、培训和使用的成本少,最小化影响开发进度。
由于编译器、操作系统和开发环境独立,使用者无需去学习每种平台下如何去编译代码,调试代码、如何扫描测试代码,无需去看每种平台下繁琐的使用手则。因为Checkmarx CxEnterrise服务只需要提供源代码即可扫描,并给出精确的扫描结果。
4. 低误报
CxEnterprise 企业服务在扫描过程中全面分析应用的所有路径和变量。准确的分析结果,验证可能的风险是否真正导致安全问题,自动排除噪音信息,扫描结果几乎就是最终的分析结果,其误报率(False Positive)几乎为零。极大的减少了审计分析的人工劳动成本,极大的节省了代码审计的时间,为开发团队赢得更多的开发时间。
5. 安全漏洞覆盖面广且全面 (低漏报)
数以百计的安全漏洞检查适合任于何组织,支持最新的OWASP、CWE、SANS、PCI、SOX等国际权威组织对软件安全漏洞的定义。漏洞覆盖面广,安全检查全面,其自定义查询语言CxQL可以让用户灵活制定需要的代码规则,极大的丰富组织特定的代码安全和代码质量的需要。
6. 安全查询规则清晰且完全公开实现。
规 则定义清晰,并完全公开所有规则的定义和实现让用户清楚知道工具如何去定义风险、如何去查找风险,透明各种语言风险。让用户知道工具已经做了那些工作,没 有做那些该工作。而不是给用户一个黑匣子,用户无法了解工具的细节和缺陷,无法在代码审计过程中规避工具的风险(比如漏报和误报),比如利用人工或者其它 手段查找工具不能定位的问题。
7. 扫描性能
10万行代码扫描时间在10~30分钟不等,视代码复杂度和硬件配置而不同。
8. 安全规则自定义简单高效
由于公开了所有规则实现的细节和语法,用户可以快速修改规则或者参考已有的规则语句自定义自己需要规则,规则学习,定义简单高效,能快速实现组织软件安全策略。
安全策略对应的规则集
9. 业务逻辑和架构风险调查:
Checkmarx CxEnterprise服务可以对所有扫描代码的任意一个代码元素(词汇)做动态的数据影响、控制影响和业务逻辑研究和调查。分析代码逻辑和架构特有的安全风险,并最后定义规则精确查找这些风险。这是目前唯一能动态分析业务逻辑和软件架构的静态技术。
10. 攻击路径的可视化,并以3D形式展现。
每一个安全漏洞的攻击模式和路径完全呈现出来,以3D图形的方式显示,便于安全问题调查和分析。
11. 代码实践的加强
内置软件代码质量问题检测,同时也提供自定义规则去验证编程策略和最佳实践。
12. Checkmarx CxEnterprise目前支持主流语言
Java、JSP、JavaSript、VBSript、C#、ASP.net、VB.Net、VB6、 C/C++、ASP、PHP、Ruby、Perl、Android、APEX (AppExchange Platform)、API、第三方语言。
13. 支持的主流框架(Framework)
Struts、Spring、Ibatis、GWT、Hiberante、Enterprise Libraries、Telerik、ComponentArt、Infragistics、FarPoint、Ibatis.NET、Hibernate.Net [*]、MFC,并可针对客户特定框架快速定制支持。
14. 服务独立,全面的团队扫描支持
作为服务器运行。开发人员、管理人员和审计人员都可以凭各自的身份凭证从任何一处登录服务器,进行代码扫描、安全审计、团队、用户和扫描任务管理。
15. 高度自动化扫描任务
自动集成版本管理(SubVersion、TFS)、SMTP邮件服务器和Windows账户管理,实现自动扫描代码更新、自动扫描、自动报警和自动邮件通知等。
16. 支持多任务排队扫描、并发扫描、循环扫描、按时间调度扫描。提高团队扫描效率
17. 云服务实现:支持跨Internet实现源代码安全扫描“云服务”。
附录
Checkmarx CxEnterprise功能列表
功能/特性 |
功能/特性子类别 |
功能与特性描述 |
管理功能
|
角色管理 |
为规范系统资源、用户、扫描过程和结果的管理,把系统的使用用户划分成不同的角色,并按不同的角色赋予不同系统资源和扫描项目的权限 |
团队管理 |
提供依据企业的架构和研发管理需要创建、删除、修改项目团队和配置用户到不同的角色 |
|
|
用户帐户可直接导入Windows系统用户或者AD目录服务器的用户 |
|
查询规则管理 |
以树形的方式组织所有支持的开发语言的代码安全查询规则,并严格按照高、中、低和代码质量信息分类组织 |
|
|
对于每种语言的规则,提供Checkmarx原厂商规则和用户公司规则组织,厂商规则更新不影响公司自定义规则 |
|
|
对于每一种安全漏洞规则,提供完整的规则定义及描述说明,已及每个安全漏洞依赖的原子规则和所涉及语言的API函数 |
|
扫描配置管理 |
提供扫描Encodeing及其相关的扫描数据流、控制流、规则扫描超时可选性配置。 |
|
查询规则集管理 |
内置PCI和OWASP标准与系统规则库的规则的一一对应关系 |
|
|
可根据代码安全策略和项目策略自定义扫描规则集或者配置代码安全扫描基线 |
|
系统设置管理 |
提供SMTP邮件服务器主机、端口、加密类型和用户身份凭证设置 |
|
|
提供报告文件夹、扫描结果文件夹和外部命令执行文件夹的设置 |
|
|
提供外部执行工具的参数和命令的配置 |
|
|
提供扫描并发数的配置 |
|
项目管理 |
提供项目的创建、删除和更新管理 |
|
|
提供项目扫描任务的创建、调度和运行管理 |
|
|
提供项目扫描结果展示和统计分析管理 |
|
运行管理 |
提供扫描任务的中止和删除管理 |
|
扫描分析能力 |
支持主流的编程语言,包括Java、C#、VB.Net、ASP.Net、ASP JavaScript、VBScript、C++、C、Apex、VB6、PHP、Perl、SQL相关代码 |
|
能检测的代码安全漏洞:OWASP、CWE、PCI等国际权威组织定义的软件安全漏洞,且必须包括但不限于如下的代码安全漏洞: 公共网关接口跨站脚本、公共网关接口存储跨站脚本、代码注入、命令注入、连接字符串注入、LDAP注入、过程控制、反射跨站脚本、反射XSS所有客户端、资源注入、SOQL SOSL注入、SQL注入、二阶SQL注入、存储跨站脚本、
访问控制、缓冲区溢出、公共网关接口反射XSS所有客户端、公共网关接口存储跨站脚本、跨站点的Cookie作用域历史操作、数据库参数篡改、危险函数、数据过滤注入、DOS睡眠环境双重释放、注入、环境操作
文件操作、框架欺骗、硬编码加密密钥、连接字符串中的硬编码密码、堆检验、Http分裂、不正确的锁定内存、整数溢出、杀死VM、内存泄漏、互斥问题、参数篡改、隐私侵犯、正则表达式注入造成的ReDos、来自正则表达式注入的ReDos、代码中的ReDos、Match中的ReDos、Pattern中的ReDos、Replace中的ReDos、Validation中的ReDos、反射特定客户跨站脚本、SQL注入闪避攻击设置操作、弹性模型视图注入、存储代码注入
违反信任边界、URL重定向攻击、未经检查的返回值
未关闭的连接、不受信任的ActiveX、释放后使用、使用未经初始化的指针
使用未初始化的变量、使用初始化为零的指针
详细的错误报告、内存分配错误、伪造请求 |
||
编译器开发环境独立:可在代码开发的任意阶段都可以扫描代码,不管代码是否能够编译,支持代码扫描尽早测试,不用等到所有代码都开发好了才能测试,无需安装和配置复杂的开发环境,即可多多种环境下的代码在统一平台作测试 |
||
提供多种源代码上传方式,包括但不限于本地上传代码、从局域网内共享的代码和源代码配置服务器的代码 |
||
提供C/S、B/S 和开发环境集成方式扫描代码和查看扫描结果 |
||
自动验证扫描结果,去除绝大数的误报 |
||
自动对扫描结果按风险高、中、低和质量信息分类,无需人工一一分辨 |
||
扫描开始、结束、失败等过程中提供邮件通知和告警功能 |
||
误报率和漏报率极低,节约审计时间和管理成本 |
||
提供基于局域网和internet隔离区(DMZ)分配扫描资源和安全隔离 |
||
支持多任务多用户同时扫描或者循环调度扫描 |
||
支持分布式部署 |
||
支持多用户分布式登录和访问及权限管理和控制,可以按不同的角色赋予不同的代码扫描、结果管理和团队管理功能 |
||
扫描规则及 自定义能力 |
公开已有规则的实现细节和语法 |
|
支持用户对工具原有的规则作调整和优化 |
||
支持按组织安全策略任意配置扫描规则集以满足扫描需要 |
||
支持对扫描代码任意元素对其它元素的数据影响和控制影响分析并定义相关检测规则 |
||
支持代码逻辑和架构分析 |
||
支持代码安全基线与规则的对应 |
||
支持用户自定义代码安全的验证逻辑 |
||
报表功能 |
提供多种格式的检测报告格式,包括PDF、Xml,excel等 |
|
能够对测试结果进行统计分析,并产生统计分析图表 |
||
检测报告中应包括全部汇总信息和详细的安全漏洞完整路径 |
||
开发环境 集成能力 |
SMTP邮件服务器集成 自动集成SMTP邮件服务器 |
|
主流版本管理集成:自动集成TFS、SVN、CVS 等版本管理系统,实现自动代码更新和扫描 |
||
IDE集成: 集成Visual Studio 2005/ Visual Studio 2010/Eclipse3.x |
||
外围命令工具的集成:支持调用任意支持命令行的工具 |
四、Checkmarx CxEnterprise部分功能界面展示
1. 企业所有扫描项目的漏洞影响分布、统计、风险指示和漏洞数量。
2. 单次扫描的漏洞影响分布、统计、风险指示和漏洞
3. 同一项目多次扫描统计和对比分析
4. 源代码安全漏洞结果展现和分析
5. 安全漏洞规则自定义和代码逻辑分析
6. 任意代码对象影响分析:
7. 集成自动版本管理和代码更新,实现邮件通知和扫描自动化。