Electronic Control Unit Selective Check Instruction Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing control flow integrity (CFI) techniques for preventing buffer overflow attacks are time-consuming and inefficient, especially when dealing with function calls and returns between non-trusted domains, as they do not effectively manage overhead and can allow unintended instruction execution.
Innovation Solution
An electronic control unit that includes a memory to store program control flows, a check instruction to verify executable code, and a determination mechanism based on use frequency and load measurements to selectively execute check instructions, reducing overhead by skipping unnecessary checks on frequently used functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If control flow integrity (CFI) technique checks all call/return addresses to prevent buffer overflow attacks, then security against buffer overflow attacks is improved, but execution time overhead increases
Solution Approach 1:
The patent applies partial checking by selectively applying CFI checks only to functions marked as critical in a whitelist, rather than checking all function call/return addresses. This partial action approach maintains security for critical functions while avoiding the time overhead of checking non-critical functions, thus resolving the contradiction between security and execution time.
Solution Approach 2:
The patent implements local quality by differentiating between critical and non-critical functions through a whitelist mechanism. Critical functions receive enhanced security checking while non-critical functions use standard checking. This localized security approach optimizes the balance between security requirements and execution performance for different parts of the system.
2Measurement precision
If CFI technique checks all function calls and returns, then detection capability of malicious programs is improved, but system productivity decreases
Solution Approach 1:
The patent applies partial checking by selectively enabling CFI detection only for critical functions listed in a whitelist. This ensures high detection precision for malicious programs targeting critical functions while avoiding the productivity penalty of checking all functions, thus resolving the contradiction between detection capability and system productivity.
3Speed
If domain-based execution restriction is applied to reduce overhead, then execution speed is improved, but security coverage is reduced allowing unintended instruction execution
Solution Approach 1:
The patent applies partial CFI checking only to critical functions in a whitelist rather than implementing domain-based restrictions that would skip checks entirely. This approach maintains security coverage for critical functions while minimizing overhead, avoiding the security gaps created by domain-based execution restriction.
Solution Approach 2:
The patent implements local security quality by applying enhanced CFI checking specifically to critical functions identified in a whitelist, rather than applying uniform domain-based restrictions. This localized approach ensures security coverage where needed while maintaining execution speed in non-critical areas.
Data Source
AI summary
An electronic control unit includes: a memory saving a program that has a call/return to/from a function represented as a control flow together with the function itself and a check instruction inserted in a program code of the program for checking whether the program code is executable based on the control flow. The electronic control unit may also include an input unit receiving an input of use frequency information indicative of a use frequency of the function; a measurement unit measuring a load of the electronic control unit; an execution object determiner determining the check instruction to be executed based on the use frequency information and the load; and an arithmetic unit executing the check instruction determined by the execution object determiner at a time of execution of the program.


