收藏 分销(赏)

2023龙蜥操作系统大会全面繁荣开发者生态.pdf

上传人:Stan****Shan 文档编号:1239436 上传时间:2024-04-19 格式:PDF 页数:189 大小:16.59MB
下载 相关 举报
2023龙蜥操作系统大会全面繁荣开发者生态.pdf_第1页
第1页 / 共189页
2023龙蜥操作系统大会全面繁荣开发者生态.pdf_第2页
第2页 / 共189页
2023龙蜥操作系统大会全面繁荣开发者生态.pdf_第3页
第3页 / 共189页
2023龙蜥操作系统大会全面繁荣开发者生态.pdf_第4页
第4页 / 共189页
2023龙蜥操作系统大会全面繁荣开发者生态.pdf_第5页
第5页 / 共189页
点击查看更多>>
资源描述

1、20232023龙蜥操作系统大会全面龙蜥操作系统大会全面繁荣开发者生态繁荣开发者生态众众测共创:聚力开发者,共创新生态测共创:聚力开发者,共创新生态性能视角浅析操作系统测试性能视角浅析操作系统测试工业和信息化部电子第五研究所工业和信息化部电子第五研究所张欢张欢操作系统越来越多,生态难题越来越大国内主流操作系统:社区 OpenAnolis社区 openEuler社区 OpenCloudOS社区 OpenHarmony麒麟 KylinOS统信 UOS.主导的标准规范缺失,有效的测试手段匮乏性能测试是什么?性能测试:测试策略+负载模型 模拟实际业务场景,获得所需系统指标 不同侧面:负载测试、压力测试

2、、容量测试等性能测试有哪些常用策略性能测试之困惑性能基准测试之罪基准测试特别版忽略差异测试错误的目标缺乏分析的数字忽略干扰忽略错误。从性能视角看操作系统通用计算机系统=硬件设备+操作系统+应用软件+.操作系统=内核栈+系统调用+用户栈+.设备驱动=CPU驱动+内存驱动+磁盘驱动+网卡驱动+.主流性能基准工具SPEC CPU SuperPICinebenchLinpackCoreMarkCPUStreamMLCMemTestLmbench内存FIOIOzoneVDBenchIometerSPC-1/2存储NetperfIperfQperfSocketperfPing网络UnixbenchGeek

3、benchPhoronix Test SuiteSPEC WebSPEC JBBTPC-C/E/H/DS综合类GCBS助力系统产品迭代创新市场需求为导向,解决行业问题为目标,产学研用良性互驱,共研、共享、共进计算性能基准套件(GCBS):对计算系统进行综合性能测评,支持单任务处理性能、多任务处理性能及并行处理能力的性能测试。测试内容涵盖:CPU、内存、存储、网络、操作系统、运行时,以及典型应用等。SYSTEMCPU/Cache内存管理系统内核块设备网络系统图形处理协处理器虚 拟 化基础程序标准C库Python解释器典型应用FILEIONETIOGRAPHIORUNTIMECOMPLEXTodo

4、文件系统音视频硬解码标准C+库glib库其它常用库Java虚拟机C/C+框架库存储系统显示系统基础库运行环境CPUMemoryJava虚拟机服务器(GCBS-Server)60项基准测试程序CPU:4项Memory:6项NetIO:10项FILEIO:6项System:20项Runtime:5项Complex:9项可解决行业问题1)缓解过度依赖开源工具,无自主测试工具问题;2)解决计算机系统性能评价依据不统一、评价维度多,无综合性能评价工具问题;3)解决性能仿真测试与实际用户体验差异大,缓解基准测试程序局限性问题。GCBS的基准负载GCBS 功能性特点:统一运行框架,统一打分模型 扩展性强,以

5、插件方式集成 测试程序代表性强、覆盖全面 轻量化、灵活配置 开放、行业专家审核GCBS性能测评报告GCBS性能数据分析(1)相同硬件设备,不同OS对比环境信息:Intel Gold 6330 内存 16*64GB 磁盘 1.7TB 内核 4.190.000.501.001.502.002.503.00SystemSuiteRuntimeSuiteComplexSuiteSumarySuiteSuiteOS-AOS-BOS-C0.001.002.003.004.005.006.007.00SystemOS-AOS-BOS-C0.000.501.001.502.002.503.003.504.00

6、4.50scimark_pythonpyext3cppperfscimark_javajavajniRuntimeOS-AOS-BOS-C0.000.501.001.502.002.503.00redishpcgx264virt_smallAppOS-AOS-BOS-CGCBS性能数据分析(2)同一OS,不同版本对比环境信息:Intel Gold 6330 内存 16*64GB 磁盘 1.7TB OSv1:内核 4.19 OSv2:内核 5.100.000.501.001.502.002.503.00SystemSuiteRuntimeSuiteComplexSuiteSumarySuiteS

