Program Code Manipulation Detection in Secure Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems fail to effectively detect manipulations of program code after execution, particularly in safety-critical systems, where ensuring the integrity of calculation results is paramount.
Innovation Solution
A device with a comparison unit and detection unit is implemented in a secure execution environment to compare program code data with reference data after execution, using different reference data sets during and after termination, to detect any unauthorized changes or manipulations, and prevent further execution if manipulation is detected.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If program code is executed in a secure execution environment without post-execution verification, then execution speed and simplicity are improved, but integrity and reliability of calculation results deteriorate
Solution Approach 1:
The patent applies preliminary action by creating a checkpoint version of the program code before execution and storing reference data in advance. This allows the system to have verification mechanisms ready before potential manipulations can occur, enabling quick post-execution comparison without adding complexity to the execution process itself.
Solution Approach 2:
The patent implements feedback by comparing the executed program code against the stored checkpoint version and generating verification results. This feedback mechanism detects manipulations after execution while maintaining fast execution speed, as the comparison occurs outside the critical execution path.
2Measurement precision
If manipulation detection is performed continuously during program execution, then detection precision is improved, but device complexity and computational overhead increase
Solution Approach 1:
The patent applies periodic action by performing manipulation detection at specific intervals - specifically after program execution or at designated checkpoint moments - rather than continuously during execution. This approach maintains high detection precision while significantly reducing computational overhead compared to continuous monitoring.
Solution Approach 2:
The system prepares reference data and checkpoint versions in advance before execution, so that post-execution comparison can be performed quickly without complex real-time analysis during program running.
3Measurement precision
If multiple comparison operations are performed with different reference data sets, then detection precision is improved, but loss of time increases
Solution Approach 1:
Multiple reference data sets and checkpoint versions are prepared in advance before execution. This preliminary preparation allows the system to perform multiple comparisons sequentially after execution without adding significant overhead, as the heavy lifting of data preparation occurs beforehand.
Solution Approach 2:
The patent enables skipping unnecessary comparison steps by using conditional logic to determine which reference data sets need to be compared based on the execution context. This reduces verification time while maintaining detection precision by focusing comparisons only where manipulations are most likely.
Data Source
Figure 1~2
Figure 3~4
AI summary
The invention relates to a device (10) for detecting a manipulation to a program code (22), wherein the program code (22) is configured to be executed from an execution environment (21) on a computing system (20). The device (10) comprises a comparator unit (11) which is configured to compare data of the program code (22) with reference data (23) in order to produce a comparison result to compare, if the execution environment (21) conveys a termination command to the program code (22), and a detection unit (12) which is configured to detect a manipulation of the program code (22) on the basis of the comparison result. According to the invention, the device can prevent data, which is produced or used during the execution of a program code, from continuing to be used after termination of the program code if an attack or manipulation of the program code has occurred. A method is further proposed for detecting a manipulation to a program code.