Binary Rewriting for Fuzzing-Guided Application Hardening

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software vulnerabilities remain exposed from the time they are discovered until a patch can be developed and distributed, leaving systems vulnerable to exploitation.

Innovation Solution

The method involves generating application traces using fuzzing to identify good and bad traces around a known security vulnerability, identifying unique code segments executed in bad traces but not in good traces, and modifying these segments using binary rewriting to prevent exploitation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional patching is used to fix security vulnerabilities, then the vulnerability is eventually resolved, but the system remains vulnerable during the time between discovery and patch deployment

Engineering Contradiction:
Improvesecurity reliabilityVSAvoidtime to apply patch
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by generating good and bad traces through fuzzing before the patch is applied. These traces are stored and used to create a detection mechanism that will be active during the vulnerable period, allowing the system to prepare defense in advance rather than waiting for the patch.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary detection mechanism between the vulnerable application and the exploit. This intermediary uses the pre-generated traces to detect and block exploit attempts during the time when the vulnerability exists but before the patch is deployed, effectively mediating the security gap.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Difficulty of detecting and measuring

If comprehensive security monitoring is implemented to detect all potential exploits, then security detection capability is improved, but computational overhead and false positives increase

Engineering Contradiction:
Improveexploit detection capabilityVSAvoidcomputational overhead
Core Design Contradiction:
Difficulty of detecting and measuringVSUse of energy by moving object

Solution Approach 1:

The system performs exploit detection preparation in advance by generating comprehensive good and bad traces through fuzzing before deployment. This preliminary action creates a ready-to-use detection database that eliminates the need for real-time complex analysis, reducing computational overhead during actual operation while maintaining high detection capability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of execution traces (both good and bad) through fuzzing and stores them for comparison. Instead of performing complex real-time analysis, the system compares actual execution against these pre-generated trace copies, significantly reducing computational overhead while maintaining accurate exploit detection.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12271484B2Fuzzing guided binary hardening
Publication Date: 2025.04.08 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12271484B2 patent drawing
  • US12271484B2 patent drawing
  • US12271484B2 patent drawing

AI summary

Described are techniques for application hardening. The techniques include generating application traces using fuzzing for an application with a known security vulnerability, where the application traces include good traces that do not result in exploitation of the known security vulnerability and bad traces that result in exploitation of the known security vulnerability. The techniques further include identifying code segments that are executed by the bad traces and not executed by the good traces. The techniques further include modifying the identified code segments using binary rewriting.