54,460 research outputs found
Environment-Sensitive Intrusion Detection
Abstract. We perform host-based intrusion detection by constructing a model from a program’s binary code and then restricting the program’s execution by the model. We improve the effectiveness of such model-based intrusion detection systems by incorporating into the model knowledge of the environment in which the program runs, and by increasing the accuracy of our models with a new dataflow analysis algorithm for context-sensitive recovery of static data. The environment—configuration files, command-line parameters, and environment variables—constrains acceptable process execution. Environment dependencies added to a program model update the model to the current environment at every program execution. Our new static data-flow analysis associates a program’s data flows with specific calling contexts that use the data. We use this analysis to differentiate systemcall arguments flowing from distinct call sites in the program. Using a new average reachability measure suitable for evaluation of call-stackbased program models, we demonstrate that our techniques improve the precision of several test programs ’ models from 76 % to 100%
Can Network Analysis Techniques help to Predict Design Dependencies? An Initial Study
The degree of dependencies among the modules of a software system is a key
attribute to characterize its design structure and its ability to evolve over
time. Several design problems are often correlated with undesired dependencies
among modules. Being able to anticipate those problems is important for
developers, so they can plan early for maintenance and refactoring efforts.
However, existing tools are limited to detecting undesired dependencies once
they appeared in the system. In this work, we investigate whether module
dependencies can be predicted (before they actually appear). Since the module
structure can be regarded as a network, i.e, a dependency graph, we leverage on
network features to analyze the dynamics of such a structure. In particular, we
apply link prediction techniques for this task. We conducted an evaluation on
two Java projects across several versions, using link prediction and machine
learning techniques, and assessed their performance for identifying new
dependencies from a project version to the next one. The results, although
preliminary, show that the link prediction approach is feasible for package
dependencies. Also, this work opens opportunities for further development of
software-specific strategies for dependency prediction.Comment: Accepted at ICSA 201
Extracting Build Changes with BUILDDIFF
Build systems are an essential part of modern software engineering projects.
As software projects change continuously, it is crucial to understand how the
build system changes because neglecting its maintenance can lead to expensive
build breakage. Recent studies have investigated the (co-)evolution of build
configurations and reasons for build breakage, but they did this only on a
coarse grained level. In this paper, we present BUILDDIFF, an approach to
extract detailed build changes from MAVEN build files and classify them into 95
change types. In a manual evaluation of 400 build changing commits, we show
that BUILDDIFF can extract and classify build changes with an average precision
and recall of 0.96 and 0.98, respectively. We then present two studies using
the build changes extracted from 30 open source Java projects to study the
frequency and time of build changes. The results show that the top 10 most
frequent change types account for 73% of the build changes. Among them, changes
to version numbers and changes to dependencies of the projects occur most
frequently. Furthermore, our results show that build changes occur frequently
around releases. With these results, we provide the basis for further research,
such as for analyzing the (co-)evolution of build files with other artifacts or
improving effort estimation approaches. Furthermore, our detailed change
information enables improvements of refactoring approaches for build
configurations and improvements of models to identify error-prone build files.Comment: Accepted at the International Conference of Mining Software
Repositories (MSR), 201
Enhanced sharing analysis techniques: a comprehensive evaluation
Sharing, an abstract domain developed by D. Jacobs and A. Langen for the analysis of logic
programs, derives useful aliasing information. It is well-known that a commonly used core
of techniques, such as the integration of Sharing with freeness and linearity information, can
significantly improve the precision of the analysis. However, a number of other proposals for
refined domain combinations have been circulating for years. One feature that is common
to these proposals is that they do not seem to have undergone a thorough experimental
evaluation even with respect to the expected precision gains.
In this paper we experimentally
evaluate: helping Sharing with the definitely ground variables found using Pos, the domain
of positive Boolean formulas; the incorporation of explicit structural information; a full
implementation of the reduced product of Sharing and Pos; the issue of reordering the
bindings in the computation of the abstract mgu; an original proposal for the addition of
a new mode recording the set of variables that are deemed to be ground or free; a refined
way of using linearity to improve the analysis; the recovery of hidden information in the
combination of Sharing with freeness information. Finally, we discuss the issue of whether
tracking compoundness allows the computation of more sharing information
- …