Automatic generation of assertions to detect potential security vulnerabilities in C programs that use union and pointer types
Ahmad Khalid, Shamsul K., Zimmermann, Jacob, Fidge, Colin J., & Corney, Diane (2010) Automatic generation of assertions to detect potential security vulnerabilities in C programs that use union and pointer types. In Xiang, Yang, Samarati, Pierangela, Hu, Jiankun, Zhou, Wanlei, & Sadeghi, Ahmad-Reza (Eds.) Proceedings of 2010 Fourth International Conference on Network and System Security, IEEE Computer Society, Melbourne, pp. 351-357.
Type unions, pointer variables and function pointers are a long standing source of subtle security bugs in C program code. Their use can lead to hard-to-diagnose crashes or exploitable vulnerabilities that allow an attacker to attain privileged access over classified data. This paper describes an automatable framework for detecting such weaknesses in C programs statically, where possible, and for generating assertions that will detect them dynamically, in other cases. Exclusively based on analysis of the source code, it identifies required assertions using a type inference system supported by a custom made symbol table. In our preliminary findings, our type system was able to infer the correct type of unions in different scopes, without manual code annotations or rewriting. Whenever an evaluation is not possible or is difficult to resolve, appropriate runtime assertions are formed and inserted into the source code. The approach is demonstrated via a prototype C analysis tool.
Impact and interest:
Citation countsare sourced monthly fromand citation databases.
Citations counts from theindexing service can be viewed at the linked Google Scholar™ search.
Full-text downloadsdisplays the total number of times this work’s files (e.g., a PDF) have been downloaded from QUT ePrints as well as the number of downloads in the previous 365 days. The count includes downloads for all files if a work has more than one.
|Item Type:||Conference Paper|
|Keywords:||program analysis, runtime assertions, polymorphic types, C|
|Subjects:||Australian and New Zealand Standard Research Classification > INFORMATION AND COMPUTING SCIENCES (080000) > COMPUTER SOFTWARE (080300) > Computer System Security (080303)|
Australian and New Zealand Standard Research Classification > INFORMATION AND COMPUTING SCIENCES (080000) > COMPUTER SOFTWARE (080300) > Programming Languages (080308)
|Divisions:||Past > Schools > Computer Science|
Past > QUT Faculties & Divisions > Faculty of Science and Technology
Past > Institutes > Information Security Institute
|Copyright Owner:||Copyright 2010 IEEE Computer Society|
|Copyright Statement:||Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.|
|Deposited On:||17 Nov 2010 09:15|
|Last Modified:||22 Jul 2014 15:11|
Repository Staff Only: item control page