Processor Speculative Execution Security via Selective Cache Flush

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Speculative execution of branching instructions in processors creates vulnerabilities for malicious actors to extract sensitive information, leading to performance losses when remediation methods are implemented to prevent such attacks.

Innovation Solution

Classifying application code as trusted or untrusted based on security classification, and inserting cache flush instructions only before executing untrusted code to mitigate speculative execution threats, thereby reducing performance losses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If speculative execution is enabled to increase program execution efficiency, then processing speed is improved, but system security deteriorates due to vulnerabilities for information extraction attacks

Engineering Contradiction:
Improveprogram execution speedVSAvoidsystem security
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent applies local quality by differentiating between trusted and untrusted code regions, applying cache flush instructions only before untrusted code execution. This localized approach maintains speculative execution performance for trusted code while providing security protection only where needed, resolving the contradiction between speed and security.

Inventive Principle:
Principle #3Local quality

2Reliability

If cache flush instructions are inserted before all code execution to prevent speculative execution attacks, then system security is improved, but processing speed deteriorates due to performance losses

Engineering Contradiction:
Improvesystem securityVSAvoidprogram execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system performs local quality assessment by classifying code as trusted or untrusted and applies cache flush instructions only in untrusted code regions. This selective application maintains high execution speed for trusted code while providing security protection where needed, resolving the contradiction between security and speed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Instead of applying cache flush instructions to all code (excessive action), the patent applies them only to untrusted code portions (partial action). This reduces the overhead and performance impact while maintaining adequate security protection against speculative execution attacks.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If remediation methods are implemented to mitigate speculative execution threats, then system security is improved, but productivity deteriorates due to performance losses

Engineering Contradiction:
Improvesystem securityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements local quality by identifying and marking untrusted code regions, then applying remediation (cache flush instructions) only to those specific regions. This approach maintains high productivity for trusted code paths while providing security protection where needed, resolving the contradiction between security and productivity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11520866B2Controlling processor instruction execution
Publication Date: 2022.12.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11520866B2 patent drawing
  • US11520866B2 patent drawing
  • US11520866B2 patent drawing

AI summary

Improving execution of application program instructions by receiving code having a security classification, determining that the code is untrusted according to the security classification and inserting instructions for a cache flush associated with executing the code.