本文介绍: 而Patch2QL发现的CVE-2023-3896漏洞存在于窗口指针在平滑滚动后重绘的功能中,这两处漏洞的代码上下文不存在可见的复用关系,仅在计算窗口宽度变量赋值存在2行重复,且距离后续除法(求模)运算距离不等,可以认为无法用SCA或克隆检测的能力发现。作为服务于操作系统质量保障的工具,当前Patch2QL在持续以Linux内核为重点分析目标,快速迭代规则生成方法,并对某些漏洞的对应补丁,半自动化调整润色规则,以实现更高召回率、更低误报率,并提升规则泛化性,以发现更多潜在同源漏洞。
背景
开源生态的上下游中,漏洞可能存在多种成因有渊源的其它缺陷,统称为“同源漏洞”,典型如:
同源漏洞的威胁,在真实世界中缺少足够的研究,却影响深重。例如,上游开源项目的漏洞与补丁完全公开,使得黑客人工分析与历史高危漏洞相似的缺陷并利用,成本更低。而下游项目开发者常常不会主动跟踪其使用的开源代码的安全漏洞,导致很多关键系统可能带着多年漏洞运转,更是为黑灰产无感知地渗透进去提供了方便。
作为软件供应链研究重点,腾讯安全云鼎实验室通过对开源上下游的典型实践的长期分析和漏洞挖掘,论证了供应链的典型威胁,特别是“同源漏洞”的风险模型。基于此,我们提出一种区别于传统静态分析和成分分析的方法,统一解决两个问题:开源软件有哪些与历史漏洞相似的缺陷?自研代码中引入了哪些开源代码的漏洞?
现有技术缺陷
开源漏洞挖掘检测,现有技术手段包括SAST与SCA/SBOM,但二者均难以有效解决同源漏洞问题。
狭义的SAST即源代码分析,可依据典型缺陷模式构建规则库,分析项目中语法、数据流匹配的片段。但此类规则,一方面依照通用缺陷类型编写,却无法检测包含复杂或项目特定逻辑的漏洞;另一方面受制于过程间分析等限定,难以在没有人工定制前提下适配每个项目的接口规约。这导致真实世界漏洞可被这些SAST工具检出比例很低。
新方向:Patch2QL
原理与实现
目标与覆盖
实战:上游开源项目漏洞挖掘
实战:下游开源成分漏洞检测
二次开发数据库
二次开发Linux内核
公开资源与规划
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。