45

Can a virus infect my Windows XP operating system by its mere presence? I mean, if I copy/paste a virus on my computer and I never click on it, will it infect my computer or will it remain dormant, not harming my computer, as long I do not click on it?

7
  • 1
    A related discussion if you need more info. security.stackexchange.com/questions/41971/self-executing-files Jul 24, 2014 at 9:49
  • 3
    Note that there could be bugs present in XP that we don't know yet that can make it possible in the future.
    – PlasmaHH
    Jul 24, 2014 at 13:27
  • 2
    Sometimes launch command can be hidden in Register, i.e. in *\Software\Microsoft\Windows\CurrentVersion\Run key. Then the virus may be started during the user logon. Jul 24, 2014 at 13:56
  • 7
    @AJHenderson: I remember quite some occasions where windows explorer would crash on various files upon trying to display it, because it parses it for whatever reason (icons, preview image etc). mediaplayer would crash just by opening the file open dialog for certain mp3s. Also win98 had the nice behaviour to execute the mbr of a second hdd under certain circumstances. There are lots of things where files are loaded and parsed without explicit user interaction for that specific file. All of these have potentials to have bugs that can lead to code execution.
    – PlasmaHH
    Jul 24, 2014 at 14:00
  • 3
    @PlasmaHH - that's a fair point, there might be a small chance. Those were still more likely bugs that resulted in crashing though. It would be rather hard, if even possible, to hook such a behavior in to causing a code execution, but it might not be impossible. I'd still say it is pretty unlikely, especially for any run of the mill virus. An active infection approach is far more likely. Jul 24, 2014 at 14:28

7 Answers 7

24

No, a virus does not need to be clicked on or accessed by the user directly to infect a system. All the virus laden file needs to do is take advantage of a vulnerability in the program that is accessing it.

Examples in Windows XP

Security Bulletin MS11-006 documents a bug in the way thumbnails were produced by windows explorer to trick it into running code and only required the user to access the folder containing the file.

Microsoft Knowledge Base 971029 - Update to the AutoPlay functionality in Windows documents a change to behaviour in Windows XP where a file (called autorun.inf) is used to direct the system to launch application(s) when a piece of media is inserted/connected. This behaviour was taken advantage of by viruses like Autorun.NH on USB sticks, removable drives and network drives by viruses to propagate. No user interaction beyond connecting a usb or removable drive to propagate and execute.

It's not just an operating system problem either

