国产自主可控信创静态代码缺陷分析工具
国产信创软件源代码静态分析工具系统是一个重要的技术领域,旨在通过国产化、自主可控的工具,提升软件开发的安全性、可靠性和质量。目前,国内已有多个企业和机构在该领域进行了深入研究和产品开发,形成了较为完善的生态系统。
【AI代码助手、大模型课题、代码静态分析工具、动态分析工具、软件成分分析与同源漏洞检测、渗透测试工具、模糊测试、恶意代码检测平台、软件漏洞挖掘平台、软件供应链安全平台。试用及合作请后台私信工程师13381155803(微信同步)】
库博(CoBOT)软件安全系列工具是由北京北大软件工程股份有限公司(以下简称“北大软件公司”或“公司”)联合北京大学软件工程国家工程研究中心(以下简称“软件工程研究中心”),经过10年的科技攻关和工程化开发,目前已经形成比较完整的软件安全产品链条,包括库博软件源代码静态分析工具、二进制代码静态分析工具、二进制代码模糊测试工具、软件成分分析与同源漏洞检测工具、开源软件协议合规性检测工具、软件供应链安全监控平台。(请私信13381155803微信同步)
北大软件公司作为软件工程研究中心的成果转化和企业化运作机制,从2000年12月成立伊始,就把软件工程技术研究、工具研发和应用推广作为公司的重要使命。公司研发了系列软件工程工具和过程管理平台,支持CMMI和GJB5000系列标准,在军队、军工和质量关键部门获得广泛应用,产品在国内市场占有率最高。
一、库博软件源代码静态分析工具(CoBOTSAST v4.3)
1CoBOT SAST概述
1.1 背景
代码是软件的“基因”,在代码层次上进行静态分析,相对于传统的动态功能测试、单元测试、渗透更加系统和高效。首先,程序的静态分析可以打开程序的结构,从程序的逻辑结构进行分析,这种白盒的方式能够明显降低漏报;其次,代码分析往往在软件开发或测试阶段,研究表明,开发阶段发现缺陷的成本是测试1/4,是运行阶段的1/10,而开发阶段发现出现缺陷的数量是测试阶段3倍,是运行阶段的10倍。由此,越来越多的组织采用源代码静态分析工具进行质量或安全检测,代码审计也成了很多工业标准(IEC61508,DO-178B/C等)和安全标准(等保2.0等)必要的检测手段。
近年来,源代码静态分析工具种类众多,很多企业希望通过部署源代码检测产品来验证和解决软件开发和测试过程中出现的代码问题。近年来,虽然国内大型企业机构的检测能力有所提升,但是在代码质量保障体系建设上,仍存在很多误区和困难。
n研发人员更关注的误报,而不关注漏报数量
由于全部缺陷的数量无法确定,工具厂商更关注的误报,相对漏报偏高。2017年软件工程顶会的一篇论文论述了100个真实CVE缓冲区溢出漏洞,用5个国际著名的静态工具检测加在一起仅报出了其中20个,漏报率达80%。国际通用的OWASP Benchmark采用大部分商业工具检测,漏报率也接近4成。由此很多企业采用了多款工具共用求合集的方式来降低漏报,但该方式增大了企业的采购和使用成本。
n国外工具对于企业内或行业内规则和缺陷的定制,很难实现
大部分企业采用国外商业工具,国内代理商很难具备二次开发的能力,国外工具也不开放接口,尤其针对领域内缺陷模式,企业或行业内部往往有自己的编码标准,很难针对性开发。
n代码缺陷普遍存在,采用开源工具的二次开发很难达到检测严重缺陷
具备一定开发能力的组织往往采用在开源工具上进行二次开发,但是开源工具提供的分析接口往往比较基础与商业工具的分析能力差距较大,不能检测更为深层次的缺陷,尤其是针对上下文敏感、跨函数、路径敏感的缺陷类型基本无法检测,导致检测能力偏弱。
1.2 软件源代码静态分析工具介绍
库博软件源代码静态分析工具(英文简称CoBOT SAST),应用多种国际先进代码分析、深度学习技术,研发的源代码检测系统,面向组织的源代码检测需求,在不改变组织现有开发、测试流程的前提下,与源代码管理系统(Git、SVN等)、缺陷管理系统(如Jira、Bugzilla、禅道等)、持续集成工具(如Jenkins、禅道)无缝对接,将源代码检测融入企业的研发流程,实现了源代码编码规则检测、运行时缺陷检测、安全漏洞检测、度量统计、克隆检测、逆向架构图自动生成,并提供了检测器自主研发接口等功能,帮助组织快速构建源代码安全自主检测体系和能力。
2015年通过CWE符合性认证,成为中国首家通过该认证的软件安全检测工具,打破了国外产品在软件缺陷检测和安全漏洞分析领域的垄断地位。带动了国内软件代码安全检测行业的发展。
1.3 技术指标
主要技术及性能指标
项目 | 支持情况 |
支持语言 | 支持C/C++、Java、Android、PHP、JSP、HTML、C#.net、VB.net、JavaScript、Python、Kotlin、Scala、Go等约十余种主流开发语言(请私信13381155803微信同步) |
安全漏洞 | OWASP TOP 10、CWE/SANS TOP 25、ISO 17961、WASC,包括:缓冲区溢出、SQL 注入、命令行注入、跨站脚本攻击等 |
缺陷 | CWE(Common Weakness Enumeration)170余种缺陷类型,包括:内存泄漏、数据越界、空指针解引用、释放非堆内存、返回局部指针等 |
编码规范 | MISRA 2004、MISRA 2008、MISRA 2012、CERTJAVA、GJB5369、GJB 8114、GB/T 34943-2017 C/C++、SJ/T 11682-2017 C/C++、GBT28169嵌入式C、GBT39412 C&JAVA......等 |
支持的编译器 | ARMC/C++、Borland C++、GNUGCC C++、IntelC++、Keil compilers、SUN CC、SUN/OracleJDK 、OPEN JDK 、Visual Studio、Wind River 等几十种编译器 |
兼容平台 | 支持Windows、Linux、中标麒麟等多种主流通用操作系统开发的源代码的检测 |
Bug 管理系统 | Bugzilla、Jira、TFS、禅道 |
IDE插件 | Eclipse、VsCode、Visual Studio |
扩展能力 | 自定义检测规则、检测报告 |
检测效率 | 平均200 万行/小时 |
1.3.1 支持的框架
语言 | 框架 |
Java | Spring、Spring Boot、Spring JDBC、Spring LDAP、Spring MVC 、Spring DataJPA、Spring Web Flow、Spring Security、Struts1、 Struts2、Hibernate、 MyBatis、Ibatis、Apache Axis1、Apache Axis2、Json-lib、Fastjson、Gson、log4j、SLF4J、Apache commons、HttpComponents 等。 |
C/C++ | Qt4、Qt5 |
PHP | ThinkPHP、laravel、CodeIgniter、Zend Framework、CakePHP、Symfony |
Python | Django、Diesel、Flask、Cubes |
JavaScript | Jquery、Vue、Nodejs |
2系统功能
2.1 源代码缺陷检测
CoBOT SAST可以在不运行程序的情况下全面扫描代码,快速报告软件中的漏洞,包括边界条件复杂的漏洞,是对动态测试的有效补充。在缺陷检测方面支持 C/C++、Java、Android、PHP、JSP、HTML、C#.net、VB.net、JavaScript、Python、Kotlin、Scala、Go等约10余种主流开发语言的软件源代码的缺陷检测。可检测的缺陷种类包括缓冲区溢出、SQL注入、跨站脚本等 74 个大类,2000 多个小类。兼容 CWE(Common Weakness Enumeration)、OWASP TOP 10、CWE/SANS TOP 25、ISO 17961、CERT Java、MISRA系列、GB/T系列、GJB系列、SJ/T系列等多种国际和国内标准。(请私信13381155803微信同步)
2.2 源代码度量
为了提高代码的可维护性,需要了解软件在代码行、圈复杂度、扇入扇出度等各个角度的度量指标。CoBOT SAST支持从项目级、文件级、函数级等级别度量30余种,并将未达标的文件和函数分配给相应的开发人员进行修改。
2.3 源代码克隆分析
CoBOT SAST支持代码克隆分析找出功能与源代码相同、但是进行了修改的代码。由于所使用的第三方软件或者企业内部代码在复用时可能会进行修改,需要使用克隆检测,发现该段代码的来源,并发现因代码克隆带来的软件不一致。CoBOT SAST的克隆分析可以应用在代码抄袭检测、同源漏洞检测等方面。
2.4 源代码分析图形化展示
库博-SAST支持根据源代码反向生成程序架构图如:函数控制流图、文件函数调用图、项目函数调用图、继承关系图、UML 类图等。提供包括 PNG、SVG 等格式导出。
2.5 自动化检测流程及与环境集成
COBOT SAST支持SVN,Git等代码管理工具,并且检测结果可与Bugzilla,Jira,禅道等Bug管理工具进行整合,同时提供与Jenkins,Bamboo等持续集成环境的接口,用户可以将库博-SAST,持续集成工具,代码库,Bug管理系统四者进行关联,持续集成工具通过任务设置定期获取代码并编译,再通过库博-SAST持续集成工具进行检测,将结果推送至Bug管理系统,最大限度的减少人工干预的工作量。
2.6 绩效统计
库博-SAST支持通过连接SVN、Git等代码管理系统中获取提交记录,结合源代码缺陷检测、源代码度量、源代码克隆分析,分析统计开发人员和项目的软件质量((问题的等级和个数)、工作难易度 (可靠性、可维护性、复杂度)、工作效率/能力 (代码提交量、问题的修复量和修复率、问题密度)等信息,为开发人员(Key Performance Index)考核提供重要的依据。
2.7 定时检测
库博-SAST支持本地源代码检测的同时也可支持从 SVN、 Git 等代码管理系统中获取源代码
进行检测,支持定时自动检测,用户可将库博-SAST与代码库进行关联,配置好定时检测计划,按照任务设置定期自动获取代码库中的源代码进行检测,检测后的结果可以根据根据代码库提交记录自动分配给相关负责人,并且可以通过邮箱发送提醒相关责任人。
2.8 外部接口
库博-SAST支持RESTFUL风格的WEB接口,接口使用http或者https实现,提供的接口如:缺陷检测接口、设置检测项接口、代码度量接口、代码克隆分析接口、获取检测结果接口等数十种接口,方便用户与企业生成环境集成。
2.9 并发检测引擎
提供检测引擎节点的管理功能和检测队列管理功能,可以查看系统当前的检测引擎节点信息和当前状态,可以对检测引擎和检测队列进行删除、修改等操作。
3客户价值
3.1 快速实现“软件基因”的修正
在研发和测试阶段采用白盒、一键式的方式,发现代码中问题,无论从缺陷发现的效率还是系统性上说都是最优的选择,在研发阶段快速检测可以让研发人员迅速消灭缺陷,防患于未然。(请私信13381155803微信同步)
3.2 呈现软件研发人员的趋势、状态帮助管理者快速决策
企业对研发人员的质量量化评估一直是难题,系统可以通过代码量统计,度量以及缺陷检测评估等方式,给出项目的整体趋势、评分以及研发人员的量化评估,甚至进行研发人员“画像”以刻画出不同研发人员擅长的领域,帮助企业针对不同的项目选择不同能力的研发人员。
3.3 “一站式”自动检测服务,无缝接入基于Devops软件研发流程
通过配置定时检测任务,自动获取源代码进行检测,让开发、测试、安全人员集中精力关注检测结果,减少检测过程中繁琐的重复配置和等待时间,提高开发团队整体的工作效率。同时可以直接将检测结果提交至企业Bug 管理系统中,方便开发人员查看和解决问题,企业无需改变原有流程,快速融入企业研发过程。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...