SDK Analysis Module Identifying Implicit Assumptions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Application developers often produce faulty applications due to implicit assumptions in software development kits (SDKs) and their accompanying guides, which are not explicitly stated, leading to security vulnerabilities and substandard performance, especially in authentication and authorization operations.

Innovation Solution

A software development environment with an analysis module that identifies implicit assumptions in SDKs and their documentation, and a test suite production module that generates vulnerability patterns to help developers modify their applications and remove associated vulnerabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers follow ad hoc guide production methods, then documentation can be created quickly, but implicit assumptions remain undetected leading to security vulnerabilities

Engineering Contradiction:
Improvedocumentation creation speedVSAvoidapplication security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The analysis module performs preliminary analysis of the software product and documentation to identify implicit assumptions before developers use the documentation. This proactive identification of potential security issues allows the system to flag problems in advance, preventing vulnerabilities from being introduced during application development while maintaining efficient ad hoc documentation creation processes

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where the analysis module continuously evaluates the software product and documentation, identifying implicit assumptions and feeding this information back to developers. This feedback loop enables developers to awareness of potential security issues without requiring formal, time-consuming documentation review processes

Inventive Principle:
Principle #23Feedback

2Ease of operation

If implicit assumptions are not identified, then documentation remains simple and easy to follow, but applications produced are faulty and vulnerable

Engineering Contradiction:
Improvedocumentation usabilityVSAvoidapplication quality
Core Design Contradiction:
Ease of operationVSManufacturing precision

Solution Approach 1:

The analysis module serves as an intermediary between the software product and the developer. It automatically analyzes the software product to identify implicit assumptions and presents this information to developers in a structured format. This intermediary function maintains the simplicity and usability of the documentation while ensuring that critical security information is not lost, thereby preserving application quality without complicating the documentation

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces manual review processes with automated analysis. Instead of requiring developers to manually scrutinize documentation for implicit assumptions or requiring extensive formal verification processes, the analysis module automatically performs this function, maintaining documentation simplicity while improving application quality through systematic identification of potential issues

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

3Reliability

If comprehensive analysis is performed to identify all implicit assumptions, then application security improves, but analysis time and complexity increase

Engineering Contradiction:
Improveapplication securityVSAvoidanalysis system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The analysis module segments the analysis process into distinct components: parsing the software product, analyzing documentation, identifying implicit assumptions, and generating reports. This segmentation allows each component to be optimized independently and enables the system to scale without proportionally increasing overall complexity. The modular architecture makes the comprehensive analysis manageable and maintainable

Inventive Principle:
Principle #1Segmentation

4Productivity

If developers do not test against vulnerability patterns, then application development is faster, but security vulnerabilities remain undetected

Engineering Contradiction:
Improveapplication development speedVSAvoidsecurity vulnerabilities
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The test suite production module generates vulnerability patterns based on identified implicit assumptions before developers begin application development. These pre-generated test patterns are ready for immediate use, allowing developers to quickly test their applications against known vulnerability types without creating custom test cases, thus maintaining development speed while improving security

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables developers to self-test their applications against vulnerability patterns without requiring external security audits or complex testing infrastructure. The automatically generated test suites can be integrated into existing development workflows, allowing developers to independently verify their applications for security issues while maintaining rapid development cycles

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10380008B2Identifying implicit assumptions associated with a software product
Publication Date: 2019.08.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10380008B2 patent drawing
  • US10380008B2 patent drawing
  • US10380008B2 patent drawing

AI summary

A framework is described herein for identifying implicit assumptions associated with an SDK and its accompanying documentation (e.g., dev guide). An implicit assumption is information that is not expressly stated in the documentation, but which would be useful in assisting an application developer in building an application. The framework also describes a systematic approach for identifying one or more vulnerability patterns based on the identified implicit assumptions. An application developer may run a test on an application that is being developed to ensure that it does not have any deficiency which matches a vulnerability pattern.