神:在JavaScript引擎中发现根深蒂固的bug

Hongyang Lin, Junhu Zhu, Jianshan Peng, Dixia Zhu
{"title":"神:在JavaScript引擎中发现根深蒂固的bug","authors":"Hongyang Lin, Junhu Zhu, Jianshan Peng, Dixia Zhu","doi":"10.1109/ICCT46805.2019.8947153","DOIUrl":null,"url":null,"abstract":"Fuzzing [1] is a well-known technique which was employed to provide unexpected or random data as input to JavaScript engines in hopes of finding a security vulnerability. For effective fuzzing, the input must be both syntactically correct and uncommonly randomized for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. In this work, we introduced system Deity which managed to resolve the conflict with innovative AST(Abstract Syntax Tree) [2] based tree mutation and generating methods. It leverages a high-level structural representation of intermediate process JavaScript code. Our evaluation demonstrates the effectiveness of Deity. For large-scale JavaScript engines (njs, mjs, Javascript-Core, ChakraCore, Espruino, Jerryscript) fuzzing, our results significantly show that Deity can improve code coverage and finding more deep rooted bugs (i.e., 35 new bugs, among which we discovered 21 new vulnerabilities with 3 CVEs assigned) over Superion and CodeAlchemist.","PeriodicalId":306112,"journal":{"name":"2019 IEEE 19th International Conference on Communication Technology (ICCT)","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2019-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Deity: Finding Deep Rooted Bugs in JavaScript Engines\",\"authors\":\"Hongyang Lin, Junhu Zhu, Jianshan Peng, Dixia Zhu\",\"doi\":\"10.1109/ICCT46805.2019.8947153\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Fuzzing [1] is a well-known technique which was employed to provide unexpected or random data as input to JavaScript engines in hopes of finding a security vulnerability. For effective fuzzing, the input must be both syntactically correct and uncommonly randomized for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. In this work, we introduced system Deity which managed to resolve the conflict with innovative AST(Abstract Syntax Tree) [2] based tree mutation and generating methods. It leverages a high-level structural representation of intermediate process JavaScript code. Our evaluation demonstrates the effectiveness of Deity. For large-scale JavaScript engines (njs, mjs, Javascript-Core, ChakraCore, Espruino, Jerryscript) fuzzing, our results significantly show that Deity can improve code coverage and finding more deep rooted bugs (i.e., 35 new bugs, among which we discovered 21 new vulnerabilities with 3 CVEs assigned) over Superion and CodeAlchemist.\",\"PeriodicalId\":306112,\"journal\":{\"name\":\"2019 IEEE 19th International Conference on Communication Technology (ICCT)\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2019 IEEE 19th International Conference on Communication Technology (ICCT)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICCT46805.2019.8947153\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 IEEE 19th International Conference on Communication Technology (ICCT)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICCT46805.2019.8947153","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2

摘要

Fuzzing[1]是一种众所周知的技术,它被用来向JavaScript引擎提供意外或随机数据作为输入,以期发现安全漏洞。为了有效地进行模糊测试,输入必须在语法上正确,并且针对崩溃、失败的内置代码断言或潜在的内存泄漏等异常进行随机化。在这项工作中,我们引入了系统神,它设法解决了与创新的AST(抽象语法树)[2]基于树的突变和生成方法的冲突。它利用了中间过程JavaScript代码的高级结构表示。我们的评估证明了神的有效性。对于大型JavaScript引擎(njs, mjs, JavaScript - core, ChakraCore, Espruino, Jerryscript)的模糊测试,我们的结果显著表明,与Superion和CodeAlchemist相比,神可以提高代码覆盖率,发现更多根深蒂固的bug(即35个新bug,其中我们发现了21个新漏洞,分配了3个cve)。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Deity: Finding Deep Rooted Bugs in JavaScript Engines
Fuzzing [1] is a well-known technique which was employed to provide unexpected or random data as input to JavaScript engines in hopes of finding a security vulnerability. For effective fuzzing, the input must be both syntactically correct and uncommonly randomized for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. In this work, we introduced system Deity which managed to resolve the conflict with innovative AST(Abstract Syntax Tree) [2] based tree mutation and generating methods. It leverages a high-level structural representation of intermediate process JavaScript code. Our evaluation demonstrates the effectiveness of Deity. For large-scale JavaScript engines (njs, mjs, Javascript-Core, ChakraCore, Espruino, Jerryscript) fuzzing, our results significantly show that Deity can improve code coverage and finding more deep rooted bugs (i.e., 35 new bugs, among which we discovered 21 new vulnerabilities with 3 CVEs assigned) over Superion and CodeAlchemist.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信