| only for RuBoard - do not distribute or recompile |
This part of the book examines the underlying technology that makes up today's World Wide Web and the Internet in general.
Chapter 1 looks at the basics of web security—the risks inherent in running a web server, in using the Web to distribute information or services, and finally, the risks of being a
user on the Internet.Chapter 2 is a detailed exploration of computers, communications links, and protocols that make up the Web. It provides a technical introduction to the systems that will be discussed throughout the rest of the book and that underlie web security concepts.
Chapter 3 introduces the science and mathematics of cryptography, with a particular emphasis on public key encryption.
Chapter 4
specifically looks at the encryption algorithms that are used on the Web today.Chapter 5 looks more closely at the Secure Sockets Layer (SSL) and the Transport Layer Security (TLS) system that are used by "secure" web servers.
Chapter 6 introduces the topic of authentication and gives an overview of several classes of authentication systems in use on the Internet.
Chapter 7 focuses on the use of digital certificates for authentication and introduces certification authorities (CAs) and the public key infrastructure (PKI).
| only for RuBoard - do not distribute or recompile |
| only for RuBoard - do not distribute or recompile |
This chapter looks at the basics of web security. We'll discuss the risks of running a web server on the Internet and give you a framework for understanding how to mitigate those risks. We'll look at the risks that the Web poses for users—people who simply want to use the Web to get information or participate in online communities. And we'll look at the hype
| only for RuBoard - do not distribute or recompile |
| only for RuBoard - do not distribute or recompile |
When we published the first edition of Practical Unix Security in 1991, we gave a simple definition of computer security:
A computer is secure if you can depend on it and its software to behave as you expect.
This definition has stood the test of time. Whether you are talking about a complex attack such as cross-site scripting, or you are discussing the age-old problem of password sharing, the fundamental goal of computer security is to minimize surprise and to have computers behave as we expect them to behave. Our definition puts forth a holistic approach to protecting computers and the information that they contain: a web site is as dead if it is compromised by an attacker as it is if the sole web server on which the site resides washes away in a flood. Web security, then, is a set of procedures, practices, and technologies for assuring the reliable, predictable operation of web servers, web browsers, other programs that communicate with web servers, and the
Today's web security problem has three primary facets:
You need to be sure that the server can continue its operation, that the information on the server cannot be modified without authorization, and that the information is only distributed to those individuals to whom you want it distributed.
You would like to assure that information the user
Finally, web security requires that the end user's computer be reasonably secured. Users need to run their web browsers and other software on a secure computing platform that is free of viruses and other
Each of these
Devising and implementing a system for verifying the identity of users who connect to the web server to view their bank statements, a process also known as authentication . One approach to authentication involves implementing a system of usernames and passwords, devising a technique for distributing the initial passwords to the users, and creating a mechanism for users to securely change their passwords or obtain new passwords when their old passwords are forgotten.
Analyzing the programs and scripts that
Providing for secure, off-site backup of user information.
Creating a secure logging and auditing facility that can be used for billing, conflict resolution, and so-called "nonrepudiation" (see the note in Section 4.1.1 in Chapter 4), and investigation of misuse.
Balancing the load among multiple servers to protect against usage spikes and hardware failures, and to provide
Creating a second data center so that in the event of a disaster (e.g., an earthquake, blizzard, explosion, or invasion from outer space)
Providing for redundant Internet connections, using multiple service providers, to minimize the
Securing your Domain Name Service (DNS) service so that an attacker can't change the domain
Protecting your billing records so customers will be charged accurately for services rendered.
Creating a 24-
Providing for the physical security of your site and servers.
Providing adequate training for your personnel so they know what to do in an emergency and can resist a social engineering attack.
As you can see, the items on this list include technology that needs to be created and deployed, procedures that need to be followed, and policies that need to be developed. Security is not an additional feature that can be purchased after-the-fact and simply bolted on to an existing system. Neither is security a set of policies that can be implemented within an organization by a single person who has the
What Do
|
Securing the web server is a
Server security is complicated because most web servers run on traditional multi-purpose operating systems, such as Unix or Windows NT. The web server can be used to exploit
A poorly written script or application may make it possible to change a web server's configuration file, which can then be modified so that the web server runs with excess privileges. By exploiting a host security flaw, an attacker could then create a privileged script that would lead to the attacker's obtaining full access to the entire computer system.
A web server may have
The first part of server security, securing the underlying computer system, involves a complete examination of the computer's hardware, its operating system, and add-on programs. The goal of this process is to make sure that authorized users of the system have sufficient capabilities or privileges necessary to perform their work, and nothing more. For example, you may wish to allow all users to read the contents of the server's main web page, but you probably do not wish to give any unidentified user the ability to shut down the computer or alter the system accounting files. Traditional computer security techniques are also designed to secure the system so that people on the Internet cannot break into it and gain control. Chapter 15
To secure the computer's web service, you first need to understand how the program that serves web pages works and how it is configured. Examine the server's configuration to make sure that the correct levels of privilege and authorization are granted for the files that are on the server. Next, examine the scripts—be they CGIs written in Perl, ASP pages written with VBScript, or stand-alone programs written in C—to make sure that each script properly
Finally, you need to look for possible interactions among all of the various
One of the best strategies for improving a web server's security is to minimize the number of services provided by the host on which the web server is running. If you need to provide both a mail server and a web server, the safest strategy is to put them on different computers. On the system that runs your web service, design the system to run only your web services, choose an underlying operating system and web server that don't come with lots of extra defaults and unnecessary options, and remove all the services and options you know you don't need. The more complex the system, the more interactions, and the more that can go wrong . . . or be abused by an attacker.
Another good strategy for securing the information on the web server is to restrict access to the web server. The server should be located in a secure location, so that unauthorized people do not have physical access to the equipment. You should limit the number of users who have the ability to log into the computer. The server should be used only for your single application;
Many web developers also want to protect the information that they put on their web sites from unauthorized use. Companies
It is
Although a number of copy protection systems for web data have been proposed (and marketed), they can all be subverted by a sufficiently-motivated attacker. As an alternative to technical measures that prevent copying, some web sites have instead invested in a technique called digital watermarking . This involves making very small, hidden alterations to the data to store a form of identification of the material. The alterations can't be noticed by the user, and are done in a special fashion to defeat attempts to remove them. Images, sound files, and other watermarked data can be examined with programs that find and display the identifying information, showing the true owner and possibly the name of the person for whom the copy was first produced.
Much of the initial emphasis in the field of web security involved the problem of protecting information as it traveled over the Internet from a web server to the end user's computer. The concern was that someone eavesdropping on the network (at intermediate nodes) might copy sensitive information, or alter information in transit.
There are many ways to protect information from eavesdropping as it travels through a network:
Physically secure the network, so that eavesdropping is impossible.
Hide the information that you wish to secure within information that appears
Encrypt the information so that it cannot be decoded by any party who is not in possession of the proper key.
Of these techniques, encryption is the only technique that is practical on a large-scale public network. Physically securing the Internet is impossible. Information hiding only works if the people you are hiding the information from do not know it is hidden. Additionally, encryption can prevent outside alteration, or make it obvious when the information has been changed.
One of the pivotal events in the launch of the World Wide Web was Netscape Communications' development of an easy-to-use system for sending encrypted information over the Internet. Called the Secure Sockets Layer (SSL), this system made it possible for unsophisticated users to
In fact, there were no real barriers to Internet commerce
Indeed, SSL is only one component of web security. SSL makes it possible to send usernames, passwords, and credit card numbers securely over the Internet, but SSL doesn't provide protection for the information at the two ends of the connection.
Another risk to information in transit is a denial-of-service attack resulting from a disruption in the network. A denial-of-service can result from a physical event, such as a fiber cut, or a logical event, such as a bug in the Internet routing tables. In February 2000, a large-scale denial-of-service attack against several prominent Internet sites made the front pages of newspapers around the world; this event resulted from a sustained attack against these servers by computers all over the Internet. One of the most common attacks involved in this incident simply repeated
Today there is no practical way for an individual to defend against denial-of-service attacks, although redundancy, high-capacity connections, and backup systems can help to minimize their impact. Ultimately, it will take effective use of the legal system to
Security threats
For the first five
Over that same period, millions of computer users suffered billions of dollars in losses from real attacks
Computer security professionals had long
In recent years, however, some people have revised their
What Is a "Secure Web Server?"In recent years, the phrase secure web server has come to mean different things to different people:
A secure web server is all of these things, and more. It's a server that is reliable. It's a server that is mirrored or
Unfortunately, when vendors use the phrase "secure web server," they almost always are referring to a web server that implements the SSL cryptographic protocol. These protocols allow web browsers and servers to exchange information without the risk of eavesdropping by parties with access to the messages in transit. Such encryption is widely regarded as a prerequisite for commerce on the Internet.
As this book
To avoid confusion, this book uses the
|
| only for RuBoard - do not distribute or recompile |