7、uiteOSv1OSv20.001.002.003.004.005.006.007.00SystemOSv1OSv20.000.501.001.502.002.503.003.504.004.50scimark_pythonpyext3cppperfscimark_javajavajniRuntimeOSv1OSv20.000.501.001.502.002.503.00redishpcgx264virt_smallAppOSv1OSv2GCBS性能数据分析(3)性能测试结果雷达图对比分析对比单任务性能对比多任务性能对比黄色:OS1;紫色:OS2黄色:OS1;紫色:OS2GCBS性能测试结果发

8、布http:/数据服务:数据全面、粒度精细、维度众多、更新及时、空间隔离;瓶颈分析:系统级、设备级、部件级海阔凭鱼跃,天高任鸟飞;山深由虎行,春暖纵花放 积极参与龙蜥社区 共建T-One SIG 集成GCBS系列工具工业和信息化部电子第五研究所Anolis+OceanBase 在有色行业的最佳实践中国恩菲工程技术有限公司云平台 高级架构师苏浩背景介绍01技术选型成果、规划、建议0203背景介绍01公司介绍中国有色工程有限公司暨中国恩菲工程技术有限公司(原中国有色工程设计研究总院,简称“中国恩菲”)成立于1953年,是中华人民共和国成立后,为恢复和发展我国有色金属工业而设立的专业设计机构,现为世

9、界五百强企业中国五矿、中冶集团子企业,拥有全行业工程设计综合甲级资质。70年来,中国恩菲在30多个国家和地区参与了1.2万个工程项目,立足有色矿冶工程,在产业领域,是国内少有具备咨询、设计、建设、投资、运营“五位一体”服务能力的企业之一。当前,中国恩菲正全力引领行业新基建变革,以国家战略为指引,在“双循环”格局下,加速“数字化、平台化、智慧化、国际化”转型,全力打造有色矿冶国家队,绿色环保排头兵,新兴产业创新者,坚持走高技术高质量发展之路,为行业进步、产业升级不懈贡献力量,致力于成为最值得信赖的国际化工程综合服务商及能源环境发展商。中国恩菲MIM+工业互联网平台简介在国家大力发展工业互联网、推

10、进智能制造的浪潮之下,中国恩菲作为有色行业数字化转型的引领者,积极推进企业数字化、智能化转型,布局智能工厂、智能矿山领域,积极探索传统工业数智化转型的实践路径,围绕打造“数字五矿”战略任务要求,提出了“1”+“1”+“N”整体架构的解决方案即“1”一个集操控、管理及运营一体化的智慧管控中心;“1”搭建集工业大数据采集分析、数字孪生、三维可视化三位一体的工业互联网平台;“N”围绕工业互联网平台,在周围形成丰富的N种智慧应用App及智能操控终端。恩菲MIM+工业互联网平台基于70多年工业知识沉淀和10多年数字化项目经验优势打造,具备自主可控能力,致力于成为有色行业最具价值的工业互联网平台。平台基于

11、设备互联互通释放工业大数据潜能,与恩菲MIM+数字化解决方案融合,通过“数据+模型+应用”,优化企业传统生产、服务和经营模式,是有色行业数字化转型值得信赖的合作伙伴。中国恩菲MIM+工业互联网平台简介平台构建一整套标准化技术体系,是工业全要素链接的枢纽,是工业资源配置的核心,将有色行业工业技术、知识、经验和方法以专业工业知识库的形式沉淀在平台,对下可与控制系统、智能装备和仪表等互联,同时提供数据存储、融合和分析的能力,对上可支撑生产管理、优化控制、运营决策等生产和公辅应用系统快速开发,可实现三方系统集成和企业统一门户。聚焦工业生产过程与管理应用场景,以数据互联互通和工业知识积累复用为核心,平台

12、可实现“统一IT资源管理、统一数据采集管理、统一数据应用管理、统一应用门户、统一标准规范、统一安全管理,专有工业知识库,模型开发和应用”,满足企业数字化和智能化转型的需求。技术选型02为什么要选择龙蜥操作系统?首先解答:为什么不使用centos?众所周知,centos停服(官方公告:https:/blog.centos.org/2020/12/future-is-centos-stream/),centos停服后,我们没有能力及时更新操作系统的漏洞补丁等,所以要使用centos的替代品。为什么要选择龙蜥操作系统?再解答:国产操作系统中为什么龙蜥是最好的?第一,参考过多个官方评测机构,以及一些业

13、界权威说法第二,参考了一些企业、高校等相关的centos停服解决方案,https:/ Power 小型机+DB2 关系型数据库架构,已越来越无法支撑业务的快速发展。性能瓶颈工业互联网需要结合大数据平台进行海量数据运算的高并发、高吞吐场景,传统数据库很容易达到性能瓶颈。信息化升级传统封闭式架构给数据互通、智能化驱动带来限制,亟需运用科技手段真正实现有色数字化大脑,从整体上改造有色行业信息化的前后 台IT 系统架构,实现包括快速的后台数据处理、高并发稳定性等系统处理能力。数据安全威胁工控数据安全泄露风险日益增长。为什么要选择OceanBase数据库?在以“MIM+”工业互联网平台为基础进行数字化转

