Embedded Software Patch Generation With ML Feedback Evaluation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity and manual nature of creating software patches for vulnerabilities in embedded systems, especially those with cyber-physical interfaces, make it time-consuming and expensive, necessitating a more automated and reliable method.
Innovation Solution
A computer-implemented method using a machine learning model, such as a large language model, to automatically generate patches for software vulnerabilities based on binary code, with evaluation and adaptation to ensure reliability and applicability across various programming languages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If manual patch creation is used, then patch quality and reliability can be maintained through expert review, but the process becomes time-consuming and expensive
Solution Approach 1:
The patent replaces the manual mechanical process of patch creation with an automated machine learning system. The ML model analyzes vulnerable code, generates patch candidates, and applies fixes without human intervention, thereby reducing time loss while maintaining reliability through automated evaluation metrics.
Solution Approach 2:
The system enables self-service patch generation where the ML model autonomously identifies vulnerabilities, creates patches, and evaluates their effectiveness without requiring expert reviewers. The automated evaluation process serves as a self-validation mechanism that maintains quality while accelerating delivery.
2Productivity
If automated patch generation is implemented, then patch creation speed and productivity are improved, but the complexity of ensuring patch quality and reliability increases
Solution Approach 1:
The patent segments the patch generation process into distinct automated stages: vulnerability detection, patch candidate generation, patch evaluation, and patch application. Each stage is handled by specialized ML components, simplifying the overall complexity by breaking down the monolithic automated process into manageable, testable modules.
Solution Approach 2:
The system implements automated feedback loops where evaluation metrics from testing and validation stages are fed back to the ML model to refine future patch generation. This self-correcting mechanism reduces quality assurance complexity by using data-driven optimization rather than manual review processes.
3Reliability
If patches are created manually for each vulnerability, then security reliability is maintained through expert analysis, but the cost and time required increase significantly
Solution Approach 1:
The patent creates a universal ML-based patch generation system that can handle multiple vulnerability types, programming languages, and codebases through a single platform. This multi-functional approach reduces the cost of patch creation by eliminating the need for separate expert analysis for each vulnerability, while maintaining security reliability through consistent automated evaluation.
4Reliability
If manual patch creation processes are used, then thorough evaluation and testing can be performed, but the time to deploy security updates is extended
Solution Approach 1:
The patent implements continuous automated evaluation and testing that runs parallel to patch generation without interruption. The ML model continuously generates and evaluates patch candidates, maintaining thorough assessment while eliminating the sequential delays inherent in manual review processes, thereby reducing deployment time while preserving evaluation quality.
Data Source
Figure 1a~1b
Figure 2
AI summary
Disclosed is a computer-implemented method for the automated generation of a patch of a software or a part of the software, in particular wherein the software is designed to control, regulate and/or monitor a technical system or a part thereof, comprising generating, via a machine learning model, at least one patch for a vulnerability of the software or a part thereof based on a prompt and a binary code of the software or a part thereof, optionally wherein the machine learning model comprises a Foundation Model and/or Large Language Model (LLM).Disclosed is a computer-implemented method for further training a machine learning model, wherein the machine learning model is configured to generate at least one patch for a vulnerability of a software or a part of the software based on a prompt and a binary code of the software or part thereof; the method comprising adapting the machine learning model based on at least one generated patch and on at least one evaluation result resulting from evaluating the at least one patch.