Runtime verification on data-carrying traces
Download (1.49 MB)
-
Altmetric Citations
Description
Malfunctioning software systems can cause severe loss of money, sensitive data, or even human life. The ambition is therefore to verify these systems not only statically, but also monitor their behaviour at runtime. For the latter case, the temporal logic LTL---a de facto standard specification formalism in runtime verification---is widely used and well-understood. However, propositional variables are usually not a natural nor sufficient model to represent the...[Show more]
dc.contributor.author | Kuester, Jan-Christoph | |
---|---|---|
dc.date.accessioned | 2016-11-07T22:58:07Z | |
dc.date.available | 2016-11-07T22:58:07Z | |
dc.identifier.other | b40394529 | |
dc.identifier.uri | http://hdl.handle.net/1885/110029 | |
dc.description.abstract | Malfunctioning software systems can cause severe loss of money, sensitive data, or even human life. The ambition is therefore to verify these systems not only statically, but also monitor their behaviour at runtime. For the latter case, the temporal logic LTL---a de facto standard specification formalism in runtime verification---is widely used and well-understood. However, propositional variables are usually not a natural nor sufficient model to represent the behaviour of complex, interactive systems that can process arbitrary input values. Consequently, there is a demand for more expressive formalisms that are defined what we call traces with data, i.e., traces that contain propositions enriched with values from a (possibly) infinite domain. This thesis studies the runtime monitoring with data for a natural extension of LTL that includes first-order quantification, called LTLFO. The logic's quantifiers range over values that appear in a trace. Under assumptions laid out of what should arguably be considered a ``proper'' runtime monitor, this thesis first identifies and analyses the underlying decision problems of monitoring properties in LTL and LTLFO. Moreover, it proposes a monitoring procedure for the latter. A result is that LTLFO is undecidable, and the prefix problem too, which an online monitor has to preferably solve to coincide with monotonicity. Hence, the obtained monitor cannot be complete for LTLFO; however, this thesis proves the soundness of its construction and gives experimental results from an implementation, in order to justify its usefulness and efficiency in practice. The monitor is based on a new type of automaton, called spawning automaton; it helps to efficiently decide what parts of a possibly infinite state space need to be memorised at runtime. Furthermore, the problem occurs that not every property can be monitored trace-length independently, which is possible in LTL. For that reason, a hierarchy of effectively monitorable properties is proposed. It distinguishes properties for which a monitor requires only constant memory from ones for which a monitor inevitably has to grow ad infinitum, independently of how the future of a trace evolves. Last but not least, a proof of concept validates the monitoring means developed in this thesis on a widely established system with intensive data use: Malicious behaviour is checked on Android devices based on the most comprehensive malware set presently available. The overall detection and false positive rates are 93.9% and 28%, respectively. As a means of conducting the experiments and as a contribution in itself, an application-agnostic logging-layer for the Android system has been developed and its technical insights are explained. It aims at leveraging runtime verification techniques on Android, like other domain-specific instrumentation approaches did, such as AspectJ for Java. | |
dc.language.iso | en | |
dc.subject | Runtime verification | |
dc.subject | Monitoring | |
dc.subject | Spawning automata | |
dc.subject | Temporal logic | |
dc.subject | First-order logic | |
dc.subject | Trace-length independence | |
dc.subject | Android security | |
dc.title | Runtime verification on data-carrying traces | |
dc.type | Thesis (PhD) | |
local.contributor.supervisor | Bauer, Andreas | |
local.contributor.supervisorcontact | baueran@gmail.com | |
dcterms.valid | 2016 | |
local.description.notes | author deposited 8/11/2016 | |
local.type.degree | Doctor of Philosophy (PhD) | |
dc.date.issued | 2016 | |
local.contributor.affiliation | College of Engineering and Computer Science, The Australian National University | |
local.identifier.doi | 10.25911/5d763822a5f79 | |
local.mintdoi | mint | |
Collections | Open Access Theses |
Download
File | Description | Size | Format | Image |
---|---|---|---|---|
Kuester Thesis 2016.pdf | 1.49 MB | Adobe PDF | ![]() |
Items in Open Research are protected by copyright, with all rights reserved, unless otherwise indicated.
Updated: 17 November 2022/ Responsible Officer: University Librarian/ Page Contact: Library Systems & Web Coordinator