本文分享自华为云社区《华为云WebAssembly代码静态符号执行技术实现新突破,相关论文被软件工程顶会ISSTA2023接收并荣获杰出论文奖》,作者:华为云软件分析Lab 。

WebAssembly(Wasm)最初由W3C 的Mozilla、谷歌、微软、苹果等著名公司合作研发,最初是作为浏览器内应用程序的高性能执行引擎。因为Wasm的高性能、多语言支持、安全性和可移植等特性,Wasm 也正在从Web走向云、边缘和嵌入式,成为软件创新的热点。鉴于Wasm的优越特性,业界专家一致预测Wasm语言在云计算场景中的应用将会越来越广泛。然而针对Wasm,业界目前缺乏成熟、高效的静态符号执行引擎,而且当前的符号执行路径搜索技术通常过于粗糙,主要支持整个程序的全局搜索策略,但不同的代码块可能适合不同的局部策略,这使得Wasm的缺陷发现存在较大挑战。静态符号执行技术是程序分析领域中至关重要的一项技术,可以在软件源码中寻找软件缺陷为填补这一业界空白,,相关的分析和优化方法一直在学术界和工业界得到持续关注。但是,符号执行会遇到路径爆炸的问题。在实践中,用户经常需要利用各种搜索策略来指导符号执行以达到他们的分析目标,减少路径爆炸,但是现有的基于搜索或者引导的符号执行方法通常过于粗糙,它们主要支持整个程序的全局搜索策略,但不同的代码块可能适合不同的局部策略。而对于WebAssembly(Wasm),目前尚无成熟、高效的符号执行引擎。

针对上述问题,华为云PaaS技术创新LAB联合北京大学郭耀教授、李锭助理教授研究团队,针对WasmWebAssembly代码孵化开发了一个可工业场景落地的静态符号执行引擎服务Eunomia。该工作对应论文“Eunomia: Enabling User-Specified Fine-Grained Search in Symbolically Executing WebAssembly Binaries”已被软件工程顶会 ISSTA 2023在2023 年国际软件测试与分析会议(2023 ACM International Symposium on Software Testing and Analysis 2023, ACM ISSTA 2023)录用发表上,发表题为 “Eunomia: Enabling User-Specified Fine-Grained Search in Symbolically Executing WebAssembly Binaries” 的论文,并荣获 “荣获该会议的 ACM SIGSOFT 杰出论文奖(Distinguished Paper Award)”。论文第一作者为北京大学计算机学院 2019 级博士生贺宁宇。

图1 ACM SIGSOFT 杰出论文奖证书

Wasm是在泛在计算领域广泛使用的一种新的中间语言范型,可以为 C/C++、Go 等语言提供统一的泛在应用执行环境。Wasm已被广泛应用于网络应用程序、区块链应用以及服务器无感知(severless)应用。但是现有的针对Wasm的符号执行引擎不完全支持Wasm接口(WASI),导致应用范围受限。研究团队针对 Wasm语言的特点设计了一种领域专用语言(DSL)AES Script,该语言允许用户将先验知识形式化的引入到被测试程序中。通过作者提出并实现的基于用户细粒度知识引导的Wasm符号执行引擎,相较于目前的前沿工作,该工作可以将针对 Wasm语言的静态符号执行分析效率提升一到两个数量级,成功在实际应用和系统中发现了多个 0-Day 漏洞,证明了该工作的有效性,并为后续工作指出了一个新的研究方向。

图2 论文工作的框架与工作流图

实验结果表明,在Logic Bomb基准测试集上成功触发逻辑炸弹和超时的案例数量上,Eunomia明显优于Manticore。在所有12个类别中,Eunomia在专注于符号内存、浮点数和外部库函数的逻辑炸弹方面有更好的表现。对于分析真实世界的应用程序,结果如表2的第三列和第四列所示。我们可以看到,在8个应用程序中,Manticore只能在2小时内完成对3个应用程序的分析,而Eunomia的数量是5个。此外,很容易观察到,与Manticore相比,Eunomia的效率提高了一到两个数量级,并发现了2个新漏洞。

PaaS技术创新Lab隶属于华为云,致力于综合利用软件分析、数据挖掘、机器学习等技术,为软件研发人员提供下一代智能研发工具服务的核心引擎和智慧大脑。我们将聚焦软件工程领域硬核能力,不断构筑研发利器,持续交付高价值商业特性!加入我们,一起开创研发新“境界”!

点击关注,第一时间了解华为云新鲜技术~

