Parallelized Runtime Verification of First-order LTL Specifications

Runtime verification is an effective automated method for specification-based offline testing and analysis as well as online monitoring of complex systems. The specification language is often a variant of regular expressions or a popular temporal logic, such as Ltl. This paper presents a novel and efficient parallel algorithm for verifying a highly expressive fragment of first-order Ltl specifications, where nested quantifiers can be subject to second-order numerical constraints. Such constraints are useful in evaluating thresholds (e.g., expected uptime of a web server). The significance of this extension is that it enables us to reason about the correctness of a large class of systems, such as web servers, OS kernels, and network behavior, where properties are required to be instantiated for parameterized requests, kernel objects, network nodes, etc. Our algorithm uses the popular MapReduce architecture to split a program trace into variable-based clusters at run time. Each cluster is then mapped to its respective monitor instances, verified, and reduced collectively on a multi-core CPU or the GPU. Our algorithm is fully implemented and we report very encouraging experimental results, where the monitoring overhead is negligible on real-world data sets.

[1]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[2]  Bo Hong,et al.  File System Workload Analysis For Large Scientific Computing Applications , 2004, MSST.

[3]  Robin Berthier,et al.  Profiling Attacker Behavior Following SSH Compromises , 2007, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07).

[4]  Yu Gu,et al.  Watch global, cache local: YouTube network traffic at a campus network: measurements and implications , 2008, Electronic Imaging.

[5]  Grigore Rosu,et al.  Parametric Trace Slicing and Monitoring , 2009, TACAS.

[6]  Martin Leucker,et al.  Comparing LTL Semantics for Runtime Verification , 2010, J. Log. Comput..

[7]  Grigore Rosu,et al.  Security-policy monitoring and enforcement with JavaMOP , 2012, PLAS '12.

[8]  Aiko Pras,et al.  Inside dropbox: understanding personal cloud storage services , 2012, Internet Measurement Conference.

[9]  Grigore Rosu,et al.  JavaMOP: Efficient parametric runtime monitoring framework , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[10]  Jan-Christoph Küster,et al.  From Propositional to First-Order Monitoring , 2013, RV.

[11]  Sebastian Fischmeister,et al.  GPU-based Runtime Verification , 2013, 2013 IEEE 27th International Symposium on Parallel and Distributed Processing.

[12]  Grigore Rosu,et al.  Efficient parametric runtime verification with deterministic string rewriting , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[13]  Sebastian Fischmeister,et al.  RiTHM: a tool for enabling time-triggered runtime verification for C programs , 2013, ESEC/FSE 2013.

[14]  Martin Leucker,et al.  Monitoring modulo theories , 2016, International Journal on Software Tools for Technology Transfer.