Scripting Security Mechanism for Interpreting Scripts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Interpreted code in scripting languages poses security risks due to the inability to mark memory pages as executable or non-executable, allowing malicious commands to be interpreted and executed, which can harm computer systems.

Innovation Solution

A scripting-language syntax is introduced that designates code and data within scripts, allowing the interpreter to process data constructs using a restricted set of operations, preventing harmful commands from being executed, and includes options for variable export and constraint specification to further enhance security.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the interpreter processes all input data using the full set of operations, then the script functionality is complete and versatile, but security risks increase as malicious commands can be executed

Engineering Contradiction:
Improvescript functionalityVSAvoidsecurity risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the interpreter's operations into two distinct sets: a full set of operations for normal script execution and a restricted subset for processing data from data constructs. This segmentation allows the interpreter to maintain full functionality when processing legitimate script code while applying security restrictions only when processing potentially malicious input data, thus resolving the contradiction between versatility and security.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different processing qualities to different parts of the input. Data constructs are identified and processed with restricted operations, while the rest of the script processes normally with full operations. This local differentiation ensures that security restrictions are applied precisely where needed (to input data) without compromising the overall functionality of the script.

Inventive Principle:
Principle #3Local quality

2Reliability

If data constructs are processed with restricted operations, then security is improved by preventing harmful commands, but the functionality of data processing is reduced

Engineering Contradiction:
ImprovesecurityVSAvoiddata processing capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces data constructs as an intermediary mechanism between input data and the interpreter's full operation set. The data construct syntax acts as a mediator that marks specific data regions, allowing the interpreter to apply restricted operations only to these marked regions while maintaining full functionality elsewhere. This intermediary approach preserves security without unnecessarily limiting overall data processing capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If formal review and testing procedures are applied to scripts and input data, then security is improved, but the complexity and time required for script deployment increases

Engineering Contradiction:
ImprovesecurityVSAvoidreview and testing procedure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary security action by using syntax-based identification of data constructs during script interpretation. Instead of requiring formal review and testing procedures after script creation, the security mechanism is built into the interpretation process itself through preliminary syntax analysis. This allows security checks to occur automatically during normal operation without adding separate review and testing steps.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables the interpreter to perform its own security checks automatically through syntax-based identification of data constructs. The interpreter services its own security needs by recognizing data construct syntax and applying restricted operations accordingly, eliminating the need for external formal review and testing procedures. This self-service approach maintains security without increasing deployment complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7624373B2Security mechanism for interpreting scripts in an interpretive environment
Publication Date: 2009.11.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7624373B2 patent drawing
  • US7624373B2 patent drawing
  • US7624373B2 patent drawing

AI summary

The techniques and mechanisms described herein are directed to a scripting security mechanism that minimizes security risks associated with interpreting a script written with a scripting language. An interpreter recognizes the scripting-language syntax within the script and processes each line that is designated within a data block using a restrictive set of operations. The restrictive set of operations are a subset of the total operations available for processing. If one of the lines within the data block attempts to perform an operation that is not within the restrictive set of operations, the interpreter provides an indication, such as an exception or message explaining the illegal operation. The interpreter also recognizes a list of export variables associated with the data block and exports only the variables identified in the list to an external environment if the export variable meets a constraint identified for it, if any.