Managed Code Security Requirement Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesecurity requirement accuracyVSAvoidtime consumption
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
ImprovepracticalityVSAvoidtime consumption
Core Design Contradiction:
Ease of operationVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If knowledge of code in shared libraries is required for security checks, then security accuracy is improved, but ease of operation worsens

Engineering Contradiction:
Improvesecurity check accuracyVSAvoidease of development
Core Design Contradiction:
Measurement precisionVSEase of operation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If static simulation of all execution paths is performed, then security requirement accuracy is improved, but computational complexity increases

Engineering Contradiction:
Improvesecurity requirement accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7743423B2Security requirement determination
Publication Date: 2010.06.22 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7743423B2 patent drawing
  • US7743423B2 patent drawing
  • US7743423B2 patent drawing

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.