2,243 research outputs found
Towards Evaluating Size Reduction Techniques for Software Model Checking
Formal verification techniques are widely used for detecting design flaws in
software systems. Formal verification can be done by transforming an already
implemented source code to a formal model and attempting to prove certain
properties of the model (e.g. that no erroneous state can occur during
execution). Unfortunately, transformations from source code to a formal model
often yield large and complex models, making the verification process
inefficient and costly. In order to reduce the size of the resulting model,
optimization transformations can be used. Such optimizations include common
algorithms known from compiler design and different program slicing techniques.
Our paper describes a framework for transforming C programs to a formal model,
enhanced by various optimizations for size reduction. We evaluate and compare
several optimization algorithms regarding their effect on the size of the model
and the efficiency of the verification. Results show that different
optimizations are more suitable for certain models, justifying the need for a
framework that includes several algorithms.Comment: In Proceedings VPT 2017, arXiv:1708.0688
The Transitivity of Trust Problem in the Interaction of Android Applications
Mobile phones have developed into complex platforms with large numbers of
installed applications and a wide range of sensitive data. Application security
policies limit the permissions of each installed application. As applications
may interact, restricting single applications may create a false sense of
security for the end users while data may still leave the mobile phone through
other applications. Instead, the information flow needs to be policed for the
composite system of applications in a transparent and usable manner. In this
paper, we propose to employ static analysis based on the software architecture
and focused data flow analysis to scalably detect information flows between
components. Specifically, we aim to reveal transitivity of trust problems in
multi-component mobile platforms. We demonstrate the feasibility of our
approach with Android applications, although the generalization of the analysis
to similar composition-based architectures, such as Service-oriented
Architecture, can also be explored in the future
A novel multipath-transmission supported software defined wireless network architecture
The inflexible management and operation of today\u27s wireless access networks cannot meet the increasingly growing specific requirements, such as high mobility and throughput, service differentiation, and high-level programmability. In this paper, we put forward a novel multipath-transmission supported software-defined wireless network architecture (MP-SDWN), with the aim of achieving seamless handover, throughput enhancement, and flow-level wireless transmission control as well as programmable interfaces. In particular, this research addresses the following issues: 1) for high mobility and throughput, multi-connection virtual access point is proposed to enable multiple transmission paths simultaneously over a set of access points for users and 2) wireless flow transmission rules and programmable interfaces are implemented into mac80211 subsystem to enable service differentiation and flow-level wireless transmission control. Moreover, the efficiency and flexibility of MP-SDWN are demonstrated in the performance evaluations conducted on a 802.11 based-testbed, and the experimental results show that compared to regular WiFi, our proposed MP-SDWN architecture achieves seamless handover and multifold throughput improvement, and supports flow-level wireless transmission control for different applications
Program Dependence Net and On-demand Slicing for Property Verification of Concurrent System and Software
When checking concurrent software using a finite-state model, we face a
formidable state explosion problem. One solution to this problem is
dependence-based program slicing, whose use can effectively reduce verification
time. It is orthogonal to other model-checking reduction techniques. However,
when slicing concurrent programs for model checking, there are conversions
between multiple irreplaceable models, and dependencies need to be found for
variables irrelevant to the verified property, which results in redundant
computation. To resolve this issue, we propose a Program Dependence Net (PDNet)
based on Petri net theory. It is a unified model that combines a control-flow
structure with dependencies to avoid conversions. For reduction, we present a
PDNet slicing method to capture the relevant variables' dependencies when
needed. PDNet in verifying linear temporal logic and its on-demand slicing can
be used to significantly reduce computation cost. We implement a model-checking
tool based on PDNet and its on-demand slicing, and validate the advantages of
our proposed methods.Comment: 17 pages, 3 figure
- …