代码审计具备两大功能:一是支持C、C++等编程语言的源代码审计功能,二是支持二进制可执行文件漏洞挖掘功能。下面对功能性能参数进行详细说明。
(一)源代码审计
源代码审计,应具备对C、C++等编程语言的检测能力,具备百万行以上代码的检测能力,具备命令注入和内存安全缺陷等类别的检测能力,具备依据自定义规则的检测能力,具备已检出缺陷的定位能力,具备对缺陷的审计能力,具备检测分析结果的导出能力
编程语言
★支持编程语言C
★支持编程语言C++
★支持编程语言Java
★支持编程语言PHP
★支持编程语言Python
★支持编程语言C#
★支持编程语言JavaScript
★支持编程语言Ruby
★支持编程语言Swift
能够自动识别源代码文件类型
内置规则
★内置GJB8114-2013规则集
★内置GJB5369-2005规则集
★内置MISRA C++规则集
★内置GBT38674-2020标准
检测类型
★数组读/写溢出
★使用函数返回的栈空间地址
★空指针引用
★使用未初始化的变量
★释放不在堆上的内存
★使用危险函数
★SQL注入
★命令注入
★LDAP注入
★存储型XSS
★反射型XSS
★信息泄露
★使用伪随机数生成的加密函数
★函数未检查返回值
★未验证的用户输入
★未使用的变量
★除零错误
代码规范
★支持不可编译代码项目的源代码分析
★支持基于编译技术对C/C++可编译代码项目进行审计
自定义检测
★支持用户自定义源代码检测规则
★支持配置函数白名单
并发冲突
★支持检测多任务访问中的并发冲突
C/C++代码复杂度分析与度量 ●支持提供信息:McCabe圈复杂度、基本McCabe圈复杂度等
支持提供信息:函数个数、扇入/扇出个数等
支持提供信息:代码行数、可执行代码行数、注释比例等
C/C++漏洞触发验证 ●支持生成触发漏洞的测试用例并展示
●支持展示生成的漏洞触发路径
支持缺陷类型:内存释放后再使用
支持缺陷类型:内存双重释放
支持缺陷类型:空指针引用
支持缺陷类型:除零错误
缺陷
定位追踪 ★支持定位到代码路径、文件、行号
★支持追踪并提供缺陷源到爆发点的跟踪流
支持展示漏洞详情描述
支持展示漏洞修复建议
审计查询 ★支持对缺陷进行人工审计
★支持对分析结果的查询
支持对多个缺陷的批量审计
支持对缺陷进行等级修正
支持依据缺陷名称、缺陷分类、审计状态进行搜索
审计日志 记录审计人员、时间和审计信息等日志
支持查看审计日志
汇总统计 支持査看结果汇总与分类统计信息
报告导出 ★支持生成检测分析报告
报告内容 包括开发语言、文件数量、代码数量等
包含缺陷类型、缺陷风险级别、缺陷描述、缺陷数量、缺陷统计图等
报告规则 支持对缺陷等级、缺陷类型进行定制
支持对缺陷修复建议进行定制
支持对跟踪路径进行定制
二次开发 ●具备API接口与数据库访问接口,支持二次开发
2、性能指标
★单次检测代码上限不低于100万行;
★C++的单编译项目分析上限不低于1000万行;
★平均速度不低于1万行/分钟;
★支持2个及以上项目的并发检测;
★代码质量与安全规范包含但不限于:OWASP 、CWE 、CERT C++、CERT C。
(二)二进制可执行文件检测
二进制可执行文件的漏洞挖掘,应支持包含windows、linux及ARM嵌入式系统的可执行文件,支持包含x86、x64、ARM、PowerPC、MIPS等体系架构的二进制可执行文件,具备对代码文件进行组件成分分析的能力,具备对代码文件进行安全漏洞检测的能力,具备已检出漏洞的定位能力,具备检测分析结果的导出能力。
1、功能参数
功能 参数
可执行文件类型 ★支持x86体系架构的二进制可执行文件
★支持x64体系架构的二进制可执行文件
★支持ARM体系架构的二进制可执行文件
★支持MIPS体系架构的二进制可执行文件
★支持PowerPC体系架构的二进制可执行文件
●支持ARM64体系架构的二进制可执行文件
●支持TI的TMS320C6x架构的二进制可执行文件
●支持TI的TMS320C55x架构的二进制可执行文件
支持移动平台IOS
支持移动平台Android
代码漏洞
检测 支持识别文件格式
包含漏洞数据库:CVE
包含漏洞数据库:CNNVD
代码漏洞
类型 ★支持检测堆栈溢出漏洞
★支持检测命令注入漏洞
★支持检测格式化字符串漏洞
★支持检测释放后使用漏洞
★支持检测双重释放漏洞
★支持检测空指针引用漏洞
★支持检测Sizeof指针类型漏洞
●支持检测整型溢出漏洞
●支持检测数组越界访问漏洞
●支持检测类型混淆漏洞
代码漏洞
★支持展示漏洞文件名称
★支持展示漏洞地址