Skip to content

A method for data debloating for data intensive applications

Notifications You must be signed in to change notification settings

depaul-dice/Kondo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kondo

Efficient Parameter-Independent Data Debloating (Fuzzer and Carver). For Parameter-Specific Data Debloating (I/O Event audit), see this repo: https://github.com/depaul-dice/InterpositionBasedKondo

Running the experiments

Please change to complete-debloat for running any of the below scripts
(cd Kondo/complete-debloat)

There are two ways to regenerate the results from the paper:

  • Without recomputing the raw data: The plots can be regenerated by running the script python plot_stats.py. This uses pre-compiled data saved in paper_result_data to generate the plots. Please run bash install.sh to install the required dependencies before running the scipt.
  • Recomputing all data from scratch: Please run the command bash run.sh to rerun all simulations to generate data corresponding to all three tools: Kondo, AFL and Bf across all experiments.
    Note that on a machine with 32 cores and 93 GB memory, this takes ~2 days to run end-to-end. The actual time taken would depend on the machine used and might increase significantly on a lower spec machine.

Breakdown of run.sh

The script consists of the following broad sections:

  • Installations: This section installs all the required dependencies for running the scripts. This includes gcc, python, pip, multiple python libraries and AFL.

  • Compilations This section compiles all the micro-benchmark source code for all experiments.

  • Compiling AFL programs This section compiles benchmark source for AFL. As the offset_check.c files are very large, this section takes considerable time to run. The script tries to run the compilations in parallel, so the more cores, the better. run.sh contains a sleep timer at line 53. Please increase the timer in case the compilation does not complete before that. This stage needs to be completed before proceeding. ps aux | grep afl-clang can be used to check if some compilations are still running.

  • Runnning Kondo and BF This section runs both Kondo and BF over the benchmark programs. The repetitions for each program is set to 1 for the script to run faster. The paper uses more runs.

  • Running AFL This section runs the AFL fuzzer on the programs. The AFL-experiments/fuzz.sh script is called for this. It runs for an hour. If AFL is desired to be run for more time, please change the time on line 82 in AFL-experiments/fuzz.sh

  • Offset space variation experiments This section runs Kondo again for the offset space variation experiment

  • Finally, the scripts for computing the aggregates and plotting all data is run. The final results are saved in paper_result_data

About

A method for data debloating for data intensive applications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages