Comparative Analysis and Evaluation of Software Vulnerabilities Testing Techniques
Comparative Analysis and Evaluation of Software Vulnerabilities Testing Techniques
International Scholarly and Scientific Research & Innovation 7(6) 2013 687 ISNI:0000000091950263
World Academy of Science, Engineering and Technology
International Journal of Computer and Information Engineering
Vol:7, No:6, 2013
In this type of testing the software code is considered as types of security flaws identified, and effectiveness.
“black box” and the tester has normally very little or no
knowledge of system under test or when the source code and A. Source Code Analysis
internal mechanisms of the system are not available. Black Source code analysis is the process of analyzing the source
box security tests are performed on executable software and code, before compilation (static analysis) or analyzing the both
used a variety of inputs to simulate the behavior of attackers source code and executable (dynamic analysis), for coding
and other misusers. In this regard black box testing plays a errors, insecure practices and vulnerable code. In manual code
very vital role to ensure input validation and checking it also analysis the tester inspect the source code for vulnerable code
identifies some serious security vulnerabilities e.g. Sql such as finding strcpy () functions without the use of a tool.
injection, buffer overflows and cross site scripting etc. But modern security testing analyzers are much more
sophisticated in term of identifying bugs, it also reduces false
alarms. In dynamic source analysis the compiled executable is
run and feed as input for testing the program variables in order
to detect code behavior. Depending on the type of testing tool
some errors and discrepancies are identified but some are
Fig. 1 Black Box testing process harder to be identified.
Source code analysis tools [9], [10] has the ability to
Black box testing activities are carried out throughout the
examine calls in the argument to insecure library functions,
SDLC and help to test security in following areas. Black box
e.g. the C/C++ testing tools have the ability to preprocess the
tests are performed to evaluate the behavior of COTS,
source code which enable the analyzing tool to see the same
executables packages, it also examine the interaction of the
code as seen by compiler.
software with the environment such as attackers and external
Bound detection and checking error functionality enable
entities. This type of test is not possible with white box
these tools to detect vulnerabilities due to integer overflow,
mechanism. Uncover security issues that arise as a result of
integer truncation and unsigned underflow etc.
missing modules, packages and files. Discover potential
To detect vulnerabilities associated with incorrectly
security issues resulting from boundary conditions.
implemented sequences of operations, security analyzers often
B. White Box Testing look for specific library function calls and print a warning
The type of testing that takes the internal mechanism of the about potential security problems associated with those
system into account and is performed when the source is functions.
available. Because the white box testing has access to the Pointer aliasing is a static analysis that tries to solve the
source code in internal mechanism it has capabilities to problem when two pointers pointing point to the same data as
identify coding errors, data flow, and error handling etc to explained in [9], [10]
evaluate software for security requirements. Static and B. Fault Code Injection
dynamic source code analysis is the core activities performed
In this type of testing the bugs are intentionally injected into
as part of white box testing. To perform white box security
the code, the code is then compiled and executed so the tester
testing one must have the knowledge about how to develop
can determine how software reacts when it is forced in
secure and avoid insecure systems, how to think like an
anomalous states. Fault code injection increases the robustness
attacker.
and reliability by identifying incorrect use of pointers and
arrays, the presence of dangerous calls and race condition.
International Scholarly and Scientific Research & Innovation 7(6) 2013 688 ISNI:0000000091950263
World Academy of Science, Engineering and Technology
International Journal of Computer and Information Engineering
Vol:7, No:6, 2013
This type of testing is used in situation where high assurance methodologies, and limitation of testing process. But less
is required against well known serious vulnerabilities but is a research work has been carried out in the field of security
complex process because every scenario cannot be simulated. testing to ensure software assurance and reliability. Reijo
Fault propagation analysis it is not only observed that how Savola and Kaarina Karppinen [15] have used security testing
code behaves with injected faults but it is also the propagation for telecommunication systems and argued that security
of the fault (in the source code) is analyzed through fault trees. requirements are within the focus of the information security
This enables the tester to determine the impact of a fault on a testing process. Besides this security testing has been used in
module, and system as a whole. Interface propagation analysis literature in various domains [12], [17], [16]. But the
enables the tester to determine how a fault in one component following section of related study summarized points related
affects other component of the system. to our work, this data has been used for evaluation of the
techniques we have identified earlier.
C. Stress Testing
Also known as load or performance testing, in stress testing A. Data Collected for Analysis
the system is passed through stressful states to expose Literature review and research explains various testing
vulnerabilities arises as a result of when software are exposed techniques in terms of effectiveness, coverage, efficiency,
to maximum design load and beyond it. security testing capabilities, pros and cons and cost etc. the
following section summarized the major observations about
D. Software Penetration Testing
Open Science Index, Computer and Information Engineering Vol:7, No:6, 2013 publications.waset.org/10496.pdf
International Scholarly and Scientific Research & Innovation 7(6) 2013 689 ISNI:0000000091950263
World Academy of Science, Engineering and Technology
International Journal of Computer and Information Engineering
Vol:7, No:6, 2013
analyze the strength and weaknesses of security testing coverage analysis is an important measurement of the
techniques in particular direction. The process is several steps effectiveness of a testing tool. Code coverage determines the
including selecting a goal, list criteria/subcriteria, determining degree of covered paths, flow and statement during a test
the alternatives, assignment of priorities, calculation of process. Completeness means that the entire code or modules
weights, results and discussions. These steps have been have been covered through test cases and is closely relevant to
explained in the following sections. code coverage.
A. Selecting Goal and Objectives 3. Ease of Use
The goal of this work is to analyze the role security testing Particular support or facilities provided by testing technique
techniques to base on criteria/subcriteria to help the testers in and its tools to ease the process testing. We have to have
applying these techniques according to requirements subcriteria integration means that how tightly a testing
efficiently. technique is integrated to the application under test. Platform
and tool support is another relevant sub criterion to denote
B. Criteria/Subcriteria to Evaluate Testing
how well particular technique support is available for different
Software tester and professionals have different option platforms and also the degree of interoperability with other
available to test software at different level of abstraction; testing techniques.
depending on the security requirements of the system testers
normally prioritize the security tasks. We have selected five 4. Effectiveness
Open Science Index, Computer and Information Engineering Vol:7, No:6, 2013 publications.waset.org/10496.pdf
key criteria (standard) to evaluate software testing In our scenario security testing effectiveness means how
mechanisms against them, the following section briefly well the security bugs have been identified by particular
introduce those criteria and why they are important. testing technique or the number faults identified by the
technique. According to Weyuker [18] “effectiveness of a test
1. Cost
technique is only possible to measure if you can compare two
To use a particular technique it is vital to understand its cost techniques for the same set (i.e. software), but the result is not
in term of skills required, labor time to develop and execute general”
test cases, tool and utility support and integration. We have
two subcriteria 1. Skills required 2. Testing time, the 5. Efficiency
subcriteria contribute to main criteria. Denotes the testing consumed resources [13] such as time,
testing resources, the amount of code required.
2. Thoroughness
Thorough check that every segment of software has been Assigning Priorities
tested is required to secure it, it also encompasses that every The priorities are assigned to criteria subcriteria and
possible interaction during runtime has been covered. White alternative on the basis of the Table I. Priorities are the
box technique offers the opportunity to be more through as it numbers assigned to criteria, subcriteria associated with an
can see inside the code. We have divided this criteria into two alternative.
subcriteria; 1. Coverage 2. Completeness. Coverage or code
Each alternative has been evaluated against criteria and been discussed in the background study of this paper.
subcriteria and the priorities have been assigned in the form of Calculated Local and global weights for the main criteria and
weights. We have assigned priorities to criteria/subcriteria subcriteria in the through MCDM tool has been shown in
against each alternative by using the previous studies results Table II.
and the results obtained from the outcome of the testing tools
of selected techniques. The basis of assigning priorities has
International Scholarly and Scientific Research & Innovation 7(6) 2013 690 ISNI:0000000091950263
World Academy of Science, Engineering and Technology
International Journal of Computer and Information Engineering
Vol:7, No:6, 2013
TABLE I
PRIORIT
TIES WITH THEIR IMPORTANCE
Intensiity Imporrtance Inttensity Im
mportance
1 Equal Im
mportance 6 Strongg Importance
plus
2 Weak Im
mportance 7 Veery Strong
Im
mportance
3 Modeerate 8 Veery Strong
Imporrtance Impoortance plus
4 Modeerate 9 E
Extreme
Importannce plus Im
mportance
5 Strong Im
mportance
TABLE II
LOC
CAL AND GLOBALL WEIGHTS FOR CRITERIA AND SUBBCRITERIA
Cost T
Thoroughness E
Ease of Use Effectiveness Efficiency
E
L=111.4% G==11.4% L
L=34.6% G=34.6% L 8.2% G= 8.2%
L= % L= 42.1% L 3.8%
L=
Skillss Required Teesting time C
Coverage Coompleteness Inntegration Toool support G
G= 42.1% G 3.8%
G=
L=255.0% L==75% L 80.0%
L= L== 20% L
L=75% L== 25%
G=2.9% G
G=8.6% G 27.7%
G= G== 6.9% G
G=6.1% G== 2.0%
Open Science Index, Computer and Information Engineering Vol:7, No:6, 2013 publications.waset.org/10496.pdf
TABLE IIII
EVALUA
ATION IN CONTEXTT OF: EVALUATIN NG AND COMPARIING SOFTWARE SECURITY TESTING G TECHNIQUES
Thooroughness vs. Effectiveness vs.
v Cost vs. Ease Effectiveeness Effectivveness vs.
Efficiency Thoroughnesss of Use vs. Coost Easee of Use
4:1 2:1 3:1 4:1 5:1
Cost vs. Ease of Use vss. Thoroughnness Effectiveeness Thorooughness
Efficiency Efficiency vs. Costt vs. Efficiiency vs. Ease of Use
3:1 3:1 4:1 4:1 5:1
International Scholarly and Scientific Research & Innovation 7(6) 2013 691 ISNI:0000000091950263
World Academy of Science, Engineering and Technology
International Journal of Computer and Information Engineering
Vol:7, No:6, 2013
vu
ulnerability scanning.
s Pennetration testing and faullt code [7] IEEE (1990). IEEE Standaards Collection: Glossary of Software S
Engineering Terminology,
T IEEEE Standard 610.112-1990.
in
njection metho
ods score is alsso good for efffectiveness. [8] Khan, M. A. and M. Sadiq (2011). Analysiss of black box software
testing techniiques: A case study. Current Trends in Infoormation
Technology (C CTIT), 2011 Interrnational Confereence and Workshoop on.
[9] Lavenhar, C. M. M a. S. R. "Codde Analysis Tools - Overview." RetrievedR
02/06/2012, from at https://buildsecur
h rityin.us-
cert.gov/bsi/arrticles/tools/code//263-BSI.html.
[100] Lavenhar, S. (2006). "code Analysis." Retrieved 01/06/20112, from
https://buildsecurityin.us-cert.ggov/bsi/articles/beest-practices/codee/214-
BSI.html.
[111] Mitre. (2012). "Common vulneerability managm ment database." Retrieved
R
10/08/2012.
[122] Romero-Marioona, J., H. Ziv, et al. (2010). Increasing Trustwo orthiness
through Securrity Testing Support. Social Comp puting (SocialCom m), 2010
IEEE Second International
I Connference on.
[133] Rothermel, G. G and M. J. Haarrold (1996). "A Analyzing regresssion test
Fig.. 7 Alternative ranking
r for Effe
fectiveness selection techhniques." Softwaare Engineering, IEEE Transacttions on
22(8): 529-5511.
[144] Saaty, T. (19880). The Analyticc Hierarchy Proceess. New York, McGraw M
VII. CONCLUSION Hill.
Software tessting plays ccrucial role to ensure so oftware [155] Savola, R. annd K. Karppinenn (2007). Practiical Security Teesting of
Open Science Index, Computer and Information Engineering Vol:7, No:6, 2013 publications.waset.org/10496.pdf
ACKNO
OWLEDGMENT
This work was
w supported by b the Researrch Centre of College
C
off Computer an nd Information n Sciences, King
K Saud University.
Thhe authors aree grateful for tthis support.
REFFERENCES
[1]] (CERT/CC), C. C. C.. "Cataloged vulnerabilities." from
http://www.ceert.org/stats/
[2]] Antunes, N. and M. Vieira (2009). Comparring the Effectivveness of
Penetration Testing
T and Staticc Code Analysis on the Detectionn of SQL
Injection Vuulnerabilities in Web Services. Dependable Coomputing,
2009. PRDC '09. 15th IEEE Paacific Rim Intern national Symposiuum on.
[3]] Aznar Bellveer Jerónimo, C.. R., Roberto, Romero R Civera, Agustín
(2011). "New w Spanish Bannking Conglomeerates.Applicationn of the
Analytic Hierrarchy Process (A AHP) to their Maarket Value "Inteernational
Research Jourrnal of Finance annd Economics (78).
[4]] M D. Dreilingeer, et al. (1996). Using fault injection to
Bieman, J. M.,
increase softw
ware test coveraage. Seventh Inteernational Sympoosium on
Software Reliiability Engineeriing, 1996. Proceeedings.
[5]] Database, N. V. (2012). "Natiional Vulnerability Database Verssion 2.2."
Retrieved 10//08/2012, 2012, from
fr http://nvd.nist.gov/.
[6]] IEEE (1986)). ANSI/IEEE Standard
S 1008-1987, IEEE Stanndard for
Software Unit Testing.
International Scholarly and Scientific Research & Innovation 7(6) 2013 692 ISNI:0000000091950263