Managed Code Security Requirement Simulation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developers face inefficiencies in determining the minimum security requirements for managed code execution in a managed environment, leading to potential security exceptions, especially when using shared libraries with unknown code, as manual reviews and try-and-error methods are time-consuming and impractical.
Innovation Solution
A tool simulates all possible execution paths of managed code to derive the union of permissions sets, estimating the minimum security requirements needed to execute the code without triggering security exceptions, by statically simulating data and control flows across assemblies and shared libraries.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If manual review of every line of code is performed to determine security requirements, then security accuracy is improved, but time consumption increases significantly
Solution Approach 1:
The patent creates a copy of the managed code's execution logic through a simulation engine that replicates the behavior of the common language runtime. This simulation copy allows security requirements to be determined by analyzing the simulated execution paths rather than manually reviewing actual code, thereby maintaining accuracy while reducing time consumption.
Solution Approach 2:
The patent performs security analysis in advance by simulating all possible execution paths before the code is deployed. The simulation engine pre-determines the security requirements by tracing through potential execution paths and identifying permission needs, eliminating the need for time-consuming manual reviews later in the development process.
2Ease of operation
If try-and-error execution is used to determine security requirements, then practicality is improved, but time consumption and development efficiency worsen
Solution Approach 1:
The simulation engine performs security analysis in advance by simulating all possible execution paths before the code is deployed. The simulation engine pre-determines the security requirements by tracing through potential execution paths and identifying permission needs, eliminating the need for time-consuming manual reviews later in the development process.
Solution Approach 2:
The patent implements a feedback mechanism where the simulation engine provides security requirement information back to the developer. This feedback includes the identified permission sets and security contexts needed for code execution, allowing developers to adjust their code accordingly without repeated trial-and-error execution cycles.
3Measurement precision
If knowledge of code in shared libraries is required for security checks, then security accuracy is improved, but ease of operation worsens
Solution Approach 1:
The simulation engine acts as an intermediary between the developer and the shared library code. Instead of requiring the developer to directly understand and analyze the code in shared libraries, the simulation engine automatically traces execution paths through these libraries and determines the security requirements, shielding the developer from complexity while maintaining accuracy.
4Measurement precision
If static simulation of all execution paths is performed, then security requirement accuracy is improved, but computational complexity increases
Solution Approach 1:
The patent segments the execution path analysis into manageable components by tracking individual permission sets associated with different execution paths. The simulation engine divides the complex task of analyzing all possible paths into smaller sub-tasks, collecting permission information incrementally as each path is simulated, thereby reducing computational complexity while maintaining comprehensive coverage.
Data Source
AI summary
All execution paths of one or more assemblies in managed code are simulated to find the permissions for each execution path. The managed code can correspond to a managed shared library or a managed application. Each call in each execution path has a corresponding permissions set. When the library or application has permissions to execute that are not less than the required permission sets for the execution paths, any dynamic execution of the library or application will not trigger a security exception The simulated execution provides a tool that can be used to ensure that code being written will not exceed a maximum security permission for the code. A permission set can be determined by the tool for each assembly corresponding to an application and for each entry point corresponding to a shared library.


