Static Code Analysis for Cross-Service Parameter Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems lack the ability to effectively analyze and detect errors within executable code, particularly across different code objects of varying languages or architectures, as traditional compilers and interpreters are limited to analyzing native code and struggle with service invocations across modular network-based services.

Innovation Solution

The on-demand code execution system provides a network-based code analysis system that performs static analysis of service invocations within code to identify potential issues such as parameter mismatches, privilege escalation vulnerabilities, and impedance mismatches, even in complex chained invocations, by maintaining a datastore of service information and utilizing monitoring data from past executions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional compilers and interpreters are used to analyze code, then analysis is limited to native code only, but the ability to analyze service invocations across different code objects and languages is lost

Engineering Contradiction:
Improveability to analyze service invocations across different code objectsVSAvoiderror detection capability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The code analysis system is designed to perform multiple functions: analyzing native code, detecting service invocations, validating parameters across different services, and identifying errors. This multi-functional approach allows the system to handle diverse code objects and service types uniformly, resolving the contradiction between adaptability and reliability

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

Solution Approach 2:

The system introduces an intermediary code analysis layer that sits between the code execution and service invocation. This intermediary performs static analysis to detect potential errors before execution, bridging the gap between traditional compilers and dynamic service environments, thereby improving both adaptability and error detection

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If static analysis is performed on service invocations to identify potential issues, then comprehensive error detection is achieved, but analysis time and system complexity increase

Engineering Contradiction:
Improveerror detection capabilityVSAvoidanalysis time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary static analysis of service invocations before code execution to identify potential errors, parameter mismatches, and security vulnerabilities. By detecting issues in advance rather than during runtime, the system achieves comprehensive error detection without adding significant overhead to the execution process

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The code analysis system performs analysis selectively on service invocations rather than all code paths. It focuses on detecting parameter validity and potential errors in cross-service calls, applying analysis only where necessary to maintain efficiency while achieving sufficient error detection coverage

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If code analysis is performed without execution to provide real-time feedback, then latency is reduced, but the precision of error detection may be compromised

Engineering Contradiction:
Improvereal-time execution capabilityVSAvoiderror detection precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system performs preliminary static analysis of service invocations before code execution to identify potential errors, parameter mismatches, and security vulnerabilities. By detecting issues in advance rather than during runtime, the system achieves comprehensive error detection without adding significant overhead to the execution process

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system replaces dynamic runtime error detection with static analysis mechanisms. Instead of executing code to detect errors, it uses compiler-like static analysis techniques to identify potential issues in service invocations, achieving both real-time feedback and precise error detection without requiring code execution

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10572375B1Detecting parameter validity in code including cross-service calls
Publication Date: 2020.02.25 AMAZON TECH INC
  • US10572375B1 patent drawing
  • US10572375B1 patent drawing
  • US10572375B1 patent drawing

AI summary

Systems and methods are described for conducting static analysis of code invoking network-based services to identify, without requiring execution of the code, errors that may be introduced due to the invocations of the network-based services. A system is provided that may analyze code to detect both direct invocations of services, as well as indirect invocations caused by the direct invocations. The system can model inputs and outputs of directly or indirectly invoked services to identify errors in parameters passed to those services, even when the errors are not apparent from an analysis of the code in isolation. In some instances, the system can traverse a “call graph” of all services invoked by code either directly or indirectly to trace parameter errors through multiple levels of indirection.