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.
Ссылки и действия
Дополнительные ресурсы: