破局“安全左移”代码安全窘境 代码Fuzzing提供新思路

首页 / 业界 / 企业 /  正文
来源:云起无垠
发布于:2023-03-23
2017年Equifax数据泄露事件:Equifax是一家信用评级公司,2017年9月该公司披露了一项严重的数据泄露事件,导致超过1亿人的个人信息(包括社会保险号码、出生日期和地址等)被盗取。该漏洞是由于该公司使用的开源软件Apache Struts存在漏洞所致。

2017年WannaCry勒索软件攻击事件:WannaCry勒索软件攻击事件是一起全球范围内的网络攻击事件,影响了超过150个国家和数十万台计算机。该漏洞是由于微软的Windows操作系统存在漏洞所致,攻击者利用该漏洞传播勒索软件。

2020年SolarWinds供应链攻击事件:2020年12月12日,一起重大网络安全事件震惊整个IT业界,SolarWinds旗下的Orion网络监控软件更新服务器遭黑客入侵,攻击者利用Orion Platform 中的一处漏洞,植入了名为SUNBURST的恶意代码,实际受影响的客户数量接近100家,这也是一次典型的基于供应链漏洞的网络攻击。

2021年log4j2漏洞事件:Apache Log4j2是Apache的一个开源项目,Apache Log4j2是一个基于Java的日志记录工具,使用非常广泛,被大量企业和系统所使用,漏洞触发极其简单,攻击者可直接构造恶意请求,触发远程代码执行漏洞。该漏洞对全球都带来了巨大的影响。

究其原因,这些都是因为软件、开源组件中存在安全漏洞所引起,且类似的安全事件层出不穷。随着开发模式的不断演进,DevOps模式下软件项目开发上线的进程不断加快,如果应用系统上线前安全检测不足,漏洞未被发现,安全威胁事件发生的频次将会增加,概率也将更高。因此,尽可能全面地发现并及时修复潜藏的安全缺陷,对于防止恶意事件的发生至关重要。

此背景下,“安全左移”的概念被提出,也越来越被业界关注和认可。云起无垠作为软件供应链安全创新者,成立以来,也一直在践行该理念,期望从软件开发的早期阶段“介入”,帮助客户在开发、测试、部署、运维等阶段做好安全检测工作,及时发现已知和未知威胁,保障企业的业务系统安全稳定上线并运行。

“安全左移”的必要性

在软件开发的早期阶段进行测试,开发人员可以及早地发现问题并在其进入生产环境之前解决,既节省了时间,又规避了在运营阶段因为安全缺陷产生的安全问题。

图1 安全左移

根据IBM研究人员的数据统计,在产品发布后修复安全问题的成本是在设计阶段解决成本的4到5倍,而在运维阶段修复安全问题的成本则可能达到甚至超过100倍。

软件工程学家卡珀斯·琼斯也指出,80%的软件缺陷发生在编码阶段,而在后端测试修复缺陷的成本是开发阶段的40倍。

2017年,Ponemon Institute研究发现,如果在早期开发过程中检测到漏洞,平均修复成本可能在80美元左右。但是,如果在投入生产后检测到同样的漏洞,修复这些漏洞可能需要7600美元,成本倍增。

图2 不同阶段的修复成本

因此,在软件开发过程中将安全性的考虑提前到开发周期的早期阶段,可以避免后期发现漏洞和修复漏洞的高昂成本。为实现这一目标,需要在代码开发阶段就做提前做好安全规划,包括代码审计、安全测试等相关工作。

安全左移的“囧境”

安全左移概念的践行,除了人工测试等手段之外,还需要技术工具的支撑。现阶段,SAST、SCA等应用于开发生命周期“左端”的安全检测类工具被大规模普及,并得到了广泛应用。SAST可以对代码进行全面分析,发现代码中的逻辑漏洞、内存泄露等问题,有助于提高代码的质量和安全性。SCA可以对使用的第三方组件进行检测分析,发现其中的漏洞和安全问题,并提供更新版本的建议。

虽然它们都可以在早期发现潜在的安全漏洞和代码质量问题,从而避免在生产环境中发现问题后再去修复。但是,在检测结果中往往存在大量误报,需要较高的人工排查成本,难以实现全流程自动化的发现漏洞,并可能对研发人员产生干扰,最终导致“安全左移”的受阻。为打破当下困境,模糊测试(Fuzzing)技术无疑是最行之有效的解决方案。

代码Fuzzing的诞生

模糊测试(Fuzz Testing)技术最早可以追溯到上世纪80年代。当时,软件开发商发现难以保证软件的质量和安全性。尽管进行了大量的单元测试和集成测试,但依然难以发现所有的漏洞和缺陷。因此,人们开始探索一种新的测试方法,即通过输入一些随机的、非预期数据或边缘情况的数据来测试软件的鲁棒性和安全性。但由于当时传统的模糊测试采用的是暴力枚举的黑盒检测方式,虽然它有较强的漏洞挖掘能力,但是对算力及测试时间有一定要求。

2013年,覆盖引导技术开始应用在模糊测试中,与传统黑盒模糊测试不同的是,采用覆盖引导技术之后,通过监控程序的代码执行情况,收集代码覆盖率信息,可以生成更加有效的测试用例,从而提高测试用例的效率和覆盖率,更快地发现漏洞。自此,覆盖引导的灰盒模糊测试得到了众多的关注。

