Monoculture (computer science)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computer science, a monoculture is a community of computers that all run identical software. All the computer systems in the community thus have the same vulnerabilities, and, like agricultural monocultures, are subject to catastrophic failure in the event of a successful attack.[1]

The concept is significant when discussing computer security and viruses. Clifford Stoll wrote in 1989 after dealing with the Morris worm:[2]

A computer virus is specialized: a virus that works on an IBM PC cannot do anything to a Macintosh or a Unix computer. Similarly, the Arpanet virus could only strike at systems running Berkeley Unix. Computers running other operating systems—like AT&T Unix, VMS, or DOS—were totally immune.

Diversity, then, works against viruses. If all the systems on the Arpanet ran Berkeley Unix, the virus would have disabled all fifty thousand of them. Instead, it infected only a couple thousand. Biological viruses are just as specialized: we can't catch the flu from dogs.

Bureaucrats and managers will forever urge us to standardize on a single type of system: "Let's only use Sun workstations" or "Only buy IBM systems." Yet somehow our communities of computers are a diverse population—with Data General machines sitting next to Digital Vaxes; IBMs connected to Sonys. Like our neighborhoods, electronic communities thrive through diversity.

Dan Geer has argued that Microsoft is a monoculture, since a majority of the overall number of workstations connected to the Internet are running versions of the Microsoft Windows operating system, many of which are vulnerable to the same attacks. Internet applications have also been shown to suffer from software monoculture.[3]

See also[edit]


  1. ^ Goth, G. (2003). "Addressing the monoculture". IEEE Security & Privacy. 1 (6): 8–10. doi:10.1109/msecp.2003.1253561. ISSN 1540-7993. S2CID 16965084.
  2. ^ Stoll, Clifford (1989). The Cuckoo's Egg. Doubleday. pp. 320–321. ISBN 978-0-307-81942-0.
  3. ^ Allier, Simon; Barais, Olivier; Baudry, Benoit; Bourcier, Johann; Daubert, Erwan; Fleurey, Franck; Monperrus, Martin; Song, Hui; Tricoire, Maxime (2015). "Multitier Diversification in Web-Based Software Applications" (PDF). IEEE Software. 32 (1): 83–90. doi:10.1109/ms.2014.150. ISSN 0740-7459. S2CID 218184081.