scispace - formally typeset
Open AccessJournal ArticleDOI

Negative trust for conflict resolution in software management

Giuseppe Primiero, +1 more
- Vol. 16, Iss: 4, pp 251-271
Reads0
Chats0
TLDR
A logic of negative trust is developed with two aims: identifying packages that are undesirable in view of the current installation profile; and currently installed packages that become inconsistent with a new intended installation.
Abstract
Software management systems need to preserve integrity by the handling, approval, tracking and execution of changes on the packages of the current installation profile. This is a problematic task, which needs to be accounted for both in terms of installation of new packages and removal of conflicting ones. While existing approaches are able to identify dependency satisfaction and conflicts, a broader and efficient approach can be formalised in terms of trust. Positive instances of trust are required by the identification of safely installable packages. Negative trust, a much less explored concept, can be useful to analyse the complementary issue of packages’ removal both in case of conflicts and of security issues. In this paper we develop a logic of negative trust with two aims: identifying packages that are undesirable in view of the current installation profile; and currently installed packages that become inconsistent with a new intended installation. The logic provides distinct procedures for the identification of either case. We illustrate properties of the calculus, provide a simple working example and offer a translation of the protocol to the Coq proof assistant for verification of its formal correctness.

read more

Content maybe subject to copyright    Report

Negative trust for conflict resolution in software
management
Giuseppe Primiero
Department of Philosophy, University of Milan
Jaap Boender
Department of Computer Science, Middlesex University London
November 7, 2018
Abstract
Software management systems need to preserve integrity by the han-
dling, approval, tracking and execution of changes on the packages of the
current installation profile. This is a problematic task, which needs to be
accounted for both in terms of installation of new packages and removal
of conflicting ones. While existing approaches are able to identify depen-
dency satisfaction and conflicts, a broader and efficient approach can be
formalised in terms of trust. Positive instances of trust are required by
the identification of safely installable packages. Negative trust, a much
less explored concept, can be useful to analyse the complementary issue of
packages’ removal both in case of conflicts and of security issues. In this
paper we develop a logic of negative trust with two aims: identifying pack-
ages that are undesirable in view of the current installation profile; and
currently installed packages that become inconsistent with a new intended
installation. The logic provides distinct procedures for the identification
of either case. We illustrate properties of the calculus, provide a simple
working example and offer a translation of the protocol to the Coq proof
assistant for verification of its formal correctness.
1 Introduction
Software management configuration is among the most pervasive problems in
modern personal computing. The maintenance of a consistent and functioning
software system is complicated by the ability of modern systems to accommodate
multiple users, by the need of releases to preserve package compatibility across
versions and customizations, and the essential coherence required by distributed
systems, especially in the context of web and cloud services. One of the specific
aspects involved by these issues is software change management: the handling,
approval, tracking and execution of changes on the packages of the current
installation profile, with the crucial requirement that integrity of the system
1

be preserved. In most cases, users manage their installation profile through a
software package system which satisfies integrity through an underlying logical
notion of validity.
Definition 1 (Valid Installation profile). An installation profile is valid if and
only if all dependencies for the installed packages are met and all conflicts are
avoided.
The aim of software management is to preserve validity, which can be af-
fected by installation of new packages. Let us illustrate this issue with a simple
example. The server-side software underlying the package management system
in the free operating system Debian and its numerous derivatives is called dpkg;
the user typically accesses it through the apt tool. Binary packages are capable
of declaring their dependencies and conflicts and this allows the system to main-
tain profile validity.
1
When a conflict is declared between two packages, dpkg
forbids them to be unpacked on the system at the same time. So a package φ
conflicts with package ψ when φ will not operate if ψ is installed on the system.
If one of the two is already installed in the profile, then it must be removed
before the other one can be unpacked. If the package intended for installation
is marked as replacing another one on the system, or the one on the system is
marked as deselected, then dpkg will remove the package which is causing the
conflict. If both packages are marked Essential, it will halt the installation of
the new package with an error. This makes sure that essential packages are not
substituted by non-essential ones. This also illustrates that packages and their
dependencies come with a priority relation. Note also that sharing functionali-
ties with another package is not a sufficient reason to declare conflicts with that
package.
1.1 An example
Let us consider the dependencies list for the Tor package from Figure 1: this
list presents an underlying conflict with libsl0.9.8 which, as shown in Figure
2, is an outdated package version which is no longer available in the reposi-
tory: this conflict could be resolved by manual installation or just by admitting
the required higher version libsl1.0.0 of the library involved by the conflict.
Moreover, the Tor Bundle depends on the package libc6, which is the C Gnu
library required by any program in that language.
Consider now that a user under this same installation profile attempts an
installation of the package triggering the dependencies listed in Figure 3: this
package induces the upgrade and associated error with libc6 illustrated in
Figure 4.
2
The software package hedgewars requires an upgrade on libc6;
this would require overwriting it with its replacement; but the library cannot
be (temporarily) removed, as it is required by Tor. In other words, libc6
has unresolvable dependencies while, at the same time, removing it becomes
1
https://www.debian.org/doc/debian-policy/ch-relationships.html\#s-conflicts
for details.
2
This error is reported at https://ubuntuforums.org/showthread.php?t=1091866.
2

