3 research outputs found
Detecting SQL Injection Attacks by Binary Gray Wolf Optimizer and Machine Learning Algorithms
SQL injection is one of the important security issues in web applications because it allows an attacker to interact with the
application’s database. SQL injection attacks can be detected using machine learning algorithms. The effective features
should be employed in the training stage to develop an optimal classifier with optimal accuracy. Identifying the most
effective features is an NP-complete combinatorial optimization problem. Feature selection is the process of selecting the
training dataset’s smallest and most effective features. The main objective of this study is to enhance the accuracy,
precision, and sensitivity of the SQLi detection method. In this study, an effective method to detect SQL injection attacks
has been proposed. In the first stage, a specific training dataset consisting of 13 features was prepared. In the second stage,
two different binary versions of the Gray-Wolf algorithm were developed to select the most effective features of the
dataset. The created optimal datasets were used by different machine learning algorithms. Creating a new SQLi training
dataset with 13 numeric features, developing two different binary versions of the gray wolf optimizer to optimally select
the features of the dataset, and creating an effective and efficient classifier to detect SQLi attacks are the main contributions
of this study. The results of the conducted tests indicate that the proposed SQL injection detector obtain 99.68% accuracy,
99.40% precision, and 98.72% sensitivity. The proposed method increases the efficiency of attack detection methods by
selecting 20% of the most effective features
A Bioinspired Test Generation Method Using Discretized and Modified Bat Optimization Algorithm
The process of software development is incomplete without software testing. Software
testing expenses account for almost half of all development expenses. The automation of the testing
process is seen to be a technique for reducing the cost of software testing. An NP-complete optimization
challenge is to generate the test data with the highest branch coverage in the shortest time.
The primary goal of this research is to provide test data that covers all branches of a software unit.
Increasing the convergence speed, the success rate, and the stability of the outcomes are other goals
of this study. An efficient bioinspired technique is suggested in this study to automatically generate
test data utilizing the discretized Bat Optimization Algorithm (BOA). Modifying and discretizing the
BOA and adapting it to the test generation problem are the main contributions of this study. In the
first stage of the proposed method, the source code of the input program is statistically analyzed to
identify the branches and their predicates. Then, the developed discretized BOA iteratively generates
effective test data. The fitness function was developed based on the program’s branch coverage. The
proposed method was implemented along with the previous one. The experiments’ results indicated
that the suggested method could generate test data with about 99.95% branch coverage with a limited
amount of time (16 times lower than the time of similar algorithms); its success rate was 99.85% and
the average number of required iterations to cover all branches is 4.70. Higher coverage, higher speed,
and higher stability make the proposed method suitable as an efficient test generation method for
real-world large software
A bioinspired discrete heuristic algorithm to generate the effective structural model of a program source code
When the source code of a software is the only product available, program understanding has a substantial influence on software maintenance costs. The main goal in code comprehension is to extract information that is used in the software maintenance stage. Generating the structural model from the source code helps to alleviate the software maintenance cost. Software module clustering is thought to be a viable reverse engineering approach for building structural design models from source code. Finding the optimal clustering model is an NP-complete problem. The primary goals of this study are to minimize the number of connections between created clusters, enhance internal connections inside clusters, and enhance clustering quality. The previous approaches' main flaws were their poor success rates, instability, and inadequate modularization quality. The Olympiad optimization algorithm was introduced in this paper as a novel population-based and discrete heuristic algorithm for solving the software module clustering problem. This algorithm was inspired by the competition of a group of students to increase their knowledge and prepare for an Olympiad exam. The suggested algorithm employs a divide-and-conquer strategy, as well as local and global search methodologies. The effectiveness of the suggested Olympiad algorithm to solve the module clustering problem was evaluated using ten real-world and standard software benchmarks. According to the experimental results, on average, the modularization quality of the generated clustered models for the ten benchmarks is about 3.94 with 0.067 standard deviations. The proposed algorithm is superior to the prior algorithms in terms of modularization quality, convergence, and stability of results. Furthermore, the results of the experiments indicate that the proposed algorithm can be used to solve other discrete optimization problems efficiently