<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>June</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Analysis of software vulnerability detection methods⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Liudmyla Gryzun</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alla Havrylova</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrii Tkachov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrii Hapon</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Natalia</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Kharkiv National University of Radio Electronics</institution>
          ,
          <addr-line>Nauky Av.,14, Kharkiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>National Technical University “Kharkiv Polytechnic University”</institution>
          ,
          <addr-line>Kyrpychova Str., 2, Kharkiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Simon Kuznets Kharkiv National University of Economics</institution>
          ,
          <addr-line>Nauky Av.,9A, Kharkiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <volume>0</volume>
      <fpage>9</fpage>
      <lpage>11</lpage>
      <abstract>
        <p>The author proposes a direction of improvement of existing software protection systems, focusing efforts on increasing their ability to detect new types of malware. The most promising direction for the development of technologies for detecting vulnerabilities and vulnerabilities in software is an approach that combines different methods of analysis. This allows achieving higher accuracy of the results, as well as increasing the productivity of the tools used to check the code. A method of combining static analysis of programs and dynamic symbolic execution is proposed to improve the accuracy of vulnerability detection while maintaining high performance of analysis tools. This approach will significantly reduce the risk of errors that can be missed when using one of the analysis methods separately, and also improves the efficiency of the overall software security process.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;malware</kwd>
        <kwd>antivirus solution</kwd>
        <kwd>analysis</kwd>
        <kwd>cybersecurity</kwd>
        <kwd>method 1</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Despite great efforts, both theoretical and practical, to solve the problem of information security,
its current state is far from any reliable solution. Moreover, a number of new problems have arisen
that are related to protection against malware. Experts are even radically changing their views on
the problem of organising cyber defence in view of the threats posed by malware. malware makes
it impossible for a computer to function properly, so new anti-virus measures and intrusion
detection systems are undoubtedly needed to treat programs, destroy viruses and prevent them. A
large number of different methods are currently used to solve this problem.</p>
      <p>These approaches have both strengths and weaknesses. According to experts in the field,
methods that use the pattern approach have become very effective. To ensure the smooth
operation of pattern scanners in anti-virus programs and intrusion detection systems, it is
necessary to constantly maintain the databases that contain malware samples.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Problematic issues of software vulnerability detection</title>
      <p>The essence of malware detection is the identification of patterns or signs that are characteristic of
malware. This may include analysing the programme code for suspicious instructions or behaviour
that is not typical of legitimate programmes.</p>
      <sec id="sec-2-1">
        <title>There can be several reasons for undetected malware [1–3].</title>
        <p>1. Volume – although the exact number is unknown, researchers are finding hundreds of
thousands of new malware every day. The sheer number of malware means that some of the
newest malware can bypass common cybersecurity measures to protect a corporate information
system.</p>
        <p>2. Outdated antivirus software – outdated antivirus software that blocks malware by detecting
patterns relies on an updated database to stop the latest known threats.</p>
        <p>3. Undetectable malware - Some malware can be difficult to detect due to its sophisticated
design, allowing it to bypass cybersecurity mechanisms. For example, some malware may be
specifically designed to trick popular anti-virus software into believing it is harmless. Other
malware may use social engineering to trick users into installing it.</p>
        <p>The use of intrusion detection and anti-virus software that is constantly updated is an
important element of the defence against new and evolving threats in the field of software
protection.</p>
        <p>Based on the analysis of known approaches to detecting malware in software code, the
following methods of malware detection can be distinguished, which in turn are based on statistical
or dynamic tracking of code activity.</p>
        <p>Static analysis methods involve checking code without executing it to identify malicious
patterns or known malware, while dynamic analysis methods execute code in a controlled
environment to observe its behaviour and detect suspicious activity. Dynamic analysis may include
elements of using algorithms to determine the likelihood that a program is malicious based on its
characteristics and behaviour (heuristic analysis) and monitoring the program to detect abnormal
behaviour that may indicate malicious intent (behavioural analysis).</p>
        <p>One way malware spreads is by copying itself into every executable file it infects. These types
of malware replicate an identical copy of themselves, byte by byte, each time they infect a new file.
They can be easily detected by looking for a specific string of bytes, called a ‘pattern’, that is
derived from the malware body. The latter may include:
- character string;
- semantic expressions in a special language;
- formal mathematical model, etc.</p>
        <p>Patterns are identified by experts in the field of computer virology. They are able to isolate the
virus code from the program code and formulate its characteristic properties in the most searchable
form. Almost every company that develops anti-virus software has its own group of specialists
who analyse new viruses and add new patterns to the anti-virus database.</p>
        <p>The algorithm of the pattern-based method is based on the search for patterns – attacks in the
source data collected by network and host sensors of the attack detection system. When patterns
are detected, the attack detection system records the fact of an information attack that matches the
found signature.</p>
        <p>The essence of a standard pattern-based virus detection strategy is to maintain a database of
malicious patterns. Each incoming file is checked for a virus signature that matches an entry in the
database of known patterns. In this case, the protection system provides for the constant updating
of the pattern database and relies on it.</p>
        <p>Pattern-based malware detection is the most common method used by commercial antiviruses.
But despite its simplicity, it has the following significant drawbacks.</p>
        <p>1. Protection is provided only against known malware. It should be noted here that patterns are
usually created to cover as many viruses as possible – a virus family. However, there is always a
change in an executable file that can cause the pattern to stop being detected.</p>
        <p>2. Constant growth of the pattern database. As the number of viruses, their types, and the
ability of viruses to change increases, the speed of filling the database also increases.</p>
        <p>3. When a virus appears and before the pattern database is updated, the client is vulnerable to a
new malware. Only by identifying the file under investigation as a virus can its pattern be retrieved
and added to the database. Moreover, malware developers have learnt to successfully bypass
pattern detection by obfuscating the virus body. This has forced anti-virus companies to develop
alternative protection methods.</p>
        <p>With the anomaly detection approach, the developers of an anti-virus solution build a database
of actions that are considered safe. If an application's execution process violates any of these
predefined rules, it is marked as malicious. While anomaly-based detection has the potential to
detect new malware patterns, it also has a very high false positive rate. Many anti-virus packages
use algorithms for analysing the sequence of commands to generate some statistics and make
decisions about the possibility of infection for each object being scanned. They are called heuristic
scanning methods. Moreover, unlike the pattern-based method, the heuristic approach can detect
both known and unknown viruses (i.e. those created after heuristic processing). In this approach,
analysts use machine learning techniques to classify malware. Static, dynamic, visual
representations of features, or a combination of these are used to train a classifier on a dataset
consisting of both malicious and non-malicious binary files.</p>
        <p>Various machine learning techniques such as support vector machine (SVM), random forests
