PLC Hot Patching Through Real-Time Binary Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Programmable logic controllers (PLCs) in cyber-physical systems are vulnerable to malicious cyber activities, which can lead to system instability and safety risks. Existing methods for patching PLCs often require taking the system offline, disrupting operations and violating high uptime requirements.
Innovation Solution
A system and method for real-time binary analysis of PLC code, enabling the generation, testing, and implementation of patches without interrupting the operation of the PLC. This involves creating a profile of the system's operation, detecting anomalies, generating patches, and verifying their safety before applying them in real-time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the PLC is taken offline to generate, test, and apply patches, then the patching process can be completed safely and thoroughly, but the system uptime is reduced and operations are disrupted
Solution Approach 1:
The system performs preliminary actions by generating candidate patches offline in advance, before they are needed for deployment. The patch generation process creates multiple candidate patches and stores them for later use, so that when a vulnerability is detected, pre-prepared patches can be applied without taking the PLC offline.
Solution Approach 2:
The system creates copies of the PLC program and candidate patches that can be tested and validated without affecting the running system. Multiple candidate patches are generated and stored as copies, allowing thorough testing and selection of the best patch before deployment to the actual PLC.
2Reliability
If the PLC is taken offline to test and validate patches, then the safety and correctness of patches can be ensured, but the time required for patch deployment increases
Solution Approach 1:
The system performs preliminary testing and validation of candidate patches against the profile data before deployment. By using the pre-generated profile of normal PLC behavior, the system can automatically test whether candidate patches maintain safety requirements without requiring offline validation, thus reducing deployment time while ensuring patch safety.
Solution Approach 2:
The system uses feedback from comparing candidate patches against the established profile to automatically validate patch safety. The profile serves as a reference for normal behavior, and candidate patches are tested against this profile to ensure they don't introduce anomalies, providing automated safety verification without offline testing.
3Object-affected harmful factors
If patches are applied quickly to address cyber vulnerabilities, then system security is improved, but the risk of introducing new errors or instability increases
Solution Approach 1:
The system creates and tests multiple candidate patches against the profile before selecting the best one for deployment. This copying and testing process allows thorough evaluation of each candidate's potential to introduce errors or instability, ensuring that only the most reliable patch is applied to the actual PLC.
Solution Approach 2:
The profile acts as an intermediary between the candidate patches and the actual PLC system. By comparing patches against the profile of normal behavior, the system can identify patches that might introduce instability or errors before they are deployed, serving as a safety filter that protects the PLC from problematic patches.
4Reliability
If comprehensive testing and analysis are performed on patches, then the quality and safety of patches are improved, but the complexity of the patching process increases
Solution Approach 1:
The system performs automated self-testing and self-validation of candidate patches against the profile without requiring external manual testing. The profile-based comparison automatically identifies patches that maintain safety requirements, eliminating the need for complex manual testing procedures and reducing overall process complexity while maintaining high patch quality.
Data Source
AI summary
Described herein are systems and methods for performing real-time binary analysis of code running in programmable logic controllers, and specifically to systems and methods for generating patches, testing patches, and implementing patches on programmable logic controllers while the controller is operating is provided. In one or more examples, a profile of the physical operation controlled by the PLC and the broader system can be generated. In one or more examples, once a profile has been generated, the system and methods described herein can capture data images that provide information regarding the operation of the system as well as the PLC. Based on the received data images, and the generated profile, the system can detect anomalies and/or safety constraint violations in the operation of the system that can be rectified or mitigated through patching (i.e., modification of the datasets or binary code used by the PLC).