14、型的发展中,数据处理上存在的问题一直都是难题,过去恩菲有一些业务服务用的Mysql 做存储,但由于这些数据库 的特性和设计特点,导致它偶尔会出现 CPU 占用很高,服务Pause无法正常提供服务。对于上游来说,就是会出现超时问题,如果访问量大且重试操作过多,带来的阶梯效应称得上是“毁灭级”的,服务基本会被打垮。越来越多的案例证明,在有色行业数字化场景下,面对庞大的数据处理需求,Oracle、PostgreSQL、Mysql等传统关系型数据库越来越吃力。随着业务的发展,无论是存储成本,还是针对数据查询的性能、数据治理,都对企业提出了更高的要求。而如何让数据快速发挥出价值,带给用户最真实、最实时的

15、数据,还不会过度的浪费成本,也成为企业亟待解决的关键问题。丰富的生态体系1.OceanBase 提供的横向扩容能力通过加减机器即可应对业务的扩缩容,保证业务的服务质量。结合“MIM+”工业互联网,具备在线扩缩容能力,有效应对开门红等大促场景。2.平台化管理能力提升,整合竖井式应用,集中化管控,统一资源分配和运维,业务数据库容量瘦身 78%,与原数据库相比,具有相同业务承载能力。OceanBase 数据库成本大幅缩减 75%。与原有数据库的兼容能力和平滑迁移方案,避免了上千万行老核心代码的重写。3.分析型大数据加工处理能力提升 300%,资源利用效率和处理能力大幅升。4.系统开启数据加密,数据安

16、全得到有效保障的同时,性能影响不到 5%成果、规划、建议03成果在过去的2023年,Anolis OS 和 OceanBase 在有色行业的最佳实践不仅仅停留在理论层面,而是真切地影响和提升中国恩菲对外工程项目中,涉及位于国内广东、云南、江西、青海、河南、湖北、湖南等省份中十多家有色行业大型企业。规划与建议为了持续推动有色行业的数字化转型,提出以下规划和产品建议,以确保 Anolis OS 和 OceanBase 在未来的最佳实践中发挥最大潜力。业务培训建议在企业范围内实施更广泛的培训计划,以确保员工充分了解 Anolis OS 操作系统和 OceanBase 数据库的优势。通过提供培训和技术

17、支持,可以最大程度地发挥这一整合方案的效能,使企业能够更灵活地应对未来的挑战。深化定制加强整合方案的定制性。在与有色行业企业的深入合作中,我们将持续深化Anolis OS 和 OceanBase 在业务流程中的整合,以满足不同企业的独特需求。这包括更灵活的数据管理、更智能的实时监控和更有效的资源优化。持续优化持续优化 Anolis OS 操作系统和OceanBase 数据库的性能。通过紧密关注有色行业开发者反馈,推出更强大、更稳定的版本,以确保有色行业企业始终在数字化转型的最前沿。北京航空航天大学网安学院 副教授http:/baijiaju.github.io白家驹开源操作系统的自动化代码分析

18、与安全测评研究方向:研究方向:系统软件安全、操作系统、程序分析系统软件安全、操作系统、程序分析研究经历研究经历:2018年博士毕业于清华大学计算机系 2018-2022年在清华大学计算机系担任博士后和助理研究员 2023年加入北航网安学院担任副教授研究成果:研究成果:以一作/通讯作者身份发表30余篇系统安全相关的论文,其中CCF-A类论文15篇 多次担任USENIX ATC、EuroSys和ASPLOS等CCF-A类会议程序委员 自研程序分析工具在Linux和OpenSSL等开源系统软件中发现数千个真实缺陷 研究成果应用于华为、腾讯、快手和蚂蚁金服等科技企业0.个人简介个人简介操作系统是计算机

19、系统的核心基础软件操作系统是计算机系统的核心基础软件1.研究背景研究背景 功能作用:功能作用:负责管理各种资源和提供底层服务 组成部分:组成部分:文件系统、驱动程序、网络协议栈等 开开源源OS:Linux、FreeBSD、NetBSD、Zephyr等操作系统成为国家重大科技需求操作系统成为国家重大科技需求 工信部“十四五”软件和信息技术服务业发展规划的重要内容 工信部工业互联网创新发展行动计划(2021-2023)的重点领域 OpenAnolis、openKylin、RT-Thread等国产开源操作系统应运而生操作系统必须是操作系统必须是安全可靠安全可靠的,但现实的开源操作系统却存在众多缺陷的