(RF), decision trees (DT), naive bayes classifier (NB), k-nearest neighbours (kNN) and gradient
boosting are used to classify and detect malware samples and their respective classes, to filter out
malware that requires further investigation by an analyst. Static analysis is the process of
analysing binary malware without actually running the code. Patterns found during this analysis
include pattern strings, frequency distribution of byte sequences or opcodes, byte-level n-grams or
opcode-level n-grams, API (Application Programming Interface) calls, the structure of a
disassembled program, etc.</p>
      </sec>
      <sec id="sec-2-2">
        <title>The following are studies that used static malware analysis approaches [2].</title>
        <p>
          In [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], information was extracted from executable files, such as the list of DLLs (Dynamic Link
Library) used inside the executable file; the list of DLL system calls; the number of different system
calls inside each DLL; characters or strings encoded in a binary file using a hexadecimal dump as
features. For classification, NB was used with a training dataset consisting of 4266 files, including
3265 viruses and 1001 clean samples. According to the authors, the result was an accuracy of
97.11%. This is one of the first attempts to analyse malware using data mining techniques.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], the classification accuracy of various machine learning methods, such as NB, SVM, DT
and their enhanced versions, was investigated for classifying malware in different families using
the features proposed in [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. DT (C4.5 implementation) proved to be the best, with 99.6 per cent
accuracy and 2.7 per cent false positives.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], they presented a new approach of using a variable -length instruction sequence to detect
worms in binary files using machine learning. They used RF and DT algorithms to classify a
dataset consisting of 1444 worms and 1330 clean files and achieved classification accuracy of 96 %.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], they investigated the use of API call sequences for malware detection. They showed that
all versions of the same malware have a common basic pattern that can be identified using a basic
call sequence API.
        </p>
        <p>
          In their study, [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] proposed a scheme based on the obfuscation technique to study the
shortcomings of static analysis approaches. Experiments have shown that the static approach is not
sufficient for effective malware analysis. Static analysis can be easily avoided if the malware is
obfuscated or compressed. Therefore, you need to pay attention to the following behavioural
features for better analysis. Dynamic analysis. Common to all Dynamic Approach approaches is
the execution of a malware sample in a controlled environment to extract behavioural features
(virtual machine, emulator, sandbox, etc.). The behaviour is monitored using tools such as Process
Monitor, Process Explorer, Wireshark, or Capture BAT.
        </p>
        <p>
          Study [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] proposed a comprehensive approach to conducting behaviour-based malware
analysis and classifying malware into new groups using artificial intelligence methods.
        </p>
        <p>They used a resource that is a bait for attackers – honeypots – and intrusion detection systems,
such as HoneyClients and Amun, to collect malware s amples. Next, a behavioural report was
created for each sample using virtual machine platforms such as CWSandbox and Anubis, and each
report was analysed manually. Using artificial intelligence methods, the malware samples were
categorised into groups – worms and trojans. The main drawback of the study is that the analysis
of the reports was not automated. Therefore, given the huge volume of malware being generated
today, it is impossible to analyse reports manually.</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], they proposed a method for auto mated identification of new classes of malware with
similar behaviour (clustering) and classification of previously unseen malware for the identified
classes (classification) using machine learning. By using clustering and classification, a new
approach is used to handle the behaviour of a large number of malware binaries. This approach
significantly reduced the execution time of the analysis methods. The researchers captured state
change features such as file opening, mutex blocking, network activity, infection of running
processes, or registry key setting, and then mapped the malware behaviour in a multidimensional
vector space. More than 10 000 malware samples belonging to 14 different families were used in
the experiment. These malware samples were collected using honeypots and spam traps. The result
was an accuracy of 88% in classifying the families. The disadvantage of the work is that only one
binary execution path was considered in the analysis. It is clear from the above work that static or
dynamic analysis alone is not sufficient to accurately and effectively classify malware samples.
This is because the individual use of these methods can be easily circumvented by using code
obfuscation or various runtime stopping techniques. Also, dynamic analysis cannot examine all the
execution paths of a program file. The controlled environment in which malware is monitored is
different from the real one, the program may behave differently because some malware behaviour
can only be triggered under certain conditions, for example, with a specific command or on a
specific system date and, as a result, cannot be detected in a virtual environment.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], a new approach to training a malware classifier was proposed using both statistical and
dynamic methods. As a result of training the model, it was found that statistical and dynamic
analysis together work better than separately. The experiments were conducted using two different
datasets and many machine learning algorithms, namely DT, kNN, Bayesian network and SVM.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], a hybrid model for classifying binary files into clean and malicious ones was also
proposed, which integrates both dynamic and static analysis functions. For this purpose, static
information such as ‘printableString’ (a type of string with limited characters in ASN notation) and
function length frequency were extracted, and dynamic information such as API parameters and
API function names were extracted. To test the model, 2939 malicious and 541 clean samples were
used. Then, using integrated meta-classifiers such as SVM, DT, and RF, the malware samples were
classified with an accuracy of 97,055 %.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Another area is visualisation-based approaches to malware analysis.</title>
        <p>Several tools were available for visualising and editing a binary file, which display the file in
hexadecimal and ASCII formats but do not convey any structural information to the analyst.</p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], a dot plot data visualisation technique was applied and it was shown that visualisation
can be useful for identifying software design patterns – a technique for visualising software
product patterns that provides a visual overview of the system structure. This technique is useful
for designing software systems through sequential abstraction, a design pattern that helps
eliminate redundancy. The sequence is broken down into tokens, and then the tokens are plotted
on the graph as points.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], they tried to detect and visualise viruses embedded inside an executable file using
selforganised Kohonen maps with artificial neural networks, which is used to visualise
multidimensional data [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], without using pattern information. The study found that each virus
family has its own mask.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], the use of graphical byte visualisation for automatic malware classification was first
investigated. In the study, the entire malware sample was converted into a grey-scale image.
        </p>
        <p>
          The research dataset consisted of 9 458 malware samples belonging to 25 different classes