gprimiero@xps:˜ aptcache depends tor
tor
Depends: libc6
Depends: libevent2.05
Depends: libseccomp2
Depends: libssl1 .0.0
Depends: libsystemd0
Depends: zlib1g
Depends: adduser
Depends: initsystemhelpers
Depends: lsbbase
Conflicts : <libssl0.9.8>
Recommends: logrotate
Recommends: torgeoipdb
Recommends: torsocks
Suggests: mixmaster
Suggests: torbrowserlauncher
Suggests: socat
Suggests: torarm
Suggests: apparmorutils
Suggests: obfsproxy
Suggests: obfs4proxy
Figure 1: List of dependencies for Tor Package.
gprimiero@xps:˜ sudo aptget install libssl0 .9.8
Error:
Reading package lists... Done
Building dependency tree
Reading state information ... Done
Package libssl0 .9.8 is not available , but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package libssl0 .9.8 has no installation candidate
Figure 2: Conflict message for obsolete package libssl0.9.8.
hard due to the number of other packages that depend on it, including the Tor
Bundle.
This example illustrates that an optimal conflict resolution strategy would
make the user not only aware that libssl0.9.8 is not safe to be installed in view
of the direct conflict with Tor (as indeed apt does); but also that hedgewars is
non-safe in view of the current installation, because installing it would require
Tor to be removed, due to its dependency in view of the given version of libc6.
Determining these consistency relations between packages in a given instal-
lation profile is essential for the system’s stability, but also to prevent the pos-
sibility of security threats in critical systems: if the system at hand is meant
to control infrastructure rather than allow to play games, unsafety means a lot
more.
1.2 The Uninstall Problems
The ability to determine which and how many software packages would need
to be removed by the installation of a new one, is therefore an essential aspect
3

gprimiero@xps:˜ sudo aptget install hedgewars
Upgraded the following packages:
fpcompiler (2.2.0dfsg19ubuntu1) to 2.2.28
fpunitsbase (2.2.0dfsg19ubuntu1) to 2.2.28
fpunitsmisc (2.2.0dfsg19ubuntu1) to 2.2.28
fpunitsrtl (2.2.0dfsg19ubuntu1) to 2.2.28
libc6 (2.8˜200805050ubuntu9) to 2.94
libc6amd64 (2.8˜200805050ubuntu9) to 2.94
libc6dev (2.8˜200805050ubuntu9) to 2.94
libc6devamd64 (2.8˜200805050ubuntu9) to 2.94
libc6i686 (2.8˜200805050ubuntu9) to 2.94
Figure 3: Requirement for installation of hedgewars package
gprimiero@xps:˜
Unpacking replacement libc6 ...
dpkg: error processing /var/cache/apt/archives/libc6 2.94 i386.deb
(−−unpack):
trying to overwrite ‘/usr/share/man/man1/localedef.1.gz’,
which is also in package belocslocalesbin
dpkgdeb: subprocess paste killed by signal (Broken pipe)
Processing triggers for mandb ...
Errors were encountered while processing:
/var/cache/apt/archives/libc6 2.94 i386.deb
Figure 4: Conflict message for required libc6 library.
of software management. This not only to provide confidence on the safety of
the system, but also to allow the user to asses the risks and changes required.
The problem of maintaining profile consistency and system integrity in view of
uninstall processes has already been addressed in the literature. In [50], the
problem is presented in the following terms:
Definition 2. (Uninstall Problem). Given a new package φ to install, de-
termine the minimal number of packages (possibly none) that must be removed
from the system in order to make φ installable.
This means identifying and removing all packages ψ
1
, . . . , ψ
n
currently in-
stalled that are in conflict with the intended installation of φ and all of its
dependencies ξ
1
, . . . , ξ
n
. This version of the problem can be complemented by
that of identifying packages that depend on an undesired one.
Definition 3. (Uninstall Problem (Alternative Version)). Given a new
package φ whose installation needs to be prevented, determine for which other
packages depending on φ installation has to be prevented.
This means identifying all packages ξ
1
, . . . , ξ
n
depending on the package φ
that is in conflict with some of the currently installed packages ψ
1
, . . . , ψ
n
and
for which installation needs to be prevented.
The relations between client and software repository illustrated by these
problems can be reformulated in terms of trust. In particular, in the example
from the previous subsection, we are considering instances of negative trust: if
trust is granted to a package which preserve profile validity, then trust should
be denied to any package that threatens such consistency (and completeness).
4

