本文分享自华为云社区《华为云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. VBA与VB的区别

    从语言结构上讲,VBA是VB的一个子集,它们的语法结构是一样的.两者的开发环境也几乎相同.但是,VB是独立的开发工具,它不需要依附于任何其他应用程序,它有自己完全独立的工作环境和编译.链接系统.VBA ...

  2. Jenkins 配置邮件通知(腾讯企业邮箱)

    开通企业邮箱SMTP服务 登录企业微信邮箱,然后打开设置,在里面找到 收发信设置,在开启服务里面将 开启IMAP/SMTP服务 勾选 保存后回到邮箱绑定页签下,将安全设置里的安全登录开关打开 在下面的 ...

  3. 使用pycharm脚本发送钉钉群通知

    使用Pychon脚本发送钉钉群通知 我们可以使用钉钉的机器人助手发送群通知,只需要非常简单的配置就可以实现,而没有任何的成本. 1) 首先我们要在钉钉群里添加一个机器人助手 选择智能群助手,然后选择添 ...

  4. 2.4 PE结构:节表详细解析

    节表(Section Table)是Windows PE/COFF格式的可执行文件中一个非常重要的数据结构,它记录了各个代码段.数据段.资源段.重定向表等在文件中的位置和大小信息,是操作系统加载文件时 ...

  5. 弹性数据库连接池探活策略调研(三)——DBCP

    前言 在之前的文章中,我们介绍了弹性数据库连接失效的背景,并探讨了HikariCP.Druid连接池探活策略的相关内容.在本文中,我们将会继续探讨另一个线上常用的连接池--DBCP,并为您介绍如何在使 ...

  6. SICTF-2023 #Round2-WP-Crypto | Misc

    Crypto 一.[签到]古典大杂烩 附件信息: 很明显可以看出来是base100,密码工具箱一把梭: SICTF{fe853b49-8730-462e-86f5-fc8e9789f077} 二.Ra ...

  7. 现代 CSS 解决方案:原生嵌套(Nesting)

    很早之前,就写过一篇与原生嵌套相关的文章 -- CSS 即将支持嵌套,SASS/LESS 等预处理器已无用武之地?,彼时 CSS 原生嵌套还处于工作草案 Working Draft (WD) 阶段,而 ...

  8. SQL Server实例间同步登录用户

    SQL Server实例间同步登录用户 问题痛点:由于AlwaysOn和数据库镜像无法同步数据库外实例对象,例如 登录用户.作业.链接服务器等,导致主库切换之后,应用连接不上数据库或者作业不存在导致每 ...

  9. UM 百度富文本编辑器自定义图片上传路径

    UM 百度富文本编辑器自定义图片上传路径 因为公司要做图文编辑,选择了UM,但是直接存入Tomcat根目录下,不满足业务需求需要存入服务器上. 一.需要注意的是在um的JSP目录下已经存在了Uploa ...

  10. Modbus转profinet网关连接位移计在1200程序控制案例

    Modbus转profinet网关连接位移计在1200程序控制案例 本案例讲述了兴达易控Modbus转profinet网关(XD-MDPN100)连接现场用台达LD-E镭射位移计检测控制在1200PL ...