20、,但现实的开源操作系统却存在众多缺陷1.研究背景研究背景 在公开披露的CVE漏洞中,开源操作系统漏洞数目名列前茅 操作系统缺陷和漏洞可导致严重安全问题(如DirtyCow和FragAttack等著名内核漏洞)https:/ 传统方式传统方式1:手动检查:手动检查代码代码适用于比较熟悉且规模较小的模块代码分析大规模代码需要大量人力工作分析复杂代码会出现很多纰漏 传统传统方式方式2:单元测试和功能测试:单元测试和功能测试适用于输入简单且功能单一的内核模块编写测试用例需要大量人力工作难以覆盖复杂执行情况(例如并发和异常处理等)开源操作系统亟需自动化的分析和测试技术!开源操作系统亟需自动化的分析和测试

21、技术!如何检测开源操作系统漏洞?如何检测开源操作系统漏洞?2.研究研究现状现状 缺陷检测与漏洞挖掘 编译优化与性能提升 自动化代码生成 漏洞利用和影响评估 代码版本管理与检查 两种主要的程序分析技术两种主要的程序分析技术:静态分析:静态分析:自动扫描代码以推断可能执行情况,无需执行被测程序 动态分析:动态分析:自动生成测试用例,并监控被测程序运行时的信息程序分析程序分析是自动分析程序代码和行为的一种技术,可用于是自动分析程序代码和行为的一种技术,可用于2.研究研究现状现状 基本过程:基本过程:遍历和扫描所有可能的代码路径 信息记录:信息记录:维护污点变量和变量状态 操作检查:操作检查:根据变量

