Kernel Address Space Segmentation for Secure System Calls

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing system call mechanisms are vulnerable to attacks from malicious user programs, compromising kernel security, and current solutions for resource isolation, such as Linux namespaces and containerization, either fail to completely isolate critical resources or suffer from performance and compatibility issues.

Innovation Solution

A method where user programs in a user address space request system services via program call instructions in an application interface code library, determining a target authorized address space and system service routine to run the service within that space, maintaining security and efficiency by isolating the impact to only the designated space.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If system calls are used to provide system services from user space to kernel space, then system service functionality is achieved, but security is compromised due to potential malicious attacks on the kernel

Engineering Contradiction:
Improvekernel securityVSAvoidmalicious attack vulnerability
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent divides the kernel space into multiple isolated address spaces (first address space, second address space, etc.), each providing specific system services. This segmentation ensures that a malicious user program can only affect the specific address space it attacks, not the entire kernel. The first address space handles security-critical services while the second address space handles other system services, creating security zones within the kernel.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediate layer between user space and kernel space by using address space virtualization. The processor determines which address space should handle a system call based on the service type, acting as an intermediary that directs traffic appropriately. This intermediary mechanism prevents direct unauthorized access to critical kernel areas while maintaining legitimate system service functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If kernel space is isolated from user space to improve security, then security is improved, but system service efficiency and compatibility may deteriorate

Engineering Contradiction:
Improvekernel securityVSAvoidsystem service efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent makes address spaces universal by enabling multiple address spaces to provide system services similar to traditional kernel space. Each address space can handle various system service requests, and the processor can dynamically route calls to appropriate address spaces. This multi-functionality ensures that security isolation does not come at the cost of system service efficiency or compatibility.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent performs preliminary setup by creating multiple authorized address spaces with pre-configured system service routines before user programs execute. The processor is pre-programmed with logic to determine which address space should handle each type of system call. This preliminary action eliminates runtime overhead for security checks while maintaining efficient system service delivery.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12254079B2Providing system services
Publication Date: 2025.03.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12254079B2 patent drawing
  • US12254079B2 patent drawing
  • US12254079B2 patent drawing

AI summary

Embodiments of the present disclosure relate to a method, system and computer program product for providing system services. In some embodiments, a method is disclosed. According to the method, from a user program in a user address space, a request for a system service is received via a program call instruction of a set of program call instructions in an application interface code library. Based on the program call instruction, a target authorized address space of a plurality of authorized address spaces and a target system service routine for providing the system service in the target authorized address space is determined. A result of running the target system service routine in the target authorized address space is returned to the user program as a response to the request.