Computer Security Projects and Experiments
Computer Security
This article describes how security can be achieved through design and engineering. See the computer insecurity article below for an alternative approach that describes computer security exploits and defenses.
Computer security is a branch of information security applied to both theoretical and actual computer systems. Computer security is a branch of computer science
that addresses enforcement of 'secure' behavior on the operation of
computers. The definition of 'secure' varies by application, and is
typically defined implicitly or explicitly by a security policy that addresses confidentiality, integrity and availability of electronic information that is processed by or stored on computer systems.
The traditional approach is to create a trusted security kernel that
exploits special-purpose hardware mechanisms in the microprocessor to
constrain the operating system and the application programs to conform
to the security policy. These systems can isolate processes and data to
specifier domains and restrict access and privileges of users. This approach avoids trusting most of the operating system and applications.
In addition to restricting actions to a secure subset, a secure
system should still permit authorized users to carry out legitimate and
useful tasks. It might be possible to secure a computer against misuse
using extreme measures:
| |
The only truly secure
system is one that is powered off, cast in a block of concrete and
sealed in a lead-lined room with armed guards - and even then I have my
doubts. |
|
Eugene H. Spafford, director of the Purdue Center for Education and Research in Information Assurance and Security. [1]
It is important to distinguish the techniques used to increase a
system's security from the issue of that system's security status. In
particular, systems which contain fundamental flaws[1] in their security designs cannot be made secure without compromising their usability.
Most computer systems cannot be made secure even after the application
of extensive "computer security" measures. Furthermore, if they are
made secure, functionality and ease of use often decreases.
Computer security can also be seen as a subfield of security engineering, which looks at broader security issues in addition to computer security.
Secure operating systems
One use of the term computer security refers to technology to implement a secure operating system.
Much of this technology is based on science developed in the 1980s and
used to produce what may be some of the most impenetrable operating
systems ever. Though still valid, the technology is almost inactive
today, perhaps because it is complex or not widely understood. Such
ultra-strong secure operating systems are based on operating system kernel
technology that can guarantee that certain security policies are
absolutely enforced in an operating environment. An example of such a Computer security policy is the Bell-LaPadula model. The strategy is based on a coupling of special microprocessor hardware features, often involving the memory management unit,
to a special correctly implemented operating system kernel. This forms
the foundation for a secure operating system which, if certain critical
parts are designed and implemented correctly, can ensure the absolute
impossibility of penetration by hostile elements. This capability is
enabled because the configuration not only imposes a security policy,
but in theory completely protects itself from corruption. Ordinary
operating systems, on the other hand, lack the features that assure
this maximal level of security. The design methodology to produce such
secure systems is precise, deterministic and logical.
Systems designed with such methodology represent the state of the
art of computer security and the capability to produce them is not
widely known. In sharp contrast to most kinds of software, they meet
specifications with verifiable certainty comparable to specifications
for size, weight and power. Secure operating systems designed this way
are used primarily to protect national security information and
military secrets. These are very powerful security tools and very few
secure operating systems have been certified at the highest level (Orange Book
A-1) to operate over the range of "Top Secret" to "unclassified"
(including Honeywell SCOMP, USAF SACDIN, NSA Blacker and Boeing MLS
LAN.) The assurance of security depends not only on the soundness of
the design strategy, but also on the assurance of correctness of the
implementation, and therefore there are degrees of security strength
defined for COMPUSEC. The Common Criteria quantifies security strength of products in terms of two components, security capability (as Protection Profile)
and assurance levels (as EAL levels.) None of these ultra-high
assurance secure general purpose operating systems have been produced
for decades or certified under the Common Criteria.
Security by design
The technologies of computer security are based on logic.
There is no universal standard notion of what secure behavior is.
"Security" is a concept that is unique to each situation. Security is
extraneous to the function of a computer application, rather than
ancillary to it, thus security necessarily imposes restrictions on the
application's behavior.
There are several approaches to security in computing, sometimes a combination of approaches is valid:
- Trust all the software to abide by a security policy but the software is not trustworthy (this is computer insecurity).
- Trust all the software to abide by a security policy and the
software is validated as trustworthy (by tedious branch and path
analysis for example).
- Trust no software but enforce a security policy with mechanisms that are not trustworthy (again this is computer insecurity).
- Trust no software but enforce a security policy with trustworthy mechanisms.
Many systems unintentionally result in the first possibility.
Approaches one and three lead to failure. Since approach two is
expensive and non-deterministic, its use is very limited. Because
approach number four is often based on hardware mechanisms and avoid
abstractions and a multiplicity of degrees of freedom, it is more
practical. Combinations of approaches two and four are often used in a
layered architecture with thin layers of two and thick layers of four.
There are myriad strategies and techniques used to design security
systems. There are few, if any, effective strategies to enhance
security after design.
One technique enforces the principle of least privilege to great extent, where an entity has only the privileges that are needed for its function. That way even if an attacker gains access to one part of the system, fine-grained security ensures that it is just as difficult for them to access the rest.
Furthermore, by breaking the system up into smaller components, the
complexity of individual components is reduced, opening up the
possibility of using techniques such as automated theorem proving to prove the correctness of crucial software subsystems. This enables a closed form solution
to security that works well when only a single well-characterized
property can be isolated as critical, and that property is also
assessable to math. Not surprisingly, it is impractical for generalized
correctness, which probably cannot even be defined, much less proven.
Where formal correctness proofs are not possible, rigorous use of code review and unit testing represent a best-effort approach to make modules secure.
The design should use "defense in depth",
where more than one subsystem needs to be violated to compromise the
integrity of the system and the information it holds. Defense in depth
works when the breaching of one security measure does not provide a
platform to facilitate subverting another. Also, the cascading
principle acknowledges that several low hurdles does not make a high
hurdle. So cascading several weak mechanisms does not provide the
safety of a single stronger mechanism.
Subsystems should default to secure settings, and wherever possible
should be designed to "fail secure" rather than "fail insecure" (see fail safe
for the equivalent in safety engineering). Ideally, a secure system
should require a deliberate, conscious, knowledgeable and free decision
on the part of legitimate authorities in order to make it insecure.
In addition, security should not be an all or nothing issue. The
designers and operators of systems should assume that security breaches
are inevitable. Full audit trails
should be kept of system activity, so that when a security breach
occurs, the mechanism and extent of the breach can be determined.
Storing audit trails remotely, where they can only be appended to, can
keep intruders from covering their tracks. Finally, full disclosure helps to ensure that when bugs are found the "window of vulnerability" is kept as short as possible.
Early history of security by design
The early Multics
operating system was notable for its early emphasis on computer
security by design, and Multics was possibly the very first operating
system to be designed as a secure system from the ground up. In spite
of this, Multics' security was broken, not once, but repeatedly. The
strategy was known as 'penetrate and test' and has become widely known
as a non-terminating process that fails to produce computer security.
This led to further work on computer security that prefigured modern security engineering techniques producing closed form processes that terminate.
Secure coding
If the operating environment is not based on a secure operating
system capable of maintaining a domain for its own execution, and
capable of protecting application code from malicious subversion, and
capable of protecting the system from subverted code, then high degrees
of security are understandably not possible. While such secure
operating systems are possible and have been implemented, most
commercial systems fall in a 'low security' category because they rely
on features not supported by secure operating systems (like
portability, et al.). In low security operating environments,
applications must be relied on to participate in their own protection.
There are 'best effort' secure coding practices that can be followed to
make an application more resistant to malicious subversion.
In commercial environments, the majority of software subversion vulnerabilities result from a few known kinds of coding defects. Common software defects include buffer overflows, format string vulnerabilities, integer overflow, and code/command injection.
Some common languages such as C and C++ are vulnerable to all of these defects (see Seacord, "Secure Coding in C and C++").
Other languages, such as Java, are more resistant to some of these
defects, but are still prone to code/command injection and other
software defects which facilitate subversion.
Recently another bad coding practise has come under scrutiny; dangling pointers.
The first known exploit for this particular problem was presented in
July 2007. Before this publication the problem was known but considered
to be academic and not practically exploitable. [2]
In summary, 'secure coding' can provide significant payback in low
security operating environments, and therefore worth the effort. Still
there is no known way to provide a reliable degree of subversion
resistance with any degree or combination of 'secure coding.'
Terms
The following terms used in engineering secure systems are explained below.
- Firewall Firewalls can either be hardware devices or software programs. They provide excellent protection from online intrusion.
- Automated theorem proving
and other verification tools can enable critical algorithms and code
used in secure systems to be mathematically proven to meet their
specifications.
- Thus simple microkernels can be written so that we can be sure they don't contain any bugs: eg EROS and Coyotos.
A bigger OS, capable of providing a standard API like POSIX,
can be built on a microkernel using small API servers running as normal
programs. If one of these API servers has a bug, the kernel and the
other servers are not affected: e.g. Hurd.
- Cryptographic
techniques can be used to defend data in transit between systems,
reducing the probability that data exchanged between systems can be
intercepted or modified.
- Strong authentication techniques can be used to ensure that communication end-points are who they say they are.
Secure cryptoprocessors can be used to leverage physical security techniques into protecting the security of the computer system.
- Chain of trust techniques can be used to attempt to ensure that all software loaded has been certified as authentic by the system's designers.
- Mandatory access control
can be used to ensure that privileged access is withdrawn when
privileges are revoked. For example, deleting a user account should
also stop any processes that are running with that user's privileges.
- Capability and access control list techniques can be used to ensure privilege separation and mandatory access control. The next sections discuss their use.
Some of the following items may belong to the computer insecurity article:
- Do not run an application
with known security flaws. Either leave it turned off until it can be
patched or otherwise fixed, or delete it and replace it with some other
application. Publicly known flaws are the main entry used by worms to automatically break into a system and then spread to other systems connected to it. The security website Secunia provides a search tool for unpatched known flaws in popular products.
Cryptographic
techniques involve transforming information, scrambling it so it
becomes unreadable during transmission. The intended recipient can
unscramble the message, but eavesdroppers cannot.
- Backups
are a way of securing information; they are another copy of all the
important computer files kept in another location. These files are kept
on hard disks, CD-Rs, CD-RWs, and tapes.
Suggested locations for backups are a fireproof, waterproof, and heat
proof safe, or in a separate, offsite location than that in which the
original files are contained. Some individuals and companies also keep
their backups in safe deposit boxes inside bank vaults. There is also a fourth option, which involves using one of the file hosting services that backs up files over the Internet for both business and individuals.
- Backups are also important for reasons other than security. Natural
disasters, such as earthquakes, hurricanes, or tornadoes, may strike
the building where the computer is located. The building can be on
fire, or an explosion may occur. There needs to be a recent backup at
an alternate secure location, in case of such kind of disaster. The
backup needs to be moved between the geographic sites in a secure
manner, so as to prevent it from being stolen.
- Anti-virus software consists of computer programs that attempt to identify, thwart and eliminate computer viruses and other malicious software (malware).
- Firewalls
are systems which help protect computers and computer networks from
attack and subsequent intrusion by restricting the network traffic
which can pass through them, based on a set of system administrator
defined rules.
- Access authorization restricts access to a computer to group of users through the use of authentication systems. These systems can protect either the whole computer - such as through an interactive logon screen - or individual services, such as an FTP server. There are many methods for identifying and authenticating users, such as passwords, identification cards, and, more recently, smart cards and biometric systems.
- Encryption
is used to protect the message from the eyes of others. It can be done
in several ways by switching the characters around, replacing
characters with others, and even removing characters from the message.
These have to be used in combination to make the encryption secure
enough, that is to say, sufficiently difficult to crack. Public key encryption
is a refined and practical way of doing encryption. It allows for
example anyone to write a message for a list of recipients, and only
those recipients will be able to read that message.
- Intrusion-detection systems
can scan a network for people that are on the network but who should
not be there or are doing things that they should not be doing, for
example trying a lot of passwords to gain access to the network.
- Pinging
The ping application can be used by potential hackers to find if an IP
address is reachable. If a Hacker finds a computer they can try a port
scan to detect and attack services on that computer.
- Social engineering
awareness - Keeping employees aware of the dangers of social
engineering and/or having a policy in place to prevent social
engineering can reduce successful breaches of the network and servers.
- Honey pots
are computers that are either intentionally or unintentionaly left
vulnerable to attack by hackers. They can be used to catch hackers or
fix vulnerabilities.
Capabilities vs. ACLs
Within computer systems, the two fundamental means of enforcing privilege separation are access control lists (ACLs) and capabilities. The semantics of ACLs have been proven to be insecure in many situations (e.g., Confused deputy problem).
It has also been shown that ACL's promise of giving access to an object
to only one person can never be guaranteed in practice. Both of these
problems are resolved by capabilities. This does not mean practical
flaws exist in all ACL-based systems only that the designers of
certain utilities must take responsibility to ensure that they do not
introduce flaws.
Unfortunately, for various historical reasons, capabilities have been mostly restricted to research operating systems
and commercial OSs still use ACLs. Capabilities can, however, also be
implemented at the language level, leading to a style of programming
that is essentially a refinement of standard object-oriented design. An
open source project in the area is the E language.
First the Plessey System 250 and then Cambridge CAP computer
demonstrated the use of capabilities, both in hardware and software, in
the 1970s, so this technology is hardly new. A reason for the lack of
adoption of capabilities may be that ACLs appeared to offer a 'quick
fix' for security without pervasive redesign of the operating system
and hardware.
The most secure computers are those not connected to the Internet
and shielded from any interference. In the real world, the most
security comes from operating systems where security is not an add-on, such as OS/400 from IBM.
This almost never shows up in lists of vulnerabilities for good reason.
Years may elapse between one problem needing remediation and the next.
A good example of a secure system is EROS. But see also the article on secure operating systems. TrustedBSD is an example of an open source project with a goal, among other things, of building capability functionality into the FreeBSD operating system. Much of the work is already done.
See also
Notes
References
- 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
- Robert C. Seacord: Secure Coding in C and C++. Addison Wesley, September, 2005. ISBN 0-321-33572-4
- Paul A. Karger, Roger R. Schell: Thirty Years Later: Lessons from the Multics Security Evaluation, IBM white paper.
- Clifford Stoll: Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage, Pocket Books, ISBN 0-7434-1146-3
- Stephen Haag, Maeve Cummings, Donald McCubbrey, Alain Pinsonneault, Richard Donovan: Management Information Systems for the information age, ISBN 0-07-091120-7
- Peter G. Neumann: Principled Assuredly Trustworthy Composable Architectures 2004
- Morrie Gasser: Building a secure computer system ISBN 0-442-23022-2 1988
- E. Stewart Lee: Essays about Computer Security Cambridge, 1999
Further reading
This e-primer provides a comprehensive review of the digital and
information and communications technology revolutions and how they are
changing the economy and society. The primer also addresses the
challenges arising from the widening digital divide.
External links
Computer Insecurity
Many current computer systems have only limited security precautions in place. This computer insecurity article describes the current battlefield of computer security exploits and defenses. Please see the computer security article above 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. Because computer systems can be very complex, and cannot be guaranteed to be free of defects, this security stance tends to produce insecure systems.
The 'trusted systems' approach has been predominant in the design of many Microsoft software products, due to the long-standing Microsoft policy of emphasizing functionality and 'ease of use' over security.
Since Microsoft products currently dominate the desktop and home
computing markets, this has led to unfortunate effects. However, the
problems described here derive from the security stance taken by
software and hardware vendors generally, rather than the failing of a
single vendor. Microsoft is not out of line in this respect, just far
more prominent with respect to its consumer marketshare.
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 worms 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 and malware
is considered to be a problem specific to the various Microsoft Windows
operating systems, however this can be explained somewhat 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 hackers or crackers. Some are teenage thrill-seekers or vandals (the kind often responsible for defacing web sites); similarly, some web site defacements
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,
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 PC are very different for those of banks' Internet banking system, and different again for a classified military 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
Software flaws, especially buffer overflows, are often exploited to gain control of a computer, or to cause it to operate in an unexpected manner. Many development methodologies rely on testing to ensure the 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 horses and computer viruses.
In some cases, a vulnerability can lie in certain programs' processing
of a specific file type, such as a non-executable media file.
Eavesdropping
Any data that is transmitted over a network is at some risk of being eavesdropped,
or even modified by a malicious person. Even machines that operate as a
closed system (ie, with no contact to the outside world) can be
eavesdropped upon via monitoring the faint electro-magnetic transmissions generated by the hardware such as TEMPEST. The FBI's proposed 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 individuals
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.
Denial of service attacks
Denial of service
(DoS) attacks differ slightly from those listed above, in that they are
not primarily a means 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 networks needs to be analyzed, not only the behaviour of small pieces of code. Distributed denial of service (DDoS) attacks are common, where a large number of compromised hosts (commonly referred to as "zombie computers")
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
Attacks in which one or more of the attack types above are launched
from a third party computer which has been taken over remotely. 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 onion router system.
Backdoors
Methods of bypassing normal authentication or giving remote access to a computer to somebody who knows about the backdoor, while intended to remain hidden to casual inspection. The backdoor may take the form of an installed program (e.g., Back Orifice) or could be in the form of an existing "legitimate" program, or executable file. 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
Common consumer devices that can be used to transfer data surreptitiously.
Someone gaining physical access to a computer can install all manner of devices to compromise security, including operating system modifications, software worms, key loggers, and covert listening devices. The attacker can also easily download large quantities of data onto backup media, for instance CD-R/DVD-R, tape; or portable devices such as keydrives, digital cameras or digital audio players. 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 code is regarded by some as just a form of mathematics. It is theoretically possible to 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, communications) by means of cryptography. One method of encryption the one-time pad
has been proven to be 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 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
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 audits or inexpensive but extremely valuable computer security audits,
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 backing up and insurance.
Security measures
A state of computer "security" is the conceptual ideal, attained by the use of the three processes:
- Prevention,
- Detection, and
- Response.
- User account access controls and cryptography can protect systems files and data, respectively.
- 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 Systems (IDS's) are designed to detect network attacks in progress and assist in post-attack forensics, while audit trails and logs 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.
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) 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 logs 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 (eg, 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 officers 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.
Further reading
There are operating systems 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
Individual articles
References
External links
This article is licensed under the GNU Free Documentation License. It uses material from Wikipedia Encyclopedia article "Computer Security"
|