《水木羽林-白易元-云原生大会(19页).pdf》由会员分享,可在线阅读,更多相关《水木羽林-白易元-云原生大会(19页).pdf(19页珍藏版)》请在三个皮匠报告上搜索。
1、基于模糊测试的云原生软件供应链安全保障演讲人水木羽林 CTO 白易元134模糊测试在云原生环境的现有应用模糊测试技术原理简介模糊测试在云原生环境的挑战和未来2模糊测试的常见应用场景什么是模糊测试模糊测试是一种动态测试技术。他的核心思想,是由程序自动生成大量的测试样例,自动运行这些测试样例,并在运行的过程中,检测系统是否发生错误模糊测试的发展历史最早的模糊测试工具出现,主要用于稳健性测试1988 2001Codenomicon成立,发布黑盒模糊测试工具Defensics2013 AFL发布,它是首个实用的灰盒模糊测试工具2014发现心脏滴血漏洞,模糊测试开始受到更多的重视和发展水木羽林提出跨层全
2、栈的模糊测试,进一步扩展模糊测试的应用场景NOW现代模糊测试工具的基本架构生成模块生成测试用例生成:变异:调用待测程序函数:文件:网络:代理:接口模块检测模块反馈模块使用结构化的定义直接生成从用户提供的初始用例中修改部分内容直接编写程序调用待测函数从文件读取网络通信传输使用另一个程序作为调用代理检测程序缺陷内存:逻辑:对比:越界访问、内存泄漏、双重释放等空指针、整数溢出、断言错误等和参考实现对比程序运行结果收集运行信息覆盖:分支:其他:程序运行过程中涉及到的基本块分支判断条件常量表、系统调用、输入输出、符号执行等模糊测试适合的应用场景确定性程序流程只取决于输入输入无内部独立性测试目标是一个相对
3、独立且完整的速度快程序执行速度可以达到每秒几百次常见语言的支持C/C+/Go/Rust非内存安全型Java/JavaScript/Python内存安全型内存缺陷逻辑缺陷内存缺陷逻辑缺陷模糊测试的现有应用场景Google应用模糊测试在Chrome等各类应用中发现57000+缺陷Google Project Zero 40%的缺陷通过模糊测试找到美国国防部斥资4500万美元全面应用模糊测试THE DEPARTMENTOF DEFENSE和其他安全检测技术对比模糊测试(灰盒)交互式测试动态测试静态测试优势劣势可重现,有缺陷定位;无脏数据只适用Web;需要人工输入测试优势劣势自动化;误报低;可重现耗时
4、较长;适配门槛高真实缺陷发现能力代码覆盖率高低高低优势劣势可重现;易于使用覆盖率较低;主要发现已知问题优势劣势缺陷定位;速度快;易于使用误报率高;不可重现模糊测试与云原生技术CNCF(云原生计算基金会)使用模糊测试保障基础软件平台的安全主要由安全公司Ada Logics辅助集成和优化模糊测试覆盖大部分核心开源项目模糊测试案例分析Envoy2015年成立,2017年加入CNCF2018年,加入模糊测试的相关代码,并且使用OSS-fuzz项目进行持续测试2021年,Ada Logics对它的测试入口进行了详细的分析和优化,出具了详细的报告至今发现852个缺陷,其中78个是安全缺陷Istio2019
5、年,开始使用模糊测试2020年,集成到OSS-fuzz项目,开始进行持续测试2022年,Ada Logics对其进行了详细的分析,并出具分析报告至今发现53个缺陷,包含高危安全漏洞:CVE-2022-23635模糊测试应用成果项目IssueKubernetes45Envoy852Fluent216Prometheus5Containerd2Vitess28etcd15模糊测试在云原生环境的挑战和未来编写测试入口的挑战结构化数据生成的挑战系统运行环境的挑战编写测试入口的挑战为了集成模糊测试,项目需要进行一定的修改,并编写测试入口代码由于独立性的要求,对于大型项目,测试入口数量会很多Contain
6、erd:11个/Istio:50个/Kubernetes:20个以上的特点导致集成模糊测试工作量大,开发难度高优化方向:自动生成测试入口输入数据自动生成测试入口自动生成结构化数据生成的挑战现有模糊测试框架,变异主要都是以原始二进制格式为基础进行的。云原生环境下,多采用应用层协议,例如RESTful API的方式提供功能。使用原始二进制变异容易造成底层协议失效,导致无法有效进行测试。优化方向:自动生成结构化的输入基于程序分析的方式,生成可用数据结构,适用于函数调用的方式基于文法生成的方式,生成符合文法的语句,对于有DSL的服务非常有效基于配置文件的方式,生成特定结构的数据包,对于有协议的服务效率
7、更高系统运行环境的挑战现有模糊测试框架,主要使用单进程单线程的方式运行待测程序。云原生环境下,大部分服务都采用分布式架构,使用多进程通信的方式提供服务。现有的模糊测试框架无法在这种运行环境下进行测试。优化方向:支持分布式的测试分布式的样例执行分布式的错误监控分布式的反馈机制总结团队介绍北京水木羽林科技有限公司致力于运用国际前沿核心技术,针对“检测+防护”场景,结合“平台+服务”模式,提供面向信创、航天、车控、金融等各行业的跨层全栈软件质量与安全保障解决方案。团队介绍项目上海品茶直接链接至团队工作成果水木羽林团队掌握软件安全测试全栈核心技术,研究成果被Google、微软项目直接集成应用。团队介绍水木羽林 翼卫WINGFUZZ 智能模糊测试平台,可面向应用、数据库、内核、协议等对象进行深度测试,有效发现未知可靠性、安全性缺陷,已在Linux、MySQL等主流开源软件中挖掘200+CVE。