Extensible Security Architecture for Script Interpretation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing interpretive environments face security challenges due to outdated scripting languages that were not designed to prevent attacks, with current solutions either compromising portability or being time-consuming and incomplete in addressing new security issues.

Innovation Solution

An extensible security architecture that includes a script engine and a security manager to process scripts based on a security policy, allowing for customizable security features and domain-specific authorization through overriding base security class methods.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If special purpose code is added into different commands of the shell to perform additional security checking, then security is improved, but time consumption increases and the system becomes more complex

Engineering Contradiction:
ImprovesecurityVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The security checking functionality is segmented into separate security classes (e.g., BaseSecurityClass, CommandSecurityClass, AssemblySecurityClass) that can be independently implemented and selected. This allows security checks to be divided into manageable units that can be applied selectively to different commands and assemblies, reducing the time required to implement comprehensive security measures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The BaseSecurityClass serves as a universal foundation that can be inherited and extended by multiple specialized security classes. This multi-functional approach allows a single base structure to handle various security concerns (command-level, assembly-level, parameter-level) without requiring separate independent systems, thereby reducing overall implementation time.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If special purpose code is added into different commands of the shell to perform additional security checking, then security is improved, but device complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The security system is segmented into hierarchical classes (BaseSecurityClass at the foundation, CommandSecurityClass for command-specific checks, AssemblySecurityClass for assembly-level checks) that organize complexity in a manageable structure. Each class handles specific security aspects, making the overall system easier to understand and maintain despite the multiple security layers.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The security classes are nested within each other in a hierarchical manner, where CommandSecurityClass and AssemblySecurityClass inherit from and extend BaseSecurityClass. This nesting allows security functionality to be organized in concentric layers, where inner layers provide specialized security checks while outer layers provide foundational security mechanisms, reducing perceived complexity.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Reliability

If commands within the shell are disabled to provide security, then security is improved, but portability of shell scripts is affected

Engineering Contradiction:
ImprovesecurityVSAvoidportability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The security system dynamically evaluates each command and assembly against defined security policies rather than statically disabling commands. The BaseSecurityClass and its derivatives can be configured to allow or block specific commands based on runtime conditions, enabling security to be adapted to different scripting contexts without permanently restricting portability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Security policies are implemented through configurable parameters and attributes that can be changed based on the specific scripting environment and requirements. By adjusting security parameters (such as allowed command lists, assembly signatures, or execution contexts), the system maintains security while preserving script portability across different environments.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If new special purpose code is added to address new security issues, then security is improved, but time consumption increases

Engineering Contradiction:
ImprovesecurityVSAvoidtime consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The BaseSecurityClass serves as a universal platform that can accommodate multiple security concerns (authorization checks, signature validation, command filtering, assembly verification) through a single inheritable structure. New security features can be added by creating new classes that inherit from BaseSecurityClass, avoiding the need to rewrite existing security code for each new security requirement.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The security system uses dynamic class inheritance and policy configuration to adapt to new security issues. Rather than requiring extensive code modifications, new security features can be implemented by dynamically configuring existing classes or creating new derived classes, allowing the system to evolve with emerging security threats without time-consuming rewrites.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7631341B2Extensible security architecture for an interpretive environment
Publication Date: 2009.12.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7631341B2 patent drawing
  • US7631341B2 patent drawing
  • US7631341B2 patent drawing

AI summary

The Techniques and Mechanisms Described Herein are Directed to an Extensible security architecture that provides a security mechanism for minimizing security problems within interpretive environments. The extensible security architecture comprises a script engine configured to process a script and a security manager configured to monitor the processing of the script based on a security policy. The security manager determines whether to open an assembly associated with a command within the script, whether to process the command, whether to allow certain input to the command, and the like. The security policy may be implemented by overriding one or more methods of a base security class that are called when processing the script. The input may be an object passed via an object-based pipeline.