22、状态判定是否会出缺陷静态分析:静态分析:自动扫描代码以推断可能执行情况,无需执行被测程序 基本过程:基本过程:构造测试用例,覆盖尽可能多的代码路径 信息记录:信息记录:维护污点变量和变量状态 操作检查:操作检查:根据变量状态判定是否会出缺陷动动态分析:态分析:自动生成测试用例,并监控被测程序运行时的信息2.研究研究现状现状 基本过程:基本过程:遍历和扫描所有可能的代码路径遍历和扫描所有可能的代码路径 信息记录:信息记录:维护污点变量和变量状态(扫描时(扫描时)操作检查:操作检查:根据变量状态判定是否会出缺陷(扫描时(扫描时)静态分析:静态分析:自动扫描代码以推断可能执行情况,无需执行被测程序

23、基本过程:基本过程:构造测试用例,覆盖尽可能多的代码路径构造测试用例,覆盖尽可能多的代码路径 信息记录:信息记录:维护污点变量和变量状态(运行运行时)时)操作检查:操作检查:根据变量状态判定是否会出缺陷(运行时(运行时)动动态分析:态分析:自动生成测试用例,并监控被测程序运行时的信息2.研究研究现状现状 新思公司的静态分析工具Coverity在Linux内核中发现了上万个真实缺陷 谷歌公司的模糊测试工具Syzkaller在Linux内核中发现了数千个真实缺陷 Coccinelle和Smatch等开源分析工具在Linux内核发现了数千个真实缺陷 程序分析工具已应用于开源操作系统的自动化缺陷检测程

24、序分析工具已应用于开源操作系统的自动化缺陷检测2.研究研究现状现状 代码量庞大且内核模块众多(目前Linux内核代码超过2000万行)函数调用关系复杂,包括跨文件和跨模块调用、函数指针调用等 变量访问情况复杂,包括大量结构体使用、指针赋值传参等 接收输入维度多样,包括系统调用、外设DMA、硬件寄存器等 潜在异常情况众多,包括内存分配不足、网络连接失败等 线程调度难以确定,导致并发情况和共享变量访问难以有效覆盖 开源操作系统的自动化缺陷检测依然面临诸多挑战开源操作系统的自动化缺陷检测依然面临诸多挑战-如何提升覆盖度和分析效率?-如何提升覆盖更多函数调用?-如何分析复杂变量访问状态?-如何生成多维

25、度测试用例?-如何测试异常处理代码?-如何检测并发相关的缺陷?亟需研发新型程序分析技术,提升开源操作系统的自动化缺陷检测效果3.研究研究内容内容 分析效率和准确性之间的平衡 复杂数据结构和别名关系的处理 代码并发性和同步原语的分析 基于状态机模型的通用缺陷检测 大规模复杂系统代码的静态分析大规模复杂系统代码的静态分析 程序反馈驱动的自适应状态覆盖 定向引导的并发线程交错探索 上下文敏感的异常注入测试机制 基于约束规则的多维测试用例生成 多维输入和复杂状态程序的动态分析多维输入和复杂状态程序的动态分析打造具有打造具有自主自主知识产权知识产权的操作系统自动化代码分析平台的操作系统自动化代码分析平台

26、程程序序状状态态迁迁移移分析对象:分析对象:Linux、FreeBSD、Zephyr、openEuler、openKylin等开源操作系统等开源操作系统检测检测缺陷缺陷空空指针解引用指针解引用基础基础技术技术分析分析方法方法别名分析别名分析优化优化策略策略路径可达性验证路径可达性验证缺缺陷陷检检测测规规则则大规模复杂系统代码的静态分析大规模复杂系统代码的静态分析函数指针分析函数指针分析多维输入和复杂多维输入和复杂状态程序的状态程序的动态分析动态分析过程过程间分析间分析锁锁集分析集分析异常注入异常注入线程交错探索线程交错探索多维输入生成多维输入生成状态反馈状态反馈安全危害排序安全危害排序缺陷路径

27、去重缺陷路径去重代码插桩优化代码插桩优化缺陷信息重放缺陷信息重放多线程监控多线程监控释放后使用释放后使用内存泄漏内存泄漏双重释放双重释放重复加锁重复加锁异常处理不当异常处理不当数据竞争数据竞争并发死锁并发死锁3.研究研究内容一:大规模复杂系统代码的静态分析内容一:大规模复杂系统代码的静态分析 静态核心分析部分:数据流分析+过程间分析+别名分析+约束求解+状态模式检查器:每一种类的缺陷都可以用对应的状态机进行描述 1+N形式设计:一个重量级分析核心+多个轻量级检查器基本思想:透明化分析核心部分基本思想:透明化分析核心部分+自定义状态模式检查器自定义状态模式检查器静态分析核心部分数据流分析过程间分

28、析别名分析函数指针分析约束求解 路径遍历并发分析空指针解引用检查器释放后使用检查器未初始化访问检查器多线程死锁检查器 设计优势:(1)重用核心分析代码,减少实现工作(2)关键技术集中化在核心分析部分(3)编写检查器无需考虑复杂的分析过程(4)方便支持检查器的扩展3.研究研究内容一:大规模复杂系统代码的静态分析内容一:大规模复杂系统代码的静态分析 缺陷检测的过程可以描述为变量状态的迁移过程 当变量状态达到某个特定状态时,就可能产生缺陷 在代码路径分析过程中,维护变量状态信息就可以检测缺陷基于状态机模式的缺陷检查器基于状态机模式的缺陷检查器判非空判空解引用初态非空空BUG间接空指针解引用的状态机判

29、空判非空解引用解引用判非空判空函数返回初态已经释放尚未释放BUG内存泄露的状态机释放内存分配函数返回函数返回3.研究研究内容一:大规模复杂系统代码的静态分析内容一:大规模复杂系统代码的静态分析原子上下文休眠:原子上下文休眠:持有自旋锁或在中断处理时休眠,可导致偶发的崩溃和挂起等严重后果代表性工作代表性工作1:操作系统原子上下文休眠的静态检测:操作系统原子上下文休眠的静态检测(USENIX ATC18+TOCS20)现有现有方法:方法:未处理函数指针+仅过程内分析 产生较多漏报产生较多漏报情况情况粗粒度锁集维护+缺少路径验证 产生较多误报产生较多误报情况情况创新技术:创新技术:基于关联的函数指针

30、分析基于关联的函数指针分析+基于函数摘要的过程间分析基于函数摘要的过程间分析 减少漏报情况减少漏报情况上下文敏感的加解锁分析上下文敏感的加解锁分析+原子上下文约束的路径验证原子上下文约束的路径验证 减少误报情况减少误报情况实验效果:实验效果:在在Linux 4.17内核中发现了内核中发现了1068个真实的原子上下文休眠缺陷个真实的原子上下文休眠缺陷对比对比现有方法:现有方法:发现更多真实缺陷,误报率更低发现更多真实缺陷,误报率更低缺陷补丁示例1:USB主机控制器驱动程序缺陷补丁示例2:Ocfs2文件系统3.研究研究内容一:大规模复杂系统代码的静态分析内容一:大规模复杂系统代码的静态分析不安全不

31、安全DMA访问:访问:驱动程序的DMA访问未经过正确性和一致性检查,可引发多种系统漏洞代表性工作代表性工作2:操作系统中不安全:操作系统中不安全DMA访问的静态检测访问的静态检测(USENIX Security21)现有现有方方法:法:使用虚拟机技术模拟DMA数据生成实现动态测试 代码代码覆盖不完整覆盖不完整根据I/O访问的接口函数的返回值来进行静态检测 DMA访问不使用函数访问不使用函数创新技术:创新技术:基于字段分析的基于字段分析的DMA访问识别与访问识别与跟踪跟踪 有效识别有效识别DMA访问操作访问操作基于模式匹配的基于模式匹配的DMA访问安全性访问安全性检查检查 有效检测不安全有效检测

32、不安全DMA访问访问实验效果:实验效果:在在Linux 5.6内核中发现了内核中发现了284个真实的不安全个真实的不安全DMA访问访问缺陷补丁示例1:Vmxnet3虚拟网卡驱动程序缺陷补丁示例2:AV7110多媒体驱动程序3.研究研究内容一:大规模复杂系统代码的静态分析内容一:大规模复杂系统代码的静态分析别名分析:别名分析:分析多个变量是否对应同一内存位置,可指导检测深层次的代码缺陷代表性工作代表性工作3:基于别名分析的操作系统缺陷静态检测:基于别名分析的操作系统缺陷静态检测(ASPLOS22)现有现有方方法:法:基于变量包含或类型合并的别名分析算法 别名别名关系识别不关系识别不准确准确在缺陷

33、检测和路径验证时未考虑别名关系 分析分析的时间开销加大的时间开销加大创新技术:创新技术:基于代码路径的过程间别名分析算法基于代码路径的过程间别名分析算法 提升别名分析的精度提升别名分析的精度别名关系指导的状态合并和约束化别名关系指导的状态合并和约束化简简 减少缺陷检测的开销减少缺陷检测的开销实验效实验效果:果:在在Linux、Zephyr等四款开源操作系统中发现了等四款开源操作系统中发现了574个真实的缺陷个真实的缺陷对比对比现有方法:现有方法:发现更多真实缺陷,误报率更低发现更多真实缺陷,误报率更低缺陷补丁示例1:GPU驱动程序缺陷补丁示例2:Ceph文件系统3.研究内容研究内容二:多维输入

34、和复杂状态程序的动态分析二:多维输入和复杂状态程序的动态分析 动态分析核心部分:用例变异+状态收集+异常注入+线程控制+多维度输入生成:系统调用、网络数据包、偶发异常、线程调度等 程序状态指导:识别和生成高效的测试用例,提升测试覆盖度基本思想:多维度测试用例生成基本思想:多维度测试用例生成+多种程序状态反馈指导多种程序状态反馈指导设计优势:(1)利用模糊测试过程,提升测试用例有效性(2)生成多维度输入,提升测试覆盖度(3)多维度输入叠加,易于发现较为复杂的缺陷(4)多种程序状态反馈,易于发现不同类型缺陷多维度测试用例动态分析核心部分用例变异状态收集异常注入线程控制依赖分析 启动加速缺陷检测系统

35、调用网络数据包偶发异常线程调度 多种程序状态反馈指导3.研究内容二:多维输入和复杂状态程序的动态分析研究内容二:多维输入和复杂状态程序的动态分析 传统模糊测试(例如AFL和Syzkaller)使用代码覆盖率作为反馈指导 代码覆盖率并非对所有被测程序和缺陷类型都是最适用的 根据测试目标选择更合适的程序状态进行反馈指导测试目标相关的多种程序状态反馈指导测试目标相关的多种程序状态反馈指导CLOSEDLISTENSYN_RCVDSYN_SENTESTABLISHEDFIN_WAIT1FIN_WAIT2CLOSINGTIME_WAITCLOSE_WAITLAST_ACKTCP网络协议栈:状态迁移的指导F

36、uncAFuncBFuncA+1线程线程A:线程线程B:FuncA-1 FuncB-1 FuncB+1 执行函数序列执行函数序列FuncC线程线程C:FuncC-1 FuncC+1 多线程程序:并发函数对的指导3.研究内容二:多维输入和复杂状态程序的动态分析研究内容二:多维输入和复杂状态程序的动态分析网络协议栈:网络协议栈:在运行过程中会经过很多次状态迁移,当状态出现异常时会导致缺陷和漏洞代表性工作代表性工作4:网络协议栈的模糊测试网络协议栈的模糊测试(USENIX ATC21)现有现有方法:方法:随机生成网络数据包,并且没有反馈机制 状态状态迁移覆盖率低迁移覆盖率低仅使用现成的内存检查器来检

37、测内存缺陷 难以难以检测语义缺陷检测语义缺陷创新技术:创新技术:基于依赖的数据包生成基于依赖的数据包生成+状态迁移指导的测试状态迁移指导的测试 提高状态迁移覆盖度提高状态迁移覆盖度启发式的异常注入机制启发式的异常注入机制+基于差分比较的检测基于差分比较的检测 可有效检测语义缺陷可有效检测语义缺陷实验效实验效果:果:在在TLDK、F-Stack等五款开源等五款开源TCP协议栈中发现了协议栈中发现了56个真实的缺陷个真实的缺陷缺陷示例1:TLDK协议栈缺陷示例2:FreeBSD TCP协议栈对比现有方法:对比现有方法:发现更多语义缺陷和内存缺陷发现更多语义缺陷和内存缺陷3.研究内容二:多维输入和复

38、杂状态程序的动态分析研究内容二:多维输入和复杂状态程序的动态分析并发缺陷:并发缺陷:由于线程调度的不确定,并发缺陷难以在测试过程中检测和复现代表性工作代表性工作5:多线程的并发模糊测试多线程的并发模糊测试(NDSS22+TSE22)现有现有方法:方法:修改线程调用优先级/随机插入延时 线程交错覆盖度较低线程交错覆盖度较低随机采样式断点检测/传统锁集分析 并发缺陷检测有误报并发缺陷检测有误报创新技创新技术:术:并发调用函数的测试反馈并发调用函数的测试反馈+定向引导的探索策略定向引导的探索策略 提升线程交错的覆盖度提升线程交错的覆盖度面向并发函数的锁集分析面向并发函数的锁集分析+指令级别的缺陷重放

39、指令级别的缺陷重放 零误报的并发缺陷检测零误报的并发缺陷检测实验效果:实验效果:在在16款款Linux内核模块和内核模块和8款开源应用程序中发现了款开源应用程序中发现了212个真实数据竞争个真实数据竞争对比现有方法:对比现有方法:发现更多真实缺陷,误报率更低发现更多真实缺陷,误报率更低缺陷示例1:XFS文件系统缺陷示例2:JFS文件系统3.研究内容二:多维输入和复杂状态程序的动态分析研究内容二:多维输入和复杂状态程序的动态分析异常处理缺陷异常处理缺陷:异常处理代码很少在执行过程中触发,因此其测试难度较大代表性工作代表性工作6:基于异常注入的模糊测试基于异常注入的模糊测试(USENIX Secu

40、rity20+TDSC23)现有现有方法:方法:基于输入变异的模糊测试 难以覆盖异常处理代码难以覆盖异常处理代码指定异常的随机触发测试 无法检测深层次缺陷无法检测深层次缺陷创新技术:创新技术:异常注入与输入变异融合异常注入与输入变异融合 提升异常处理代码的覆盖度提升异常处理代码的覆盖度异常触发情况的测试反馈异常触发情况的测试反馈 覆盖深层次的异常处理代码覆盖深层次的异常处理代码实验效果:实验效果:在在6款款Linux内核模块和内核模块和9款开源应用程序中发现了款开源应用程序中发现了132个真实的缺陷个真实的缺陷缺陷示例1:OpenSSL加密库缺陷示例2:华为iSulad加密库缺陷示例3:Btr

41、fs文件系统(CVE-2023-3111)4.实际效果实际效果自研分析工具已在主流开源操作系统中发现了数千个真实缺陷自研分析工具已在主流开源操作系统中发现了数千个真实缺陷 国外操作系统:Linux、FreeBSD、NetBSD、Zephyr、RIOT、国产操作系统:OpenAnolis、openKylin、TencentOS-tiny、与多家企业开展了多个项目合作,促进研究成果落地缺陷补丁示例:Linux内核缺陷补丁示例:openKylin内核缺陷补丁示例:OpenAnolis内核5.工作总结工作总结操作系统的缺陷和漏洞可导致严重的安全问题!操作系统的缺陷和漏洞可导致严重的安全问题!成熟的操作

42、系统背后是强大的代码分析和安全测试框架!成熟的操作系统背后是强大的代码分析和安全测试框架!研发研发自主的代码分析平台对国产操作系统发展意义重大!自主的代码分析平台对国产操作系统发展意义重大!6.社区合作社区合作北航网安学院与龙蜥社区开展操作系统安全的深度合作北航网安学院与龙蜥社区开展操作系统安全的深度合作 加入龙蜥社区成为合作伙伴,参与开源社区建设和提升开源贡献能力 创建程序分析SIG组,研制新型程序分析技术以提升OpenAnolis内核安全性 成立北航-龙蜥社区开源云原生软件安全实训基地,联合培养更多开源软件安全人才北京航空航天大学网安学院 副教授http:/baijiaju.github.

43、io白家驹感谢聆听,期待合作!开源社区与高校产学研合作模式中南大学 特聘副教授下一代质量技术SIG maintainer演讲人:施鹤远科学研究01课程教学协同育人学生就业020304开源社区与高校产学研合作模式以社区需求导向开展落地科研明确研究意义:为什么要做?业务需要!获取一线反馈:为什么不行、为什么行真实应用证明:产出社区实际应用效果高校科研团队实践项目:自科、研究生毕设课题主题:安全容器测试、内核模糊测试、CVE质量评估研究真问题,解决实际问题“需求牵引,突破瓶颈”:科学问题源于国家重大需求和经济主战场,且具有鲜明的需求导向、问题导向和目标导向特征,旨在通过解决技术瓶颈背后的核心科学问题

44、,促使基础研究成果走向应用。社区学术研究成果社区技术基础社区项目需求凝炼科学问题开源社区与高校合作:科学研究教&学脱节没兴趣自学or不学授课内容作用、目的、价值 VS 备课、考试、考勤相关课程:云计算、软件测试、体系结构、OS课堂教学以社区项目为例开展教学(openAnolis、T-One)邀请社区成员参与课程教学环节(访谈、讲座、视频)开源社区与高校合作:课程教学实验设计龙蜥实验室、社区资源、社区课题(课设、毕设)、视频资料实践 软件体系结构,软件工程系,专业核心课程,大三,200+学生加强基本技能 Git python Linux 云资源沟通交流能力 Issue PR 英文明确个人价值 增

45、强信心 科研价值 心理健康开源精神+开源科研科研可应用、有价值成果:可演示、可量化开源社区与高校合作:协同育人明确个人发展方向OS技术栈、人生规划、预期目标开源社区与高校合作:学生就业增进企业-学生互相了解技术、思想、风格、性格项目经历培养更符合业务需求人才高质量学生就业促进社区发展社区课题、业务需求、功能特性明确个人发展方向OS技术栈、人生规划、预期目标开源社区与高校合作:学生就业增进企业-学生互相了解技术、思想、风格、性格项目经历培养更符合业务需求人才高质量学生就业促进社区发展社区课题、业务需求、功能特性THANKS施鹤远中南大学 特聘副教授下一代质量技术SIG maintainer面向龙

46、蜥操作系统的内核持续性模糊测试清华大学软件学院演讲人:沈煜恒基于任务的操作系统模糊测试01基于靶向的操作系统模糊测试Linux内核模糊测试0203模糊测试(fuzzing)是一种错误检测方法。使用随机输入来探索程序的异常行为。常见模糊测试内核对象:What is Fuzz Testing72v覆盖引导的内核模糊测试使用内核(使用 kcov 工具)作为模糊目标。使用系统调用描述(syscall SPEC)作为模糊输入。73Mutation将系统调用 SPEC 转换为可执行的二进制程序。根据反馈(覆盖率和崩溃率)修改系统调用 SPEC。覆盖引导的内核模糊测试74在内核中执行生成的程序。在执行过程中

47、收集覆盖率和崩溃信息。覆盖引导的内核模糊测试基于任务的操作系统模糊测试01基于靶向的操作系统模糊测试Linux内核模糊测试0203系统调用描述方法系统调用申明:现有的表示方法不足以表达足够充分的业务逻辑信息,且无法传递执行时的状态信息。传统内核模糊测试中的不足变量申明系统调用申明传统内核模糊测试中的不足执行器单线程的执行方式:Fuzzer每次只启动一个执行器,执行器每次只执行一个测试用例,无法充分的模拟业务逻辑执行时的状态,导致一些bug无法暴露出来。CVE-2017-2636Overview业务相关代码感知;以任务作为输入;进程间的任务状态感知与维护;多线程的执行方式;定义任务模型 定义基于

48、任务的输入格式;定义了任务;每个任务内包括了多个程序,每个程序有对应的优先级。实现任务间的状态感知与修复 通过字典查询维护每个任务的执行状态 构造一个字典;通过遍历一个任务中所有程序的syscall来维护每一个程序的执行状态;对可能发生挂起行为的程序进行修复。并行fuzz以尽可能触发实时性操作 业务逻辑的多线程并发执行 每轮执行时同步地启动多个执行器;根据任务中定义的优先级为每个执行器分配一个优先级;每轮执行后将执行数据进行异步地收集。覆盖率对比 挂起数量降低;共在6个版本的linux上发现50个bug,其中25个prevision unknown。基于任务的操作系统模糊测试01基于靶向的操作

49、系统模糊测试Linux内核模糊测试0203观察 主线内核经过了大量测试。部分业务模块中的代码经常被修改。这些代码缺乏与上游内核相同级别的测试。在工业环境中,测试还受到严格的时间和计算资源限制。86Motivations定向模糊测试可以将测试工作引向特定的目标代码段,提高特定业务模块的测试性能87 静态调用图提取 基于调用图的定向模糊Overview88 使用 Clang 创建加权调用图 创建加权调用图用于增强 Syzkaller 集成到阿里巴巴的 ABACI 机器人中,用于对目标业务模块进行连续模糊测试Overview89E1:Bug ReportedDRLF 共发现 11 个以前未知的漏洞,

50、Linux社区已对其进行了修复90E2:Optimize Fuzzing 91DRLF 实现了 654.50 个分支的覆盖率,与Syzkaller 相比,平均提高了 24.70%的覆盖率。E2:Optimize Fuzzing 聚力开发者,共创新生态“众测共创”升级计划龙蜥社区基础设施 SIG Maintainer张永超开发者是开源社区的血液和命脉?开发者的参与难点重重上游跟踪编码review持续集成软件包构建产品测试持续交付性能调优安全运维1、降低研发环节参与难度2、促进开发者的个人成长3.提升社区的竞争力贡献途径有限学习成本高经验因素大传统社区参与难点一切为了开发者双轮驱动的发展模式dev

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服