Supervisor Processor Monitoring Control Flow for Software Security
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
There is a need for an alternative solution to protect a software application during its execution, as existing methods are inadequate in ensuring the integrity and security of the application's control flow.
Innovation Solution
The method involves a first processor executing a first control flow and a second processor, in synchronization, executing a second application with predefined variables and conditions. The second processor verifies if the variables meet expected values or satisfy predetermined conditions, thereby determining if the first processor is executing the correct control flow.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a supervisor processor monitors the execution of a program to detect anomalies, then security protection is improved, but device complexity increases
Solution Approach 1:
The patent introduces a supervisor processor as an intermediary component that monitors the execution of applications. This supervisor processor acts as a mediator between the application processor and the security management system, detecting anomalies in control flow and triggering security actions. This resolves the contradiction by providing enhanced security protection through the intermediary monitoring mechanism while managing device complexity through structured separation of monitoring and execution functions.
2Reliability
If code is converted and sent to a HW token for exclusive execution, then reverse engineering protection is improved, but ease of operation deteriorates
Solution Approach 1:
The patent segments the application code into different parts, with critical portions being converted and executed exclusively on a HW token while other parts remain on the main processor. This segmentation allows reverse engineering protection for sensitive functions while maintaining ease of operation for the overall system. The segmented approach enables selective protection without requiring complete offloading to hardware tokens.
Solution Approach 2:
The patent uses an intermediary mechanism where a supervisor processor monitors execution and coordinates between the main processor and HW token. This intermediary layer manages the complexity of code conversion and execution distribution, protecting critical code on the HW token while maintaining operational ease through automated monitoring and coordination.
3Reliability
If multiple processors execute applications in synchronization, then security monitoring is improved, but productivity decreases
Solution Approach 1:
The patent implements partial monitoring where the supervisor processor focuses specifically on detecting control flow anomalies rather than monitoring all execution aspects. This partial action approach provides adequate security monitoring while minimizing the performance overhead that would result from comprehensive monitoring of all processor activities.
Solution Approach 2:
The supervisor processor implements feedback mechanisms where anomalies are detected and security actions are triggered only when necessary. This feedback-based approach allows the system to maintain normal high-speed execution during benign operations while providing security monitoring, thus improving productivity compared to continuous intervention while maintaining security.
Data Source
Figure 1~2
Figure 3
AI summary
A method 20 for managing a first application program comprises: - executing, by a first processor, a first control flow, the first control flow graph including at least two separated branches 260, 280, each of the at least two separated branches including at least one node 26; - executing, by a second processor, in synchronization with the first control flow execution, a second application; - determining, by the second processor, when executing the at least one second application, at least one transition decision between at least two first nodes of the at least two separated branches, the at least one transition decision being conditional (226 or 228) to continue from an execution of the current node to an execution of a first node of one branch of the at least two separated branches or a first node of another branch of the at least two separated branches; - controlling,by the second processor,when executing the at least one second application,based on the determined at least one transition decision, the first node of the branch to be executed by the first processor.