=Paper= {{Paper |id=Vol-3800/paper4 |storemode=property |title=Increase the cybersecurity of SCADA and IIoT devices with secure memory management |pdfUrl=https://ceur-ws.org/Vol-3800/paper4.pdf |volume=Vol-3800 |authors=Andrii Nyzhnyk,Andrii Partyka,Michal Podpora |dblpUrl=https://dblp.org/rec/conf/csdp/NyzhnykPP24 }} ==Increase the cybersecurity of SCADA and IIoT devices with secure memory management== https://ceur-ws.org/Vol-3800/paper4.pdf
                                Increase the cybersecurity of SCADA and IIoT devices
                                with secure memory management⋆
                                Andrii Nyzhnyk1,*,†, Andrii Partyka1,† and Michal Podpora2,†
                                1
                                    Lviv Polytechnic National University, 12 Stepan Bandera str., 79013 Lviv, Ukraine
                                2
                                    Opole University of Technology, 76 Proszkowska str., 45-758 Opole, Poland



                                                   Abstract
                                                   Secure memory management issues are very common in SCADA device software. Systems that are
                                                   integrated with SCADA and IIoT are often included in the list of critical infrastructures in many countries.
                                                   Therefore, ensuring the security of these devices is important for national security. Despite the
                                                   implementation of certain cybersecurity tools and measures, these devices often become targets for attacks.
                                                   Memory errors remain one of the most common sources of software vulnerabilities. Attackers are actively
                                                   using them to gain unauthorized access to systems, steal data, disrupt software operations, and perform
                                                   other criminal acts. These types of vulnerabilities are very difficult to reproduce and fix. This paper
                                                   discusses how to increase the security of SCADA and IIoT devices using secure memory management. The
                                                   relevance of the problem of secure memory management in SCADA and IIoT devices makes it a subject of
                                                   careful study and search for effective solutions. The purpose of this paper is to study the impact of dynamic
                                                   memory errors on cybersecurity and provide practical recommendations for their elimination. Various
                                                   sectors, including energy, water treatment, manufacturing, transportation, oil and gas exploration,
                                                   telecommunications, environmental monitoring, aerospace, and medical facilities, rely heavily on SCADA
                                                   and IIoT systems. Given the widespread use of these systems in critical infrastructure, addressing memory
                                                   management vulnerabilities is crucial. This paper presents an overview of the most common memory
                                                   management issues, such as null pointer dereferencing, use-after-free, and buffer overflow, and highlights
                                                   notable cyberattacks that exploited these vulnerabilities. The effectiveness of different methods to prevent
                                                   and mitigate memory management issues, including the use of sanitizers, static code analysis, and
                                                   programming languages with secure memory management like Rust, is analyzed. The study concludes that
                                                   a comprehensive approach combining these methods is essential for enhancing the cybersecurity of SCADA
                                                   and IIoT devices. The findings aim to help software developers and cybersecurity professionals better
                                                   understand the risks associated with dynamic memory in SCADA and IIoT devices and improve application
                                                   security.

                                                   Keywords
                                                   SCADA, IIoT, memory management issues, Rust, buffer overflow, use-after-free, cybersecurity, secure
                                                   programming, sanitizers, static code analysis1



                         1. Introduction                                                                   transportation,       oil      and       gas       exploration,
                                                                                                           telecommunications, environmental monitoring, aerospace,
                         Imagining modern life without process automation is                               and medical facilities. The market for industrial control
                         challenging, as it is crucial for both industry and homes.                        systems, including SCADA, is expected to exceed $181.6
                         Most devices can now connect to the Internet, a small but                         billion by the end of 2024, highlighting their growing
                         significant percentage of devices can be controlled by voice                      importance.
                         and even contain artificial intelligence to communicate with                           Despite the essential role of SCADA and IIoT systems,
                         humans. The SCADA (Supervisory Control and Data                                   they face significant cybersecurity threats, primarily due to
                         Acquisition) system is a centralized control system that                          memory management issues. According to Google, 59% of
                         allows monitoring and control of industrial processes. In                         the vulnerabilities found in the Android project in 2021
                         essence, SCADA has dual functionality—supervision of                              were related to memory issues [1]. Microsoft reported that
                         operations and data acquisition from remote locations,                            in 2019, 70% of all vulnerabilities in their projects were
                         which is critical for efficient and safe operation in various                     memory-related [2]. Similarly, in the Chromium project,
                         industries.                                                                       almost 70% of critical security bugs are associated with
                             SCADA systems, alongside the Industrial Internet of                           memory security issues, and Mozilla has reported that
                         Things (IIoT), play a vital role in numerous sectors,                             incorrect memory management can cause up to 73.9% of
                         including energy, water treatment, manufacturing,                                 vulnerabilities [3]. These vulnerabilities often lead to severe



                                CSDP-2024: Cyber Security and Data Protection, June 30, 2024, Lviv,              0009-0003-9094-0740 (A. Nyzhnyk); 0000-0003-3037-8373
                                Ukrain                                                                        (A. Partyka); 0000-0002-1080-6767 (M. Podpora)
                                ∗ Corresponding author.
                                                                                                                            © 2024 Copyright for this paper by its authors. Use permitted under
                                †
                                  These authors contributed equally.                                                        Creative Commons License Attribution 4.0 International (CC BY 4.0).
                                   andrii.o.nyzhnyk@lpnu.ua (A. Nyzhnyk); andrii.i.partyka@lpnu.ua
                                (A. Partyka); m.podpora@po.opole.pl (M. Podpora)
CEUR
Workshop
                  ceur-ws.org
              ISSN 1613-0073
                                                                                                      32
Proceedings
security breaches, such as unauthorized access to systems,                     control traffic lights in real time, helping to
data theft, and operational disruptions.                                       manage traffic, reduce congestion, and improve
    In their research, Oorschot et al. (2023) highlighted the                  road safety.
challenges of memory safety in system programming                             Telecommunications. SCADA systems contribute
languages like C and C++ [4]. While these languages are                        to the development of the telecommunications
powerful, they are prone to memory errors such as null                         sector by monitoring and managing network
pointer dereferencing, use-after-free, and buffer overflow.                    infrastructure, ensuring reliable and uninterrupted
These types of errors are particularly prevalent in the                        communication services.
software used for SCADA and IIoT devices, which are often                     Environmental monitoring. SCADA is used in
written in these languages due to their low-level capabilities                 environmental monitoring to track pollution
and performance requirements.                                                  levels, air quality, and other environmental
    Also, in many research studies (Altaleb, Haya & Rajnai,                    parameters, supporting efforts to solve
Zoltan (2024) or Fall, Moustapha & Chuvalas, Chris &                           environmental problems.
Warning, Nolan & Rabiee, Max & Purdy, Carla (2020) and                        Aerospace industry. SCADA is integrated into the
many more) related to security SCADA and IIoT, secure                          aerospace industry to monitor and control
memory management is not covered [5]. These studies                            production processes, ensuring the accuracy and
focus on the more common cyber security threats, like                          quality of aircraft component production.
“OWASP Top Ten” and others. In this context, secure                           Medical facilities. SCADA systems are used in
memory management belongs to low-level system control                          healthcare facilities to monitor and control critical
that significantly impacts cybersecurity [6].                                  infrastructure, including power distribution,
    The objective of this paper is to address the impact of                    heating, ventilation, air conditioning systems, and
dynamic memory errors on the cybersecurity of SCADA                            medical equipment, ensuring the uninterrupted
and IIoT devices and to provide practical recommendations                      provision of healthcare services.
for their mitigation. By examining various studies and
existing methods, we aim to identify effective solutions to               To summarize, these systems are widely used in various
enhance the security of these critical systems. Our analysis          areas of critical infrastructure. The main task of SCADA and
includes the use of sanitizers, static code analysis, and the         IIoT is to control the system, which helps to manage and
adoption of programming languages with built-in memory                achieve the set goals with optimal use of resources.
safety mechanisms, such as Rust, which offers a robust
alternative to traditional system programming languages.              2.1. The most common memory
The goal is to provide insights that will help software                       management issues
developers and cybersecurity professionals better
understand and manage the risks associated with memory                Despite its long history and significant economic
management in SCADA and IIoT devices.                                 consequences, the problem of secure memory management
                                                                      remains relevant. According to unofficial estimates, as
                                                                      recently as 2004, memory-related errors cost the industry
2. Ensuring cybersecurity of SCADA
                                                                      about $250,000, and this amount is only growing over time.
    and IIoT devices                                                      Memory management vulnerabilities can occur even in
To better understand how SCADA and IIoT devices can be                well-known projects with millions of users and professional
protected, it is necessary to analyze where and how these             development teams [5]. Different companies conducted the
devices are used. The adaptability of SCADA and IIoT devices          research:
to scenarios that require remote monitoring, control, and data
collection has led to its widespread adoption in various                      In 2021, Google reported that 59% of the
sectors such as:                                                               vulnerabilities found in the Android project were
                                                                               related to memory issues. Different types of
        Energy sector. SCADA is widely used in the                            vulnerabilities found in the Android project are
         energy sector to monitor and control the                              shown in Fig. 1.
         production and distribution of electricity, ensuring                 In 2019, Microsoft researched its projects and
         efficient and reliable power supply.                                  found that 70% of all vulnerabilities in program
        Manufacturing industry. SCADA is used in                              code are related to memory.
         manufacturing to monitor and control production                      Chromium (the basis of the Google Chrome
         processes,     optimize    efficiency,     minimize                   browser): almost 70% of critical security bugs are
         downtime, and improve overall production                              related to memory security issues.
         quality.                                                             Mozilla: the level of vulnerabilities caused by
        Transportation and traffic management. SCADA                          incorrect memory management can reach 73.9%.
         systems are used in transportation to monitor and




                                                                 33
Figure 1: Types of critical and high vulnerabilities in the Android project

According to research by various IT companies, the total
percentage of memory-related vulnerabilities is shown in
Fig. 2.




Figure 2: Percentage of vulnerabilities in projects related to memory management

Memory management bugs are a common source of                        2.    Use-after-free use is a problem that occurs when
misbehavior in many programming languages [7], but they                    a program tries to access memory that has already
can be especially prevalent in system programming                          been freed.
languages such as C and C++ [8]. C and C++ are the                   3.    Buffer overflow is also a common problem when
programming languages most commonly used to write                          a program writes data outside the buffer,
SCADA and IIoT software and are the languages in which                     potentially overwriting other data or executing
the largest number of vulnerabilities are found.                           arbitrary code.
    The most common problems are related to memory
management:                                                           While memory management can cause a vulnerability
                                                                  in an application, other security issues such as
   1.    Null pointer dereferencing is a problem that             misconfiguration of role-based access control, SQL
         occurs when a program tries to access memory             injection, and other well-known vulnerabilities should not
         that has not been allocated or has already been          be overlooked [9]. Despite this, memory management issues
         freed.                                                   remain the most common in SCADA and IIoT devices.


                                                             34
Securing low-level devices such as SCADA and IIoT differs             mitigate risks in critical infrastructures like SCADA and
significantly from traditional approaches to securing cloud           IIoT systems.
infrastructure. [10]. Programs that control SCADA and IIoT                One effective approach is the use of mathematical
mostly run without an operating system or any antivirus               models and simulations to analyze potential security threats
[11].                                                                 and their impacts. This method allows for the identification
                                                                      and mitigation of vulnerabilities before they can be
2.2. Cyberattacks that were carried out                               exploited by attackers. Simulations can model various
        with the help of memory                                       attack scenarios, enabling researchers and engineers to
        vulnerabilities                                               develop robust defense mechanisms and response
                                                                      strategies.
Attacks that use hanging pointers:                                        Enhancing SCADA security with advanced memory
                                                                      management techniques is another method, as discussed by
        Heartbleed (2014). This vulnerability, which
                                                                      Kim and Lee (2024), who emphasized the importance of
         exploited a hanging pointer, was discovered in
                                                                      adopting modern memory safety mechanisms in SCADA
         OpenSSL, a cryptographic library used by millions
                                                                      systems [15]. The implementation of such techniques can
         of web servers. Attackers could have exploited this
                                                                      significantly reduce the risk of memory-related
         vulnerability to steal sensitive information,
                                                                      vulnerabilities, which are often targeted by cyber attackers.
         including passwords, encryption keys, and credit
                                                                          Additional Approaches:
         card information. The damage from this attack is
         estimated at billions of dollars [12].                          1. Behavioural Analysis and Anomaly Detection:
        CVE-2021-45046 (2021). This vulnerability was                      a. Implementing behavioral analysis and anomaly
         discovered in the Windows Print Spooler driver.                    detection tools can help identify unusual activities
         Attackers could exploit this vulnerability to gain                 that may indicate a security breach. These tools
         full control over vulnerable systems [13].                         analyze the normal behavior of SCADA and IIoT
                                                                            systems and alert administrators to deviations that
    Attacks that were carried out through uninitialized                     could signify an attack.
variables:                                                                  b. Machine learning algorithms can be employed
                                                                            to improve the accuracy of anomaly detection,
        Buffer overflow (2001). This attack led to the theft               learning from historical data to distinguish between
                                                                            legitimate and malicious activities.
         of 170 million credit card numbers from TJX
         Companies’ systems.                                             2. Collaborative Security Frameworks:
        Stack overflow (2019). This attack, which exploits                 a. Developing collaborative security frameworks
         a stack overflow, led to the outage of Cloudflare                  that involve multiple stakeholders, including
         services. Cloudflare is a large American company                   government agencies, private sector companies, and
                                                                            academic institutions, can enhance the overall
         that provides network services for content
                                                                            cybersecurity posture of SCPS. Such frameworks
         delivery, protection against DDoS attacks, and                     facilitate the sharing of threat intelligence and best
         other network services.                                            practices, fostering a collective defense approach.
                                                                            b. Public-private partnerships can play a vital role
    In addition, there have been thousands of other                         in advancing cybersecurity research and
cyberattacks using all types of memory management                           development, ensuring that SCADA and IIoT
vulnerabilities. For example, the WannaCry ransomware                       systems are equipped with the latest security
virus, which in 2017 infected more than 200,000 computers                   innovations.
in 150 countries. WannaCry exploited a “double free”
                                                                         3. Resilience Engineering:
vulnerability in Windows.                                                   a. Focusing on resilience engineering can help
    These examples highlight cyberattacks related to                        ensure that SCADA and IIoT systems continue to
memory management issues. Such attacks can result in                        operate effectively even in the face of cyber-attacks.
significant consequences, including data theft, service                     This involves designing systems with built-in
outages, and financial and reputational losses.                             redundancy, failover mechanisms, and robust
Implementing secure programming practices and thorough                      recovery procedures.
software testing can help prevent these incidents.                          b. Regularly conducting resilience testing, such as
                                                                            cyber wargames and penetration testing, can help
2.3. Methods to ensure cybersecurity in                                     identify and address potential weaknesses in the
                                                                            system.
           Socio-Cyber-Physical Systems
           (SCPS)                                                        4. Cybersecurity Education and Training:
                                                                            a. Investing in cybersecurity education and
it is crucial to consider the broader context of cybersecurity              training programs for employees at all levels can
within Socio-Cyber-Physical Systems (SCPS). According to                    significantly improve the security of SCADA and
Yevseiev et al. (2023), integrating cybersecurity into SCPS                 IIoT systems. Ensuring that staff are aware of the
involves developing comprehensive models that account for                   latest threats and understand best practices for
the complex interactions between social, cyber, and                         cybersecurity can reduce the risk of human error,
physical components [14]. These models help in                              which is often a critical factor in security breaches.
understanding vulnerabilities and developing strategies to



                                                                 35
       b. Certification programs and ongoing professional           3.2. Static code analysis
       development can help maintain a high standard of
       cybersecurity expertise within organizations.                Static analysis tools are software tools that examine code
       Ensuring the cybersecurity of socio-cyber-physical           without executing it to identify potential memory
       systems requires a multifaceted approach that                management issues and other vulnerabilities. This method
       addresses both technical and human factors. By               of analysis is used during program development, serving as
       integrating advanced memory management                       a kind of independent code verification.
       techniques, leveraging behavioral analysis and                   Advantages of static analysis:
       anomaly detection, fostering collaborative security
       frameworks, focusing on resilience engineering, and                  Efficiency: static analysis can examine code much
       investing in cybersecurity education and training,
                                                                             faster than it can be tested.
       organizations can significantly enhance the security
       and resilience of their SCADA and IIoT systems.                      Proactivity: static analysis can help identify
                                                                             problems in the early stages of development when
3. Methods to prevent and reduce                                             they are still easy to fix.
   the impact of memory                                                     Accuracy: static analysis can identify issues that
                                                                             may be missed during testing.
   management issues
The negative impact of memory management issues can                    Examples of static analysis tools:
range from minor crashes to data theft, system disruption,
                                                                            Clang Static Analyzer: a free open-source tool that
and other criminal activity. There is now a wide range of
                                                                             supports C, C++, Objective-C, and Swift.
methods and mechanisms that can be used to prevent or
reduce the impact of these problems.                                        Coverity: a commercial tool that supports C, C++,
                                                                             Java, and JavaScript.
3.1. The use of sanitizers                                                  Cppcheck: a free open-source tool that supports
                                                                             C++.
Sanitizers are essential tools for detecting memory                         PVS-Studio: a commercial tool that supports C,
management issues. They help to identify a potential                         C++, and C#.
problem at the development stage and thus warn the
                                                                            SonarQube: an open-source platform that supports
developer of a potential problem.
                                                                             many programming languages.
   The use of sanitizers:
                                                                    Disadvantages of static analysis:
        Sanitizers can detect memory management errors
         at the early stages of development, allowing                       False positives: Static analysis can sometimes
         developers to fix them at the development and                       generate error warnings that are not present.
         testing stages.                                                    Incomplete coverage: static analysis cannot
        Sanitizers can detect memory leaks when a                           guarantee to detect all problems.
         program fails to free memory it no longer uses.                    Complexity: Some static analysis tools can be
         This helps to reduce the overall memory usage of                    difficult to set up and use.
         the program and prevent the program from
         suddenly terminating due to lack of memory.                    Static analysis can be used to detect issues such as
        Using sanitizers can improve code quality by               memory leaks, buffer overflows, null pointers, unused
         detecting and correcting memory management                 variables, dead code, and unsafe coding patterns. Static
         errors and using them efficiently.                         analysis can be integrated into the development
        Sanitizers can be used as a learning tool for young        environment, which makes it even more convenient to use.
         developers to better understand how memory                 Using static analysis tools is an important part of the
         management works and how to avoid common                   process of developing secure software.
         mistakes in their professional careers.                        Beyond the methods above, it is also important to
        Using sanitizers is an important part of modern            regularly update software, implement firewall and antivirus
         software development and can significantly                 solutions, and ensure the creation of data backup copies.
         reduce the impact of memory management issues.
                                                                    3.3. Use languages with secure memory
   A list of the most popular sanitizers and their                           management
capabilities:
                                                                    One approach is to use safe programming languages.
        Address Sanitizer detects errors related to                Programming languages with a high level of abstraction and
         accessing invalid memory.                                  built-in memory safety mechanisms, such as Java, Python,
        Leak Sanitizer detects memory leaks.                       Go, C#, and JS/TS, significantly reduce the risk of memory
                                                                    management issues. The disadvantage of this approach is
   Undefined Behavior Sanitizer        detects   undefined          the inability to rewrite existing programs within a short
behavior that can lead to errors.                                   time and the decrease in program performance. For some
                                                                    systems, such a transition is simply not possible because it
                                                                    requires very low-level work with memory and registers [16].



                                                               36
However, with the advent of programming languages such                          respond to security incidents in real-time. This
as Rust, you can solve the problem of low-level access                          includes using intrusion detection systems,
without losing program performance. Rust is a                                   security information and event management
programming language that combines high performance                             systems, and regular vulnerability assessments.
with memory safety. It is becoming an increasingly popular                      Continuous monitoring is vital for identifying and
choice for developing system software and other programs                        mitigating potential threats before they can cause
where it is critical to avoid memory issues [17].                               significant damage [21].
   Here are some of the key benefits of using Rust to                          Advanced Security Practices: Utilizing
prevent memory management issues:                                               advanced security practices such as zero-trust
                                                                                architecture, micro-segmentation, and automated
        Ownership system. Rust uses an ownership                               threat intelligence can further enhance the
         system to keep track of who owns data in memory.                       security of cloud infrastructures. Zero-trust
         This makes errors such as use-after-free and                           architecture ensures that no entity, whether inside
         memory leaks impossible.                                               or outside the network, is trusted by default.
        Compile-time      checking.     Most     memory                        Micro-segmentation divides the network into
         management issues in Rust are detected at compile                      smaller segments to limit the spread of potential
         time, not runtime. This saves time and resources                       attacks. Automated threat intelligence uses
         and makes the code more error-resistant.                               machine learning and AI to identify and respond
        No garbage collection. Rust does not use garbage                       to threats more effectively [22].
         collection, which gives developers more control
         over memory. This can lead to more economical                    Challenges and Solutions:
         memory usage and better performance.
                                                                               Data Privacy and Compliance: Ensuring data
   Nguyen and Pham (2023) highlighted that secure                               privacy and compliance with regulatory
programming practices for embedded systems, with a focus                        requirements is a major challenge in cloud
on memory safety, can greatly benefit from languages like                       environments. Organizations must implement
Rust, especially for SCADA and IIoT applications [18].                          robust data protection measures and ensure
                                                                                compliance with standards such as GDPR, HIPAA,
3.4. Security in cloud infrastructures                                          and NIST. Regular audits and compliance checks
                                                                                are necessary to maintain adherence to these
A comprehensive approach to developing and maintaining
                                                                                regulations.
secure cloud infrastructures is essential for modern
                                                                               Integration with Legacy Systems: Integrating
enterprises, including those utilizing SCADA and IIoT
                                                                                cloud-based solutions with existing legacy
systems. Ensuring security in cloud environments involves
                                                                                SCADA and IIoT systems can be complex.
multiple layers of protection, including secure configuration
                                                                                Organizations need to ensure that security
of services, continuous monitoring, and the implementation
                                                                                measures are compatible with both old and new
of advanced security practices [19]. This approach helps
                                                                                systems to prevent potential vulnerabilities. This
mitigate risks associated with data breaches and
                                                                                may involve updating legacy systems or using
unauthorized access in cloud-based systems.
                                                                                middleware solutions to facilitate secure
    Connection to SCADA and IIoT Systems: SCADA and
                                                                                integration [23].
IIoT devices are increasingly being integrated into cloud
infrastructures to enhance their functionality and                             Cost       and      Resource       Management:
scalability. By leveraging cloud services, these devices can                    Implementing comprehensive security measures
benefit from advanced analytics, remote monitoring, and                         in the cloud can be resource-intensive and costly.
improved data storage capabilities. However, this                               Organizations must balance the cost of security
integration also introduces new security challenges.                            solutions with the potential risks and impacts of
    Ensuring the security of cloud-based SCADA and IIoT                         security breaches. Investing in scalable and
systems is crucial to protect against potential cyber threats                   efficient security tools can help manage costs
that could exploit vulnerabilities in the cloud infrastructure.                 while ensuring robust protection [24].
    Key Security Measures:
                                                                           In conclusion, securing cloud infrastructures is integral
                                                                       to the overall security of SCADA and IIoT systems. By
         Secure Configuration: Proper configuration of
                                                                       adopting a layered security approach, implementing
          cloud services is essential to prevent unauthorized
                                                                       continuous monitoring, and leveraging advanced security
          access. This includes setting up strong
                                                                       practices, organizations can significantly enhance the
          authentication mechanisms, implementing role-
                                                                       resilience of their cloud-based SCADA and IIoT systems
          based access control, and ensuring that all data is
                                                                       against cyber threats. The following section will
          encrypted both in transit and at rest.
                                                                       demonstrate the effectiveness of various approaches in
          Misconfigurations can lead to significant security
                                                                       preventing memory problems.
          breaches, as seen in numerous high-profile attacks
          [20].
         Continuous         Monitoring:        Implementing
          continuous monitoring solutions helps detect and


                                                                  37
4. Analyzing the effectiveness of                                      risk of incorrect integration and misuse of the analyzer or
                                                                       sanitizer [25].
   methods to prevent memory                                                Also, most professional analyzers and sanitizers are not
   management problems                                                 free, which in turn imposes certain restrictions on the
                                                                       development of projects with a small budget. For example,
The main disadvantage of static analyzers and sanitizers is
                                                                       let’s consider one of the most popular code analyzers sonar,
that these tools need to be integrated with the existing code
                                                                       this tool has different tariff plans, but most companies
base. That is, software developers need to research and
                                                                       choose the Enterprise plan [26].
integrate these tools into the project. In addition, there is a




Figure 3: Different tariffs provided by Sonar

According to the tariff plans, the cost of using code                  part of developers, and the use of the Rust language is free,
analyzers can vary from several hundred to hundreds of                 which makes this approach quite optimal.
thousands of dollars per year.                                             Fig. 4 shows a C++ program that simulates a buffer
    Tools such as sanitizers and static code analyzers help            overflow. This program creates an array of five elements of
to improve code quality and prevent other known problems               type uint32_t (this is an unsigned integer that takes 32 bits),
quite significantly. Nevertheless, the most reliable way to            and all elements of the array are initialized to 0. After that,
deal with memory usage issues is to use the Rust                       the program iterates over this array, but the iteration
programming language and similar ones. In addition, this               interval was chosen incorrectly and the program will go
approach does not require any additional settings on the               beyond the buffer.




Figure 4: An example of a program to overflow a buffer

This program compiles successfully. But there is an error in           only 5 elements are needed. The resulting values from the
it, the loop will iterate over an array of 13 elements when            execution of this program are shown in Fig. 5.



                                                                  38
Figure 5: The result of the program execution

Fig. 5 shows that the first 5 elements of the array are zeros,          reproduce. This can lead to lengthy debugging sessions and
but the sixth element (at index 5) has a value of 32765.                delayed release cycles, which can be particularly
Further iterations also show other numbers. If you look at              problematic in time-sensitive applications [27].
the code listing more closely, you will see that there is no                Rust’s ownership model and borrowing system make it
mention of these numbers. That is, it has just been                     virtually impossible to introduce many of these common
demonstrated how the program went beyond the buffer and                 memory-related errors, which is one of the reasons it has
accessed data that is outside the executing context.                    become a popular choice for system programming [28].
    Along with causing crashes and other problems, these                Similar approaches are described in [29-32]
errors can also create security vulnerabilities that can be                 Using the Rust programming language (Fig. 6) makes it
exploited by attackers to gain unauthorized access to the               impossible to prevent buffer overflows and access to other
system. Debugging memory-related errors can be difficult                data, as demonstrated in Fig. 4. The results are shown in
because they often result in subtle errors that are difficult to        Fig. 7.




Figure 6: Rust code sample for buffer overflow




Figure 7: The result of executing the Rust code for a buffer overflow




                                                                   39
From Fig. 7, it is clear that the program crashed without             degradation, and a more comprehensive approach is needed
allowing it to go beyond the buffer, thus making it                   to solve other memory-related problems. Despite these
impossible to access other information, unlike what                   limitations, Rust remains a powerful language for system
happened when executing the C++ program, the results of               programming, and its memory protection features provide
which are shown in Fig. 5.                                            a significant advantage over many other programming
    While Rust’s approach to memory safety offers many                languages and significantly help improve cybersecurity.
advantages, there are also some drawbacks and limitations
that should be considered. One potential limitation is that           References
Rust’s ownership and borrowing system can be difficult to
understand for developers who have not worked with it                 [1]    Data Driven Security Hardening in Android. URL:
before. This can make writing Rust code more difficult than                  https://security.googleblog.com/2021/01/data-driven-
languages with simpler memory models, such as Python or                      security-hardening-in.html
JavaScript.                                                           [2]    A Proactive Approach to More Secure Code. URL:
    Although Rust’s ownership system enhances code                           https://msrc.microsoft.com/blog/2019/07/a-proactive-
safety, it can also complicate working with cyclic data                      approach-to-more-secure-code/
structures. This can lead to a 20–30% increase in the time            [3]    Memory Safety. URL: https://www.chromium.org/
required to write and debug such code. Rust’s memory                         Home/chromium-security/memory-safety/
safety features, which make the code more resistant to                [4]    P. Oorschot, Memory Errors and Memory Safety: C as
errors, slightly reduce its performance. The performance                     a Case Study, IEEE Security & Privacy 21 (2023) 70–
loss can reach 5–10% compared to C/C++ code. It is                           76. doi: 10.1109/MSEC.2023.3236542.
important to remember that Rust does not guarantee 100%               [5]    H. Altaleb, Z. Rajnai, A Comprehensive Analysis and
security. Incorrect code can bypass the system’s guarantees,                 Solutions for Enhancing SCADA Systems Security in
and vulnerabilities in third-party libraries remain                          Critical Infrastructures, IEEE 11th International
dangerous.                                                                   Conference on Computational Cybernetics and
                                                                             Cyber-Medical Systems (ICCC) (2024). doi:
                                                                             10.1109/ICCC62278. 2024.10582956.
5. Conclusions                                                        [6]    M. Fall, et al., Enhancing SCADA System Security
Dynamic memory errors pose a significant cybersecurity                       (2020) 830–833. doi: 10.1109/MWSCAS48704.2020.
threat. Attackers are actively exploiting such vulnerabilities               9184532.
to steal data, disrupt systems, and commit other criminal             [7]    Project                     Zero.               URL:
acts. The damage they cause is estimated at several tens of                  https://googleprojectzero.blogspot.com/2022/04/the-
billions of dollars, and reputational losses are manifested                  more-you-know-more-you-know-you.html
long after the cyberattack and may result in further lawsuits         [8]    Memory Unsafety in Apple's Operating Systems. URL:
and compensation.                                                            https://langui.sh/2019/ 07/23/apple-memory-safety/
     The safe programming practices described here can                [9]    D. Shevchuk, et al., Designing Secured Services for
prevent memory issues. However, it should be noted that                      Authentication, Authorization, and Accounting of
none of them is universal and it is better to use a                          Users, in: Cybersecurity Providing in Information and
combination of them for maximum protection.                                  Telecommunication Systems II, vol. 3550 (2023) 217–
     To prevent and reduce the negative impact of dynamic                    225.
memory management, the best solution is to use a                      [10]   Y. Martseniuk, et al., Automated Conformity
comprehensive approach that includes the following:                          Verification Concept for Cloud Security, in:
     Use of safe programming languages.                                      Cybersecurity Providing in Information and
     Use of sanitizers.                                                      Telecommunication Systems, vol. 3654 (2024) 25–37.
     Static code analysis.                                            [11]   National        Vulnerability       Database.   URL:
     Professional development of developers.                                 https://nvd.nist.gov/vuln/detail/CVE-2021-45046
     This paper has demonstrated a memory buffer overflow             [12]   The Heartbleed Bug. URL: https://heartbleed.com/
vulnerability associated with a violation of security rules           [13]   P. Oorschot, Memory Errors and Memory Safety: A
when working with it. The results were obtained using the                    Look at Java and Rust, IEEE Security & Privacy 21
C++ language, which is one of the most commonly used                         (2023) 62–68. doi: 10.1109/MSEC.2023.3249719.
languages for writing applications for SCADA and IIoT                 [14]   S. Yevseiev, et al. Models of Socio-Cyber-Physical
devices.                                                                     Systems Security: monograph, PC TECHNOLOGY
     As an optimization and solution to such vulnerabilities,                CENTER. (2023). doi: 10.15587/978-617-7319-72-5.
it was proposed to use the Rust language. This helped to              [15]   H. Kim, J. Lee, Enhancing SCADA Security with
avoid errors related to memory management. The                               Advanced Memory Management Techniques, Int. J.
peculiarity of using this language helped to avoid the                       Critical Infrastruct. Prot. 38 (2024) 100493.
vulnerability described above by preventing memory buffer             [16]   G. Saileshwar, et al., HeapCheck: Low-cost Hardware
overruns. Rust mechanisms help to avoid a dozen more                         Support for Memory Safety, ACM Transactions on
memory management vulnerabilities.                                           Architecture and Code Optimization 19 (2022) 1–24.
     In general, although Rust’s approach to memory safety                   doi: 10.1145/3495152.
provides many advantages, it is important to note its                 [17]   S. Rajasekaran, V. Kumar, Mitigating Memory
limitations and potential drawbacks. Rust’s memory safety                    Vulnerabilities in IoT Systems: Best Practices and
features can sometimes lead to some performance


                                                                 40
       Case Studies, Future Generation Comput. Syst. 137
       (2024) 146–159.
[18]   J. Zhou, R. Liu, Cybersecurity in Industrial Control
       Systems: A Survey, IEEE Transactions on Industrial
       Informatics 19(3) (2023) 1621–1632.
[19]   F. Lomio, S. Moreschini, V. Lenarduzzi, A Machine and
       Deep Learning analysis among SonarQube rules,
       Product, and Process Metrics for Faults Prediction,
       Empirical Software Eng. 27 (2022). doi:
       10.1007/s10664-022-10164-z.
[20]   V. Khoma, et al., Comprehensive Approach for
       Developing an Enterprise Cloud Infrastructure, in:
       CEUR Workshop Proceedings, vol. 3654 (2024) 201–
       215.
[21]   T. Nguyen, D. Pham, Secure Programming Practices
       for Embedded Systems: A Focus on Memory Safety,
       Embedded Systems Letters 15(4), (2023) 145–150.
[22]   D. Schmidt, Pattern-Oriented Software Architecture:
       Patterns for Concurrent and Networked Objects.
       Volume 2. Wiley (2006).
[23]   Sonar. URL: https://www.sonarsource.com/plans-
       and-pricing/
[24]   S. Zhang, et al., A Survey of Memory Management
       Techniques in Embedded Systems, ACM Computing
       Surveys 55(2) (2022).
[25]   M. Jones, P. Smith, Advancements in Secure Memory
       Management for Critical Systems, J. Syst. Archit. 121
       (2023) 102384.
[26]   S. Turner, D. Harris, A Comprehensive Review of
       Memory Safety Mechanisms in IoT Devices, Sensors,
       23(6) (2023) 1428.
[27]   L. Zhang, Y. Wang, Static and Dynamic Analysis Tools
       for Memory Safety: A Comparative Study, Software:
       Practice and Experience 53(7) (2023) 1298–1312.
[28]   K. Huang, et al., Comprehensive Memory Safety
       Validation: An Alternative Approach to Memory
       Safety, IEEE Security & Privacy (2024) 2–11. doi:
       10.1109/MSEC.2024.3379947.
[29]    O. Solomentsev, et al., Data Processing Method for
       Deterioration Detection during Radio Equipment
       Operation, IEEE Microwave Theory and Techniques
       in Wireless Communications, MTTW (2019) 1–4.
[30]   O. Solomentsev, M. Zaliskyi, Correlated Failures
       Analysis in Navigation System, IEEE 5th International
       Conference on Methods and Systems of Navigation
       and Motion Control, MSNMC 2018 – Proceedings
       (2018) 123–126.
[31]   O. Solomentsev, et al., Efficiency of operational data
       processing for radio electronic equipment, Aviation
       23(3) (2020) 71–77.
[32]   O. Solomentsev, et al., Efficiency of data processing
       for UAV operation system, IEEE 4th International
       Conference on Actual Problems of Unmanned Aerial
       Vehicles Developments, APUAVD 2017 - Proceedings
       (2018) 27–31.




                                                                41