持续应用安全(CAS)研讨之:Fuzzing
持续应用安全(CAS)是数世咨询在软件供应链安全研讨会上首次提出的解决我国软件供应链安全问题的新思路。CAS 专注于保障数字化应用的,源代码阶段-构建部署阶段-上线运行阶段,全流程的安全状态。CAS 可以通过安全能力高度融合和安全数据关联分析的方式,经由统一调度管理形成体系化的解决方案,以达到帮助用户减少资源投入、整合安全能力和提升安全效率的目的。
持续应用安全(CAS)研讨系列文章的主要目的是,通过 CAS 核心能力提供者对 CAS 的研究,从不同的角度解读 CAS,共同推进 CAS 的落地进程。CAS 已经得到比瓴科技、酷德啄木鸟、思客云、孝道科技、四维创智、边界无限、云智信安、云起无垠等核心能力提供者的认同,目前已推出五篇文章:
后续还会推出 RASP 和移动应用安全检测方向的内容。
开源软件的盛行使用,极大地加快了业务应用的开发速度,但伴之而来的安全问题屡见不鲜。诸如"NotPetya "供应链攻击、“SolarWinds”供应链攻击等都是典型的软件供应链攻击事件,此类事件皆造成了超过 100 亿美元的经济损失。为尽量规避此类事件的再次发生,我们应构建有效的网络安全防护体系。CAS 持续应用安全旨在整合网络安全应用工具资源,现平台内部调配、迭代与集成,提高效率的同时降低开发团队的采购成本。CAS 涉及的业务包含了从代码构建阶段的安全开发,到软件上线运行后的安全应用,保障企业数字化业务的构建、上线和运营,为业务的安全迭代全流程赋能。如下,我们重点为大家介绍 CAS 持续应用安全下的 Fuzzing 技术。
Fuzzing 技术概述
模糊测试(Fuzzing)最早由威斯康星大学的 Barton Miller 于 1988 年提出。最开始,Barton Miller 的实验内容是开发一个基本的命令列模糊器以测试 Unix 程式。这个模糊器可以用随机数据来「轰炸」这些测试程式直至其崩溃,从而对应用程序进行安全检测。在当时,这一简单的测试方法便已发现 UNIX 系统中 25%以上的程序崩溃问题,展现出了无与伦比的测试优越性。从那时起,“它”慢慢进入大家的视野。
Fuzzing 是一种软件安全的自动化测试方法,它主要的理念是追寻测试样例的变异,并通过海量的测试数据来覆盖更多的程序执行流,同时监控输入可能导致的应用程序崩溃或异常情况,从而对应用系统的安全性和健壮性进行测试。
模糊测试流程
作为软件供应链安全与研发安全中最前沿的技术之一,模糊测试拥有诸多的先进性与特点:
Fuzzing 是一种自动化技术,一旦 fuzzer 启动并运行,它就可以开始自己寻找 bug,不需要手动/人工干预,且可以进行自动化持续测试。
模糊测试基于底层的二进制程序执行流来判定漏洞。这种基于底层逻辑的漏洞检测,也使得任何微小的错误都能被发现,并反馈到代码层,意味着任何位置特征的漏洞都可以被及时发现。
Fuzzing 技术不仅能发现已知的安全漏洞,还能发现未知的 0day 漏洞。
模糊测试的技术特点使其漏洞检测的准确率接近 100%,并且可为每个漏洞提供详细的回溯调试信息,进而降低运维成本,消除误报带来的噪音。
Fuzzing 赋能 CAS
近年来,开发模式已经从传统的瀑布开发、敏捷开发逐步演进为 DevOps 开发,大大缩短了业务上线的时间。这种情况下,DevSecOps 的安全模式应运而生,本意是使开发、安全和运维不再相对独立,从一开始就考虑应用和基础架构的安全性,防止对 DevOps 工作流程带来负面影响。然而在践行 DevSecOps 模式时,不同的安全产品间的并不互通、难以统一调度,使得人工处置的负担加重。因此,CAS 持续应用安全的概念应运而生。通过对各种安全产品的统一调度,持续地获得、关联和分析结果、最后加以自动化处置,使得 CAS 更贴合现在敏捷、云原生、业务优先的开发模式。Fuzzing 作为 CAS 理念下的重要一环,在软件供应链安全与研发安全中发挥着重要的作用。\
CAS 安全
前文提到,CAS 专注于保障数字化应用的源代码阶段——构建部署阶段——上线运行阶段全流程的安全状态。根据上图所示,在预发布环节需要 Fuzzing 安全测试技术以检测 SDLC 所有阶段的安全性和稳定性问题,并使开发人员能够快速、安全地发布软件。例如,通过对每个代码更改运行自动模糊测试来防止回归上线。
特别是在汽车行业和复杂的嵌入式项目中,需要处理大量不受信任的复杂数据,模糊测试为软件供应链安全与研发安全带来了极大的保障。事实上,开发人员可以应用类似于单元测试的模糊测试来自动测试他们的安全关键模块是否存在潜在漏洞。但是通过集成级别的模糊测试,它们还可以涵盖不同模块之间交互中可能发生的所有复杂和危险的边缘情况。
云起无垠基于 Fuzzing 技术自主研发了无垠协议模糊测试系统和无垠代码模糊测试系统产品。
无垠协议模糊测试系统是基于新一代模糊测试技术研发设计的一款漏洞测试工具。该工具目前实现了黑盒协议模糊测试,其通过向金融私有协议、数据库协议、车联网协议、5G 协议、工控协议、蓝牙协议等协议软件提供非预期的输入并监视异常结果,以此发现各类已知和未知漏洞,提高协议软件的鲁棒性和安全性,进而高效地帮助企业挖掘和修复协议开发过程中的各类安全问题。截止目前,云起无垠已经为智能车企、安全评测中心提供产品服务。除此之外,该产品也适用于军队、信创、工控等众多场景并为其提供亟需的解决方案。
无垠代码模糊测试系统是云起无垠在 AFL 基础之上,融合遗传变异等算法而研发设计。该测试系统基于反馈学习机制生成海量测试用例,对程序代码接口进行自动化动态检测,使缺陷误报率趋近于零,确保缺陷可定位、可复现,大幅提升安全左移的可落地性。而且,该产品可以在代码安全检测场景中对系统源代码及二进制文件进行动态检测,检测目标工程代码的安全性及健壮性,帮助开发、测试、安全人员快速发现、定位、验证目标工程的代码缺陷,并以报告的形式呈现出来,从而可以针对性地制定解决方案。
除此之外,Fuzzing 和 SCA、SAST 三者可以互相兼容、彼此互补,为 CAS 持续应用安全场景提供一体化的代码安全解决方案。众所周知,使用 SAST 可以发现专有代码中的安全威胁,使用 SCA 可以发现开源代码中的漏洞,使用 Fuzzing 可以发现已知和未知的安全威胁。此三类技术融合,可以覆盖开发安全中编码-测试阶段的安全检测工作,通过早期识别和选择安全组件提高了产品质量,而且增加了已知和未知安全威胁潜在风险的可见性,降低在开发过程早期发现和修复的漏洞的补救成本,更好地保障业务应用安全上线。
写在最后
“攻防对抗”是网络安全的真实写照,随着云计算、AI 等新技术的不断演进,未来面临的安全威胁也会越来越多。而“闭环式”的解决方案可以更好地解决安全问题。CAS 持续应用安全融合优秀国产代表厂商的前沿技术,构筑了应用安全的闭环体系,更有针对性地提供了相应的解决方案,帮助业务应用安全运行,助力网安产业稳步向前。
评论