collected from the Anubis system [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. A kNN model was trained on these images; the Euclidean
distance was used to estimate the distance. The malware samples were grouped into the respective
classes and the accuracy of 97,18 %.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], they also converted the malware into a two -dimensional grey-scale image and classified
the samples based on the resulting textures. They extracted common features based on the textures
using the Gabor wavelet transform and the image descriptor GIST. The experimental dataset
consisted of 3131 binary samples from 24 unique malware families. After building the feature
vector, classification is performed on the malware samples using SVM machine learning
techniques. As a result, the following accuracy was obtained 96,35 %.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], a step-by-step approach was proposed to automatically classify malware into different
families and detect new malware. The study used a combination of byte-to-grayscale image
conversion, n-gram operating code, and an import function. The decision module uses these
features to classify malware samples into their respective families and to identify new unknown
malware. To detect new malware families, we applied the Shared Nearest Neighbour (SNN)
algorithm. The model was trained on a database consisting of 21 740 malware samples from 9
different families. The result was a classification accuracy of 98.9 % and a detection rate of 86.7 %.
The paper studies pattern-based and heuristic methods of malware detection. A separate analysis is
devoted to the use of machine learning methods for malware classification. Various machine
learning techniques for classifying and detecting malware samples and their respective classes, as
well as filtering them, are investigated. The usefulness of graphical visualisation of bytes for
detecting software design patterns for further automation of virus detection is shown. A
comparative characterisation of modern, mainly heuristic, malware detection methods is made and
systematised by search accuracy values. Among the many existing approaches to malware analysis,
dynamic analysis is the most appropriate, as it allows detecting the destructive activities of various
programs directly at runtime.
        </p>
        <p>
          Dynamic malware analysis identifies methods that can detect new malware to a certain extent
due to the adaptation property [
          <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
          ]. In addition, due to the growing requirements for security
systems [
          <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
          ], the comparison of malware detection methods should be based on the properties
of verifiability and the ability to detect new malware: the presence of unknown unique
characteristics, the level of false positives, and the blurring of the data under study.
        </p>
        <p>
          The results of the analysis of methods for detecting new malware according to the defined
criteria are presented in [
          <xref ref-type="bibr" rid="ref1 ref21 ref22">1, 21, 22</xref>
          ].
        </p>
        <p>Since no effective methodology for detecting unknown malware has been identified at the
moment, in order to effectively search for and destroy malware, additional research is required,
taking into account all the features of using modern methods of malware detection, to develop a
more effective method of protecting software from malware in modern corporate systems.</p>
        <p>Based on the analysis of methods for detecting new malware, it can be said that for existing
methods, due to their properties, detection of one of the most dangerous types of malware capable
of metaprogramming its own code in order to implement a method of hiding from security systems
is an extremely difficult task of introducing a large entropy of the characteristics of the samples
under study to solve the classification problem. This type of virus includes polymorphic
(oligomorphic) and metamorphic types of malware. Thus, each of the classes of existing methods
(knowledge-based, artificial intelligence, machine learning, behavioural) is able to solve this
problem to a certain extent, but under certain limitations.</p>
        <p>
          The results of the comparative analysis according to the described criteria show that among
them it is possible to distinguish the methods that have shown the most complete compliance with
them – methods based on the synergy of several techniques for detecting and detecting malware.
Thus, formalisation of imprecise knowledge and implementation of approximate reasoning in the
field of malware detection allows detecting its destructive activity in conditions of certain
vagueness of information about the state of the information system with the possibility of
adaptation to detect similar types of malware [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Improvement of existing systems</title>
      <p>
        Today, there are two strategies for detecting new malware [
        <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
        ]: detection of anomalous activity
based on the audit of functioning scenarios, detection based on the experience gained in combating
known malware. To effectively detect new malware, it is advisable to use a hybrid approach based
on combining the most effective methods of static and dynamic software analysis in order to
protect it from the destructive effects of malware, since the number of new instances of it,
characterised by a fundamentally new set of features, is quite small.
      </p>
      <p>A priority area for improving existing software protection systems is to supplement the existing
functionality with a method based on the theory of fuzzy logic. Moreover, the application of the
chosen method should provide for the determination of the polymorphic (metamorphic)
component of malware for each known type of malware, which will ensure the effective detection
of new malware based on the identification of polymorphic (metamorphic) structures of existing
viruses in the conditions of some inaccuracy (blurring) of information about the state of the
information system.</p>
      <p>Official data from software developers often does not confirm the declared level of accuracy of
detecting new malware in practice, which indicates that the antivirus systems in question were
tested under specific conditions that are too different from the real world.</p>
      <p>Today, the issue of software security is of both practical and research interest. Software security
is directly related to the search for errors and vulnerabilities.</p>
      <p>
        Software vulnerabilities are potential entry points for malware and are directly related to
software security. Vulnerability detection is a complex task that requires the direct involvement of
an analyst. The difficulties lie not only in finding the state of the application in which the
vulnerability manifests itself, but also in assessing what security aspects it can affect in these
exploits of a given malware vulnerability [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>Thus, it can be said that the task of malware identification can be indirectly interpreted as the
task of finding software defects as potential entry points for malware, and blocking and controlling
these defects as a function of the software security system. The size and complexity of software are
constantly increasing. The size of the source text of modern programs and software systems can
reach hundreds of millions of lines. This complexity leads to the fact that the creation of
highquality software becomes virtually impossible without the use of automatic means of checking
programs for compliance with functional requirements for the software and the absence of
software errors.</p>
      <p>The presence of vulnerabilities in software is primarily due to the fact that the improvement of
programmer training does not keep pace with the increase in the complexity and size of programs.
Despite the development of software development methods and tools to support the software
development process, released programs contain errors that can lead to incorrect operation of the
program, unauthorized access to critical data, and execution of malicious code. That is, software
errors should be considered in the context of potential entry points for malicious software.</p>
      <p>
        According to the CVE Details portal (www.cvedetails.com), which provides statistics on
registered vulnerabilities in programs based on information from the MITRE corporation since
1999, several thousand critical vulnerabilities are registered annually in programs used [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. A
reliable way to demonstrate vulnerability is to run a program on a set of input data, in which the
vulnerability leads to specified violations, such as execution of code specified by the attacker or
calling a library function with parameters controlled by the attacker. Software defects that underlie
such vulnerabilities are called exploitable defects.
      </p>
      <p>Currently, methods are being developed that allow generating some types of test sets
automatically. Their development is actively engaged in by researchers whose work is based on the
technologies of automatic generation of test sets and symbolic interpretation. Symbolic
interpretation defines the process of converting input data in a program in the form of formulas
over symbolic variables and constants. Input data for the program act as symbolic variables that
can take on arbitrary values.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Software vulnerabilities and known approaches to their detection</title>
      <p>As previously defined, software vulnerability is directly related to errors, which are potential entry
points for destructive malware and operational burdens for cybersecurity quartermasters.</p>
      <p>
        The possibility of a software error was first mentioned in 1842 by Ada Augusta Lovelace in her
work "An Essay on the Analytical Engine, Introduced by Charles Babbage", the main narrative of
which was that the analytical process should be uniformly carried out according to the necessary
control data provided by the analytical engine, and this could also be a source of possible error. The
mechanism was believed to be error-free in its processes, but the cards (with control data) could
give erroneous commands [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
      <sec id="sec-4-1">
        <title>Thus, we can formulate the definition of a loophole in a program as:</title>
        <p>- program defect: Any error made during the design or implementation of a program that, if not
corrected, could cause the program to be vulnerable;</p>
        <p>- application vulnerability: A flaw in an application that can be exploited to implement
information security threats.</p>
        <p>
          It is obvious that the concept of program insufficiency is defined through the concept of
vulnerabilities in the design or implementation of the program [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]. In this cas e, it is possible to
define the concept of the process of examination of the program source code, which consists in
identifying program deficiencies (potentially vulnerable structures) in the program source code.
The IEEE 1044-2009 “Standard Classification of Software Anomalies” provides a more detailed
classification of various program anomalies (deviations from the norm):
        </p>
        <p>- defect – an imperfection or deficiency in the operation of a product, in which the product does
not meet requirements or specifications and requires correction or replacement;
- error – a human action that led to an incorrect result;
- failure – cessation of the ability of a product to perform a required function or the inability to
perform it before certain limitations;
- fault – a message about an error in the program.</p>
        <p>In 1993, the National Institute of Standards and Technology (National Institute of Standards and
Technology) issued a manual entitled “Program Error Analysis”, which provides the following
definitions:
- anomaly – any condition that differs from what is expected;
- defect – any non-conformity for use or non-conformity to specification;
- error:
а) the difference between a calculated, observed, or measured value and a true, specified, or
theoretically correct value or state;</p>
      </sec>
      <sec id="sec-4-2">
        <title>b) incorrect step, process, or data definition;</title>
      </sec>
      <sec id="sec-4-3">
        <title>c) incorrect result;</title>
      </sec>
      <sec id="sec-4-4">
        <title>d) human action that led to an incorrect result; - fault – an incorrect step, process, or data definition in a computer program (see also error); - failure – the difference between the external result of program execution and the requirement for the software product.</title>
        <p>It should be borne in mind that in reality there is no difference between the concepts of "defect",
