A multi-
machine collaborative
vulnerability detection
system based on
vulnerability clustering and
distance space partitioning is proposed. The
system extracts potential vulnerabilities from the
source code of the program under test through a
vulnerability extraction and clustering module. An improved clustering
algorithm is used to aggregate representative vulnerability points as baseline reference points. A fuzzing module performs fuzzing tests on the program. During the seed
mutation phase, based on distance judgment and pre-calculated
basic block-level distances, the currently executed seed (i.e., the comprehensive distance between the
test input in the fuzzing test and the baseline reference point of that instance) is calculated, and appropriate energy is allocated based on the comprehensive distance. An information synchronization module performs asynchronous and transparent information synchronization among multiple fuzzing instances, collecting seeds from the seed queues of each instance, calculating the affinity of each seed to each instance, and assigning the seed to its actual fuzzing instance. This invention utilizes additional CPU resources, using some sensitive functions in the program as baseline reference points, and divides the program into multiple segments according to the
distance space, allocating them to multiple fuzzing instances for multi-
machine collaborative fuzzing, thereby improving the performance of fuzzing by utilizing computing resources.