method based on the application’s abstracted API
calls’ method-level correlation. Different behavioral
patterns of malicious and benign apps are identified
by combining machine learning with the detection
system. Instead of machine learning techniques, our
approach specified the IBCs to identify malicious
code that might compromise the integrity of multi-
threaded programs.
Authors (Fadolalkarim et al., 2020) proposed an
anomaly detection system, AD-PROM, which would
protect relational database systems against malicious
application programs that steal data by tracking the
calls made by application programs on data extracted
from the database. The approach proposed by
(Fadolalkarim et al., 2020) aims at data
confidentiality, but our research focuses on data
integrity in a program.
In (Jiang and Qu, 2020), the authors proposed an
approach to detecting malicious code using behavior
patterns identified by network behavior analysis. A
memory tracking method is used to realize the real-
time tracking of network behavior. The study (Jiang
and Qu, 2020) focused on an outsider’s attack on a
network to detect malicious code. However, our
approach deals with an insider’s attack on a software
program.
The authors (Zhang and Li, 2020) described
malicious code detection using code semantic
structure features to reflect semantic information.
They utilized a deep learning technique with code
semantic structure features to detect malicious code.
In contrast, our approach used the IBCs to determine
security spots that might contain malicious code.
The authors (Rozi et al., 2020) proposed a deep
neural network for detecting malicious JavaScript
codes by examining their bytecode sequences to
protect users from cyberattacks. The study (Rozi et
al., 2020) used Java bytecode, but our research used
Java source code to detect malicious code.
In (Ognawala et al., 2016), the authors present a
tool (MACKE) that analyzes vulnerabilities with
symbolic execution and directed inter-procedural
path exploration. The tool is developed using KLEE,
a coverage-first symbolic execution tool for covering
paths in a program. The MACKE performs a
compositional analysis using symbolic execution on
the functional level first and then combines the results
using static code analysis based on a targeted path
search. However, our tool identifies security spots
using the IBCs specified for multi-threaded programs.
String analysis by (Yu et al., 2014) determines
possible dangerous string constructs and provides a
warning if there is a vulnerability. Malicious user
input without proper input sanitization is vulnerable
to attacks. String analysis focused on analyzing input
strings to detect vulnerabilities in string manipulating
programs. In contrast, our approach focused on the
malicious code introduced by insiders in a program.
The authors (Zhioua et al., 2014) have assessed
the static code analysis approaches and available tools
to determine their effectiveness. The authors
demonstrated that the static code analysis tools could
not cover all the security issues.
8 CONCLUSIONS
This paper has described an approach to identify the
security spots in multi-threaded programs that might
contain malicious code. The IBCs for multi-threaded
programs were specified by considering both
asynchronous and synchronous messages
communicated via the MQ and MBR connectors. A
prototype tool was developed by extending our
previous tool. The IBCs were validated with a multi-
threaded online shopping system case study using the
prototype tool.
We envision our future work as follows. Our
future work will specify more IBCs for advanced Java
language features, including an interface, inner class,
and lambda expression. Also, we can extend the IBCs
for smart contracts in blockchain applications, which
are developed in Java or JavaScript. In addition, we
can investigate artificial intelligence techniques to
automatically classify benign and malicious codes in
the security spots. Our approach must manually
review the security spots to filter malicious codes
from benign ones.
REFERENCES
Camps, G. S., Agostini, N. B., and Kaeli, D., 2019,
December. Discovering Programmer Intention Behind
Written Source Code. In 18th IEEE International
Conference on Machine Learning and Applications
(ICMLA), Florida, USA.
Fadolalkarim, D., Bertino, E., and Sallam, A., 2020, April.
An Anomaly Detection System for the Protection of
Relational Database Systems against Data Leakage by
Application Programs. In IEEE 36th International
Conference on Data Engineering (ICDE), Dallas,
Texas.
Gomaa, H., 2011. Software modeling and design: UML,
use cases, patterns, and software architectures.
Cambridge University Press.
Jiang, C., and Qu, Q., 2020, June. A New Automatic
Detection System Design of Malicious Behavior Based
on Software Behavior Sequence. In 10th International