Kernel Namespace Security Policy Enforcement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Linux Security Module (LSM) infrastructure faces challenges in maintaining security policies due to their complexity and the potential for privilege elevation, where processes inherit higher rights than their creators, leading to inadequate security enforcement.

Innovation Solution

A method is introduced that allows processes in user space to define and manage their own security policies through a kernel namespace, enabling the execution of security policies associated with system calls, even without administrator privileges, and ensuring that processes cannot exceed the rights defined by their ancestor namespaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If LSM modules are used to apply security policies at kernel level, then security policies can be enforced for different software stacks, but the modules become difficult to maintain since they incorporate both the security policy itself and its implementation

Engineering Contradiction:
Improvesecurity policy enforcementVSAvoidmodule complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent separates security policies from their implementation by introducing a distinct data structure (security_policy) that stores policy definitions separately from the LSM module code. This allows policies to be loaded, unloaded, and modified independently without recompiling or reloading the entire LSM module, thereby reducing maintenance complexity while maintaining enforcement reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts security policies as separate entities from the LSM module implementation. Policies are stored in a dedicated kernel data structure that can be independently managed, allowing the LSM module to remain a stable, well-tested component while policies can be updated separately. This extraction resolves the contradiction by maintaining reliability through the stable module while reducing complexity through separable policy management.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If LSM modules apply security policies by process or by process hierarchy, then policies can be enforced, but privilege elevation may occur where a process has higher rights than its creator

Engineering Contradiction:
Improvesecurity policy applicationVSAvoidprivilege elevation
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent implements a feedback mechanism where security policies are explicitly associated with processes through namespace inheritance. When a process creates a child process, the child inherits the security policy namespace, ensuring that the child process is subject to the same security constraints as its parent. This prevents privilege elevation by maintaining continuous security policy enforcement across process hierarchies, resolving the contradiction between reliable policy application and preventing harmful privilege escalation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces a new dimension for security policy application by using namespace inheritance instead of traditional process hierarchy-based policy application. This allows security policies to be applied in a way that transcends the traditional parent-child process relationship, ensuring that policies are maintained across process creation events. This dimensional shift prevents privilege elevation while maintaining reliable policy enforcement.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Adaptability or versatility

If a process creates another process through a process with which the requesting process has no parental link, then the requesting process can bypass security policies, but this creates security gaps in the policy enforcement

Engineering Contradiction:
Improveprocess creation flexibilityVSAvoidsecurity policy application
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent makes the security policy namespace inheritance mechanism universal, applying it to all process creation scenarios regardless of the parental link relationship. When any process creates a child process, the child automatically inherits the security policy namespace of the creating process. This universal inheritance mechanism ensures that security policies are reliably applied in all process creation scenarios, including those with no traditional parental link, thus resolving the contradiction between creation flexibility and policy enforcement reliability.

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

Data Source

PatentUS20230195884A1Method for securing a system call, method for implementing an associated security policy and devices for carrying out such methods
Publication Date: 2023.06.22 ORANGE SA
  • US20230195884A1 patent drawing
  • US20230195884A1 patent drawing
  • US20230195884A1 patent drawing

AI summary

Methods for securing a system call and methods for implementing an associated security policy are described, along with devices for carrying out such methods. The securing method secures at least one system call triggered by a current process of a user space of a software system. This method is implemented by a kernel of the software system before executing at least one operation triggered by the at least one system call and includes obtaining at least one namespace of the kernel, the namespace being dedicated to the security management associated with the current process, executing a security policy associated with the operation and recorded in an area of the kernel defined in the namespace, obtaining at least one ancestor namespace of the current process dedicated to the security management, executing a security policy associated with the operation and recorded in an area of the kernel defined in the ancestor namespace, and processing the system call according to a result of these executions.