Software Policy Enforcement via Static Analysis Rules

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for securing software applications, such as penetration testing and static analysis, are inefficient and often fail to detect critical vulnerabilities, leaving systems prone to attacks despite secure networks and operating systems.

Innovation Solution

A system and method that converts natural language security policies into sample code, creating static analysis rules to enforce these policies within the software, providing a centralized and automated approach to security testing and verification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If penetration testing is used to verify application security, then security vulnerabilities may be exposed, but the method consumes a lot of time and resources while delivering little assurance that the application is secured

Engineering Contradiction:
Improveapplication security verificationVSAvoidtesting time and resources
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by converting natural language security policies into executable code models before actual security testing occurs. This pre-processing step creates a formal representation of security requirements that can be automatically verified, eliminating the need for time-consuming manual penetration testing while maintaining comprehensive coverage of security scenarios.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical manual penetration testing process with an automated system that uses natural language processing and code generation. Instead of manually designing and executing test scenarios, the system automatically translates policy statements into executable verification models, substituting human effort with automated computational processes.

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

2Reliability

If static analysis is used to check application security from the code perspective, then vulnerabilities may be detected, but the method produces false positives requiring manual review

Engineering Contradiction:
Improvevulnerability detectionVSAvoidmanual review process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary layer between raw code analysis and final vulnerability determination. By converting security policies into formal code models and using these as intermediaries to guide the analysis, the system reduces false positives. The intermediary model acts as a bridge that translates natural language security intent into precise verification criteria, eliminating the need for extensive manual review.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If comprehensive security testing is performed to cover every component and condition, then application security is improved, but the testing becomes inefficient and incomplete

Engineering Contradiction:
Improvesecurity coverageVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies universality by creating a unified framework that handles multiple security testing functions through a single mechanism. The natural language to code model conversion system serves as a universal tool that can verify diverse security requirements across different components and conditions, replacing the need for separate specialized testing procedures for each security scenario.

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

Data Source

PatentUS7877780B2System and method for enforcing functionality in computer software through policies
Publication Date: 2011.01.25 PARASOFT CORP
  • US7877780B2 patent drawing
  • US7877780B2 patent drawing
  • US7877780B2 patent drawing

AI summary

A method and system for enforcing functionality in computer software through policy including converting a natural language policy to sample code, wherein the natural language policy is represented by logical patterns; creating one or more static analysis rules from the sample code to enforce the natural language policy at a centralized location of the computer software; and enforcing the created one or more static analysis rules for the computer software.