QUT ePrints

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.

View at publisher

Abstract

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 from Scopus and Web of Science® citation databases.

These databases contain citations from different subsets of available publications and different time periods and thus the citation count from each is usually different. Some works are not in either database and no count is displayed. Scopus includes citations from articles published in 1996 onwards, and Web of Science® generally from 1980 onwards.

Citations counts from the Google Scholar™ indexing service can be viewed at the linked Google Scholar™ search.

Full-text downloads:

120 since deposited on 16 Nov 2010
18 in the past twelve months

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.

ID Code: 38549
Item Type: Conference Paper
Keywords: program analysis, runtime assertions, polymorphic types, C
ISBN: 9781424484843
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
Funding:
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

Export: EndNote | Dublin Core | BibTeX

Repository Staff Only: item control page