

FOLLOWUS
1Hubei Provincial Key Laboratory of Intelligent Robot, Wuhan Institute of Technology, Wuhan 430205, China
2Industrial Robot Engineering Center, Wuhan Institute of Technology, Wuhan 430205, China
3School of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, China
4School of Computer Science and Telecommunication Engineering, Jiangsu University, Zhenjiang 212013, China
5School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan 430074, China
E-mail:chendeng8899@hust.edu.cn
Received:01 November 2015,
Accepted:20 March 2016,
Published:2017-03
Scan QR Code
Deng CHEN, Yan-duo ZHANG, Wei WEI, et al. Efficient vulnerability detection based on an optimized rule-checking static analysis technique[J]. Frontiers of Information Technology & Electronic Engineering, 2017, 18(3): 332-345.
Deng CHEN, Yan-duo ZHANG, Wei WEI, et al. Efficient vulnerability detection based on an optimized rule-checking static analysis technique[J]. Frontiers of Information Technology & Electronic Engineering, 2017, 18(3): 332-345. DOI: 10.1631/FITEE.1500379.
静态分析是保障软件开发质量的一种重要方法。通过与软件开发过程集成并进行交互式应用可进一步提升静态分析工具的作用优势。然而,静态分析工具的交互式应用具有高性能和快速响应等要求。为此,本文以基于规则检查技术的静态分析工具作为研究对象,提出一种改进的规则检查算法,旨在提升静态分析工具的性能。该方法首先采用一种领域描述语言构造脆弱性规则的特征对象表达式,然后基于特征对象表达式的运算结果,对脆弱性规则进行过滤。由于一个代码文件通常只包含与部分脆弱性规则相关的错误,通过规则过滤可有效提高规则检查算法的效率,进而提升静态分析的性能。为了对方法可行性及有效性进行评估,方法实现过程被集成到开源静态分析工具PMD中并基于扩展后的PMD进行了实验分析。实验结果表明提出的方法可在不损失静态分析检测能力和精度的情况下获得平均28.7%的性能提升。
Static analysis is an efficient approach for software assurance. It is indicated that its most effective usage is to perform analysis in an interactive way through the software development process
which has a high performance requirement. This paper concentrates on rule-based static analysis tools and proposes an optimized rule-checking algorithm. Our technique improves the performance of static analysis tools by filtering vulnerability rules in terms of characteristic objects before checking source files. Since a source file always contains vulnerabilities of a small part of rules rather than all
our approach may achieve better performance. To investigate our technique's feasibility and effectiveness
we implemented it in an open source static analysis tool called PMD and used it to conduct experiments. Experimental results show that our approach can obtain an average performance promotion of 28.7% compared with the original PMD. While our approach is effective and precise in detecting vulnerabilities
there is no side effect.
M Alpuente , , , MA Feliú , , , C Joubert , , , 等 . . Using Datalog and Boolean equation systems for program analysis . . 2009 . . 13th Int. Workshop on Formal Methods for Industrial Critical Systems . . 215 - - 231 . . DOI: 10.1007/978-3-642-03240-0_18 http://doi.org/10.1007/978-3-642-03240-0_18 . .
JEM Araújo , , , S Souza , , , MT Valente . . Study on the relevance of the warnings reported by Java bug-finding tools . . IET Softw. , , 2011 . . 5 ( ( 4 ): ): 366 - - 374 . . DOI: 10.1049/iet-sen.2009.0083 http://doi.org/10.1049/iet-sen.2009.0083 . .
DC Atkinson , , , WG Griswold . . Effective pattern matching of source code using abstract syntax patterns . . Softw.-Pract. Exp. , , 2006 . . 36 ( ( 4 ): ): 413 - - 447 . . DOI: 10.1002/spe.704 http://doi.org/10.1002/spe.704 . .
N Ayewah , , , W Pugh , , , JD Morgenthaler , , , 等 . . Evaluating static analysis defect warnings on production software . . 2007 . . ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools & Engineering . . 1 - - 8 . . DOI: 10.1145/1251535.1251536 http://doi.org/10.1145/1251535.1251536 . .
T Ball . . The verified software challenge: a call for a holistic approach to reliability . . LNCS , , 2008 . . 4171 42 - - 48 . . DOI: 10.1007/978-3-540-69149-5_5 http://doi.org/10.1007/978-3-540-69149-5_5 . .
E Bounimova , , , P Godefroid , , , D Molnar . . Billions and billions of constraints: whitebox fuzz testing in production . . 2013 . . 35th Int. Conf. on Software Engineering . . 122 - - 131 . . DOI: 10.1109/ICSE.2013.6606558 http://doi.org/10.1109/ICSE.2013.6606558 . .
J Bovet , , , T Parr . . ANTLRWorks: an ANTLR grammar development environment . . Softw.-Pract. Exp. , , 2008 . . 38 ( ( 12 ): ): 1305 - - 1332 . . DOI: 10.1002/spe.872 http://doi.org/10.1002/spe.872 . .
D Chen , , , R Huang , , , B Qu , , , 等 . . Improving static analysis performance using rule-filtering technique . . 2014 . . 26th Int. Conf. on Software Engineering and Knowledge Engineering . . 19 - - 24 . . . .
P Emanuelsson , , , U Nilsson . . A comparative study of industrial static analysis tools . . Electron. Notes Theor. Comput. Sci. , , 2008 . . 217 5 - - 21 . . DOI: 10.1016/j.entcs.2008.06.039 http://doi.org/10.1016/j.entcs.2008.06.039 . .
D Engler , , , DY Chen , , , S Hallem , , , 等 . . Bugs as deviant behavior: a general approach to inferring errors in systems code . . ACM SIGOPS Oper. Syst. Rev. , , 2001 . . 35 ( ( 5 ): ): 57 - - 72 . . DOI: 10.1145/502059.502041 http://doi.org/10.1145/502059.502041 . .
E Hajiyev , , , M Verbaere , , , O de Moor . . CodeQuest: scalable source code queries with Datalog . . 2006 . . 20th European Conf. on Object-Oriented Programming . . 2 - - 27 . . DOI: 10.1007/11785477_2 http://doi.org/10.1007/11785477_2 . .
M Haydar , , , A Petrenko , , , S Boroday , , , 等 . . A formal approach for run-time verification of web applications using scope-extended LTL . . Inform. Softw. Technol. , , 2013 . . 55 ( ( 12 ): ): 2191 - - 2208 . . DOI: 10.1016/j.infsof.2013.07.013 http://doi.org/10.1016/j.infsof.2013.07.013 . .
MT Helmick . . Interface-based programming assignments and automatic grading of Java programs . . 2007 . . 12th Annual SIGCSE Conf. on Innovation & Technology in Computer Science Education . . 63 - - 67 . . DOI: 10.1145/1269900.1268805 http://doi.org/10.1145/1269900.1268805 . .
D Hovemeyer , , , W Pugh . . Finding bugs is easy . . ACM SIGPLAN Not. , , 2004 . . 39 ( ( 12 ): ): 92 - - 106 . . DOI: 10.1145/1052883.1052895 http://doi.org/10.1145/1052883.1052895 . .
D Hovemeyer , , , W Pugh . . Finding more null pointer bugs, but not too many . . 2007 . . ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools & Engineering . . 9 - - 14 . . DOI: 10.1145/1251535.1251537 http://doi.org/10.1145/1251535.1251537 . .
S Jarzabek . . Design of flexible static program analyzers with PQL . . IEEE Trans. Softw. Eng. , , 1998 . . 24 ( ( 3 ): ): 197 - - 215 . . DOI: 10.1109/32.667879 http://doi.org/10.1109/32.667879 . .
S Liu , , , R Zhang , , , D Wang , , , 等 . . Implementing of Gaussian syntax-analyzer using ANTLR . . 2008 . . Int. Conf. on Cyberworlds . . 613 - - 618 . . DOI: 10.1109/CW.2008.139 http://doi.org/10.1109/CW.2008.139 . .
S Loveland . . Using open source tools to prevent write-only code . . 2009 . . 6th Int. Conf. on Information Technology: New Generations . . 671 - - 677 . . DOI: 10.1109/ITNG.2009.75 http://doi.org/10.1109/ITNG.2009.75 . .
M Martin , , , B Livshits , , , MS Lam . . Finding application errors and security flaws using PQL: a program query language . . ACM SIGPLAN Not. , , 2005 . . 40 ( ( 10 ): ): 365 - - 383 . . DOI: 10.1145/1103845.1094840 http://doi.org/10.1145/1103845.1094840 . .
O Panchenko , , , A Treffer , , , A Zeier . . Towards query formulation and visualization of structural search results . . 2010 . . ICSE Workshop on Search-Driven Development: Users, Infrastructure, Tools and Evaluation . . 33 - - 36 . . DOI: 10.1145/1809175.1809184 http://doi.org/10.1145/1809175.1809184 . .
O Panchenko , , , J Karstens , , , H Plattner , , , 等 . . Precise and scalable querying of syntactical source code patterns using sample code snippets and a database . . 2011 . . 19th Int. Conf. on Program Comprehension . . 41 - - 50 . . DOI: 10.1109/ICPC.2011.31 http://doi.org/10.1109/ICPC.2011.31 . .
T Parr , , , K Fisher . . LL (*): the foundation of the ANTLR parser generator . . ACM SIGPLAN Not. , , 2011 . . 46 ( ( 6 ): ): 425 - - 436 . . DOI: 10.1145/1993316.1993548 http://doi.org/10.1145/1993316.1993548 . .
R Plosch , , , H Gruber , , , A Hentschel , , , 等 . . On the relation between external software quality and static code analysis . . 2008 . . 32nd Annual IEEE Software Engineering Workshop . . 167 - - 174 . . DOI: 10.1109/SEW.2008.17 http://doi.org/10.1109/SEW.2008.17 . .
SK Rajamani . . Automatic property checking for software: past, present and future . . 2006 . . 4th IEEE Int. Conf. on Software Engineering and Formal Methods . . 18 - - 20 . . DOI: 10.1109/SEFM.2006.10 http://doi.org/10.1109/SEFM.2006.10 . .
T Reinbacher , , , J Brauer , , , M Horauer , , , 等 . . Runtime verification of microcontroller binary code . . Sci. Comput. Program. , , 2014 . . 80 ( ( A ): ): 109 - - 129 . . DOI: 10.1016/j.scico.2012.10.015 http://doi.org/10.1016/j.scico.2012.10.015 . .
N Rutar , , , CB Almazan , , , JS Foster . . A comparison of bug finding tools for Java . . 2004 . . 15th Int. Symp. on Software Reliability Engineering . . 245 - - 256 . . DOI: 10.1109/ISSRE.2004.1 http://doi.org/10.1109/ISSRE.2004.1 . .
GL Schaps . . Compiler construction with ANTLR and Java—tools for building tools . . Dr. Dobb's J. , , 1999 . . 24 ( ( 3 ): ): 84 - - 89 . . . .
J Whaley , , , D Avots , , , M Carbin , , , 等 . . Using Datalog with binary decision diagrams for program analysis . . 2005 . . Asian Symp. on Programming Languages and Systems . . 97 - - 118 . . DOI: 10.1007/11575467_8 http://doi.org/10.1007/11575467_8 . .
D Zook , , , E Pasalic , , , B Sarna-Starosta . . Typed datalog . . LCNS , , 2009 . . 5418 168 - - 182 . . DOI: 10.1007/978-3-540-92995-6_12 http://doi.org/10.1007/978-3-540-92995-6_12 . .
Publicity Resources
Related Articles
Related Author
Related Institution
京公网安备11010802024621