Runtime Code Access Security Checks for Untrusted Software
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


