Scripting Security Mechanism for Interpreting Scripts
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
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.
Data Source
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.


