Introduction to How Computer Viruses Work

advertisement
How Computer Viruses Work
by Marshall Brain and Wesley Fenlon
Introduction to How Computer
Viruses Work
Strange as it may sound, the computer virus is something of an
Information Age marvel. On one hand, viruses show us how
vulnerable we are -- a properly engineered virus can have a
devastating effect, disrupting productivity and doing billions of
dollars in damages. On the other hand, they show us how
sophisticated and interconnected human beings have become.
For example, experts estimate that the Mydoom worm infected approximately a quarter-million computers in a
single day in January 2004. Back in March 1999, the Melissa virus was so powerful that it forced Microsoft and
a number of other very large companies to completely turn off their e-mail systems until the virus could be
contained. The ILOVEYOU virus in 2000 had a similarly devastating effect. In January 2007, a worm called
Storm appeared -- by October, experts believed up to 50 million computers were infected. That's pretty
impressive when you consider that many viruses are incredibly simple.
When you listen to the news, you hear about many different forms of electronic infection. The most common
are:




Viruses: A virus is a small piece of software that piggybacks on real programs. For example, a virus
might attach itself to a program such as a spreadsheet program. Each time the spreadsheet program runs,
the virus runs, too, and it has the chance to reproduce (by attaching to other programs) or wreak havoc.
E-mail viruses: An e-mail virus travels as an attachment to e-mail messages, and usually replicates
itself by automatically mailing itself to dozens of people in the victim's e-mail address book. Some email viruses don't even require a double-click -- they launch when you view the infected message in the
preview pane of your e-mail software [source: Johnson].
Trojan horses: A Trojan horse is simply a computer program. The program claims to do one thing (it
may claim to be a game) but instead does damage when you run it (it may erase your hard disk). Trojan
horses have no way to replicate automatically.
Worms: A worm is a small piece of software that uses computer networks and security holes to
replicate itself. A copy of the worm scans the network for another machine that has a specific security
hole. It copies itself to the new machine using the security hole, and then starts replicating from there, as
well.
In this article, we will discuss viruses -- from "traditional" viruses to e-mail viruses and exploits that could
target your mobile phone -- so that you can learn how they work and understand how to protect yourself.
Patch Tuesday
On the second Tuesday of every month, Microsoft releases a list of known vulnerabilities in the Windows
operating system. The company issues patches for those security holes at the same time, which is why the day is
known as Patch Tuesday. Viruses written and launched on Patch Tuesday to hit unpatched systems are known
as "zero-day" attacks. Thankfully, the major anti-virus vendors work with Microsoft to identify holes ahead of
time, so if you keep your software up to date and patch your system
promptly, you shouldn't have to worry about zero-day problems.
Virus Origins
Computer viruses are called viruses because they share some of the
traits of biological viruses. A computer virus passes from computer
to computer like a biological virus passes from person to person.
Unlike a cell, a virus has no way to reproduce by itself. Instead, a biological virus must inject its DNA into a
cell. The viral DNA then uses the cell's existing machinery to reproduce itself. In some cases, the cell fills with
new viral particles until it bursts, releasing the virus. In other cases, the new virus particles bud off the cell one
at a time, and the cell remains alive.
Similar to the way a biological virus must hitch a ride on a cell, a computer virus must piggyback on top of
some other program or document in order to launch. Once a computer virus is running, it can infect other
programs or documents. Obviously, the analogy between computer and biological viruses stretches things a bit,
but there are enough similarities that the name sticks.
People write computer viruses. A person has to write the code, test it to make sure it spreads properly and then
release it. A person also designs the virus's attack phase, whether it's a silly message or the destruction of a hard
disk. Why do they do it?
There are at least four reasons. The first is the same psychology that drives vandals and arsonists. Why would
someone want to break a window on someone's car, paint signs on buildings or burn down a beautiful forest?
For some people, that seems to be a thrill. If that sort of person knows computer programming, then he or she
may funnel energy into the creation of destructive viruses.
The second reason has to do with the thrill of watching things blow up. Some people have a fascination with
things like explosions and car wrecks. When you were growing up, there might have been a kid in your
neighborhood who learned how to make gunpowder. And that kid probably built bigger and bigger bombs until
he either got bored or did some serious damage to himself. Creating a virus is a little like that -- it creates a
virtual bomb inside a computer, and the more computers that get infected, the more "fun" the explosion.
The third reason involves bragging rights. Sort of like Mount Everest -- the mountain is there, so someone is
compelled to climb it. If you are a certain type of programmer who sees a security hole that could be exploited,
you might simply be compelled to exploit the hole yourself before someone else beats you to it.
And then there's cold, hard cash. Viruses can trick you into buying fake software, steal your personal
information and use it to get to your money, or be sold on the digital equivalent of the black market. Powerful
viruses are valuable -- and potentially lucrative -- tools.
Of course, most virus creators seem to miss the point that they cause real damage to real people with their
creations. Destroying everything on a person's hard disk is real damage. Forcing a large company to waste
thousands of hours cleaning up after a virus attack is real damage. Even a silly message is real damage because
someone has to waste time getting rid of it. For this reason, the legal system continues to develop more rigorous
penalties for people who create viruses.
Ah, the floppy disk: When most people were using these to store and transport computer programs, viruses
spread like wildfire.
Virus History
Traditional computer viruses were first widely seen in the late 1980s, and came about because of several
factors. The first factor was the spread of personal computers (PCs). Prior to the 1980s, home computers were
nearly non-existent. Real computers were rare, and were locked away for use by "experts." During the '80s, real
computers started to spread to businesses and homes because of the popularity of the IBM PC (released in 1982)
and the Apple Macintosh (released in 1984). By the late 1980s, PCs were in businesses, homes and college
campuses.
The second factor was the use of computer bulletin boards. People could dial up a bulletin board with a modem
and download programs of all types. Games were extremely popular, and so were simple word processors,
spreadsheets and other productivity software. Bulletin boards led to the precursor of the virus known as the
Trojan horse. A Trojan horse masquerades as a program with a cool-sounding name and description, enticing
you to download it. When you run the program, however, it does something uncool, like erasing your hard
drive. You think you're getting a neat game, but instead, you get a wiped-out system. Trojan horses only hit a
small number of people because they're quickly discovered, and word of the danger spreads among users.
The third factor that led to the creation of viruses was the floppy disk. In the 1980s, programs were small, and
you could fit the entire operating system, a few programs and some documents onto a floppy disk or two. Many
computers did not have hard disks, so when you turned on your machine it would load the operating system and
everything else from the floppy disk. Virus authors took advantage of this to create the first self-replicating
programs.
Early viruses were pieces of code embedded in a larger, legitimate program, such as a game or word processor.
When the user downloads and runs the legitimate program, the virus loads itself into memory -- and looks
around to see if it can find any other programs on the disk. If it can find one, it modifies the program to add the
virus's code into that program. Then the virus launches the "real program." The user really has no way to know
that the virus ever ran. Unfortunately, the virus has now reproduced itself, so two programs are infected. The
next time the user launches either of those programs, they infect other programs, and the cycle continues.
If one of the infected programs is given to another person on a floppy disk, or if it is uploaded so other people
can download it, then other programs get infected. This is how the virus spreads -- similar to the infection phase
of a biological virus. But viruses wouldn't be so violently despised if all they did was replicate themselves. Most
viruses also have a destructive attack phase where they do real damage. Some sort of trigger will activate the
attack phase, and the virus will then do something -- anything from displaying a silly message on the screen to
erasing all of your data. The trigger might be a specific date, a number of times the virus has been replicated or
something similar.
In the next section, we will look at how viruses have evolved over the years.
Virus Evolution
Virus creators have added new tricks to their bag throughout the years. One such trick is the ability to load
viruses into memory so they can keep running in the background as long as the computer remains on. This gives
viruses a much more effective way to replicate themselves. Another trick is the ability to infect the boot sector
on floppy disks and hard disks. The boot sector is a small program that is the first part of the operating system
that the computer loads. It contains a tiny program that tells the computer how to load the rest of the operating
system. By putting its code in the boot sector, a virus can guarantee it's executed. It can load itself into memory
immediately, and run whenever the computer is on. Boot sector viruses can infect the boot sector of any floppy
disk inserted in the machine, and in places like college campuses, where lots of people share machines, they can
spread like wildfire.
In general, neither executable nor boot sector viruses are very threatening today. The first reason for their
decline has been the huge size of today's programs. Most programs you buy today come on compact discs.
Commercially distributed compact discs (CDs) cannot be modified, and that makes viral infection of a CD
unlikely, unless the manufacturer permits a virus to be burned onto the CD during production. People certainly
can't carry applications around on floppy disks like they did in the 1980s, when floppies full of programs were
traded like baseball cards. Boot sector viruses have also declined, because operating systems now routinely
protect the boot sector.
Infection from boot sector viruses and executable viruses is still possible. Even so, it's a lot less likely than it
once was. Call it "shrinking habitat," if you want to use a biological analogy. The environment of floppy disks,
small programs and weak operating systems made these viruses possible in the 1980s, but that environmental
niche has been largely eliminated by huge executables, unchangeable CDs and better operating system
safeguards.
E-mail viruses are probably the most familiar to you. We'll look at those in the next section.
Phishing and Social Engineering
While you may be taking steps to protect your computer from becoming infected by a virus, you may very well
run into another, more insidious type of attack. Phishing and other social engineering attacks have been on the
rise. Social engineering is a fancy term for someone trying to get you to give up your personal information -online or in person -- so they can use it to steal from you. Anti-spam traps may catch e-mail messages coming
from phishers, but the U.S. Computer Emergency Readiness Team says the best way for you to beat them at
their own game is to be wary. And never give out your personal or financial information online.
E-mail Viruses
Virus authors adapted to the changing computing environment by creating the e-mail virus. For example, the
Melissa virus in March 1999 was spectacular in its attack. Melissa spread in Microsoft Word documents sent
via e-mail, and it worked like this:
Someone created the virus as a Word document and uploaded it to an Internet newsgroup. Anyone who
downloaded the document and opened it would trigger the virus. The virus would then send the document (and
therefore itself) in an e-mail message to the first 50 people in the person's address book. The e-mail message
contained a friendly note that included the person's name, so the recipient would open the document, thinking it
was harmless. The virus would then create 50 new messages from the recipient's machine. At that rate, the
Melissa virus quickly became the fastest-spreading virus anyone had seen at the time. As mentioned earlier, it
forced a number of large companies to shut down their e-mail systems to control the spread.
The ILOVEYOU virus, which appeared on May 4, 2000, was even simpler. It contained a piece of code as an
attachment. People who double-clicked on the attachment launched the code. It then sent copies of itself to
everyone in the victim's address book and started corrupting files on the victim's machine. This is as simple as a
virus can get. It is really more of a Trojan horse distributed by e-mail than it is a virus.
The Melissa virus took advantage of the programming language built into Microsoft Word called VBA, or
Visual Basic for Applications. It is a complete programming language and it can be used to write programs that
do things like modify files and send e-mail messages. It also has a useful but dangerous auto-execute feature. A
programmer can insert a program into a document that runs instantly whenever the document is opened. This is
how the Melissa virus was programmed. Anyone who opened a document infected with Melissa would
immediately activate the virus. It would send the 50 e-mails, and then infect a central file called
NORMAL.DOT so that any file saved later would also contain the virus. It created a huge mess.
Microsoft applications have a feature called Macro Virus Protection built into them to prevent this sort of virus.
With Macro Virus Protection turned on (the default option is ON), the auto-execute feature is disabled. So,
when a document tries to auto-execute viral code, a dialog pops up warning the user. Unfortunately, many
people don't know what macros or macro viruses are, and when they see the dialog they ignore it, so the virus
runs anyway. Many other people turn off the protection mechanism. Because of this, the Melissa virus spread
despite the safeguards in place to prevent it.
In the case of the ILOVEYOU virus, the whole thing was human-powered. If a person double-clicked on the
program that came as an attachment, then the program ran and did its thing. What fueled this virus was the
human willingness to double-click on the executable. The same kinds of exploits have also been passed over
instant messaging networks like AIM and Windows Live Messenger. Commandeered accounts will send out
links to viruses in instant messages; anyone who clicks the link and installs a Trojan application will have their
own account hijacked and unwittingly spam their own friends with the compromising link.
Now that we've covered e-mail viruses, let's take a look at worms.
Worms
A worm is a computer program that has the ability to copy itself from machine to machine. Worms use up
computer processing time and network bandwidth when they replicate, and often carry payloads that do
considerable damage. A worm called Code Red made huge headlines in 2001. Experts predicted that this worm
could clog the Internet so effectively that things would completely grind to a halt.
A worm usually exploits some sort of security hole in a piece of software or the operating system. For example,
the Slammer worm (which caused mayhem in January 2003) exploited a hole in Microsoft's SQL server. Wired
magazine took a fascinating look inside Slammer's tiny (376 byte) program.
Worms normally move around and infect other machines through computer networks. Using a network, a worm
can expand from a single copy incredibly quickly. The Code Red worm replicated itself more than 250,000
times in approximately nine hours on July 19, 2001 [Source: Rhodes].
The Code Red worm slowed down Internet traffic when it began to replicate itself, but not nearly as badly as
predicted. Each copy of the worm scanned the Internet for Windows NT or Windows 2000 servers that did not
have the Microsoft security patch installed. Each time it found an unsecured server, the worm copied itself to
that server. The new copy then scanned for other servers to infect. Depending on the number of unsecured
servers, a worm could conceivably create hundreds of thousands of copies.
The Code Red worm had instructions to do three things:



