TY - GEN
T1 - Reusing existing test cases for security testing
AU - Dazhi, Zhang
AU - Wenhua, Wang
AU - Donggang, Liu
AU - Yu, Lei
AU - David, Kung
PY - 2008
Y1 - 2008
N2 - Traditional test case generation methods usually consider coverage criteria like statement or path coverage and ignore security characteristics. The result is that a test case may fail to find vulnerabilities even if it covers the vulnerable statements. However, we argue that existing test cases are still of great value because significant human effort and time have been invested to achieve high coverage criteria. A high coverage indicates a high possibility that vulnerable statements occur in the execution traces of these test cases. Thus existing test cases could guide us to those vulnerable statements. Under this intuition, we present a method of security testing by re-examining existing test cases. The basic idea is to discover two types of constraints in a program: program constraints (PC) and security constraints (SC). The former are the constraints imposed by program statements. For example, an assignment statement i=0 constrains the value of i to be 0. The later are the constraints derived from security concerns. For example, a buffer should never be overflowed. Intuitively, a statement is vulnerable if it can make PC?SC be false, which means the program constraints are not strict enough to ensure the security constraints. We design and develop a tool named RETAST to demonstrate our idea and the initial result is promising.
AB - Traditional test case generation methods usually consider coverage criteria like statement or path coverage and ignore security characteristics. The result is that a test case may fail to find vulnerabilities even if it covers the vulnerable statements. However, we argue that existing test cases are still of great value because significant human effort and time have been invested to achieve high coverage criteria. A high coverage indicates a high possibility that vulnerable statements occur in the execution traces of these test cases. Thus existing test cases could guide us to those vulnerable statements. Under this intuition, we present a method of security testing by re-examining existing test cases. The basic idea is to discover two types of constraints in a program: program constraints (PC) and security constraints (SC). The former are the constraints imposed by program statements. For example, an assignment statement i=0 constrains the value of i to be 0. The later are the constraints derived from security concerns. For example, a buffer should never be overflowed. Intuitively, a statement is vulnerable if it can make PC?SC be false, which means the program constraints are not strict enough to ensure the security constraints. We design and develop a tool named RETAST to demonstrate our idea and the initial result is promising.
UR - https://www.scopus.com/pages/publications/67249110468
U2 - 10.1109/ISSRE.2008.55
DO - 10.1109/ISSRE.2008.55
M3 - 会议稿件
AN - SCOPUS:67249110468
SN - 9780769534053
T3 - Proceedings - International Symposium on Software Reliability Engineering, ISSRE
SP - 323
EP - 324
BT - Proceedings - 19th International Symposium on Software Reliability Engineering, ISSRE 2008
PB - IEEE Computer Society
T2 - 19th International Symposium on Software Reliability Engineering, ISSRE 2008
Y2 - 10 November 2008 through 14 November 2008
ER -