近年来,软件供应链安全事件层出不穷,所制造的危害程度愈加严重,作为数字化社会发展的基本要素之一,软件安全也开始与社会安全密切相关,无论是对开发者还是使用者,都开始对软件以及软件供应链安全给予重视,关于如何有效缓解此类安全问题,业内普遍认为应采用安全左移的思路——将安全嵌入至整个软件开发生命周期中,事实也证明这一方式的确有效,在面向软件供应链安全方面,国内也有多家厂商推出了相关解决方案,本期《软件供应链安全解决方案》的主角则是一家长期专注于该安全领域的专业厂商——酷德啄木鸟。
据了解,酷德啄木鸟成立于2013年,在9年的发展历程之中,他们一直专注于软件源代码信息安全领域,有着丰富的技术积累和实战经验。酷德啄木鸟总经理杨临庆告诉我们,在2016年以前,他们一直都在潜心于静态检测工具的自主研发工作,旗下CodePecker源代码缺陷分析系统更是国内第一款完全自主知识产权的商用源代码检测产品。随着软件开发安全趋势的不断变化,酷德啄木鸟目前基于静态检测技术的核心能力,在对已有产品、服务不断迭代升级的同时,也不断完善和丰富产品布局,推出了更多相关领域的安全产品,如去年11月,他们发布了可为用户提供包括软件成分组成及统计分析、软件依赖组件合规检测、软件依赖组件漏洞识别以及软件成分分析项目管理等多重安全管理功能的SCA软件成分分析系统。
总体而言,相较于国内诸多该领域的新兴厂商,酷德啄木鸟在DevSecOps全系工具链的产品布局方面已经趋于完备,除了前面所以到的CodePecker源代码缺陷分析系统(SAST)和SCA软件成分分析系统之外,还有包括交互式测试系统CodePecker Finder(IAST)、动态检测工具(DAST)、应用自保护系统(RASP),实现为用户提供完善且覆盖完整开发生命周期的安全解决方案。
软件供应链安全解决方案需覆盖“查别人”与“查自己”两大场景
在谈到软件供应链安全的客户需求层面这一话题时,杨临庆表示,“如果从应用场景的角度去看,我们认为可以简单直观的划分为两类,一是‘查别人’,二是‘查自己’,那么与之相对应的客户需求都是软件供应链安全解决方案所应该覆盖和满足的。”
查别人,指的是软件由企业交给外部团队或其他企业来进行开发,该类用户群体最大的痛点是希望能够在软件交付环节真正实现安全性验收,能够充分保障围绕该软件的相关业务能够持续安全稳定运行。
查自己,指的是软件有企业内部研发、开发部门或团队进行,此类用户群体的需求则主要侧重于在将安全引入到完整的软件开发周期中。
值得一提的是,相对于更多专注于IAST、RASP相关技术的新兴厂商,酷德啄木鸟得益于自身长期在SAST领域的技术积累,从而在覆盖“查别人”这一需求层面具备强大优势。尽管IAST在性能、漏报率、以及误报率方面具有较强优势,但考虑其依赖于在开发、测试过程中插桩以收集相关安全信息并发现安全问题,那么在“查别人”的场景下,由于软件开发过程是在第三方环境下完成,因此在满足这类场景需求时就会存在一定不足。
杨临庆认为,“无论是企业自主研发(查自己)还是外包研发(查别人)的场景,对SAST的需求仍然比较广泛。”
SAST+SCA构成酷德啄木鸟软件供应链安全解决方案两大核心能力
谈到酷德啄木鸟针对软件供应链安全的解决方案时,杨临庆表示,从技术上来看,整个解决方案是建立在以SAST技术为核心的CodePecker源代码缺陷分析系统,以及SCA软件成分分析系统的基础之上,前者是酷德啄木鸟成立以来一直持续打造的产品,而后者虽然自发布至今不足一年,但也是他们此前长期深入研发所得。
CodePecker源代码缺陷分析系统
据了解,基于B/S架构研发的CodePecker源代码缺陷分析系统自发布至今,当前已进化到7.0版本,是一款面向软件开发生命周期管理的企业级安全解决方案,其主要功能包括检测项目管理、源代码缺陷分析、自动化检测、全流程缺陷管理、源代码安全评级、缺陷查询定位、缺陷审计、代码缺陷统计分析、检测规则配置管理、检测报告、函数白名单配置、检测目标基线设置、Bug管理系统集成、代码库集成、缺陷知识库等。
在检测能力方面,CodePecker源代码缺陷分析系统可支持对Java/JSP、C、C++、C#、PHP、Python、Objective-C、HTML、JavaScript、SQL等主流编程语言开发的软件源代码安全缺陷的检测。同时,主要的语言检测并不依赖具体的编译器和开发环境,真正做到无需预编译可直接分析源代码。另外,该系统还具备对百万行级别源代码进行分析的能力。
在对源代码安全缺陷和质量缺陷的检测。检测结果涵盖包括代码注入、跨站脚本、缓冲区溢出、配置错误、API误用、拒绝服务、未验证的用户输入、弱加密问题、信息泄露、危险函数等在内的1000多个缺陷类型。
杨临庆表示,CodePecker在对目标软件代码进行语法、语义分析的技术上,辅以数据流分析、控制流分析、配置分析等特有的缺陷分析算法等高级静态分析手段,CodePecker对目标系统进行检测时,能提供过程内(Intra-procedure)、过程间(Inter-procedure)等各种层次的分析,能够高效地检测出软件源代码中的可能导致严重缺陷漏洞和系统运行异常的安全缺陷。
由此可见,CodePecker源代码缺陷分析系统在检测能力方面,具有覆盖编程语言广、覆盖缺陷类型全、检测效率高等特点。在检测项目管理方面,可支持以项目组形式进行代码审计项目管理,并支持从发现、分配到最终解决缺陷的全生命周期管理。在应用场景端可完全覆盖包括外包项目及内部项目的源代码安全检查、DevSecOps能力引入落地以及多工具整合等,令用户可以根据自己的实际需要来进行和完成软件开发及交付的安全建设。
CodePecker软件成分分析系统
作为软件供应链安全解决方案中不可缺少的一部分,酷德啄木鸟的CodePecker软件成分分析系统通过分析目标软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术,能够高效地检测出软件中的组件分布信息,识别有风险的安全风险,并准确定位告警,从而有效的帮助开发人员消除应用中的漏洞、协议违禁、减少安全隐患。
据杨临庆介绍,该系统也同样基于公司的优势能力——静态组件分析技术研发而来,虽然发布至今也不过才一年的时间,但已是一款成熟产品,目前也已经迭代到3.0版本,其能力主要体现在以下几点:
1、开源组件识别能力:由于拥有完善的知识库体系,在漏洞库方面,其内置 CVE、CNNVD、CNVD、多社区漏洞库,支持多漏洞库联合查找;在组件库方面,其可覆盖超过300万条的开源组件信息,超过4000万的组件版本信息;在协议库方面,其可支持400+条协议检查。另外,在介质分析方面,该系统对包括二进制、源代码、BOM等均可提供支持。
2、组件风险识别能力:根据组件特征识别组件是否存在既有安全风险,并提供修复建议,保障应用基础安全。
3、组件合规风险识别能力:识别应用中不兼容的License,避免知识产权风险。
4、引擎支持JAVA、C、C++、Python、Golang等主流编程语言代码片段进行识别,结合开源代码数据库,能够识别代码中的开源代码成分结合,并分析这些开源代码可能带来的安全问题和授权风险。
5、支持代码上传、客户端识别、特征识别等多种分析方式;支持系统组件资产管理,提供详尽的系统组件构成信息。
总体而言,国内市场上的SCA产品当前已经比较丰富,酷德啄木鸟的SCA软件成分分析系统的优势主要受益于该公司在静态组件分析技术领域的深厚积累,在准确性、扫描效率、覆盖范围等方面具备较强优势,同时,该系统还具备丰富的API接口,利于实现对其他系统的无缝集成,并可提供多种使用方式,在兼容性以及易用性等方面,也有不俗表现。
在这两款核心产品的基础上,针对“查别人”和“查自己”这两大应用场景及相关需求,酷德啄木鸟也推出了相应的解决方案。
面向“查别人”场景的安全解决方案
该解决方案的产品主要包含CodePecker源代码缺陷分析系统、CodePecker软件成分分析系统以及代码管理系统。
前两款产品已了解过,我们此处主要了解一下代码管理系统。在“查别人”场景下,由于开发工作均由外包团队完成,因此这类用户群体普遍缺少代码管理工具,为配合静态测试,往往需要安装一套GitLab或相关类似工具,然后将代码上传上去后再进行测试。这种方法虽然没有什么太大的问题,但对无开发团队的用户而言,GitLab这种工具还是显得过重,很多功能等其实并不需要。
因此,酷德啄木鸟推出了轻量化的代码管理系统,除了基础的代码加密存储以及版本管理功能之外,当版本发生变更时,该系统会主动对接CodePecker源代码缺陷分析系统以及CodePecker软件成分分析系统进行测试,并且在扫描测试、出具测试报告等方面全部实现了自动化。在软件开发供应商根据测试报告结果进行修正,并将更新后的代码传入该系统后,系统可自动对其更新后的版本进行复测,无问题后即可验收入库。
面向“查自己”场景的安全解决方案
该解决方案除CodePecker源代码缺陷分析系统、CodePecker软件成分分析系统之外,还包含CodePecker Finder交互式测试系统(IAST)以及应用自保护系统(RASP)。
这一套解决方案的能力就比较好理解,CodePecker Finder交互式测试系统的加入,可以更好地与CodePecker源代码缺陷分析系统形成优势互补,在客户侧形成以DAST为主、IAST为辅的工具组合,应用自保护系统(RASP)则与之联动,当软件应用遭受攻击时,先行提供防护能力,为最终的彻底修复提供一定的时间窗口。
需要指出的是,单独依靠DAST或IAST工具,也无法保障能够百分百的保证所有风险都能检测出来,RASP工具也并不能保障软件应用的风险得到彻底的根治,因此必须要依靠各个产品的整合联动。杨临庆表示,当RASP在软件应用遭受攻击启动防护时,如果导致该攻击的问题是此前测试阶段未检测出来的,那么相关的问题代码便可以依靠整体解决方案的联动能力,自动与CodePecker源代码缺陷分析系统匹配、查找并展现出来,以利于后期彻底修复。
在软件供应链安全建设中,必须要结合自身实际情况来进行合理规划,酷德啄木鸟根据“查别人”及“查自己”的两大主流应用场景,通过将自身旗下产品进行组合、联动,最终形成了两套面向不同用户群体的解决方案,在满足用户需求的同时,在解决问题的能力方面也更具针对性,对于企业用户在软件供应链安全建设方面在能力、效率、效果以及成本控制等多方面都有着不俗表现。
企业用户对软件供应链安全意识不断提升 安全还需进一步左移
杨临庆表示,自己能充分感受到2017年以来,国内对代码安全的重视程度在不断提升,用户对于相关技术、工具等等以及所能带来的好处、对开源组件风险以及商业版本授权相关的安全意识都在显著提高,这对我国开发安全或软件供应链安全的整体促进非常有益,但同时也应看到仍有一些问题尚待解决。
在他看来,所谓安全左移,目前更多的也只是将安全嵌入到开发阶段之中,但从整体安全角度看,还应再进一步左移。这里具体是指软件进入开发阶段之前的规划阶段,在选择框架时就应确定与之相应的一些商业版本信息、漏洞信息、维护信息等,以尽可能的保证在进入开发阶段之前即可大幅减少甚至规避有风险的框架、组件,更进一步地降低开发阶段的安全风险。“在整个软件开发生命周期中,安全介入得越早,对于后期过程中的保障也会更好,这也是我们未来会投入的一个方向之一。”杨临庆表示,后期会进一步增强与应用DevOps的厂商合作,以能够在其构建DevOps的过程中就能将相关的安全工具、产品融入,以更好保障用户的整体软件供应链安全。
除此之外,他还谈到了酷德啄木鸟会在未来关注的两个方面,一是面向用户群体中仍大量存在的老硬件要给予足够的支撑。一些客户由于自身的客观情况,短时间内无法全面替换成新的设备,尤其是其中还有一些软件直接固化在硬件之中的老产品,目前业内尚无法很好的解决它们自身所存在的安全问题,因此,酷德啄木鸟已经着手规划相关产品功能,以满足此类用户所需;二是开发安全及软件供应链安全等相关产品、解决方案需要加强与信创相关软硬件兼容能力,要做到X86+Windows系统与Arm+国产化操作系统并行,随着信创产业的不断发展,未来相信会有不少用户群体将逐步融入到信创体系中去,由此也会在需求侧产生变化,因此从长远趋势来看,加强与信创的适配和联动,将是未来包括软件供应链安全在内的诸多安全解决方案都应重点关注的方向之一。