Replicate itself for the first 20 days of each month
Replace Web pages on infected servers with a page featuring the message "Hacked by Chinese"
Launch a concerted attack on the White House Web site in an attempt to overwhelm it [source:
eEyeDigitalSecurity]
Upon successful infection, Code Red would wait for the appointed hour and connect to the
www.whitehouse.gov domain. This attack would consist of the infected systems simultaneously sending 100
connections to port 80 of www.whitehouse.gov (198.137.240.91).
The U.S. government changed the IP address of www.whitehouse.gov to circumvent that particular threat from
the worm and issued a general warning about the worm, advising users of Windows NT or Windows 2000 Web
servers to make sure they installed the security patch.
A worm called Storm, which showed up in 2007, immediately started making a name for itself. Storm used
social engineering techniques to trick users into loading the worm on their computers. And boy, was it effective
-- experts believe between 1 million and 50 million computers have been infected [source: Schneier]. Anti-virus
makers adapted to Storm and learned to detect the virus even as it went through many forms, but it was easily
one of the most successful viruses in Internet history and could someday rear its head again. At one point, the
Storm worm was believed to be responsible for 20 percent of the Internet's spam mail [source: Kaplan].
When the worm is launched, it opens a back door into the computer, adds the infected machine to a botnet and
installs code that hides itself. Botnets are small peer-to-peer groups, rather than a larger, more easily identified
network. Experts think the people controlling Storm rent out their micro-botnets to deliver spam or adware, or
for denial-of-service attacks on Web sites.
Viruses of all kinds were a major threat in the early
years of the Internet's growth. They're still out there,
but since the mid-2000s anti-virus software has
gotten better and Web browsers and operating
systems have become more secure. Will the big threat
of the 2010s be levied against smartphones rather
than PCs?
Viruses In the 2000s and
Beyond
New viruses pop up all the time, but it's rare for a worm or other exploit to have the kind of impact that Storm
once did. The 10 Worst Computer Viruses of All Time struck around the turn of the century and in the early
2000s. Computers were ripe targets: Anti-virus software was expensive and not always reliable, Microsoft's
Internet Explorer was ripe for exploitation and PC users were unaware of how easily viruses could spread over
the Internet. Viruses haven't had the same kind of impact in recent years for a number of reasons.
People are a bit better educated about viruses. Free anti-virus software is easy to download. Microsoft
recommends its own Security Essentials, while companies like AVG and Avast offer their own free alternatives.
Computer software, in general, is designed with the Internet in mind and is less susceptible to viruses. Just
compare today's Chrome and Firefox browsers to the infamously terrible Internet Explorer 6, which was
patched for over a decade after its release in 2001. Viruses are still around, of course -- in 2009, a worm called
Downadup infected millions of computers in a matter of days. We're just getting better at handling them.
There are more viruses than ever out there for anti-virus software to keep track of. These programs will
automatically update themselves regularly -- often even daily -- to guard against the latest virus mutations on
the Internet. Just look at Avast's Virus Update History to see how many Trojans, worms and other nefarious bits
of code are added to the database every day.
In a modern era of smartphones and tablets, it's actually easier than ever to browse the Internet without getting a
virus. Why? Because viruses are written for specific platforms. A virus intended to exploit something on
Windows won't work on Apple's Mac operating system -- the code that makes up the two systems is completely
different. Similarly, the code that makes up mobile operating systems like Android and iOS is different from the
code on PCs. Viruses that would cripple your computer won't work on mobile devices.
But mobile devices aren't completely secure, themselves. There are viruses out there that can extract personal
information from Android phones. Because Apple's iOS is a closed source platform, unlike the open source
Android, it's more difficult to target with viruses. Besides, Windows is still a juicier target. While mobile
viruses will certainly become more popular as smartphone sales increase, as of 2011, they're a very minor
concern.
In the next section, we'll look at patching your PC and other things you can do to protect your computer.
How to Protect Your Computer from Viruses
You can protect yourself against viruses with a few simple steps:
If you're truly worried about traditional (as opposed to e-mail) viruses, you should be running a more secure
operating system like Linux and, to a lesser extent, Apple's Mac OS X. You never hear about viruses on these
operating systems because they represent such a small part of the market they're targeted by far fewer viruses
than the Windows operating system. Apple's OS X has seen its share, but viruses are still predominately a
Windows problem.
If you're using an unsecured operating system, then installing virus protection software is a nice safeguard.
Many anti-virus options are available for free online.
If you simply avoid programs from unknown sources (like the Internet), and instead stick with commercial
software purchased on CDs, you eliminate almost all of the risk from traditional viruses.
You should make sure that Macro Virus Protection is enabled in all Microsoft applications, and you should
NEVER run macros in a document unless you know what they do. There is seldom a good reason to add macros
to a document, so avoiding all macros is a great policy.
You should never double-click on an e-mail attachment that contains an executable. Attachments that come in
as Word files (.DOC), spreadsheets (.XLS), images (.GIF), etc., are data files and they can do no damage
(noting the macro virus problem in Word and Excel documents mentioned above). However, some viruses can
now come in through .JPG graphic file attachments. A file with an extension like EXE, COM or VBS is an
executable, and an executable can do any sort of damage it wants. Once you run it, you have given it permission
to do anything on your machine. The only defense: Never run executables that arrive via e-mail.
By following these simple steps, you can remain virus-free.
Download