# A Comprehensive Review and Assessment of Cybersecurity Vulnerability Detection Methodologies
## 4 Taxonomy of Vulnerability Detection Approaches and Findings Analysis
### AI-Based Approach
#### 4.4.1 AI-Based Approach Methods Description
The pipeline of this method comprises three steps: (S1) Based on the target system's asset inventory data, the method uses NLP with the SpaCy [115] library to extract word vectors. These are converted to vectors by Word2 Vec [65] to represent the most relevant semantic similarity followed by normalization to discard unnecessary symbols. (S2) Fuzzy matching integrates cosine similarity [116, 117] to measure the similarity between vendor and product names of inventory packages and NVD [36]. (S3) The final step is related to machine learning, and uses a random forest classifier with a Gini impurity measure, to classify the candidate CPEs by confidence levels (highest, highest, medium, lowest, lowest, reject) and classification levels (vendor or product). Method Based on Looking-Back-Enabled Machine Learning  
Regarding the IoT environment, authors recently became prime targets for cyberattacks owing to the rapid growth of IoT devices [118]. Digital transformation is integrated into our daily activities, including multiple smart devices. To face this challenge, this study proposes an architecture for detecting and mitigating DoS/DDoS attacks for IoT. By analyzing the UDP, TCP, and HTTP packets employed in the attack, the detection component combines multiple basic classifiers with the Looking-Back concept (integrating historic attacks data) for identifying subcategories of attacks. Then, the second component of this architecture is responsible for addressing mitigation countermeasures by denying or rate-limiting certain types of traffic. Another study in the realm of vulnerability management based on an AI method was presented by the authors for this purpose [11]. This study aims to show the inconsistencies and inaccuracies in certain VDBs, both within and across different VDBs. These findings help cyber specialists identify susceptible software and reduce false positives and negatives. The proposed method, VERNIER (VulnERable Software Name Inconsistency MEasuRement Method), notifies cyber teams of inconsistencies and inaccurate software names to mitigate associated vulnerabilities. After extracting unstructured software names from Chinese and English VDBs using a tailored Named Entity Recognition (NER) model, VERNIER measures software name inconsistency from three perspectives: measurement level (character and semantics), categories (mismatching, overclaiming, underclaiming, and overlapping), and VDBs (across NVD and eight other DBs, and inside NVD). The findings reveal prevalence inconsistencies between multiple databases (matching level: 20.3% for character and 43.3% for semantic) and within the same database, especially between structured and unstructured software names. To address these issues, VERNIER suggests a tool that identifies the wrong software names using a reward-punishment matrix. The tool aggregates data from various VDBs, performs pairwise comparison using a reward-punishment system for correct, incorrect, or missing software names, constructs a reward-punishment matrix, applies a weighting system to assign the importance to different databases, and generates alerts for evaluation and correction. Method Based on Active Learning  
The Blockchain combines cryptography and distributed deployment technologies with peer-to-peer (P2P) networks. This system includes smart contracts, a technology implemented on the Blockchain that is considered a critical component. Statistics show that over 44% of attacks target smart contracts, causing significant losses [119, 120]. Many vulnerability detection approaches exist today (static, dynamic, and ML methods), but they suffer from significant drawbacks due to a lack of data labeling. To address this issue, ASSBert is proposed [121]. It is a framework using a training dataset expanded by active learning (manual annotation) [122] and semi-supervised learning (predicting the labels of the unlabeled data) [123, 124, 125] to train model [PERSON] [126].