Whatever the nature of the interested property breach, we can express this func-
tionally as a trust denial operation. In our example, libssl0.9.8 is strictly
untrustworthy under the current installation; and, provided the intended instal-
lation of hedgewars, the package Tor looses its trustworthiness status, provided
it depends on libc6 which would need to be removed. Obviously, this relation
is instantiated also in a different form: hedgewars should be labelled untrust-
worthy, and more so than libssl0.9.8, as the damage it induces to system’s
stability is so much more vast.
This illustrates how an account of the effects of conflicts is essential, as well
as a description of how procedurally different operations can be performed to
resolve the same conflict. Negative instances of trust have a complex, and so
far little studied, meaning. One way to clarify it is by clearly distinguishing
between two of its forms: here and in the following the term untrust is used as
neutral for ‘negative trust’ with respect to its derivatives mistrust and distrust,
where the former expresses trust removal, the latter trust denial. These two
types of operations can be used to formalize different approaches to conflict
prevention and conflict resolution. On this basis, we adapt here the Uninstall
Problems from Definitions 2 and 3 to the two semantics of untrust:
Definition 4. (Mistrusted Uninstall Problem) Given a package φ to be
installed but conflicting with the current profile, determine which packages have
to be mistrusted in order for φ to become installable.
As in the approach from [50], we are interested here in determining the
minimal set of packages inconsistent with φ that eventually have to be removed
from the installation profile.
Definition 5. (Distrusted Uninstall Problem) Given a distrusted package
φ, determine which other packages can be installed (i.e. do not depend on φ).
In this case, we are obviously interested in determining the maximal set of
installable packages that do not conflict with φ and therefore eventually can be
granted installation.
In the present paper we provide a solution to these two problems in soft-
ware management through their formalization in a logic for negative trust.
Consistency-checking on contents is a natural basic way to interpret compu-
tational trust: if this is translated in the context of software management, trust
corresponds to a property obtained by installation validity as per Definition 1.
Negative trust seems therefore an appropriate functional counterpart to be ap-
plied to any software package which breaks such validity. Note that this can
notion of negative trust must allow to express the two cases mentioned above,
of trust removal (from the current profile) ad of trust denial (for external pack-
ages).
To express such operations, we are in need of a language which expresses
trust and its negation as functions on contents (i.e. software packages in the
present context), rather than as a relation between agents. To this aim the logic
(un)SecureND, introduced in Section 4, is an optimal tool. The logic allows to
5

Citations
More filters
Journal ArticleDOI

A logic of negative trust

TL;DR: A logic to model the behaviour of an agent trusting or not trusting messages sent by another agent is presented and a natural deduction calculus, a relational semantics and soundness and completeness results are proved.
Book ChapterDOI

A granular approach to source trustworthiness for negative trust assessment

TL;DR: A formal rule-based set of strategies to establish possibly negative trust on contradictory contents that use such source evaluation and answer to criteria of higher trustworthiness score, majority or consensus on the set of sources are proposed.
Journal ArticleDOI

Mutation Testing for Rule-Based Verification of Railway Signaling Data

TL;DR: A mutation-based validation technique is discussed that guides domain experts in the construction of such verification rules and is used to quickly generate millions of well-formed data mutations of control tables and to synthesize mutation programs.
Journal ArticleDOI

A theory of change for prioritised resilient and evolvable software systems

TL;DR: A full formalisation of operations on software systems inspired by the Alchourrón–Gärdenfors–Makinson (AGM) paradigm for belief revision of human epistemic states is proposed, representing specifications as finite sets of formulas equipped with a priority relation that models functional entrenchment of properties.
Journal ArticleDOI

OUP accepted manuscript

TL;DR: In this paper , the authors formulate a logic (un)SecureNDsim*, equipped with a proof-theory and a relational semantics in which negative trust relations are defined formalizing the attitude of paranoid agents, i.e., agents distrusting any information originating from the authority and thereby spreading what can be characterized as the content of conspiracy theories.
References
More filters
Proceedings ArticleDOI

Security Policies and Security Models

TL;DR: The reader is familiar with the ubiquity of information in the modern world and is sympathetic with the need for restricting rights to read, add, modify, or delete information in specific contexts.
Journal ArticleDOI

Trust : a sociological theory

TL;DR: Trust and rapid social change: a case study Bibliography References Index as mentioned in this paper The turn towards soft variables in sociological theory 2 The idea of trust 3 Varieties of trust 4. Foundations of trust 5. The functions of trust 6. The culture of trust 7. Trust in democracy and autocracy 8.
Proceedings ArticleDOI

Propagation of trust and distrust

TL;DR: It is shown that a small number of expressed trusts/distrust per individual allows us to predict trust between any two people in the system with high accuracy.
Proceedings ArticleDOI

A matrix factorization technique with trust propagation for recommendation in social networks

TL;DR: A model-based approach for recommendation in social networks, employing matrix factorization techniques and incorporating the mechanism of trust propagation into the model demonstrates that modeling trust propagation leads to a substantial increase in recommendation accuracy, in particular for cold start users.
Book

Intuitionistic type theory

TL;DR: These lectures were given in Padova and Munich later in the same year as part of the meeting on Konstruktive Mengenlehre und Typentheorie which was organized in Munich by Prof. Helmut Schwichtenberg.