Well, no. Problems like this are not restricted to the operating system, nor are they restricted to Windows. A recent example is A 20 year old bug in the commonly used LZO compression module which has been discovered and fixed. It affected a shared library used by dozens (if not 100's) of applications and meant that if the faulty routine happened to be in a program that scans files (for example a media application scanning for metadata) then again a machine could get infected without a user interacting with or clicking on that file.

How likely is it?

These examples have all been spotted and fixed for those who've applied the appropriate updates and patches. What they should do above all is to serve as illustration as to how these types of bugs can be used and exploited to get code to run without user interaction. Copying or just having the file there can be enough.

Initially creating files to take advantage of these flaws/features initially might take a good deal of skill. But toolkits are available which make producing a virus more of a point and click operation - you tell it what flaws you want it to take advantage of and what you want to run and it'll give you back a nasty. So it's more likely than you'd think.

Do you have any tips on protecting myself? Why, yes I do! Defence in depth is the key and operate on the principle that none of them will keep out everything but each one helps. Here are my top 3 for file-based viruses.

  • Run antivirus software - it is not a magic bullet but if you keep the definitions up to date and periodically scan existing files as well as new ones it will help, and if you have multiple machines running a different antivirus on each one helps.
  • Keep up to date with their patches - As well as Windows Update, use a tool like Secunia PSI to help keep the rest of your applications in check.
  • Don't run with more permissions than you need - Yes it may be annoying for the once a year you might actually install some software or want to change a system setting but it adds another layer of protection.

I'm not affiliated with Secunia, just a satisfied user.

6
  • I'd have to look up public sources for MS11-006 exploits but that may have been subject to NDA. I also used it via metasploit which would most likely have been later. Jul 27, 2014 at 10:13
  • 1
    @JamesSnell if it is in metasploit that alone would counter my question, assuming it allows arbitrary execution. Jul 27, 2014 at 12:55
  • 1
    @randomdude - I see what you're getting at. My answer goes a step further and assumes 'virus' to be a generic term for malicious code. Replication mechanisms seemed moot in any case. Jul 27, 2014 at 15:15
  • 1
    @AJHenderson it does indeed, there are demo's of it with payloads opening calculator and creating a meterpreter session. Jul 27, 2014 at 15:44
  • 1
    @JamesSnell Cool. Glad you didn't take my comment the wrong way :)
    – randomdude
    Jul 27, 2014 at 16:39
46

A virus can't do anything by simply being present on your system as data. A virus is just a program, it must be executed by something. The trick is that that something does not have to be you clicking it.

Computers do many things automatically without your attention. They accept requests for file transfers, remote desktop, provide details about their state, check for system updates, etc. Additionally, you perform many actions that can be hijacked by nefarious code on another system, such as running websites with Javascript or Flash or running programs that pull data from the Internet or process documents (such as e-mail or office documents).

Any of these hundreds of paths of execution can be used to either trick a system in to running a virus that is downloaded with a website or to even remotely cause execution of a virus loaded on to the system without any user interaction at all. So while you could (generally) safely download a copy of most viruses and let the code sit dormant on your system, there are a great many ways that an attacker could potentially cause a virus to be installed on your system without you taking any direct action. (This is, in fact, the way that the quarantine option normally works in a virus scanner. It just renames it and copies it to a different location.)

That said, I'd still recommend setting up a virtualized environment to test with. There isn't any good reason not to, they are easy to setup and provide an extra layer of protection. There is a very slim possibility it might be able to abuse some system process, such as hooking a search indexer or thumbnail viewer. However, there is also a very slim chance that a virus may be able to escape a virtualized environment. The odds of it doing both become increasingly unlikely though, especially if you change the extension on it to disassociate it from many system processes that might otherwise process it differently.

This is why it is so important to use things like firewalls on your network and to keep your operating system and other applications patched and up to date. Security patches are released to fix holes as they are discovered, but many undiscovered or unpublished vulnerabilities certainly still exist. Things are secure enough that not just anyone can break in to your system if you keep it up to date, and as long as you keep attackers off your network with a firewall you are probably pretty safe though, especially if you disable active content (like Flash and certain Javascript) when browsing the Internet.

As XP no longer gets security updates, you are left high and dry against any newly discovered vulnerabilities and it will become increasingly easy for a remote code execution vulnerability to be used against your system without there being anything you can do to stop it short of removing your computer from the Internet.

11
  • 1
    Can you elaborate on disabling "Certain javascript"? I've heard of some people disabling js entirely for security purposes, but how do you do so selectively?
    – loneboat
    Jul 24, 2014 at 14:17
  • 2
    @loneboat - mostly by using a separate system. I personally haven't looked in to it that much, but there are projects like Caja Project working on subsets of Javascript that are more secure. I'm not sure if there are any browsers that can currently limit execution to that though. Jul 24, 2014 at 14:33
  • I don't know how common this is, but some anti-virus software will "scramble" the viruses before saving them to disk. Probably to avoid making another AV program panic, or to decrease the chances that it will execute due to some exploit. I think it xor-ed every byte with 10101010 or something like that.
    – Patrick M
    Jul 24, 2014 at 18:19
  • 1
    @AJHenderson Unless I'm mistaken it looks like Caja is designed to allow user-defined JavaScript to run in a webpage without exposing the host site to XSS attacks. Caja does not appear to be designed to prevent zero-day browser exploits, which is the only threat JavaScript poses that is relevant to this question.
    – Ajedi32
    Jul 24, 2014 at 19:50
  • @Ajedi32 - XSS is a major vector for injecting such malicious JavaScript though, if you can prevent that, then the instances of drive by malware goes down significantly. Preventing malware download is one of the main goals of the project. The main point I was getting at was simply that not all Javascript is dangerous, only particular parts. If you can avoid those part, then you are far safer, that can be done by either the client or the server or both as long as the server itself is actually trust worthy. Jul 24, 2014 at 20:03
39

It depends on the file format.

Executables do not run themselves, unless some clever trick is employed (autorun.inf and .lnk were popular techniques a while ago).

Nevertheless, MS11-006 demonstrates that clicking on an infected file is not always necessary (this exploit triggered when a thumbnail of the infected document was rendered by the system, for example when you browsed to a folder containing it). The lesson we learn from this is that the system may interact with your files without you explicitly asking for it.

For instance, you may have an antivirus software which will automatically scan the infected file. Suppose that the AV's PE parser is flawed, you might just get code execution without any interaction.

Realistically though, you're most likely safe if you don't double-click on the file. Otherwise, it means that you are analyzing something quite sophisticated. Just to be on the safe side, always handle malware in virtualized environments!

0
6

It depends. Typically trivial viruses require you to click on them (i.e. execute a file in some way). There should be no way to execute code without you double-clicking virus.exe or similar.

In reality, a virus author can technically find a bug in windows (which isn't that improbable on XP) and cause trouble that way. For example, if there is a bug in the file copying routine and an attacker is able to execute code just by you copying the file, then yes, the virus can certainly harm you.

In any case, if you have a virus to analyze (or whatever you where trying to do with it on your computer) you should do it in a sandboxed environment (i.e. VirtualBox or a seperate computer) so it can do no harm to your system

1
  • A bug? In Windows XP?
    – MadTux
    Jul 28, 2014 at 9:27
4

It depends.

I couldn't agree more with HackerCow's answer. There are lot of viruses that are different in the way they behave such as executing by click, auto-executing, auto-duplicating, etc.

Once a virus enters your system, you are vulnerable no matter what the type or behavior it possesses. And as an obvious statement, we know that XP is not so great with security compared to the latest versions of the operating system. For instance, the User Account Control(UAC) which allows to execute a program with administrator rights is missing.

Have an updated Anti-virus software installed and do not allow any sort of virus or malwares to enter your machine. It is harmful even if you have it without executing.

2

No. It is not always necessary to click on a virus. For instance. A virus may be dropped on your computer by a drive-by download. This is done when you visit a site which exploits a vulnerability in your browser, hence dropping malware on your system. This also allows a remote attacker to start the virus.

Another example is a virus which will attach itself to boot-commands of other applications, thus being called when for eample the mediaplayer is used. You don't directly open the virus but it will be opened by the mediaplayer for example.

A malicious file, virus if you will, sitting completely isolated on a harddrive without user or system interaction will not be able to launch itself if that's the concern.

3
  • 1
    Your answer doesn't really explain how the virus is attached or how it is that a website can execute a local process; yet this is actually what matters for the scope of this question. Jul 24, 2014 at 11:36
  • IMO that's not really the scope. However there are a lot of ways to do this. Mostly this is done by hackers who know a stack based vulnerability and exploit this. Examples are buffer overflows, return to libc attacks etc. This allows remote code execution and run programs with the same permissions as the browser. Or even dropping you in a root shell with a return to libc attack.
    – 4oxer
    Jul 25, 2014 at 14:55
  • The question was not "what is the typical persistence mechanism of malware?" but "is there malware whose attack vector does not involve user interaction?". Now given the types of exploits you describe, the vulnerabilities that allow them can be found in code that processes data without explicit user interaction such as downloading, rendering of a thumbnail or even virus scanning as explained by @executifs above. Jul 25, 2014 at 16:35
0

One practical answer to this question, too. Which was, "If I copy/paste a virus on my computer and I never click on it," will it do any harm? And as others have noted, it will almost certainly not do any harm, if you copy it to your computer and do nothing else. Email and web browsing are separate topics. However, if you want to store a virus for some reason (?) and want to ensure it does nothing: a) change the filetype (as mentioned), b) put it in a file archive (ZIP, etc.), and best yet, c) encrypt it or the like.

You must log in to answer this question.