华为云WebAssembly代码静态符号执行技术实现新突破的更多相关文章

  1. 王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019

    演讲嘉宾 | 王晶(华为云人工智能高级算法工程师王晶) 出品 | AI科技大本营(ID:rgznai100) 近期,由 CSDN 主办的 2019 中国AI 开发者大会(AI ProCon 2019) ...

  2. 基于华为云IOT及无线RFID技术的智慧仓储解决方案最佳实践系列一

    [摘要]仓储管理存在四大细分场景:出入库管理.盘点.分拣和货物跟踪.本系列将介绍利用华为云IOT全栈云服务,端侧采用华为收发分离式RFID解决方案,打造端到端到IOT智慧仓储解决方案的最佳实践. 仓储 ...

  3. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?

    摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...

  4. 华为云 AI 实战营计划,带你迈上 AI 之路

    当今,AI的开发人才需求呈现极大的供需不平衡.所有开发者都关心,要如何从一名开发者晋升为AI开发者?AI开发能力,是主要的进入障碍.不用慌,华为云推出了 <华为云ModelArts-Lab AI ...

  5. 鲲鹏凌云,并行科技Paramon通过华为云鲲鹏云服务兼容性认证

    随着Cloud2.0时代到来,5G技术开始应用普及,超算云服务需求不断升级,业务多样性.数据多样性不断延伸.2019年7月,华为召开鲲鹏计算产业发展峰会,依托在联接领域坚实的基础,华为未来将着力打造智 ...

  6. 中国DevOps平台市场,华为云再次位居领导者位置

    摘要:华为云软件开发生产线DevCloud在市场份额和发展战略两大维度均排名第一,再次位居领导者位置. 9月21日 ,国际权威分析师机构IDC发布<IDC MarketScape: 中国 Dev ...

  7. 【云享专刊】开源遇上华为云,OCP架构变身“云原生框架”

    摘要:华为云DTSE团队出品云原生改造指南,助力轻松实践OCP上云. 本文分享自华为云社区<[云享专刊]开源遇上华为云,OCP架构变身"云原生框架">,作者:华为云社区 ...

  8. Cloud Native Weekly | KubeCon首登中国,华为云亮相KubeCon 2018,微软云服务又罢工

    1.KubeCon首登中国,Kubernetes将如何再演进? 11月14日,由CNCF发起的云原生领域全球最大的峰会之一KubeCon+CloudNativeCon首次登陆中国,中国已经成为云原生领 ...

  9. 华为云PaaS首席科学家:Cloud Native +AI,企业数字化转型的最佳拍档

    近日,在2019华为全球分析师大会期间,华为云PaaS首席科学家熊英博士在+智能,见未来(华为云&大数据)的分论坛上,从云计算行业发展谈起,深入云原生发展趋势,对华为云智能应用平台做了深度解读 ...

  10. 沈抚示范区·“华为云杯”2021全国AI大赛圆满落

    摘要:以赛促学,赛教结合!驱动AI产业繁荣发展 本文分享自华为云社区<云聚沈抚 · 智赢未来!沈抚示范区·"华为云杯"2021全国AI大赛圆满落幕>,作者:灰灰哒. 近 ...

随机推荐

  1. html标签tr td是什么意思

    <table>代表表格</table><tr>代表表格中的一行</tr><td>代表表格中的一列</td>'tr'与'td'交成 ...

  2. 压缩 js 代码就用 terser

    webapck 中提供了压缩 js 代码的方式,可以移除无用代码.替换变量名等,减少编译后文件体积,提升加载速度. 不同mode 在 webpack 配置文件 webpack.config.js 中通 ...

  3. 1. 通俗易懂的Redis基础

    通俗易懂的Redis基础教程(基于CentOS 7) 目录 通俗易懂的Redis基础教程(基于CentOS 7) 1 Redis是什么 1.1 NoSQL概念 1.2 NoSQL与SQL比较 1.3 ...

  4. Hi3798MV200 恩兔N2 NS-1 (四): 制作 Debian rootfs

    目录 Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明 Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改 Hi3798MV200 恩兔N2 NS ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (78)-- 算法导论7.4 2题

    二.如果用go语言,证明:在最好情况下,快速排序的运行时间为 Ω(nlgn). 文心一言: 在最好情况下,快速排序的运行时间为Ω(nlgn)的证明如下: 快速排序是一种分治算法,它将一个数组分成两个子 ...

  6. WPF学习 - 用鼠标移动、缩放、旋转图片(1)

    1. 需求 其实我的需求很简单.就是想做一个图片查看器,可以通过鼠标来平移.缩放.旋转图片. 2. 解决思路: WPF中的UIElement提供了RenderTransform属性,用于承载各种Tra ...

  7. 通过snmp获取设备每个接口的配置IP地址,网段信息和VLAN接口号

    第一部分,观察通过snmp OID能获取的信息,对信息进行关联. 1.通过 snmp获取到接口IP地址和掩码信息,发现IP地址作为索引值: 2.每个IP地址的索引,都可以关联到接口的索引 3.每个接口 ...

  8. AK、SK实现(双方API交互:签名及验证)

    参考:https://blog.csdn.net/yqwang75457/article/details/117815474 1.原理 AK/SK: AK:Access Key Id,用于标示用户. ...

  9. 制作一个内部的 zabbix-agent 快速部署脚本

    下载官方的基础 agent 部署包 官方地址:点击到达 curl -O https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.36/zabbix_ ...

  10. .NET Core 实现Excel的导入导出

    目录 前言 NPOI简介 一.安装相对应的程序包 1.1.在 "管理NuGet程序包" 中的浏览搜索:"NPOI" 二.新建Excel帮助类 三.调用 3.1. ...