Runtime Code Access Security Checks for Untrusted Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing security measures in software deployment, such as accessibility domain checks, lack the necessary control and granularity to manage access in sandbox environments where code from unknown or untrusted sources is executed, especially when finer control across assembly or program boundaries is required without compromising security.

Innovation Solution

Implementing runtime code access security checks that allow a first program to access private members of a second program if it has a greater than or equal security context, using a framework environment to manage execution and determine access rights dynamically, thereby enhancing security without exposing protected resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If accessibility domain checks are performed at compile time to enforce security, then security is improved, but the system lacks runtime flexibility and finer control over access permissions

Engineering Contradiction:
ImprovesecurityVSAvoidruntime flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent performs accessibility domain checks at compile time as a preliminary security measure, establishing baseline security rules before runtime execution. This preliminary action ensures that basic accessibility constraints are embedded in the code structure, providing a foundation of security that can then be supplemented with runtime flexibility through the framework's permission system.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic runtime accessibility checks that operate alongside compile-time checks. The framework evaluates security contexts dynamically at runtime, allowing access decisions to be made based on current execution state, security credentials, and policy rules. This dynamic layer adds runtime flexibility while maintaining the security guarantees established at compile time.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If friend assemblies are used to allow access across assembly boundaries, then accessibility is improved, but security control is weakened because only specifically indicated internal types can be accessed

Engineering Contradiction:
ImproveaccessibilityVSAvoidsecurity control
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies different security check strategies to different contexts. For friend assemblies, the system performs localized accessibility domain checks that are tailored to the specific assembly relationship. This allows friend assemblies to access internal types while maintaining security control through context-aware evaluation, rather than applying a uniform security policy across all assembly boundaries.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces a framework-mediated security check layer that acts as an intermediary between friend assemblies and internal types. This intermediary evaluates security contexts and determines whether access should be granted, providing fine-grained security control over friend assembly access. The mediator can enforce policies that allow or deny access based on security credentials, preventing unauthorized access even between friend assemblies.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If sandbox environments are implemented to restrict access to system resources, then security is improved, but the ability to execute code from unknown or untrusted sources is limited

Engineering Contradiction:
ImprovesecurityVSAvoidcode execution flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic security context evaluation within sandbox environments. Instead of static, rigid access restrictions, the framework dynamically assesses security contexts at runtime based on the executing code's credentials, the target resource's requirements, and applicable security policies. This dynamic evaluation allows the sandbox to adaptively permit or deny access, enabling execution of untrusted code when security conditions are satisfied while maintaining protection when they are not.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes security parameters dynamically based on execution context. Security decisions are not made based on fixed rules but on evaluated security context parameters that include code origin, requested permissions, target resource sensitivity, and policy configurations. This parameter-based approach allows the sandbox environment to flexibly adjust access decisions, permitting code execution from unknown sources when security parameters indicate safety while blocking access when parameters indicate risk.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8443188B2Using code access security for runtime accessibility checks
Publication Date: 2013.05.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8443188B2 patent drawing
  • US8443188B2 patent drawing
  • US8443188B2 patent drawing

AI summary

Various technologies and techniques are disclosed that use code access security for providing runtime accessibility checks. A request is received from a first program to access at least one private member of a second program at runtime. If the first program has a greater than or equal security context than the second program, then the first program is granted access to the at least one private member of the second program. This code access security check can be provided in a framework environment that is responsible for managing programs that are from unknown or untrusted sources.