@article{27045,
  abstract     = {{Due to the lack of established real-world benchmark suites for static taint analyses of Android applications, evaluations of these analyses are often restricted and hard to compare. Even in evaluations that do use real-world apps, details about the ground truth in those apps are rarely documented, which makes it difficult to compare and reproduce the results. To push Android taint analysis research forward, this paper thus recommends criteria for constructing real-world benchmark suites for this specific domain, and presents TaintBench, the first real-world malware benchmark suite with documented taint flows. TaintBench benchmark apps include taint flows with complex structures, and addresses static challenges that are commonly agreed on by the community. Together with the TaintBench suite, we introduce the TaintBench framework, whose goal is to simplify real-world benchmarking of Android taint analyses. First, a usability test shows that the framework improves experts’ performance and perceived usability when documenting and inspecting taint flows. Second, experiments using TaintBench reveal new insights for the taint analysis tools Amandroid and FlowDroid: (i) They are less effective on real-world malware apps than on synthetic benchmark apps. (ii) Predefined lists of sources and sinks heavily impact the tools’ accuracy. (iii) Surprisingly, up-to-date versions of both tools are less accurate than their predecessors.}},
  author       = {{Luo, Linghui and Pauck, Felix and Piskachev, Goran and Benz, Manuel and Pashchenko, Ivan and Mory, Martin and Bodden, Eric and Hermann, Ben and Massacci, Fabio}},
  issn         = {{1382-3256}},
  journal      = {{Empirical Software Engineering}},
  title        = {{{TaintBench: Automatic real-world malware benchmarking of Android taint analyses}}},
  doi          = {{10.1007/s10664-021-10013-5}},
  year         = {{2021}},
}

@unpublished{20341,
  abstract     = {{When implementing secure software, developers must ensure certain
requirements, such as the erasure of secret data after its use and execution in
real time. Such requirements are not explicitly captured by the C language and
could potentially be violated by compiler optimizations. As a result,
developers typically use indirect methods to hide their code's semantics from
the compiler and avoid unwanted optimizations. However, such workarounds are
not permanent solutions, as increasingly efficient compiler optimization causes
code that was considered secure in the past now vulnerable. This paper is a
literature review of (1) the security complications caused by compiler
optimizations, (2) approaches used by developers to mitigate optimization
problems, and (3) recent academic efforts towards enabling security engineers
to communicate implicit security requirements to the compiler. In addition, we
present a short study of six cryptographic libraries and how they approach the
issue of ensuring security requirements. With this paper, we highlight the need
for software developers and compiler designers to work together in order to
design efficient systems for writing secure software.}},
  author       = {{Shivarpatna Venkatesh, Ashwin Prasad and Handadi, A. Bhat and Mory, Martin}},
  booktitle    = {{arXiv:1907.02530}},
  title        = {{{Security Implications Of Compiler Optimizations On Cryptography -- A  Review}}},
  year         = {{2019}},
}

