Main Page | See live article | Alphabetical index

Macro virus

In computer technology, a macro virus is a virus that exploits applications which allow their associated documents to contain executable code, known as a macro. For example, a spreadsheet program may enable the user to embed "macro" commands in a document to automate certain operations; this makes it possible to use that same facility to program a virus into the spreadsheet that can attack users of that program.

The most endemic viruses in the late 1980s and early 1990s were macro viruses for Microsoft Office software such as Word and Excel. Later in the 1990s, Microsoft's Outlook e-mail program (which has scripting features) became the most popular vector, as it is today. It enables viruses to spread by e-mailing themselves to the contacts stored in the user's address book (earlier viruses such as the Morris worm also spread by e-mail, but were more limited in their destruction).

A particularly dangerous feature of macro viruses is that they are sometimes able to infect computers running different operating systems and platforms. For example, a macro virus in a Microsoft Word document can infect users of Microsoft Word on Apple Macintosh computers as well as Microsoft Windows.

Some computer programmers and system administrators, notably those writing alternative applications for Linux, have criticised Microsoft for making the unwitting transmission of such macro viruses so straightforward. Microsoft has gradually increased the security features of their programs to make such transmission more difficult--unfortunately, such restrictions remove functionality that many users find useful and so such users re-enable the functionality, again exposing themselves to the risk of virus infection.

Few macro viruses have been written for non-Microsoft applications--in part because other applications are much more difficult to write macro viruses for but also because no other applications are sufficiently ubiquitous to make them a worthwhile target.

See also: