@inproceedings{7626,
  author       = {{Schubert, Philipp and Hermann, Ben and Bodden, Eric}},
  booktitle    = {{Proceedings of the 25th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2019), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS 2019)}},
  location     = {{Prague, Czech Republic}},
  pages        = {{393--410}},
  title        = {{{PhASAR: An Inter-Procedural Static Analysis Framework for C/C++}}},
  doi          = {{10.1007/978-3-030-17465-1_22}},
  volume       = {{II}},
  year         = {{2019}},
}

@inproceedings{10108,
  abstract     = {{Recent years have seen the development of numerous tools for the analysis of taint flows in Android apps. Taint analyses aim at detecting data leaks, accidentally or by purpose programmed into apps. Often, such tools specialize in the treatment of specific features impeding precise taint analysis (like reflection or inter-app communication). This multitude of tools, their specific applicability and their various combination options complicate the selection of a tool (or multiple tools) when faced with an analysis instance, even for knowledgeable users, and hence hinders the successful adoption of taint analyses.

In this work, we thus present CoDiDroid, a framework for cooperative Android app analysis. CoDiDroid (1) allows users to ask questions about flows in apps in varying degrees of detail, (2) automatically generates subtasks for answering such questions, (3) distributes tasks onto analysis tools (currently DroidRA, FlowDroid, HornDroid, IC3 and two novel tools) and (4) at the end merges tool answers on subtasks into an overall answer. Thereby, users are freed from having to learn about the use and functionality of all these tools while still being able to leverage their capabilities. Moreover, we experimentally show that cooperation among tools pays off with respect to effectiveness, precision and scalability.}},
  author       = {{Pauck, Felix and Wehrheim, Heike}},
  booktitle    = {{Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering}},
  isbn         = {{978-1-4503-5572-8}},
  keywords     = {{Android Taint Analysis, Cooperation, Precision, Tools}},
  pages        = {{374--384}},
  title        = {{{Together Strong: Cooperative Android App Analysis}}},
  doi          = {{10.1145/3338906.3338915}},
  year         = {{2019}},
}

@inproceedings{13874,
  author       = {{Isenberg, Tobias and Jakobs, Marie-Christine and Pauck, Felix and Wehrheim, Heike}},
  booktitle    = {{Tests and Proofs - 13th International Conference, {TAP} 2019, Held as Part of the Third World Congress on Formal Methods 2019, Porto, Portugal, October 9-11, 2019, Proceedings}},
  pages        = {{3--20}},
  title        = {{{When Are Software Verification Results Valid for Approximate Hardware?}}},
  doi          = {{10.1007/978-3-030-31157-5_1}},
  year         = {{2019}},
}

@inproceedings{9913,
  abstract     = {{Reconfigurable hardware has received considerable attention as a platform that enables dynamic hardware updates and thus is able to adapt new configurations at runtime. However, due to their dynamic nature, e.g., field-programmable gate arrays (FPGA) are subject to a constant possibility of attacks, since each new configuration might be compromised. Trojans for reconfigurable hardware that evade state-of-the-art detection techniques and even formal verification, are thus a large threat to these devices. One such stealthy hardware Trojan, that is inserted and activated in two stages by compromised electronic design automation (EDA) tools, has recently been presented and shown to evade all forms of classical pre-configuration detection techniques. This paper presents a successful pre-configuration countermeasure against this ``Malicious Look-up-table (LUT)''-hardware Trojan, by employing bitstream-level Proof-Carrying Hardware (PCH). We show that the method is able to alert innocent module creators to infected EDA tools, and to prohibit malicious ones to sell infected modules to unsuspecting customers.}},
  author       = {{Ahmed, Qazi Arbab and Wiersema, Tobias and Platzner, Marco}},
  booktitle    = {{Applied Reconfigurable Computing}},
  editor       = {{Hochberger, Christian and Nelson, Brent and Koch, Andreas and Woods, Roger and Diniz, Pedro}},
  isbn         = {{978-3-030-17227-5}},
  location     = {{Darmstadt, Germany}},
  pages        = {{127--136}},
  publisher    = {{Springer International Publishing}},
  title        = {{{Proof-Carrying Hardware Versus the Stealthy Malicious LUT Hardware Trojan}}},
  doi          = {{10.1007/978-3-030-17227-5_10}},
  volume       = {{11444}},
  year         = {{2019}},
}

@inproceedings{14898,
  author       = {{Schubert, Philipp and Leer, Richard and Hermann, Ben and Bodden, Eric}},
  booktitle    = {{Proceedings of the 8th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis  - SOAP 2019}},
  isbn         = {{9781450367202}},
  title        = {{{Know your analysis: how instrumentation aids understanding static analysis}}},
  doi          = {{10.1145/3315568.3329965}},
  year         = {{2019}},
}

@inproceedings{3373,
  abstract     = {{Modern Boolean satisfiability solvers can emit proofs of unsatisfiability. There is substantial interest in being able to verify such proofs and also in using them for further computations. In this paper, we present an FPGA accelerator for checking resolution proofs, a popular proof format. Our accelerator exploits parallelism at the low level by implementing the basic resolution step in hardware, and at the high level by instantiating a number of parallel modules for proof checking. Since proof checking involves highly irregular memory accesses, we employ Hybrid Memory Cube technology for accelerator memory. The results show that while the accelerator is scalable and achieves speedups for all benchmark proofs, performance improvements are currently limited by the overhead of transitioning the proof into the accelerator memory.}},
  author       = {{Hansmeier, Tim and Platzner, Marco and Andrews, David}},
  booktitle    = {{ARC 2018: Applied Reconfigurable Computing. Architectures, Tools, and Applications}},
  isbn         = {{9783319788890}},
  issn         = {{0302-9743}},
  location     = {{Santorini, Greece}},
  pages        = {{153--165}},
  publisher    = {{Springer International Publishing}},
  title        = {{{An FPGA/HMC-Based Accelerator for Resolution Proof Checking}}},
  doi          = {{10.1007/978-3-319-78890-6_13}},
  volume       = {{10824}},
  year         = {{2018}},
}

@unpublished{3586,
  abstract     = {{Existing approaches and tools for the generation of approximate circuits often lack generality and are restricted to certain circuit types, approximation techniques, and quality assurance methods. Moreover, only few tools are publicly available. This hinders the development and evaluation of new techniques for approximating circuits and their comparison to previous approaches. In this paper, we ﬁrst analyze and classify related approaches and then present CIRCA, our ﬂexible framework for search-based approximate circuit generation. CIRCA is developed with a focus on modularity and extensibility. We present the architecture of CIRCA with its clear separation into stages and functional blocks, report on the current prototype, and show initial experiments.}},
  author       = {{Witschen, Linus Matthias and Wiersema, Tobias and Ghasemzadeh Mohammadi, Hassan and Awais, Muhammad and Platzner, Marco}},
  booktitle    = {{Third Workshop on Approximate Computing (AxC 2018)}},
  keywords     = {{Approximate Computing, Framework, Pareto Front, Accuracy}},
  pages        = {{6}},
  title        = {{{CIRCA: Towards a Modular and Extensible Framework for Approximate Circuit Generation}}},
  year         = {{2018}},
}

@phdthesis{3720,
  abstract     = {{Traditional cache design uses a consolidated block of memory address bits to index a cache set, equivalent to the use of modulo functions. While this module-based mapping scheme is widely used in contemporary cache structures due to the simplicity of its hardware design and its good performance for sequences of consecutive addresses, its use may not be satisfactory for a variety of application domains having different characteristics.This thesis presents a new type of cache mapping scheme, motivated by programmable capabilities combined with Nature-inspired optimization of reconfigurable hardware. This research has focussed on an FPGA-based evolvable cache structure of the first level cache in a multi-core processor architecture, able to dynamically change cache indexing. To solve the challenge of reconfigurable cache mappings, a programmable Boolean circuit based on a combination of Look-up Table (LUT) memory elements is proposed. Focusing on optimization aspects at the system level, a Performance Measurement Infrastructure is introduced that is able to monitor the underlying microarchitectural metrics, and an adaptive evaluation strategy is presented that leverages on Evolutionary Algorithms, that is not only capable of evolving application-specific address-to-cache-index mappings for level one split caches but also of reducing optimization times. Putting this all together and prototyping in an FPGA for a LEON3/Linux-based multi-core processor, the creation of a system architecture reduces cache misses and improves performance over the use of conventional caches.}},
  author       = {{Ho, Nam}},
  pages        = {{139}},
  publisher    = {{Universität Paderborn}},
  title        = {{{FPGA-based Reconfigurable Cache Mapping Schemes: Design and Optimization}}},
  doi          = {{10.17619/UNIPB/1-376}},
  year         = {{2018}},
}

