This repository contains the artifacts of our paper at ACSAC'2019. Honoring ACSAC's initiative, we have decided upon releasing both software and data of our work.
Build a docker image using the provided DockerFile.
Run docker container with the following parameters:
docker run -v /sys/fs/cgroup:/sys/fs/cgroup:rw --security-opt seccomp=unconfined {IMAGEID/IMAGENAME}
Please note that our performance measurements are done using benchexec tool which relies on cgroup access. Therefore, you need to make sure that your docker container has r/w access permission to the host's cgroup.
As noted in the paper, in order to generate protected instances for 6 programs, namely cjpeg
, djpeg
, say
, susan
, tetris
, and toast
, we need to use a faster solver. For this purpose, we prepared experimental branches as well as a Dockerfile, which contains the info about the right branches that are needed to be used.
In the docker container eval/local_dataset
contains bitcode files for the 19 programs that were used in our evaluations.
The same directory can be found in the composition-sip-eval repository.
In our work we conducted two experiments: coverage optimization (section 6.4) and performance evaluation (section 6.5).
IMPORTANT: All the scripts can be found in the eval directory.
cd eval
Execute bash run-6.4.sh
Results will be dumped in ilp_optimization_results.csv
Run bash run-6.5.sh
Results will be dumped in performance-evaluation-combined-percentage.pdf
We recommend the dockerized approach. Interested users, can build the entire toolchain manually.
- Partial Protection Pass, i.e. Filter Function
- Inter-procedural dependency analyzer
- Dependency Graph (external)
- Code Mobility Mock
@inproceedings{ahmadvand2019sip,
author = {Ahmadvand, Mohsen and Fischer, Dennis and Banescu, Sebastian},
title = {SIP Shaker: Software Integrity Protection Composition},
year = {2019},
isbn = {9781450376280},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3359789.3359848},
doi = {10.1145/3359789.3359848},
booktitle = {Proceedings of the 35th Annual Computer Security Applications Conference},
pages = {203–214},
numpages = {12},
keywords = {integrity protection, software protection, man-at-the-end (MATE)},
location = {San Juan, Puerto Rico},
series = {ACSAC ’19}
}