A
Arthur Hagen
Zvi Netiv said:The definition of virus ( www.invircible.com/glossary.php ) is: "A
virus is parasitic computer code that replicates by producing
functional copies of itself into host files. The infected hosts
inherit the replication ability of the affecting virus, in addition
to maintaining the original functionality of the host program or
file."
The last part requires that everything that was contained in the
program in its preinfected state, be still there, plus the necessary
changes made by the virus to incorporate its own code in the program
flow. A direct deduction is that all virus infections are
theoretically reversible, by reverting the changes made to the
program, and since nothing from the original code was lost. This is,
in a nutshell, the entire theory on which virus disinfection and
recovery is based upon.
You forget that a virus can *replicate* the functionality of a program
without keeping it, in which case there's nothing to revert back to.
This is most certainly true for most boot virus, and also some file
virus do this.
As to disinfection vs integrity restoration, everything disinfection
can do, restoration will do better, and much of what restoration will
do, can't be done by disinfection at all (like disinfection from
highly polymorphic viruses, or from new ones).
Or disinfection where the original is not retained at all.
I didn't expect you will, yet ...
The problem is with the word "nearly". Just for fun, place the eicar
test string in an NTFS or XFS stream for a file, and see how many
"properly implemented" real time integrity monitors will catch it. Or
do a prelink/requickstart of executables and libraries and see how many
of the monitoring programs that will go nuts because the files have
changed.
(So far I know of only *one* AV product that breaks down a file into
different hunk types and only scans the relevant bits. And it doesn't
do monitoring. And only *one* product that checks streams, and it's not
an AV product, but an anti-spyware product.)
Regards,