Skip to content
Snippets Groups Projects
readme.md 2.03 KiB
Newer Older
yingzhang's avatar
yingzhang committed
# TSE 2022 Experiment Result

mengna152173's avatar
mengna152173 committed
**Ying Zhang, Md Mahir Asef Kabir, Ya Xiao, Daphne Yao, Na Meng. Automatic Detection of Java Cryptographic API Misuses: Are We There Yet? *IEEE Transactions on Software Engineering***
yingzhang's avatar
yingzhang committed

yingzhang's avatar
yingzhang committed
This repo contains the origin benchmark (MUBench, Cryptobench, OWASP) and selected Apache projects outputs of all selected tools (CryptoGuard, Findsecbugs, CogniCrypt, Xanitizer, Sonarqube, CryptoTutor). Xanitizer needs license for reading the result. 
yingzhang's avatar
yingzhang committed

For Apache project, we provided the selected project running result for our user study part, also we provide the git repo url and commit in `git_info.txt`.

yingzhang's avatar
yingzhang committed
### Command we use to run the benchmark 
yingzhang's avatar
yingzhang committed

The shell command we run for each tool:
yingzhang's avatar
yingzhang committed
1. CrytoGuard: `java -jar cryptoguard.jar -in jar -o {outputfile} -s {jar_file}`
yingzhang's avatar
yingzhang committed
2. Findsecbugs:
yingzhang's avatar
yingzhang committed
`findsecbugs.sh -progress -html -output {output} {jar_file}`
yingzhang's avatar
yingzhang committed
3. CogniCrypt:
yingzhang's avatar
yingzhang committed
`java -cp CryptoAnalysis-2.7.1-SNAPSHOT-jar-with-dependencies.jar -Xmx30g -Xss60m crypto.HeadlessCryptoScanner --rulesDir={rulesDir} --applicationCp={jar_file}`
yingzhang's avatar
yingzhang committed
4. Xanitizer:
yingzhang's avatar
yingzhang committed
`Xanitizer-5.1.3/XanitizerHeadless licenseFile={licensefile} rootDirectory={rootDirectory} exportDirectory={output_path} findingsListReportOutputFile="{output_path}/result.xml" generateDetailsInFindingsListReport=true overwriteConfigFile=true`
yingzhang's avatar
yingzhang committed
5. Sonarqube:
yingzhang's avatar
yingzhang committed
`mvn sonar:sonar`
yingzhang's avatar
yingzhang committed
6. Cryptotutor:
The MD5 of the cryptotutor source code zip we got from authors is 9B94BB19E53BFC45B58F158DFDCE69F8.
yingzhang's avatar
yingzhang committed
```
yingzhang's avatar
yingzhang committed
It required the users must have experience on Eclipse Plugin development.
a. first get the source code v202107 from the author; (if author provided other versions, we cannot guarantee it can work under the steps provided below)
b. import the project into eclipse RDP 2021.9
c. set the java verison to 11
d. resolve the dependency issue; make sure the version matched the manifest in the project;
e. run
f. in the new eclipse instance, import their sample project;
g. import your testing project into their sample project;
h. in the menu bar, click firebugs -> generate all file types;
i. click firebugs->detect all misuses;
yingzhang's avatar
yingzhang committed
```