Enhancing Software Vulnerability Detection Through Adaptive Test Input Generation Using Genetic Algorithm

2508.05923v1 cs.SE, cs.AI 2025-08-12
Авторы:

Yanusha Mehendran, Maolin Tang, Yi Lu

Резюме на русском

## Контекст Современные программные системы становятся все более сложными, что приводит к повышению риска возникновения программных уязвимостей. Традиционные методы оценки безопасности часто оказываются неэффективными в распознавании глубоких и сложных уязвимостей, возникающих в результате непредсказуемых взаимодействий между компонентами. Это приводит к потере ресурсов, а также к ухудшению надежности и безопасности систем. Необходимо развитие новых подходов, которые могут эффективно обнаруживать такие уязвимости, адаптируясь к специфике каждой системы. ## Метод Метод предложенной работы основывается на генетических алгоритмах и интегрирует продвинутые техники адаптивного обучения. Генетический алгоритм используется для генерирования тестовых входных данных, которые могут быть успешно применены для проверки системы на наличие уязвимостей. Особенностью этого подхода является применение оператора скрещивания, который расширяет пространство возможных тестовых случаев. Динамическая адаптивность метода достигается за счет постоянного обучения от реакции системы на входные данные. Это позволяет адаптировать тестовые случаи в процессе их генерирования, чтобы более точно направлять поиск в области входных данных, где скорее всего будут обнаружены уязвимости. ## Результаты Исследование проводилось на данных, полученных из девяти открытых исходных JSON-процессинговых библиотек. Метод оказался эффективным в сравнении с бенчмарковой эволюционной методикой генерирования тестовых случаев. Он показал значительные улучшения в обнаружении уязвимостей, получив увеличения в покрытии классов (39.8%), методов (62.4%), строк (105.0%), инструкций (114.0%) и ветвей (166.0%). Эти результаты указывают на высокую эффективность метода в обнаружении глубоких уязвимостей, которые не могут быть выявлены стандартными методами. ## Значимость Предложенный метод имеет широкие перспективы применения в области безопасности программного обеспечения. Он может применяться для тестирования различных приложений, включая веб-приложения, мобильные приложения и другие системы, где уязвимости могут привести к серьезным последствиям. Особенно важным является его применение в автоматизации процессов тестирования и в сценариях, где требуется высокая эффективность и точность. ## Выводы Результаты экспериментов показывают, что предложенный подход является эффективным для обнаружения глубоких и сложных уязвимостей в программном обеспечении. Будущие исследования будут направлены на улучшение динамического обучения, а также на применение

Abstract

Software vulnerabilities continue to undermine the reliability and security of modern systems, particularly as software complexity outpaces the capabilities of traditional detection methods. This study introduces a genetic algorithm-based method for test input generation that innovatively integrates genetic operators and adaptive learning to enhance software vulnerability detection. A key contribution is the application of the crossover operator, which facilitates exploration by searching across a broader space of potential test inputs. Complementing this, an adaptive feedback mechanism continuously learns from the system's execution behavior and dynamically guides input generation toward promising areas of the input space. Rather than relying on fixed or randomly selected inputs, the approach evolves a population of structurally valid test cases using feedback-driven selection, enabling deeper and more effective code traversal. This strategic integration of exploration and exploitation ensures that both diverse and targeted test inputs are developed over time. Evaluation was conducted across nine open-source JSON-processing libraries. The proposed method achieved substantial improvements in coverage compared to a benchmark evolutionary fuzzing method, with average gains of 39.8% in class coverage, 62.4% in method coverage, 105.0% in line coverage, 114.0% in instruction coverage, and 166.0% in branch coverage. These results highlight the method's capacity to detect deeper and more complex vulnerabilities, offering a scalable and adaptive solution to software security testing.

Ссылки и действия