Zvi Netiv said:
Roger Wilco said:
[...]
In our previous discussion you also seemed to have
misinterpreted something about first generation viruses - just because
they are deemed not worthy of inclusion in test beds for AV comparatives
does not mean they fail to meet the definition of virus.
Our previous discussion was about whether overwriters should be considered
viruses or not.
Specifically those overwriters that don't retain host functionaltiy. I
say that they should still be considered viruses because they still fit
the definition(s) - except for yours
)
Gen 1 samples were introduced to the discussion from Bontchev's
paper on how to maintain a virus collection. I have no particular position in
regard of these samples.
IIRC you compared overwriters to the first generation viruses because
you felt that the overwriters were essentially first generation viruses
on each iteration - and hence are more akin to trojans than viruses.
Detectors don't generally find this sort of thing when they are geared
specifically to recognize "infected" files of the type that your
definition indicates, so I can see why you would want to exclude them
via your definition.
You may consider them as valid viruses according to
the definition, including my stringent one.
I suppose so, considering what you say below.
Gen1 are actually a "do nothing"
executable to which the virus code was added.
Since there was no functionality to be preserved in what is now the host
"file" your definition works well enough.
The only difference between a
gen1 file and a real infection is that the latter was created by a spontaneous
infection process, and the previous was created artificially, through
compilation. Note that spontaneity isn't required anywhere in the definition of
virus.
Agreed.
You are confusing between droppers and genuine first generation virus
samples.
Even droppers are viruses if they create a copy of the viral code they
'contain' in another executable area.
Maybe I 'do' need some clarification of the terms "seed file", "germ
file", and "dropper file". But it seems to me that any of them would be
viruses if they contained the viral code and their execution resulted in
that code being replicated into another program. AV may well be best
applied to subsequent iterations (spontaneous infection process), but
changing the definition of virus so that failing to cover them is not
akin to failing to detect a "virus" only serves to confuse.
Do you have a difficulty admitting that they all do? ;-)
A batch file (.bat) that overwrites other batch files with itself does
exist - so I would have difficulty ignoring that fact. Without added
"host funtionality retention" programming it would not be a very
sophisticated virus, but it is still a virus.
Taking it one step
further, can you formulate in words what that implies? Could it be that
preserving the host functionality is inherent to "virus" conduct?
One could argue that other "virus conduct" such as avoiding multiple
infections of the same program should be included in a definition. Just
because it is a great advantage to have that conduct does not mean that
conduct should become a part of the definition.
It's called
the scientific method, if you didn't know.
It is bad science to ignore existing things just because they aren't
often seen.
If it systematically corrupts rather than infect, then it's not a
virus.
If the corruption prevents the execution of the viral code, then it is
not a virus. If the corruption only negatively affects the original host
programs functionality and yet still correctly executes the viral code,
then it 'is' a virus.
Incidently, it is also not a virus (TM) if it corrupts the parent and
only produces one offspring. Kurt mentioned in an earlier thread that he
doesn't think this "non-overlapping" requirement was entirely
necessary - but in a CA program (Life) you could have "sliders' that
repositioned themselves (one unit diagonally?) and that would differ
from a somewhat richer CA that replicated itself to another area of the
2D tape without the new position overlapping the old position.
If it
exhibits irregular behavior, e.g. some instances fail to infect while others
succeed, then it's a buggy virus,
Some programmatically and intentionally (the writers intention) exhibit
such behavior to make emulation based detection more problematic.
Something being "buggy" implies it was not what the author intended.
Or do you have a unique definition for "buggy" as well.
)
and if the botched infection resumes normal
viral behavior when being executed, then it's a singularity and it's unimportant
what you call it.
Interesting, could you explain this more? It seems that "botched
infection" implies that it isn't a viable offspring and yet you say
execution yields viral behavior which seems to indicate it 'was' viable.
Is it this 'host functionality retention' that is "botched" in your
above statement? If so, the "infection" wasn't botched - only the
attempt to retain host functionality was botched. So I would call it a
virus because I don't use your definition of virus.