近几年,模糊测试在科研领域也成为诸多科研人员主要的研究方向,像网络安全“四大顶会”上更是有超过25%的论文在讨论模糊测试。而且,随着算力成本的逐年下降,模糊测试技术在产业界得到了广泛应用,诸多技巨头企业开始大范围应用模糊测试技术,并将其作为重要的安全检测利器。以Google的OSS-Fuzz为例,通过对数千个开源软件项目进行测试,仅用3年时间,就累计挖掘了超过31000个漏洞。此外,许多轰动一时的严重漏洞也都是采用模糊测试技术挖掘,就比如心脏滴血漏洞(Heartbleed)、Shellshock漏洞等。

新一代智能模糊测试领跑者、软件供应链安全创新者,云起无垠将覆盖引导的模糊测试技术应用在软件开发领域,在程序开发的早期阶段引入,帮助企事业单位发现潜藏在程序中的已知、未知缺陷。“Fuzzing技术的理论特性决定了它有更多的应用场景,而且结合AI技术,在软件定义世界的时代可以帮助企业解决更多安全问题。”沈凯文正是基于这样的思考,结合在硕博期间的技术积累,果断做出了这个选择,带队研发设计了无垠代码模糊测试系统。

2022年12月,无垠代码模糊测试系统V1.0版本正式上线,支持C/C++等应用场景100余种漏洞检测,覆盖了软件开发的开发、测试、部署、运营等阶段。

2023年2月,无垠代码模糊测试系统v1.1版本正式发布,在C/C++语言基础上,支持了Java语言的代码检测,且覆盖30+常见漏洞的挖掘,目前正在不断完善中。

无垠代码模糊测试系统,以源代码或二进制文件为测试目标,可在产品开发早期引入安全测试能力,适用于开发、测试、交付及运维的整个产品研发流程,为软件研发测试与安全性评估赋能。目前,支持独立测试模式和CI/CD集成模式。

图3 独立测试模式
 

图4 CI/CD集成模式
 
同时,该产品还可以与其它开发安全产品相结合,比如与前文提及的SAST、SCA工具相结合,无垠代码模糊测试系统可将SAST和SCA检测出的高危代码片段信息或函数接口信息作为输入,并对被测程序中的高危区域进行定向模糊测试。依托模糊测试0误报的技术特点,可有效过滤SAST和SCA检测结果中的缺陷误报,实现漏洞的精准定位与复现,扫清“安全左移的障碍”。

解锁5大凸出优势

无垠代码代码模糊测试系统有如下凸出优势:

① 海量测试用例
基于深度学习、遗传变异算法以及覆盖引导技术,自动生成海量(亿万级)测试用例,对目标代码进行安全检测,提升代码检测覆盖率;

② 漏洞精准检测
仿真代码实际运行场景,检测缺陷误报率几乎为零,且对被发现的缺陷可定位、可复现、可验证;

③ 发现未知缺陷
随着时间的推移,基于遗传算法的AI测试引擎会使新生成的测试用例更加精确,从而更深入地探索代码边界,提高代码覆盖率,进而发现更多安全漏洞,而且可以发现0day等未知漏洞;

④ 自动化程度高
对系统代码进行自动化动态检测时,中间过程无需人工参与,大幅提升检测效率,降低人力成本;

⑤ 极致的用户体验
提供测试代码模板,用户只需声明测试接口即可构造用例,对开发人员影响小;测试文件编写简单,方便进行测试人员培训,易于企业内部推行。

贯穿“eating your own dog food”的“Dogfooding”理念,云起无垠在无垠代码模糊测试系统上线之后率先自己使用,通过实践来验证产品的能力。无垠代码模糊测试系统通过对json parse库、MojoJson进行检测发现多个CVE漏洞,漏洞编号为:CVE-2023-23083 ~ CVE-2023-23088,该系列漏洞皆为内存类漏洞,漏洞允许攻击者执行恶意代码进行攻击,从而造成严重后果。其中,CVE-2023-23086~CVE-2023-23088已公开。CVSS v3.1漏洞评分均为9.8,严重级别的高危漏洞。这也完全验证了产品的可用性。

除此之外,云起无垠已经与运营商、检测机构、金融等众多企业进行了对接,在产品的POC阶段切实帮客户发现了众多安全漏洞,帮助客户提早进行安全修复。

虽然产品已经有了不俗的成绩,仍然需要市场验证,以优化产品的演进、迭代方向,不断打磨产品。期待有需求的甲方企业可以免费试用“无垠代码模糊测试系统”。

识别二维码 免费试用

未来,云起无垠将继续专注于智能模糊测试技术的研究,不断完善产品的功能和覆盖场景,帮企事业单位解决更多软件开发阶段的安全问题。

关于云起无垠

云起无垠是新一代智能模糊测试技术领跑者,软件供应链安全创新者。云起无垠采用新一代Fuzzing技术全流程赋能软件供应链与开发安全,基于智能模糊测试引擎为协议、代码、数据库、API、AI模型等应用提供强大的软件安全自动化分析能力,从源头助力企业自动化检测并助其修复业务系统安全问题,为每行代码安全运行保驾护航。让软件更安全,让安全更智能。

公司总部设在北京,拥有数十项知识产权,并通过ISO9001、20000、27001等认证,参与多项行业标准制定,服务客户包括:政府、能源、车企、金融、运营商等多个行业。目前,公司已完成数千万天使轮融资。