the encoded tuple n.
On the other hand, the symbolic expression
[d
a
←− f (x)] denotes the encoded tuple represented by
d where the element f (x) is “added” at some position
within the tuple. The conventions are the same as they
were for [n
r
←− f (...)], so that [d
a
←− f (S(d))] is the en-
coded tuple represented by d where for each element
j in S(d)(i.e. some encoded tuple of data files), f ( j)
is added in some way to the tuple.
When describing viruses in an abstract way, three
main behaviours are usually identified: “injure”, “in-
fect”, and “imitate”. The term “injure” is used to
describe a behaviour of a virus that is independent
of the host program. Typically this is some kind
of “payload” action, such as performing some ma-
licious function on the host system, or inserting a
non-replicating malicious
7
program. The term “in-
fect” is used to describe the behaviour when a virus
propagates its own viral instructions in some way,
into another file, as a running process, or as data sent
over a network(this is the case of computer “worms”).
Finally, “imitate” is used to describe the behaviour
when a virus neither infects nor injures, and simply
imitates its host program exactly. This paper will only
consider the infection behaviour of a virus. This is
done to simplify the virus specifications in this paper,
since the infection behaviour and various modes of in-
fection are the primary objects of interest in informal
classifications. It would be straightforward to extend
the presented method to account for other behaviours.
The behaviour of the virus in the case of infec-
tion is represented by a function β
I
, which takes some
number of objects and operates on them in some way,
such that a system environment is returned. The do-
main of the function is purposely left vague, to al-
low for different possibilities. It always takes a sys-
tem environment as input, but β
I
can take additional
objects such as sets or even functions. When de-
fined in viral descriptions, it will simply be written
β
I
(...) = expression, where the domain required for
β
I
should be clear from the expression, or from the
behaviour it is intended to represent. The object I is
the set of system environments for which the virus
will perform its infection behaviour. Informally it
can be thought of as the infection condition. The be-
haviour of a virus v is then described with the struc-
ture of
ϕ
v
(d, p) =
(
β
I
(v, d, p) i f hd, pi ∈ I;
... otherwise.
(7)
7
It is possible to use self-replicating programs for bene-
ficial purposes also, see (Filiol, 2005).
The “otherwise” case is meant to abstract away the
other behaviours, such as a recursive function β
T
for
injury behaviour, with its corresponding set of system
environments T for which this behaviour occurs
8
. For
any realistic virus, ϕ
v
should be defined for most if not
all values of the domain(all possible system environ-
ments). By taking a function with the structure of
f (x, d, p) =
(
β
I
(x, d, p) i f hd, pi ∈ I;
... otherwise.
(8)
the virus can be constructed with an application
of Kleene’s recursion theorem, provided β
I
(and any
other behaviour function) is a partial recursive func-
tion(as it will be for the specifications in this paper).
Henceforth, unless specified otherwise this structure
will be assumed for any description of ϕ
v
, and only
three definitions will make up the abstract description
of a computer virus: the viral infection behaviour β
I
,
the infected form
ˆ
i, and the behaviour of the infected
form ϕ
ˆ
i
.
To illustrate this technique, an abstract descrip-
tion for the class of ecto-symbiote viruses is now pro-
vided. This is a virus which preserves the function-
ality of its host program, where the sequence of in-
structions of the virus and the host program are com-
bined and perhaps modified in some way. Appen-
der, prepender, and parasitic viruses, all relate to this
class. These and other variants are described in (Szor,
2005). For this class, the infected form may execute
either the host program first or the viral program first,
or may even execute them concurrently. Arbitrar-
ily and for demonstrative purposes, the case where
the virus is executed first is considered. It is taken
that S : D → D, is a partial recursive function which
when given an encoded tuple returns some certain el-
ements of that tuple(also encoded). Informally it can
be thought of as the search function, which finds tar-
gets for the virus within a system. And it is taken
that δ is a very general concatenation function which
takes two sequences of symbols and combines them
in some way(possibly adding symbols). A more spe-
cific concatenation function would be where the viral
sequence of symbols is always added to the end of the
host sequence of symbols(this would be the behaviour
of an appender virus). Ecto-symbiote viruses can be
described as follows.
Ecto-symbiote Virus
For all j, d, p ∈ D ,
β
I
(...) = hd, [p
r
←−
ˆ
i(S(p))]i; (9)
ˆ
i( j) = δ(v, j) such that (10)
ϕ
ˆ
i( j)
(d, p) = ϕ
j
(ϕ
v
(d, p)). (11)
8
Such a set T , would have to be disjoint from the set I.
ICISSP 2020 - 6th International Conference on Information Systems Security and Privacy
410