Computer insecurity 55885 222558798 2008-06-30T00:05:12Z 128.107.248.220 /* Security measures */ "Stuff"? "Stuff"! Are you serious?! In an ENCYCLOPEDIA?! {{Essay-like|article|date=December 2007}} Many current [[computer system]]s have only limited security precautions in place. This '''computer insecurity''' article describes the current battlefield of computer security [[exploit (computer science)|exploit]]s and defenses. Please see the [[computer security]] article for an alternative approach, based on [[security engineering]] principles. ==Security and systems design== Most current real-world computer security efforts focus on external threats, and generally treat the computer system itself as a [[trusted system]]. Some knowledgeable observers consider this to be a disastrous mistake, and point out that this distinction is the cause of much of the insecurity of current computer systems — once an attacker has subverted one part of a system without fine-grained security, he or she usually has access to most or all of the features of that system. {{Fact|date=February 2007}} Because computer systems can be very complex, and cannot be guaranteed to be free of [[Software bug|defect]]s, this [[security stance]] tends to produce insecure systems. It should be noted that the [[Windows NT]] line of operating systems from [[Microsoft]] contained mechanisms to limit this, such as services that ran under dedicated user accounts, and [[Role-Based Access Control]] (RBAC) with user/group rights, but the [[Windows 95]] line of products lacked most of these functions. Before the release of [[Windows 2003]] [[Microsoft]] has changed their official stance, taking a more locked down approach. On [[15 January]] [[2002]], [[Bill Gates]] sent out a memo on [[Trustworthy Computing]], marking the official change in company stance. Regardless, [[Microsoft]]'s operating system [[Windows XP]] is still plagued by complaints about lack of local security and inability to use the fine-grained user access controls together with certain software (esp. certain popular [[computer games]]). ===Financial cost=== Serious financial damage has been caused by computer [[security breaches]], but reliably estimating costs is quite difficult. Figures in the billions of dollars have been quoted in relation to the damage caused by [[malware]] such as [[computer worm]]s like the [[Code Red worm]], but such estimates may be exaggerated. However, other losses, such as those caused by the compromise of [[credit card]] information, can be more easily determined, and they have been substantial, as measured by millions of individual victims of [[identity theft]] each year in each of several nations, and the severe hardship imposed on each victim, that can wipe out all of their finances, prevent them from getting a job, plus be treated as if ''they'' were the criminal. Volumes of victims of [[phishing]] and other scams may not be known. Individuals who have been infected with [[spyware]] or [[malware]] likely go through a costly and time-consuming process of having their computer cleaned. [[Spyware]] is considered to be a problem specific to the various Microsoft Windows operating systems{{Fact|date=March 2008}}, however this can be partially explained by the fact that Microsoft controls a major share of the PC market and thus represent the most prominent target. ===Reasons=== There are many similarities (yet many fundamental differences) between computer and [[physical security]]. Just like real-world security, the motivations for breaches of computer security vary between attackers, sometimes called [[Hacker (computer security)|hackers]] or [[cracker (computing)|cracker]]s. Some are teenage thrill-seekers or [[vandal]]s (the kind often responsible for defacing web sites); similarly, some [[web site defacement]]s are done to make political statements. However, some attackers are highly skilled and motivated with the goal of compromising computers for financial gain or espionage. An example of the latter is [[Markus Hess]] who spied for the [[KGB]] and was ultimately caught because of the efforts of [[Clifford Stoll]], who wrote an amusing and accurate book, [[The Cuckoo's Egg (book)|The Cuckoo's Egg]], about his experiences. For those seeking to prevent security breaches, the first step is usually to attempt to identify what might motivate an attack on the system, how much the continued operation and information security of the system are worth, and who might be motivated to breach it. The precautions required for a home [[personal computer|PC]] are very different for those of [[bank]]s' Internet banking system, and different again for a [[Classified information|classified]] military [[computer network|network]]. Other computer security writers suggest that, since an attacker using a network need know nothing about you or what you have on your computer, attacker motivation is inherently impossible to determine beyond guessing. If true, blocking all possible attacks is the only plausible action to take. ==Vulnerabilities== To understand the techniques for securing a computer system, it is important to first understand the various types of "attacks" that can be made against it. These threats can typically be classified into one of these seven categories: ===Exploits=== An exploit (from the same word in the French language, meaning "achievement", or "accomplishment") is a piece of software, a chunk of data, or sequence of commands that take advantage of a bug, glitch or vulnerability in order to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic (usually computerized). This frequently includes such things as gaining control of a computer system or allowing privilege escalation or a denial of service attack. Many development methodologies rely on [[Software testing|testing]] to ensure the [[Code quality|quality]] of any code released; this process often fails to discover extremely unusual potential exploits. The term "exploit" generally refers to small programs designed to take advantage of a software flaw that has been discovered, either remote or local. The code from the exploit program is frequently reused in [[Trojan horse (computing)|trojan horse]]s and [[computer virus]]es. In some cases, a vulnerability can lie in certain programs' processing of a specific file type, such as a non-executable media file. Some security web sites maintain lists of currently known unpatched vulnerabilities found in common programs (see "External links" below). ===Eavesdropping=== Eavesdropping is the act of surreptitiously listening to a private conversation. Even machines that operate as a closed system (ie, with no contact to the outside world) can be eavesdropped upon via monitoring the faint [[electromagnetism|electro-magnetic]] transmissions generated by the hardware such as [[TEMPEST]]. The [[FBI]]'s proposed [[Carnivore (FBI)|Carnivore program]] was intended to act as a system of eavesdropping protocols built into the systems of [[internet service providers]]. ===Social engineering and human error=== A computer system is no more secure than the human systems responsible for its operation. Malicious [[individual]]s have regularly penetrated well-designed, secure computer systems by taking advantage of the carelessness of trusted individuals, or by deliberately deceiving them, for example sending messages that they are the system administrator and asking for passwords. This deception is known as [[Social engineering (computer security)|Social engineering]]. ===Denial of service attacks=== Unlike other exploits, denial of service attacks are not used to gain unauthorized access or control of a system. They are instead designed to render it unusable. Attackers can deny service to individual victims, such as by deliberately guessing a wrong password 3 consecutive times and thus causing the victim account to be locked, or they may overload the capabilities of a machine or network and block all users at once. These types of attack are, in practice, very hard to prevent, because the behavior of whole [[computer network|networks]] needs to be analyzed, not only the behaviour of small pieces of code. [[Distributed denial of service#Distributed attack|Distributed denial of service]] (DDoS) attacks are common, where a large number of compromised hosts (commonly referred to as "[[zombie computer]]s") are used to flood a target system with network requests, thus attempting to render it unusable through resource exhaustion. Another technique to exhaust victim resources is through the use of an attack amplifier — where the attacker takes advantage of poorly designed protocols on 3rd party machines, such as FTP or DNS, in order to instruct these hosts to launch the flood. There are also commonly vulnerabilities in applications that cannot be used to take control over a computer, but merely make the target application malfunction or crash. This is known as a denial-of-service exploit. ===Indirect attacks=== An indirect attack is an attack launched by a third party computer. By using someone else's computer to launch an attack, it becomes far more difficult to track down the actual attacker. There have also been cases where attackers took advantage of public anonymizing systems, such as the [[Tor (anonymity network)|tor onion router]] system. ===Backdoors=== A backdoor in a computer system (or cryptosystem or algorithm) is a method of bypassing normal authentication, securing remote access to a computer, obtaining access to plaintext, and so on, while attempting to remain undetected. The backdoor may take the form of an installed program (e.g., Back Orifice), or could be a modification to an existing program or hardware device. A specific form of backdoors are [[rootkits]], which replaces system binaries and/or hooks into the function calls of the operating system to hide the presence of other programs, users, services and open ports. It may also fake information about disk and memory usage. ===Direct access attacks=== [[Image:PersonalStorageDevices.agr.jpg|thumb|Common consumer devices that can be used to transfer data surreptitiously.]] Someone who has gained access to your computer can install any type of devices to compromise security, including [[operating system]] modifications, software worms, [[keystroke logging|key loggers]], and [[covert listening device]]s. The attacker can also easily download large quantities of data onto backup media, for instance [[CD-R]]/[[DVD-R]], [[Tape drive|tape]]; or portable devices such as [[keydrive]]s, [[digital camera]]s or [[digital audio player]]s. Another common technique is to boot an operating system contained on a [[CD-ROM]] or other bootable media and read the data from the [[harddrive]](s) this way. The only way to defeat this is to encrypt the storage media and store the key separate from the system. ''See also:'' [[:Category:Cryptographic attacks]] ===Reducing vulnerabilities=== Computer [[source code|code]] is regarded by some as just a form of [[mathematics]]. It is theoretically possible to [[proof (mathematics)|prove]] the [[correctness]] of computer programs though the likelihood of actually achieving this in large-scale practical systems is regarded as unlikely in the extreme by some with practical experience in the industry — see [[Bruce Schneier]] et al. It's also possible to protect messages in transit (ie, [[communication]]s) by means of [[cryptography]]. One method of encryption — the [[one-time pad]] — is unbreakable when correctly used. This method was used by the Soviet Union during the Cold War, though flaws in their implementation allowed some [[cryptanalysis]] (See [[VENONA|Venona Project]]). The method uses a matching pair of key-codes, securely distributed, which are used once-and-only-once to encode and decode a single message. For transmitted computer encryption this method is difficult to use properly (securely), and highly inconvenient as well. Other methods of [[encryption]], while breakable in theory, are often virtually impossible to directly break by any means publicly known today. Breaking them requires some non-cryptographic input, such as a stolen key, stolen plaintext (at either end of the transmission), or some other extra cryptanalytic information. [[Social engineering (computer security)|Social engineering]] and direct computer access (physical) attacks can only be prevented by non-computer means, which can be difficult to enforce, relative to the sensitivity of the information. Even in a highly disciplined environment, such as in military organizations, social engineering attacks can still be difficult to foresee and prevent. In practice, only a small fraction of computer program code is mathematically proven, or even goes through comprehensive [[information technology audit]]s or inexpensive but extremely valuable [[computer security audit]]s, so it's usually possible for a determined cracker to read, copy, alter or destroy data in well secured computers, albeit at the cost of great time and resources. Extremely few, if any, attackers would audit applications for vulnerabilities just to attack a single specific system. You can reduce a cracker's chances by keeping your systems up to date, using a [[security scanner]] or/and hiring competent people responsible for security. The effects of data loss/damage can be reduced by careful [[back up|backing up]] and [[insurance]]. ==Security measures== A state of computer "security" is the conceptual ideal, attained by the use of the three processes: #[[Risk prevention|Prevention]], #[[Detection]], and #Response. *[[User account]] [[access control]]s and [[cryptography]] can protect systems files and data, respectively. *[[Firewall (networking)|Firewalls]] are by far the most common prevention systems from a network security perspective as they can (if properly configured) shield access to internal network services, and block certain kinds of attacks through packet filtering. *[[Intrusion Detection System]]s (IDS's) are designed to detect network attacks in progress and assist in post-attack [[forensics]], while [[audit trail]]s and [[data logging|log]]s serve a similar function for individual systems. *"Response" is necessarily defined by the assessed security requirements of an individual system and may cover the range from simple upgrade of protections to notification of [[legal]] authorities, counter-attacks, and the like. In some special cases, a complete destruction of the compromised system is favored, as it may happen that not all the compromised resources are detected. Today, computer security comprises mainly "preventive" measures, like firewalls or an [[Exit Procedure]]. A firewall can be defined as a way of filtering network data between a host or a network and another network, such as the [[Internet]], and is normally implemented as software running on the machine, hooking into the [[network stack]] (or, in the case of most [[UNIX]]-based operating systems such as [[Linux]], built into the operating system [[Kernel (computer science)|kernel]]) to provide realtime filtering and blocking. Another implementation is a so called [[physical firewall]] which consists of a separate machine filtering network traffic. Firewalls are common amongst machines that are permanently connected to the [[Internet]] (though not universal, as demonstrated by the large numbers of machines "cracked" by worms like the [[Code Red worm]] which would have been protected by a properly-configured firewall). However, relatively few organisations maintain computer systems with effective detection systems, and fewer still have organised response mechanisms in place. ===Difficulty with response=== Responding forcefully to attempted [[security breaches]] (in the manner that one would for attempted physical security breaches) is often very difficult for a variety of reasons: * Identifying attackers is difficult, as they are often in a different [[jurisdiction]] to the systems they attempt to breach, and operate through proxies, temporary anonymous dial-up accounts, wireless connections, and other anonymising procedures which make backtracing difficult and are often located in yet another jurisdiction. If they successfully breach security, they are often able to delete [[Data logging|log]]s to cover their tracks. * The sheer number of attempted attacks is so large that organisations cannot spend time pursuing each attacker (a typical home user with a permanent (e.g., [[cable modem]]) connection will be attacked at least several times per day, so more attractive targets could be presumed to see many more). Note however, that most of the sheer bulk of these attacks are made by automated vulnerability scanners and [[computer worms]]. * [[Law enforcement officer]]s are often unfamiliar with [[information technology]], and so lack the skills and interest in pursuing attackers. There are also budgetary constraints. It has been argued that the high cost of technology, such as [[DNA]] testing, and improved [[forensics]] mean less money for other kinds of law enforcement, so the overall rate of criminals not getting dealt with goes up as the cost of the technology increases. In addition, the identification of attackers across a network may require logs from various points in the network and in many countries, the release of these records to law enforcement (with the exception of being voluntarily surrendered by a [[network administrator]] or a [[system administrator]]) requires a [[search warrant]] and, depending on the circumstances, the legal proceedings required can be drawn out to the point where the records are either regularly destroyed, or the information is no longer relevant. === Further reading === There are [[operating system]]s designed specifically with security in mind, such as the operating system [[OpenBSD]], which is widely considered one of the most heavily code-audited operating systems available. There is an extensive culture associated with electronic security; see [[electronic underground community]]. == See also == === Lists and categories === * [[:Category:Security exploits]] — Types of computer security vulnerabilities and attacks * [[:Category:Spyware removal]] — Programs that find and remove spyware * [[List of computer viruses]] * [[List of computer virus hoaxes]] * [[List of trojan horses]] * [[Timeline of notable computer viruses and worms]] * [[Virus statistics]] === Individual articles === * [[Computer forensics]] * [[Computing]] * [[Cryptography]] (aka [[cryptology]]) * [[Data remanence]] * [[Defensive programming]] * [[Defensive computing]] * [[Full disclosure]] * [[XSA]] * [[Hack (technology slang)|Hacking]] * [[Protection ring]] * [[Physical security]] * [[RISKS Digest]] * [[Security engineering]] * [[Software Security Assurance]] * [[Auditor Security Collection]] * [[Data recovery]] * [[Microreboot]] * [[Crash-only software]] * [[Antivirus software]] * [[Computer virus]] * [[Targeted attacks]] * [[Spyware]] * [[Adware]] * [[Computer worm|Worms]] * [[Trojan horse (computing)|Trojan horse]] * [[Malware]] * [[virus hoax]] * [[Black hat]] * [[Security through obscurity]] * [[Spam (electronic)|Spam]] * [[Palm OS Viruses]] * [[Data spill]] * [[Zero day attack]] * [[Mangled packet]] == References == *[[Ross Anderson|Ross J. Anderson]]: ''Security Engineering: A Guide to Building Dependable Distributed Systems'', ISBN 0-471-38922-6 *[[Bruce Schneier]]: ''Secrets & Lies: Digital Security in a Networked World'', ISBN 0-471-25311-1 *[[Cyrus Peikari]], [[Anton Chuvakin]]: ''Security Warrior'', ISBN 0-596-00545-8 *[[Jack Koziol]], [[David Litchfield]]: ''The Shellcoder's Handbook: Discovering and Exploiting Security Holes'', ISBN 0-7645-4468-3 *[[Clifford Stoll]]: ''The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage'', an informal — and easily approachable by the non-specialist — account of a real incident (and pattern) of computer insecurity, ISBN 0-7434-1146-3 *[[Roger R. Schell]]: [http://csdl.computer.org/comp/proceedings/acsac/1996/7606/00/7606xiv.pdf<cite>The Internet Rules but the Emperor Has No Clothes</cite>] ACSAC 1996 *[[William Caelli]]: [http://cisse.info/history/CISSE%20J/2002/cael.pdf<cite>Relearning "Trusted Systems" in an Age of NIIP: Lessons from the Past for the Future.</cite>] 2002 *[[Noel Davis]]: [http://rootprompt.org/article.php3?article=403 <cite>Cracked!</cite>] story of a community network that was cracked and what was done to recover from it [[2000]] *[[Shon Harris]], "CISSP All-In-One Study Guide" ISBN 0071497870 == External links == *[http://secdocs.net/manual/lp-sec/ Participating With Safety], a guide to electronic security threats from the viewpoint of civil liberties organisations. Licensed under the [[GFDL|GNU Free Documentation License]]. *Article "[http://www.acsa-admin.org/2001/papers/110.pdf Why Information Security is Hard — An Economic Perspective]" by [[Ross Anderson]] *[http://www.securemac.com/ Macintosh Security] *[http://www.yourwindow.to/information-security/ The Information Security Glossary] *[http://www.sans.org/top20/ The SANS Top 20 Internet Security Vulnerabilities] *[[Amit Singh]]: [http://www.kernelthread.com/publications/security/index.html A Taste of Computer Security] [[2004]] === Lists of currently known unpatched vulnerabilities=== *[http://secunia.com/product/ Lists of advisories by product] Lists of known unpatched vulnerabilities from [[Secunia]] *[http://www.securityfocus.com/vulnerabilities Vulnerabilities] from [[SecurityFocus]], home of the famous [[Bugtraq]] mailing list. *[https://www.kb.cert.org/vuls/ List of vulnerabilities maintained by the government of the USA] [[Category:Cryptography]] [[Category:Security exploits|Insecurity]] [[Category:Software engineering disasters]] [[fr:Insécurité du système d'information]] [[es:Inseguridad informática]]