"error" and "failure", since these terms are interpreted differently in the community (even in the
standards that use these terms).</p>
        <p>For example, there are such definitions::
- error – a place in the source code of a program that can cause the program to crash or output
incorrect output data on certain external data;</p>
        <p>- defect – a place indicating a lack of source code that will not necessarily lead to incorrect
operation of the program, but may worsen its performance characteristics (for example, a memory
leak);</p>
        <p>- vulnerability – an error in a program that can be expl oited by an attacker to intentionally
crash the program, execute arbitrary code, leak confidential data, or otherwise breach system
security.</p>
        <p>Due to the fact that there is no single interpretation of such terms as “defect”, “error”, “failure”,
in this work the terms “error” and “defect” will be used as synonyms of the term “potential
vulnerability”, and the term “failure” will be used to denote the state of an emergency termination
of the program. The term “program vulnerability” will be used in the meaning of obtaining
unauthorized access to data processed by the program, or in the meaning of unauthorized
execution of program code, as an entry point for intercepting control by malicious software. In
turn, the “Dictionary of the Ukrainian Language” provides the following definition of the term
“vulnerability”: Vulnerability (vulnerability) is “the inability (for example, of a system or its part) to
withstand the effects of an unfriendly environment; the degree of sensitivity to damage, damage; a
weak point in one of the elements of the object of protection; a factor in the realization of a threat”.</p>
        <p>
          In publications, “vulnerability” is defined as “weaknesses in source code that could potentially
be exploited to cause loss or damage” [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ];
        </p>
        <p>The National Institute of Standards and Technology in NISTIR-8011 Volume 4 “Supporting
Automation for Security Control Assessments. Software Vulnerability Management” defines
“vulnerability” as a weakness in computational logic (e.g., code) found in software or hardware
components that, if exploited, results in a negative impact on confidentiality, integrity, or
availability.</p>
        <p>Vulnerability mitigation in this context typically involves code changes, but can also include
changes to specifications or even the discontinuation of specifications (e.g., complete removal of
affected protocols or functionality).</p>
        <p>According to the CVE Details (Common Vulnerabilities and Exposures) website, a database of
common information security vulnerabilities, more than 94 000 critical vulnerabilities have been
registered in programs released to the market.</p>
        <p>
          According to statistics [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ], by types of malicious impact on the program, the following
vulnerabilities are most frequently registered:
- malicious code execution;
- program crash;
- overflow;
- execution of malicious code on the client side;
- obtaining unauthorized access to data (obtaining information);
- implementation in the query SQL.
        </p>
        <p>
          Many software errors that lead to incorrect program behavior during execution can be divided
into the following classes according to the types of harmful effects [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]:
        </p>
        <p>- vulnerabilities that lead to data corruption during processing: integer overflow, data
corruption in RAM, accessing an uninitialized memory block, accessing memory by an
uninitialized or hanging pointer, data falsification, etc.;</p>
        <p>- vulnerabilities that lead to unauthorized access to user data: obtaining unauthorized access to
a database, obtaining unauthorized access to information in the RAM or permanent memory of a
computing device, obtaining elevated data access privileges, etc.;</p>
        <p>- vulnerabilities that lead to exhaustion of system resources such as heap memory, files, sockets,
etc.;</p>
        <p>- vulnerabilities that lead to a crash of the program execution: access to a memory area that
does not belong to the program, division by zero, etc.;</p>
        <p>- vulnerabilities that lead to malicious code execution: interception of the malicious code control
path, execution of malicious code on the client side, implementation of a command in the
command line, and others.</p>
        <p>
          Statistics regarding the relationship between programming errors and vulnerabilities show that
the majority of attacks on computer systems are related to programming errors. Here are some key
statistics that demonstrate this connection [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]:
        </p>
        <p>1. The relationship between bugs and vulnerabilities. NIST (National Institute of Standards and
Technology) reports that about 70% of all software vulnerabilities are the result of code errors. This
includes types of errors such as incorrect input validation, memory management, and logic errors.</p>
        <p>
          According to WhiteHat Security, 55% of software vulnerabilities can be traced to insufficient
