Memory Fractionation for Software Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software protection systems face challenges in ensuring the security and robustness of critical software components due to potential untrusted hardware components, making it difficult to completely move software and data out-of-band, and there is no silver bullet solution to mitigate the risks of hardware-based threats.

Innovation Solution

Implementing memory fractionation by dividing application software into fractions, ensuring that at any given time, at least one fraction is not accessible from the user or kernel space, thereby protecting critical program information and hindering reverse engineering and malicious alterations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software is moved out-of-band to secure hardware or hypervisor, then software protection is improved, but the assumption of trusted hardware is violated due to supply chain threats

Engineering Contradiction:
Improvesoftware protectionVSAvoidhardware compromise risk
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The software is divided into multiple fractions, each stored in separate memory locations. At any given time, only a subset of fractions is accessible from user or kernel space, while at least one fraction remains inaccessible. This segmentation prevents attackers from obtaining complete software even if they compromise hardware or operating system, directly resolving the contradiction between software protection and hardware trust assumptions.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If complete software is made accessible for execution, then system functionality is maintained, but attackers can access and modify all software components

Engineering Contradiction:
Improvesoftware accessibilityVSAvoidattack surface
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

Software is fractionated into multiple parts with selective accessibility. The system maintains full functionality by loading and executing necessary fractions while keeping others inaccessible. This reduces the attack surface because attackers cannot access or modify the complete software, even if they compromise the operating system or hardware, while still allowing the software to function properly.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically manages software accessibility by loading different fractions into accessible memory spaces only when needed for execution. At any point in time, at least one fraction remains inaccessible, creating a dynamic protection mechanism that adapts to execution requirements while maintaining security. This resolves the contradiction between maintaining full software accessibility for functionality and limiting access to reduce attack surface.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10891167B2Memory fractionation software protection
Publication Date: 2021.01.12 SIEGE TECHNOLOGIES LLC
  • US10891167B2 patent drawing
  • US10891167B2 patent drawing
  • US10891167B2 patent drawing

AI summary

A method of protecting software in a computer system includes defining a memory fractionation configuration for an application software program in the computer system, fractionating at least one page of the application software program into fractions according to the memory fractionation configuration, and running the application in such a manner that, at any particular point in time when the application is running, at least a first one of the fractions is stored in a manner that is not accessible from a user space or a kernel space of the computer system.