@unpublished{2711,
  abstract     = {{In recent years, researchers have developed a number of tools to conduct
taint analysis of Android applications. While all the respective papers aim at
providing a thorough empirical evaluation, comparability is hindered by varying
or unclear evaluation targets. Sometimes, the apps used for evaluation are not
precisely described. In other cases, authors use an established benchmark but
cover it only partially. In yet other cases, the evaluations differ in terms of
the data leaks searched for, or lack a ground truth to compare against. All
those limitations make it impossible to truly compare the tools based on those
published evaluations.
  We thus present ReproDroid, a framework allowing the accurate comparison of
Android taint analysis tools. ReproDroid supports researchers in inferring the
ground truth for data leaks in apps, in automatically applying tools to
benchmarks, and in evaluating the obtained results. We use ReproDroid to
comparatively evaluate on equal grounds the six prominent taint analysis tools
Amandroid, DIALDroid, DidFail, DroidSafe, FlowDroid and IccTA. The results are
largely positive although four tools violate some promises concerning features
and accuracy. Finally, we contribute to the area of unbiased benchmarking with
a new and improved version of the open test suite DroidBench.}},
  author       = {{Pauck, Felix and Bodden, Eric and Wehrheim, Heike}},
  booktitle    = {{arXiv:1804.02903}},
  title        = {{{Do Android Taint Analysis Tools Keep their Promises?}}},
  year         = {{2018}},
}

@unpublished{1165,
  author       = {{Witschen, Linus Matthias and Wiersema, Tobias and Platzner, Marco}},
  booktitle    = {{4th Workshop On Approximate Computing (WAPCO 2018)}},
  title        = {{{Making the Case for Proof-carrying Approximate Circuits}}},
  year         = {{2018}},
}

@inproceedings{5774,
  abstract     = {{Information flow analysis investigates the flow of data in applications, checking in particular for flows from private sources to public sinks. Flow- and path-sensitive analyses are, however, often too costly to be performed every time a security-critical application is run. In this paper, we propose a variant of proof carrying code for information flow security. To this end, we develop information flow (IF) certificates which get attached to programs as well as a method for IF certificate validation. We prove soundness of our technique, i.e., show it to be tamper-free. The technique is implemented within the program analysis tool CPAchecker. Our experiments confirm that the use of certificates pays off for costly analysis runs.}},
  author       = {{Töws, Manuel and Wehrheim, Heike}},
  booktitle    = {{Theoretical Aspects of Computing – ICTAC 2018}},
  isbn         = {{9783030025076}},
  issn         = {{0302-9743}},
  pages        = {{435--454}},
  publisher    = {{Springer International Publishing}},
  title        = {{{Information Flow Certificates}}},
  doi          = {{10.1007/978-3-030-02508-3_23}},
  year         = {{2018}},
}

@inproceedings{4999,
  author       = {{Pauck, Felix and Bodden, Eric and Wehrheim, Heike}},
  booktitle    = {{Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering  - ESEC/FSE 2018}},
  isbn         = {{9781450355735}},
  publisher    = {{ACM Press}},
  title        = {{{Do Android taint analysis tools keep their promises?}}},
  doi          = {{10.1145/3236024.3236029}},
  year         = {{2018}},
}

@inproceedings{5203,
  author       = {{Krüger, Stefan and Späth, Johannes and Ali, Karim and Bodden, Eric and Mezini, Mira}},
  booktitle    = {{European Conference on Object-Oriented Programming (ECOOP)}},
  keywords     = {{ITSECWEBSITE, CROSSING}},
  pages        = {{10:1--10:27}},
  title        = {{{CrySL: An Extensible Approach to Validating the Correct Usage of Cryptographic APIs}}},
  year         = {{2018}},
}