error handling or improper exception handling, making this type of error particularly critical for
security [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ].
        </p>
        <p>
          2. Common types of vulnerabilities related to errors in code. According to OWASP (Open Web
Application Security Project), most of the critical vulnerabilities that make it onto their "OWASP
Top 10" list are a direct result of programming errors. For example [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ]:
        </p>
        <p>- SQL Injection (SQLi): abuse due to insufficient validation or sanitization of input data (logical
error).</p>
        <p>- Cross-Site Scripting (XSS): A vulnerability that occurs due to poor input handling (processing
of input data).</p>
        <p>- Buffer Overflow: Exploitation by attackers of memory management errors, which are often the
result of resource misallocation.</p>
        <p>- The CWE/SANS Top 25 Most Dangerous Software Errors regularly notes that most of the
most common and dangerous errors are related to memory management and input data.</p>
        <p>
          3. Vulnerability Exploitation Statistics. According to Veracode research, 83% of applications
have at least one vulnerability in their source code [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. Synopsys, in its 2021 State of Open Source
Security Report, found that 84% of commercial applications contain vulnerabilities related to
memory management or input processing [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ].
        </p>
      </sec>
      <sec id="sec-4-5">
        <title>4. Common programming errors that lead to vulnerabilities [34]:</title>
        <p>- buffer overflows and other memory management errors account for about 15% of all
vulnerabilities in systems using the C/C++ language, according to data from MITRE;
- incorrect login verification led to 37% of web application attacks, according to the Akamai
State of the Internet Security Report.</p>
        <p>
          5. Vulnerability detection and remediation rate. Veracode State of Software Security 2021 notes
that more than 70% of vulnerabilities discovered in software were related to errors made by
developers during the coding stage [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ].
        </p>
        <p>
          When testing open source software for vulnerabilities, Sonatype in 2022 found that 85% of
vulnerabilities in them arose due to errors in data processing logic or thread management [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ].
        </p>
        <p>
          6. Vulnerabilities related to memory management and exceptions. According to Microsoft
Security Intelligence, vulnerabilities arising from incorrect memory management (and as a result,
the possibility of buffer overflow attacks) are responsible for 70% of critical vulnerabilities in their
software [
          <xref ref-type="bibr" rid="ref35 ref36">35, 36</xref>
          ].
        </p>
        <p>Statistics clearly indicate a close relationship between software bugs and vulnerabilities. The
majority of cyber incidents are related to logic errors, incorrect memory management, or
insufficient input processing.</p>
        <p>Effective testing and code quality management can significantly reduce the number of
vulnerabilities, as most attacks exploit these bugs.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>A direction for improving existing software protection systems is proposed, focusing efforts on
increasing their ability to detect new types of malicious software. It is important that the chosen
method involves determining the evolutionary (metamorphic) component of malicious software for
each known class, which will allow detecting new malicious software based on identifying the
evolutionary structures of existing viruses, even under conditions of a certain inaccuracy
(fuzziness) of information about the state of information systems..</p>
      <p>Based on the review of modern software analysis methods, the most promising direction for the
development of vulnerability detection technologies and vulnerabilities in programs is an approach
that combines various analysis methods.</p>
      <p>This approach allows you to achieve higher accuracy of results, as well as increase the
performance of tools used to verify the code.</p>
      <p>Traditional methods, such as static and dynamic analysis, have their strengths and weaknesses:
static analysis provides quick detection of possible vulnerabilities without executing the program,
but has a high probability of false positives; while dynamic analysis executes the code in a real
environment, allowing you to detect vulnerabilities that appear only during execution, but is much
less productive due to the need to run the program.</p>
      <p>In this regard, modern researchers focus on combined methods that can take into account the
advantages of both approaches to minimize their disadvantages. One of the most promising
approaches is hybrid program analysis, which includes the integration of static analysis with
dynamic symbolic execution.</p>
      <p>This combination allows not only to identify possible vulnerabilities in the code before it is run,
but also to verify these results during the actual execution of the program.</p>
      <p>This approach significantly reduces the number of false positives and increases the accuracy of
critical error detection, since static analysis allows you to quickly identify possible dangers, and
dynamic symbolic execution clarifies their reality in specific scenarios.</p>
      <p>A method of combining static program analysis and dynamic symbolic execution is proposed to
improve the accuracy of vulnerability detection while maintaining high performance of analysis
tools.</p>
      <p>This approach significantly reduces the risk of errors that may be missed when using one of the
analysis methods separately, and also improves the efficiency of the overall process of ensuring
software security.</p>
      <p>Hybrid analysis also provides the ability to scale for large projects, where it is necessary to
analyze a large amount of code quickly, but without losing accuracy. Special attention should be
paid to aspects of optimizing computing resources during hybrid analysis, which is an important
factor for applying this approach in real software production conditions.</p>
    </sec>
    <sec id="sec-6">
      <title>Declaration on Generative AI</title>
      <sec id="sec-6-1">
        <title>The authors have not employed any Generative AI tools.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>О.</given-names>
            <surname>С</surname>
          </string-name>
          .
          <article-title>Савенко Критерії класифікації методів виявлення шкідливого програмного забезпечення</article-title>
          .
          <source>Вісник Хмельницького національного університету. № 1. С</source>
          .
          <volume>23</volume>
          -
          <fpage>27</fpage>
          . (
          <year>2018</year>
          ). URL: https://journals.khnu.km.ua/ vestnik/pdf/tech/pdfbase/2018/2018_1/jrn/pdf/6.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>І.</given-names>
            <surname>І</surname>
          </string-name>
          . Жульковська, А. В. Плужник, О. А. Жульковський.
          <article-title>Сучасні методи виявлення шкідливих програм</article-title>
          .
          <source>Математичне моделювання. № 1. С</source>
          .
          <volume>46</volume>
          -
          <fpage>54</fpage>
          . (
          <year>2021</year>
          ). URL: http://nbuv.gov.ua/UJRN/Mm_
          <year>2021</year>
          _
          <article-title>1_8</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>С.</given-names>
            <surname>М</surname>
          </string-name>
          . Лисенко, Р. В. Щука.
          <article-title>Аналіз методів шкідливого програмного забезпечення в комп'ютерних системах</article-title>
          .
          <source>Вісник Хмельницького національного університету. №</source>
          <volume>2</volume>
          (
          <issue>283</issue>
          ). С.
          <volume>101</volume>
          -
          <fpage>107</fpage>
          . (
          <year>2020</year>
          ). doi:
          <volume>10</volume>
          .31891/
          <fpage>2307</fpage>
          -5732-2020-283-2-
          <fpage>101</fpage>
          -107.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M. G.</given-names>
            <surname>Schultz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Eskin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Zadok</surname>
          </string-name>
          .
          <article-title>Data Mining Methods for Detection of New Malicious Executables</article-title>
          .
          <source>Proceedings of the IEEE Symposium on Security &amp; Privacy</source>
          , California,
          <fpage>14</fpage>
          -
          <lpage>16</lpage>
          May
          <year>2001</year>
          ,
          <fpage>38</fpage>
          -
          <lpage>49</lpage>
          (
          <year>2001</year>
          ). URL: https:// doi.org/10.1109/secpri.
          <year>2001</year>
          .924286
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>I.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Devesa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Brezo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Nieves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. G.</given-names>
            <surname>Bringas</surname>
          </string-name>
          ,
          <article-title>Semi-supervised Learning for Unknown Malware Detection</article-title>
          .
          <source>Advances in Intelligent Systems and Computin</source>
          . vol.
          <volume>91</volume>
          . pp
          <fpage>415</fpage>
          -
          <lpage>422</lpage>
          . (
          <year>2012</year>
          ). https://www.springer.com/ series/4240.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[6] Static and Symbolic Analysis</article-title>
          . URL: https://www.talkcrypto.org/blog /2019/03/ 15/static-andsymbolic
          <article-title>-analysis/ (дата звер-нення 16</article-title>
          .04.
          <year>2024</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J. Z.</given-names>
            <surname>Kolter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.A.</given-names>
            <surname>Maloof</surname>
          </string-name>
          , Learning to Detect Malicious Executables in the Wild,
          <source>2004 International Conference on Knowledge Discovery and Data Mining</source>
          , Seattle, WA,
          <source>USA (22-25 August)</source>
          , pp.
          <fpage>470</fpage>
          -
          <lpage>478</lpage>
          . URL: https://doi.org/ 10.1145/1014052.1014105.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Chavez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mukkamala</surname>
          </string-name>
          ,
          <article-title>Static Analyzer of Vicious Executables (SAVE)</article-title>
          .
          <source>In Proc. of the 20th Annual Computer Security Applications</source>
          , (
          <year>2004</year>
          ). doi:
          <volume>10</volume>
          .1109/CSAC.
          <year>2004</year>
          .
          <volume>37</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Moser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kruegel</surname>
          </string-name>
          ,
          <string-name>
            <surname>E. Kirda.</surname>
          </string-name>
          <article-title>Limits of Static Analysis for Malware Detection</article-title>
          .
          <source>In IEEE Computer Society</source>
          , (
          <year>2007</year>
          ). doi:
          <volume>10</volume>
          .1109/ACSAC.
          <year>2007</year>
          .
          <volume>4413008</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Peter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schiller</surname>
          </string-name>
          .
          <article-title>A practical guide to honeypots</article-title>
          , URL: http://www.cs.wustl.edu/ ~jain/cse571-09/ftp/honey.pdf. (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Д</surname>
          </string-name>
          . Комашинский, И. Котенко,
          <article-title>Интеллектуальный анализ данных для выявления вредоносных программ</article-title>
          .
          <source>International Journal of Computing</source>
          .
          <volume>12</volume>
          (
          <issue>1</issue>
          ),
          <fpage>63</fpage>
          -
          <lpage>74</lpage>
          . (
          <year>2014</year>
          ). URL: https://doi.org/10.47839/ ijc.12.1.589.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>K.</given-names>
            <surname>Rieck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Holz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Willems</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Dussel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Laskov</surname>
          </string-name>
          .
          <article-title>Learning and classification of Malware behaviour</article-title>
          .
          <source>International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment</source>
          , Springer, Berlin, Heidelberg. vol.
          <volume>5137</volume>
          . pp
          <fpage>108</fpage>
          -
          <lpage>125</lpage>
          . (
          <year>2008</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -70542-
          <issue>0</issue>
          _
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>А. Gerasimov</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Kruglov</surname>
          </string-name>
          .
          <article-title>Reachability confirmation of statically detected defects using dynamic analysis</article-title>
          .
          <source>Proceedings of the 11th International Conference on Computer Science and Information Technologies (CIST)</source>
          . Yerevan, (
          <year>2017</year>
          ). URL: https://csit.am/2017/ Proceedings/DT/DT3.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Y. A.</given-names>
            <surname>Byeong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. J.</given-names>
            <surname>Hyuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Seoyeon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K .</given-names>
            <surname>Taeguen</surname>
          </string-name>
          .
          <article-title>Malware Detection Using Dual Siamese Network Model</article-title>
          . Computer Modeling in Engineering &amp; Sciences.
          <volume>141</volume>
          (
          <issue>1</issue>
          ):
          <fpage>563</fpage>
          -
          <lpage>584</lpage>
          . (
          <year>2024</year>
          ). URL: https://doi.org/10.32604/cmes.
          <year>2024</year>
          .052403
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Islam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Batten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Versteeg</surname>
          </string-name>
          ,
          <article-title>Classification of malware based on integrated static and dynamic features</article-title>
          .
          <source>Journal of Network and Computer Applications</source>
          . Vol.
          <volume>36</volume>
          ,
          <string-name>
            <surname>Is</surname>
            . 2,
            <given-names>P.</given-names>
          </string-name>
          646-
          <fpage>656</fpage>
          . (
          <year>2013</year>
          ). URL: https://doi.org/10.1016/ j.jnca.
          <year>2012</year>
          .
          <volume>10</volume>
          .004.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Rami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Khairuddin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Khairul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zainol</surname>
          </string-name>
          .
          <article-title>A Survey on Malware Analysis Techniques: Static, Dynamic, Hybrid and Memory Analysis</article-title>
          .
          <source>International Journal on Advanced Science, Engineering and Information Technology</source>
          , vol.
          <volume>8</volume>
          , no.
          <issue>4-2</issue>
          , pp.
          <fpage>1662</fpage>
          -
          <lpage>1671</lpage>
          . (
          <year>2018</year>
          ).
          <source>doi: 10.18517/ijaseit.8.4-2</source>
          .
          <fpage>6827</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.</given-names>
            <surname>Helfman</surname>
          </string-name>
          ,
          <article-title>Dotplot patterns: A literal look at pattern languages</article-title>
          .
          <source>TAPOS</source>
          .
          <volume>2</volume>
          :
          <fpage>31</fpage>
          -
          <lpage>41</lpage>
          . (
          <year>1995</year>
          ). URL: https://citeseerx.ist.psu.edu/document? repid=rep1&amp;
          <article-title>type=pdf&amp;doi=9cb62eed1ee485813eac8df87485f89289b73197.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18] CERT/CC, Carnegie Mellon University. URL: http: //www.cert.org/present/cert-overviewtrends/module-4.pdf, May
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>I. S.</given-names>
            <surname>Yoo</surname>
          </string-name>
          .
          <article-title>Visualizing windows executable virus using self-organizing maps</article-title>
          .
          <source>In Proc. of ACM workshop on Visualization and data mining for computer security</source>
          , p.
          <fpage>82</fpage>
          -
          <lpage>89</lpage>
          (
          <year>2004</year>
          ). URL: https://doi.org/10.1145/1029208.102922.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>T.</given-names>
            <surname>Kohonen</surname>
          </string-name>
          ,
          <string-name>
            <surname>Self-Organizing Maps</surname>
          </string-name>
          .
          <source>Springer Series in Information Sciences (SSINF</source>
          , vol.
          <volume>30</volume>
          ), (
          <year>1995</year>
          ). URL: https://www.springer.com/ series/0710.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>P.</given-names>
            <surname>Godefroid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Levin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Molnar</surname>
          </string-name>
          .
          <source>Automated Whitebox Fuzz Testing. NDSS'2008 Proceedings of the Network and Distributed Systems Security</source>
          , pp.
          <fpage>151</fpage>
          -
          <lpage>166</lpage>
          , San Diego, February 8 - 11, (
          <year>2008</year>
          ). URL: https://www.researchgate.net/publica tion/221655409_Automated_Whitebox_Fuzz_Testing.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>В.</given-names>
            <surname>В</surname>
          </string-name>
          . Фесьоха, Д. Ю. Кисиленко, О. М. Нестеров.
          <article-title>Аналіз спроможності існуючих систем антивірусного захисту та покладених у їхню основу методів до виявлення нового шкідливого програмного забезпечення у військових інформаційних системах. Системи і технології зв'язку, інформатизації та кібербезпеки</article-title>
          .
          <source>Вип. № 3. С</source>
          .
          <volume>143</volume>
          -
          <fpage>156</fpage>
          . (
          <year>2023</year>
          ). doi: https://doi.org/10.58254/viti.3.
          <year>2023</year>
          .
          <volume>16</volume>
          . 143.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>O.</given-names>
            <surname>Barabash</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Sobchuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sobchuk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Musienko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Laptiev</surname>
          </string-name>
          .
          <article-title>Algorithms for synthesis of functionally stable wireless sensor network</article-title>
          .
          <source>Advanced Information Systems</source>
          .
          <volume>9</volume>
          (
          <issue>1</issue>
          ), P.
          <fpage>70</fpage>
          -
          <lpage>79</lpage>
          . (
          <year>2025</year>
          ) https://doi.org/10.20998/
          <fpage>2522</fpage>
          -
          <lpage>9052</lpage>
          .
          <year>2025</year>
          .
          <volume>1</volume>
          .08.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tkachov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hapon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Balagura</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Sievierinov</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Bukatych</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Havrylova</surname>
          </string-name>
          .
          <source>Analysis of the Software Security Protection. 2024 8th International Symposium on Multidisciplinary Studies and Innovative Technologies (ISMSIT)</source>
          ,
          <fpage>07</fpage>
          -
          <lpage>09</lpage>
          November
          <year>2024</year>
          . Ankara, Turkiye, p.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ,
          <year>2024</year>
          . doi:
          <volume>10</volume>
          .1109/ISMSIT63511.
          <year>2024</year>
          .
          <volume>10757202</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>C.</given-names>
            <surname>Flanagan</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. Rustan M. Leino</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Lillibridge</surname>
            , G. Nelson,
            <given-names>J. B.</given-names>
          </string-name>
          <string-name>
            <surname>Saxe</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Stata</surname>
          </string-name>
          .
          <article-title>Extended static checking for Java</article-title>
          .
          <source>PLDI '02 Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementation</source>
          , pp.
          <fpage>234</fpage>
          -
          <lpage>245</lpage>
          , Berlin, Germany - June 17 - 19. (
          <year>2002</year>
          ). doi:
          <volume>10</volume>
          .1145 /512529.512558/
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>N.</given-names>
            <surname>Lukova-Chuiko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Herasymenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Toliupa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Laptiev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Laptievа</surname>
          </string-name>
          ,
          <string-name>
            <surname>O. Laptiev.</surname>
          </string-name>
          <article-title>The method detection of radio signals by estimating the parameters signals of eversible Gaussian propagation</article-title>
          .
          <source>2021 IEEE 3rd International Conference on Advanced Trends in Information Theory, ATIT 2021 - Proceedings</source>
          . (
          <year>2021</year>
          ). Р.
          <volume>67</volume>
          -
          <fpage>70</fpage>
          . doi:
          <volume>10</volume>
          .1109/ATIT54053.
          <year>2021</year>
          .
          <volume>9678856</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>E. J.</given-names>
            <surname>Schwartz</surname>
          </string-name>
          , Th. Avgerinos,
          <string-name>
            <given-names>D.</given-names>
            <surname>Brumley</surname>
          </string-name>
          .
          <article-title>All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution (but might have been afraid to ask)</article-title>
          .
          <source>SP '10 Proceedings of the 2010 IEEE Symposium on Security and Privacy</source>
          , pp.
          <fpage>317</fpage>
          -
          <lpage>331</lpage>
          , Oakland, CA, USA, May
          <volume>16</volume>
          - 19,
          <year>2010</year>
          . doi:
          <volume>10</volume>
          .1109/SP.
          <year>2010</year>
          .
          <volume>26</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28] CVEdetails.com
          <article-title>- powered by Security Scorecard</article-title>
          . https://www.cvedetails.com.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>L.</given-names>
            <surname>Liu</surname>
          </string-name>
          , W. Bao-sheng,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Bo</surname>
          </string-name>
          and
          <string-name>
            <surname>Z .</surname>
          </string-name>
          <article-title>Qiu-xi. Automatic Malware Classification and NewMalware Detection using Machine Learning</article-title>
          .
          <source>In Frontiers of Information Technology and Electronic Engineering</source>
          ,
          <volume>18</volume>
          (
          <issue>9</issue>
          ):
          <fpage>1336</fpage>
          -
          <lpage>1347</lpage>
          . (
          <year>2016</year>
          ). doi:
          <volume>10</volume>
          .1631/FITEE.1601325.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>І</surname>
            . Субач, В. Фесьоха,
            <given-names>Н. O.</given-names>
          </string-name>
          <string-name>
            <surname>Фесьоха</surname>
          </string-name>
          .
          <article-title>Аналіз існуючих рішень запобігання вторгненням в інформаційно-телекомунікаційні мережі</article-title>
          .
          <source>Information Technology and Security</source>
          . Vol.
          <volume>5</volume>
          , № 1. С.
          <volume>29</volume>
          -
          <fpage>41</fpage>
          . (
          <year>2017</year>
          ). URL: http://nbuv. gov.ua/UJRN/inftech_ 2017_5_
          <issue>1</issue>
          _
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>E.</given-names>
            <surname>Iannone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Guadagni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ferrucci</surname>
          </string-name>
          ,
          <string-name>
            <surname>A. De Lucia</surname>
            and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Palomba</surname>
          </string-name>
          ,
          <article-title>The Secret Life of Software Vulnerabilities: A Large-Scale Empirical Study</article-title>
          .
          <source>in IEEE Transactions on Software Engineering</source>
          , vol.
          <volume>49</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>44</fpage>
          -
          <issue>63</issue>
          , 1 Jan. (
          <year>2023</year>
          ). doi:
          <volume>10</volume>
          .1109/TSE.
          <year>2022</year>
          .
          <volume>3140868</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>P.</given-names>
            <surname>Anderson</surname>
          </string-name>
          .
          <article-title>The use and limitations of static-analysis tools to improve software quality</article-title>
          .
          <source>CrossTalk</source>
          ,
          <source>The Journal of Defense Software Engineering</source>
          , vol.
          <volume>21</volume>
          , No.
          <issue>6</issue>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>21</lpage>
          . (
          <year>2008</year>
          ). URL: https://www.researchgate.net/publication/215835966_The_
          <article-title>Use_and_Limitations_of_Static-Analysis_Tools_to_Improve_Software_Quali ty/stats.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>A.</given-names>
            <surname>Turing</surname>
          </string-name>
          .
          <article-title>On Computable Numbers With an Application to the Entscheidungsproblem</article-title>
          .
          <source>Proceedings of the London Mathematical Society</source>
          , Volume
          <volume>s2</volume>
          -
          <volume>42</volume>
          , Issue 1, pp.
          <fpage>230</fpage>
          -
          <lpage>265</lpage>
          . URL: https://doi.org/10.1112/plms/s2-
          <fpage>42</fpage>
          .1.230.
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <surname>Ch. Chen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Cui</surname>
            ,
            <given-names>J.</given-names>
            Ma, R. Wu, J.
          </string-name>
          <string-name>
            <surname>Guo</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Liu</surname>
          </string-name>
          .
          <article-title>A systematic review of fuzzing techniques</article-title>
          .
          <source>Copmuters &amp; Security</source>
          , Vol.
          <volume>75</volume>
          , pp.
          <fpage>118</fpage>
          -
          <lpage>137</lpage>
          . (
          <year>2018</year>
          ). URL: https://doi.org/10.1016/j.cose.
          <year>2018</year>
          .
          <volume>02</volume>
          .002.
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>P.</given-names>
            <surname>Godefroid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Y.</given-names>
            <surname>Levin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Molnar</surname>
          </string-name>
          ,
          <source>Automated Whitebox Fuzz Testing. NDSS'2008 Proceedings of the Network and Distributed Systems Security</source>
          , pp.
          <fpage>151</fpage>
          -
          <lpage>166</lpage>
          , San Diego, February 8 -
          <fpage>11</fpage>
          . (
          <year>2008</year>
          ). https://www.researchgate.net/ publication/22 1655409_Automated_Whitebox_Fuzz_Testing.
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>E. J.</given-names>
            <surname>Schwartz</surname>
          </string-name>
          , Th. Avgerinos,
          <string-name>
            <given-names>D.</given-names>
            <surname>Brumley</surname>
          </string-name>
          .
          <article-title>All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution (but might have been afraid to ask)</article-title>
          .
          <source>SP '10 Proceedings of the 2010 IEEE Symposium on Security and Privacy</source>
          , pp.
          <fpage>317</fpage>
          -
          <lpage>331</lpage>
          , Oakland, CA, USA, May
          <volume>16</volume>
          - 19,
          <year>2010</year>
          . doi:
          <volume>10</volume>
          .1109/SP.
          <year>2010</year>
          .
          <volume>26</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>T.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Wei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gu</surname>
          </string-name>
          ,
          <string-name>
            <surname>W. Zou.</surname>
          </string-name>
          <article-title>TaintScope: a Checksum -Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection</article-title>
          .
          <source>SP'10 123 Proceedings of the 2010 IEEE Symposium on Security and Privacy</source>
          , pp.
          <fpage>497</fpage>
          -
          <lpage>512</lpage>
          , Oakland, CA, USA, May
          <volume>16</volume>
          -
          <fpage>19</fpage>
          . (
          <year>2010</year>
          ). doi:
          <volume>10</volume>
          .1109/SP.
          <year>2010</year>
          .
          <volume>37</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>N.</given-names>
            <surname>Stephens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Grosen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Salls</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dutcher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Corbetta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shoshitaishvili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Kruegel</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Vigna: Driller: Augmenting Fuzzing Through Selective Symbolic Execution</article-title>
          .
          <article-title>In 23rd Annual Network and Distributed System Security Symposium</article-title>
          ,
          <string-name>
            <surname>NDSS</surname>
          </string-name>
          <year>2016</year>
          (
          <article-title>23rd Annual Network and Distributed System Security Symposium</article-title>
          , NDSS
          <year>2016</year>
          ). URL: https://doi.org/ 10.14722/ ndss.
          <year>2016</year>
          .
          <volume>23368</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>S.</given-names>
            <surname>Yevseiev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Khokhlachova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ostapov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Laptiev</surname>
          </string-name>
          et al.
          <article-title>Models of socio-cyber-physical systems security</article-title>
          . Monographs,
          <source>PC TECHNOLOGY CENTER, number 978-617-7319-72-5</source>
          .redif, December. (
          <year>2023</year>
          ). doi: https://doi.org/ 10.15587/
          <fpage>978</fpage>
          -617-7319-72-5.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>