Shared Library Access Control via Call Stack Inspection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in securely authorizing access to shared libraries, as unauthorized programs can masquerade as authorized ones, and malicious code can exploit API methods, leading to unauthorized access.

Innovation Solution

The method involves inspecting the call stack of processes attempting to access shared libraries to determine if the methods initiating the access are authorized, using policies like blacklists, whitelists, and designations of trustworthiness, and assigning tokens for authorized access to bypass subsequent stack inspections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional access control methods are used to limit API method access to authorized programs, then access control is simplified, but security is weakened because unauthorized programs can masquerade as authorized ones through inter-process communication or code injection

Engineering Contradiction:
ImprovesecurityVSAvoidaccess control complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the access control verification process into two distinct parts: (1) verifying the authorized program's identity, and (2) verifying the authorization of the specific method initiating the API call. This is achieved by inspecting the call stack to identify and verify each method in the call chain, rather than simply checking the calling program. This segmentation resolves the contradiction by maintaining simple program-level access control while adding sophisticated method-level verification to prevent masquerading attacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-establishing a policy that defines which methods are authorized to access shared library API methods. This policy is configured in advance and stored for reference during runtime verification. The call stack inspection mechanism is also prepared in advance, enabling rapid verification without complex runtime decision-making. This preliminary setup resolves the contradiction by providing simple, pre-defined access rules while implementing robust verification through the pre-configured inspection mechanism.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If call stack inspection is performed for every access attempt to verify method authorization, then security is improved by preventing masquerading attacks, but processing time increases due to repeated inspection overhead

Engineering Contradiction:
ImprovesecurityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-establishing a policy that defines which methods are authorized to access shared library API methods. This policy is configured in advance and stored for reference during runtime verification. The call stack inspection mechanism is also prepared in advance, enabling rapid verification without complex runtime decision-making. This preliminary setup resolves the contradiction by providing simple, pre-defined access rules while implementing robust verification through the pre-configured inspection mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates and maintains a copy of the authorized methods policy in memory for rapid access during runtime verification. Instead of repeatedly accessing complex authorization systems or re-evaluating access rules, the system uses this pre-loaded policy copy to quickly determine whether each method in the call stack is authorized. This copying approach resolves the contradiction by enabling fast verification decisions while maintaining comprehensive security checks.

Inventive Principle:
Principle #26Copying

3Measurement precision

If comprehensive call stack inspection is implemented to identify all methods in the call chain, then authorization accuracy is improved, but device complexity increases due to the need for detailed stack analysis and policy matching

Engineering Contradiction:
Improveauthorization accuracyVSAvoidinspection mechanism complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the access control verification process into two distinct parts: (1) verifying the authorized program's identity, and (2) verifying the authorization of the specific method initiating the API call. This is achieved by inspecting the call stack to identify and verify each method in the call chain, rather than simply checking the calling program. This segmentation resolves the contradiction by maintaining simple program-level access control while adding sophisticated method-level verification to prevent masquerading attacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary policy mechanism that serves as a mediator between the complex call stack inspection process and the simple access control decision. The policy acts as a lookup table or reference guide that translates the detailed method identification from call stack inspection into straightforward authorization decisions. This intermediary approach resolves the contradiction by providing a simple interface for access control while enabling comprehensive verification through the policy-mediated inspection process.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9509697B1Systems and methods for authorizing attempts to access shared libraries
Publication Date: 2016.11.29 GEN DIGITAL INC
  • US9509697B1 patent drawing
  • US9509697B1 patent drawing
  • US9509697B1 patent drawing

AI summary

The disclosed computer-implemented method for authorizing attempts to access shared libraries may include (1) detecting an attempt by a process to access a shared library, (2) identifying a call stack of the process, (3) inspecting the call stack to determine whether a method that initiated the attempt is authorized to access the shared library, and (4) causing the attempt to be allowed if the method is authorized to access the shared library or blocked if the method is not authorized to access the shared library. Various other methods, systems, and computer-readable media are also disclosed.