Automated Exploit Generation for Software Vulnerability Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for identifying vulnerabilities in software applications are manual or semi-automated, making it inefficient for security professionals to detect and fix all exploitable bugs before software is deemed secure, as attackers only need to find one exploitable bug to compromise a system.

Innovation Solution

A system and method for automatically detecting vulnerabilities in software by analyzing source and binary code to identify exploitable bugs and generating exploits, using preconditioned symbolic execution and path prioritization techniques to efficiently search for and validate potential vulnerabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual review of software code is performed to identify vulnerabilities, then security professionals can detect exploitable bugs, but the process is time-consuming and inefficient for detecting all vulnerabilities before software is certified secure

Engineering Contradiction:
Improvesoftware securityVSAvoidtime to detect and fix vulnerabilities
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables software to automatically detect its own vulnerabilities through self-analysis. The software analyzes its own codebase, identifies exploitable bugs, and generates exploits without requiring continuous human intervention, thereby reducing time loss while maintaining security reliability

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical code review processes with automated computational analysis. The system uses computer-based algorithms to perform symbolic execution, constraint solving, and exploit generation, substituting human analysts with automated systems that can process code faster and more thoroughly

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

2Productivity

If automated exploit generation is implemented to rapidly identify vulnerabilities, then the speed of vulnerability detection increases, but the complexity of the system increases

Engineering Contradiction:
Improvevulnerability detection speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The automated exploit generation system is divided into distinct modular components: symbolic execution engine, constraint solver, exploit template library, and validation module. Each component performs a specific function and can be independently developed, tested, and maintained, reducing overall system complexity while maintaining high detection speed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system employs universal exploit templates that can be applied across multiple vulnerability types and software applications. These templates provide a standardized framework for generating exploits, reducing the complexity of creating application-specific exploitation code while maintaining rapid vulnerability detection capability

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

Data Source

PatentUS9135405B2Automated exploit generation
Publication Date: 2015.09.15 CARNEGIE MELLON UNIV
  • US9135405B2 patent drawing
  • US9135405B2 patent drawing
  • US9135405B2 patent drawing

AI summary

A system and method for automatically generating exploits, such as exploits for target code, is described. In some implementations, the system received binary code and/or source code of a software applications, finds one or more exploitable bugs within the software application, and automatically generates exploits for the exploitable bugs.