在12月1日下午举行的腾讯安全先行者·新品发布会场上,腾讯开发安全高级产品经理刘天勇针对开发安全体系的建设进行了演讲,同时发布了xcheck、bsca两款开发安全产品。
现代软件应用面临的安全风险的主要来源
近年来,solarwinds、log4j等现象级安全事件频发,为全球各行各业带来了强烈冲击,软件供应链安全也进入行业视野并成为热门话题。
而作为保障软件供应链安全的“源头”,开发安全相关技术和产品也受到越来越多的关注。行业共识认为,应用系统上线之后进行软件漏洞修复,其修复成本是需求设计阶段修复成本的几十倍。因此,在开发环节,引入相应的安全工具,能够有效的降低漏洞的修复成本,实现安全的左移。
自研代码
自研代码一定有未被发现的缺陷:“缺陷是天生的,漏洞是必然的”。统计数据表明,程序员每写1000行代码,就会出现1个逻辑性缺陷。
第三方开源组件
现代应用都是组装的而非纯自研:据统计,78%-90%的现代应用融入了开源组件,平均每个应用包含147个开源组件,开源组件的引入会带来潜在的软件供应链安全风险。
腾讯开发安全新品发布,全面覆盖源代码和开源组件风险
腾讯xcheck静态应用检测系统
随着研发模式从瀑布式开发、到敏捷、再到目前最流行的devops,不难发现,软件开发流程正在向自动化、便捷化和智能化的方向发展。在此背景下,传统的静态应用安全测试工具已无法满足当下的开发模式的效率需求,主要体现在两个方面:
速度慢:扫描速度在几十分钟到数小时,无法适应快速迭代的devops开发模式,严重影响流水线自动化效率。
误报高:检测报告动辄上百个风险,误报过高,需消耗大量精力去处理,无法作为自动化质量门禁红线。
针对以上问题,腾讯安全致力于挖掘代码中隐藏的安全风险,提升代码安全质量,自主研发推出xcheck静态应用检测系统。
双引擎架构,满足不同场景需求
为了覆盖不同的客户场景,新版xcheck提供双引擎的架构,实现检测深度和广度的全覆盖:
全新检测原理:语义解析 污点追踪
语义解析:xcheck拥有一套自研的代码分析模糊解析器,无需依赖编译,可以将代码快速转换成抽象语法树,相比同类产品,解析的速度实现了大幅度的提升。
污点追踪:xcheck会在抽象语法树的基础上,设计精细化的模型,进行模拟执行和污点分析,准确的找到污点的传播路径。核心检测算法经过了腾讯内部每年数百万次任务的打磨,检出率和误报率能保证在较高的水平。
腾讯xcheck产品的接入方式及应用场景
接入流水线:通过插件方式嵌入ci/cd,默认触发扫描
接入代码仓库:针对代码仓库进行定时定期的全量扫描
本地扫描:人工上传代码压缩包进行检测审计
腾讯bsca二进制软件成分分析产品
腾讯bsca是一款以二进制软件成分分析为核心的检测平台,帮助用户检测软件制品,建立软件物料清单,发现软件制品风险,规避开源安全及合规性问题。
强大的解析能力,支持全格式制品扫描
腾讯bsca拥有强大的分析能力,支持全格式、多维度的深度扫描,能够有效应对各类软件检测需求,涵盖移动端,嵌入式,后台开发,云原生各种开发场景下的跨架构格式解析。
解析能力:支持所有常见的制品格式,包括常见固件、镜像、安装包、文件系统、压缩文件等。针对未知格式,启发式格式解析,可以采用遍历穷举方式识别出所有可识别的数据片段,进行部分解包还原。
检测能力:腾讯bsca是一个广义的sca,除了使用核心的sca算法之外,还可以通过分析间接依赖、文件hash、结构特征等,最大程度的提高扫描精度。
腾讯安全独家维护的开源组件知识库
对于一个sca工具来说,知识库是一个核心组成部分。腾讯bsca采用腾讯安全独家维护的开源组件知识库,为开发、测试、运维等环节提供全面的开源知识储备,提供快速准确的开源数据信息更新。
支持全局管理sbom组件,同时提供安全预警功能
该功能能够有效的应对软件供应链安全,在一个新的开源组件漏洞爆发时,借助sbom能力,第一时间梳理资产,快速定位到人/机器等细粒度,再通过打通内部系统,实现相关风险的预警和排查。
腾讯bsca产品使用场景
腾讯bsca同时支持saas和私有化两种形态,使用场景主要分成供应链场景和自研场景两种。
针对供应链场景:采购的第三方产品,可以直接手动上传相关的安装包,实现供应链安全的准入检测。
针对自研场景:可以对接制品仓库或者cicd流水线,实现自动化的开源组件风险检测。
腾讯devsecops整体凯发在线的解决方案
除了腾讯xcheck、腾讯bsca两款核心开发安全产品外,腾讯安全还可以提供基于devsecops理念的完整凯发在线的解决方案,通过自动化工具和咨询服务结合的方式,满足客户开发安全体系建设的需求,实现从源头降低软件供应链安全风险。