Symmetric Bridge Component for Kernel-User Mode Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current security software systems require OS-specific code bases to communicate between kernel-level and user-level components, and they must be asymmetric, making it challenging to implement secure data communication across different operating systems and loading orders.

Innovation Solution

A symmetric bridge component is introduced that provides a cross-platform interface for sending data between kernel-mode and user-mode components, exposing a common API to hide underlying OS and mode asymmetries, allowing communication in both directions without sequencing startup operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If OS-specific code bases are used to communicate between kernel-level and user-level components, then communication functionality can be achieved on each operating system, but device complexity and maintenance burden increase due to needing multiple different code bases for different OS types

Engineering Contradiction:
Improvecross-platform compatibilityVSAvoidcode base complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The bridge component implements a universal communication interface that works across multiple operating systems (Windows, macOS, Linux) without requiring OS-specific code bases. The component provides standardized functions for creating connections, sending data, and receiving data between kernel-mode and user-mode applications, eliminating the need to maintain separate code bases for each OS platform.

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

Solution Approach 2:

The bridge component acts as an intermediary layer between kernel-mode and user-mode components. It provides a standardized interface that mediates communication between these modes, handling the complexity of OS-specific communication mechanisms internally while presenting a uniform API to both kernel and user applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If asymmetric code bases are used to enable communication in different directions (user-to-kernel vs kernel-to-user), then communication functionality is achieved, but ease of operation deteriorates due to needing different source code for different communication directions

Engineering Contradiction:
Improveease of implementing communicationVSAvoidcode base asymmetry
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The bridge component internally handles the asymmetry of different communication mechanisms (e.g., Netlink sockets for Linux, RPC for Windows) by providing a symmetric, unified interface. The component's internal implementation may vary by OS and direction, but the external API remains consistent, allowing developers to use the same code for all communication scenarios.

Inventive Principle:
Principle #4Asymmetry

Solution Approach 2:

The bridge component provides universal functions that work for both user-to-kernel and kernel-to-user communication directions. The same API calls can be used regardless of communication direction or underlying OS mechanism, simplifying developer work while maintaining full functionality.

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

3Adaptability or versatility

If different loading orders of kernel-level and user-level components are supported, then adaptability to different operating systems is improved, but reliability of communication may worsen due to potential startup sequencing issues

Engineering Contradiction:
Improveloading order flexibilityVSAvoidcommunication reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The bridge component performs preliminary initialization actions to ensure it is ready for communication before actual data transfer begins. When a connection is requested, the component checks whether it has been properly initialized and creates the necessary communication infrastructure in advance, ensuring reliable communication regardless of component loading order.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The bridge component implements feedback mechanisms to track the initialization state of communication connections. Before allowing data transfer, the component verifies that both kernel-mode and user-mode endpoints are properly initialized, providing a reliability check that prevents communication failures due to startup sequencing issues.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3364294B1Symmetric bridge component for communications between kernel mode and user mode
Publication Date: 2024.07.03 CROWDSTRIKE
  • EP3364294B1 patent drawingFigure 1
  • EP3364294B1 patent drawingFigure 2
  • EP3364294B1 patent drawingFigure 3A

AI summary

A symmetric, cross-platform, bridge component is described herein. The bridge component creates an interface (through a set of application programming interfaces (APIs)) to enable the sending of data between a pair of components, called "endpoints," a first endpoint component of the pair being executed in a kernel mode of a computing device, and a second endpoint component of the pair being executed in a user mode of the computing device. A process for sending data between a kernel-level endpoint component and a user-level endpoint component executing on a computing device involves opening a communications port, setting the communications port to a connected state, and sending a message containing the data via the communications port. Data may be transmitted in this manner between the user mode and the kernel mode of the computing device in either direction.