{"id":2424,"date":"2022-08-04T17:52:02","date_gmt":"2022-08-04T17:52:02","guid":{"rendered":"https:\/\/www.cs.columbia.edu\/psl\/?p=2424"},"modified":"2022-08-04T17:52:03","modified_gmt":"2022-08-04T17:52:03","slug":"velvet-a-novel-ensemble-learning-approach-to-automatically-locate-vulnerable-statements","status":"publish","type":"post","link":"http:\/\/psl.cs.columbia.edu\/2022\/08\/04\/velvet-a-novel-ensemble-learning-approach-to-automatically-locate-vulnerable-statements\/","title":{"rendered":"VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatements"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Yangruibo Ding, Sahil Suneja, Yunhui Zheng, Jim Laredo, Alessandro Morari, Gail Kaiser and Baishakhi Ray. VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatements. <em>29th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)<\/em>, Virtual, March 2022. 36.2% accepted. <a rel=\"noreferrer noopener\" href=\"https:\/\/doi.org\/10.1109\/SANER53432.2022.00114\" target=\"_blank\">https:\/\/doi.org\/10.1109\/SANER53432.2022.00114<\/a> Video at <a href=\"https:\/\/www.youtube.com\/watch?v=caoQkTaxyYc\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.youtube.com\/watch?v=caoQkTaxyYc<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Automatically locating vulnerable statements in<br>source code is crucial to assure software security and alleviate<br>developers\u2019 debugging efforts. This becomes even more important<br>in today\u2019s software ecosystem, where vulnerable code can flow<br>easily and unwittingly within and across software repositories like<br>GitHub. Across such millions of lines of code, traditional static<br>and dynamic approaches struggle to scale. Although existing<br>machine-learning-based approaches look promising in such a<br>setting, most work detects vulnerable code at a higher granularity<br>\u2013 at the method or file level. Thus, developers still need to inspect<br>a significant amount of code to locate the vulnerable statement(s)<br>that need to be fixed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This paper presents VELVET, a novel ensemble learning<br>approach to locate vulnerable statements. Our model combines<br>graph-based and sequence-based neural networks to successfully<br>capture the local and global context of a program graph and<br>effectively understand code semantics and vulnerable patterns.<br>To study VELVET\u2019s effectiveness, we use an off-the-shelf synthetic<br>dataset and a recently published real-world dataset. In the static<br>analysis setting, where vulnerable functions are not detected in<br>advance, VELVET achieves 4.5\u00d7 better performance than the<br>baseline static analyzers on the real-world data. For the isolated<br>vulnerability localization task, where we assume the vulnerability<br>of a function is known while the specific vulnerable statement<br>is unknown, we compare VELVET with several neural networks<br>that also attend to local and global context of code. VELVET<br>achieves 99.6% and 43.6% top-1 accuracy over synthetic data and<br>real-world data, respectively, outperforming the baseline deep<br>learning models by 5.3-29.0%.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">@INPROCEEDINGS{velvet,<br>author={Ding, Yangruibo and Suneja, Sahil and Zheng, Yunhui and Laredo, Jim and Morari, Alessandro and Kaiser, Gail and Ray, Baishakhi},<br>booktitle={2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)},<br>title={{VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatements}},<br>year={2022},<br>month={March},<br>volume={},<br>number={},<br>pages={959-970},<br>doi={10.1109\/SANER53432.2022.00114},<br>url={https:\/\/doi.org\/10.1109\/SANER53432.2022.00114},<br>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yangruibo Ding, Sahil Suneja, Yunhui Zheng, Jim Laredo, Alessandro Morari, Gail Kaiser and Baishakhi Ray. VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatements. 29th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), Virtual, March 2022. 36.2% accepted. https:\/\/doi.org\/10.1109\/SANER53432.2022.00114 Video at https:\/\/www.youtube.com\/watch?v=caoQkTaxyYc Automatically locating vulnerable statements insource code is crucial to [&hellip;]<\/p>\n","protected":false},"author":144,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":null,"categories":[3],"tags":[],"class_list":["post-2424","post","type-post","status-publish","format-standard","hentry","category-publications"],"acf":[],"thumbnail":null,"mentioned":null,"_links":{"self":[{"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/posts\/2424","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/users\/144"}],"replies":[{"embeddable":true,"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/comments?post=2424"}],"version-history":[{"count":1,"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/posts\/2424\/revisions"}],"predecessor-version":[{"id":2425,"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/posts\/2424\/revisions\/2425"}],"wp:attachment":[{"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/media?parent=2424"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/categories?post=2424"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/psl.cs.columbia.edu\/wp-json\/wp\/v2\/tags?post=2424"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}