Authors:
George Stergiopoulos
1
;
Panagiotis Katsaros
2
;
Dimitris Gritzalis
1
and
Theodore Apostolopoulos
1
Affiliations:
1
Athens University of Economics and Business (AUEB), Greece
;
2
Aristotle University of Thessaloniki, Greece
Keyword(s):
Code Classification, Logical Errors, Dynamic Invariants, Source Code, Execution Path, Assertions, Vulnerability, Exploit, Automatic, Analysis, Information Gain, Fuzzy Logic.
Related
Ontology
Subjects/Areas/Topics:
Information and Systems Security
;
Security Engineering
;
Security in Information Systems
;
Security Requirements
;
Software Security
Abstract:
Context: Modern automated source code analysis techniques can be very successful in detecting a priori de-
fined defect patterns and security vulnerabilities. Yet, they cannot detect flaws that manifest due to erroneous
translation of the software’s functional requirements into the source code. The automated detection of logical
errors that are attributed to a faulty implementation of applications’ functionality, is a relatively uncharted
territory. In previous research, we proposed a combination of automated analyses for logical error detection.
In this paper, we develop a novel business-logic oriented method able to filter mathematical depictions of software
logic in order to augment logical error detection, eliminate previous limitations in analysis and provide a
formal tested logical error detection classification without subjective discrepancies. As a proof of concept, our
method has been implemented in a prototype tool called PLATO that can detect various types of logical error
s.
Potential logical errors are thus detected that are ranked using a fuzzy logic system with two scales characterizing
their impact: (i) a Severity scale, based on the execution paths’ characteristics and Information Gain, (ii)
a Reliability scale, based on the measured program’s Computational Density. The method’s effectiveness is
shown using diverse experiments. Albeit not without restrictions, the proposed automated analysis seems able
to detect a wide variety of logical errors, while at the same time limiting the false positives.
(More)