@article{1043,
  abstract     = {{Approximate computing (AC) is an emerging paradigm for energy-efficient computation. The basic idea of AC is to sacrifice high precision for low energy by allowing hardware to carry out “approximately correct” calculations. This provides a major challenge for software quality assurance: programs successfully verified to be correct might be erroneous on approximate hardware. In this letter, we present a novel approach for determining under what conditions a software verification result is valid for approximate hardware. To this end, we compute the allowed tolerances for AC hardware from successful verification runs. More precisely, we derive a set of constraints which—when met by the AC hardware—guarantees the verification result to carry over to AC. On the practical side, we furthermore: 1) show how to extract tolerances from verification runs employing predicate abstraction as verification technology and 2) show how to check such constraints on hardware designs. We have implemented all techniques, and exemplify them on example C programs and a number of recently proposed approximate adders.}},
  author       = {{Isenberg, Tobias and Jakobs, Marie-Christine and Pauck, Felix and Wehrheim, Heike}},
  issn         = {{1943-0663}},
  journal      = {{IEEE Embedded Systems Letters}},
  pages        = {{22--25}},
  publisher    = {{Institute of Electrical and Electronics Engineers (IEEE)}},
  title        = {{{Validity of Software Verification Results on Approximate Hardware}}},
  doi          = {{10.1109/LES.2017.2758200}},
  year         = {{2018}},
}

@misc{1044,
  author       = {{Leer, Richard}},
  publisher    = {{Universität Paderborn}},
  title        = {{{Measuring Performance of a Static Analysis Framework with an application to Immutability Analysis}}},
  year         = {{2018}},
}

@misc{1045,
  author       = {{Strüwer, Jan Niclas}},
  publisher    = {{Universität Paderborn}},
  title        = {{{Interactive Data Visualization for Exploded Supergraphs}}},
  year         = {{2018}},
}

@inproceedings{1096,
  abstract     = {{to appear}},
  author       = {{Beyer, Dirk and Jakobs, Marie-Christine and Lemberger, Thomas and Wehrheim, Heike}},
  booktitle    = {{Proceedings of the 40th International Conference on Software Engineering (ICSE)}},
  location     = {{Gothenburg, Sweden}},
  pages        = {{1182----1193}},
  publisher    = {{ACM}},
  title        = {{{Reducer-Based Construction of Conditional Verifiers}}},
  year         = {{2018}},
}

@misc{1097,
  author       = {{Jentzsch, Felix Paul}},
  keywords     = {{Approximate Computing, Proof-Carrying Hardware, Formal Veriﬁcation}},
  publisher    = {{Universität Paderborn}},
  title        = {{{Enforcing IP Core Connection Properties with Verifiable Security Monitors}}},
  year         = {{2018}},
}

@misc{3580,
  author       = {{Hansmeier, Tim}},
  publisher    = {{Universität Paderborn}},
  title        = {{{An FPGA Accelerator for Checking Resolution Proofs}}},
  year         = {{2017}},
}

@inproceedings{114,
  abstract     = {{Proof witnesses are proof artifacts showing correctness of programs wrt. safety properties. The recent past has seen a rising interest in witnesses as (a) proofs in a proof-carrying-code context, (b) certificates for the correct functioning of verification tools, or simply (c) exchange formats for (partial) verification results. As witnesses in all theses scenarios need to be stored and processed, witnesses are required to be as small as possible. However, software verification tools – the prime suppliers of witnesses – do not necessarily construct small witnesses. In this paper, we present a formal account of proof witnesses. We introduce the concept of weakenings, reducing the complexity of proof witnesses while preserving the ability of witnessing safety. We develop aweakening technique for a specific class of program analyses, and prove it to be sound. Finally, we experimentally demonstrate our weakening technique to indeed achieve a size reduction of proof witnesses.}},
  author       = {{Jakobs, Marie-Christine and Wehrheim, Heike}},
  booktitle    = {{NASA Formal Methods: 9th International Symposium}},
  editor       = {{Barrett, Clark and Davies, Misty and Kahsai, Temesghen}},
  pages        = {{389--403}},
  title        = {{{Compact Proof Witnesses}}},
  doi          = {{10.1007/978-3-319-57288-8_28}},
  year         = {{2017}},
}

