Next chapterContents


Maximum Security:
A Hacker's Guide to Protecting Your Internet Site and Network

Dedication

This book is dedicated to Michelle, whose presence has rendered me a prince among men.

Acknowledgments

My acknowledgments are brief. First, I would like to acknowledge the folks at Sams, particularly Randi Roger, Scott Meyers, Mark Taber, Blake Hall, Eric Murray, Bob Correll, and Kate Shoup. Without them, my work would resemble a tangled, horrible mess. They are an awesome editing team and their expertise is truly extraordinary.

Next, I extend my deepest gratitude to Michael Michaleczko, and Ron and Stacie Latreille. These individuals offered critical support, without which this book could not have been written.

Also, I would like to recognize the significant contribution made by John David Sale, a network security specialist located in Van Nuys, California. His input was invaluable. A similar thanks is also extended to Peter Benson, an Internet and EDI Consultant in Santa Monica, California (who, incidentally, is the current chairman of ASC X12E). Peter's patience was (and is) difficult to fathom. Moreover, I forward a special acknowledgment to David Pennells and his merry band of programmers. Those cats run the most robust and reliable wire in the southwestern United States.

About the Author

The author describes himself as a "UNIX propeller head" and is a dedicated advocate of the Perl programming language, Linux, and FreeBSD.

After spending four years as a system administrator for two California health-care firms, the author started his own security-consulting business. Currently, he specializes in testing the security of various networking platforms (breaking into computer networks and subsequently revealing what holes lead to the unauthorized entry) including but not limited to Novell NetWare, Microsoft Windows NT, SunOS, Solaris, Linux, and Microsoft Windows 95. His most recent assignment was to secure a wide area network that spans from Los Angeles to Montreal.

The author now lives quietly in southern California with a Sun SPARCStation, an IBM RS/6000, two Pentiums, a Macintosh, various remnants of a MicroVAX, and his wife.

In the late 1980s, the author was convicted of a series of financial crimes after developing a technique to circumvent bank security in Automatic Teller Machine systems. He therefore prefers to remain anonymous.

Tell Us What You Think!

As a reader, you are the most important critic and commentator of our books. We value your opinion and want to know what we're doing right, what we could do better, what areas you'd like to see us publish in, and any other words of wisdom you're willing to pass our way. You can help us make strong books that meet your needs and give you the computer guidance you require.

Do you have access to the World Wide Web? Then check out our site at http://www.mcp.com.


NOTE: If you have a technical question about this book, call the technical support line at 317-581-3833 or send e-mail to suppor@mcp.com.

As the team leader of the group that created this book, I welcome your comments. You can fax, e-mail, or write me directly to let me know what you did or didn't like about this book--as well as what we can do to make our books stronger. Here's the information:

FAX: 317-581-4669

E-mail:

Mark Taber
newtech_mgr@sams.mcp.com

Mail:

Mark Taber
Comments Department
Sams Publishing
201 W. 103rd Street
Indianapolis, IN 46290

Introduction

I want to write a few words about this book and how it should be used. This book is not strictly an instructional, or "How To" book. Its purpose is to get you started on a solid education in Internet security. As such, it is probably constructed differently from any computer book you have ever read.

Although this book cannot teach you everything you need to know, the references contained within this book can. Therefore, if you know very little about Internet security, you will want to maximize the value of this book by adhering to the following procedure:

Each chapter (except early ones that set the stage) contains intermittent references that might point to white papers, technical reports, or other sources of solid, reliable information of substance (pertaining to the topic at hand). Those references appear in boxes labeled XREF. As you encounter each source, stop for a moment to retrieve that source from the Net. After you retrieve the source, read it, then continue reading the book. Throughout the book, perform this operation whenever and wherever applicable. If you do so, you will finish with a very solid basic education on Internet security.

I have constructed this book in this manner because Internet security is not a static field; it changes rapidly. Nonetheless, there are certain basics that every person interested in security must have. Those basics are not contained (in their entirety) in any one book (perhaps not even in dozens of them). The information is located on the Internet in the form of documents written by authorities on the subject. These are the people who either designed and developed the Internet or have designed and developed its security features. The body of their work is vast, but each paper or technical report is, at most, 40 pages in length (most are fewer than 10).

Those readers who want only a casual education in Internet security may read the book without ever retrieving a single document from the Internet. But if you are searching for something more, something deeper, you can obtain it by adhering to this procedure.

If you choose to use the book as a reference tool in the manner I have described, there are certain conventions that you need to know. If the resource you have been directed to is a tool, consider downloading it even if it is not for your platform. With a proper archive tool (like Winzip), you can extract the documents that accompany the distribution of that tool. Such documents often contain extremely valuable information. For example, the now famous scanner named SATAN (made expressly for UNIX) contains security tutorials in HTML. These do not require that you have UNIX (in fact, all they require is a browser). Likewise, many other tools contain documents in PDF, TXT, DOC, PS, and other formats that are readable on any platform.


TIP: SATAN is a special case. Some of the tutorials are in HTML but have *.PL extensions. These extensions are used to signify documents that are written in Perl. If you do not have Perl installed, convert these documents to raw HTML. To do so, open them in a text editor and replace the first line (<< HTML) with <HTML>. Then rename the file with either an *.HTM or an *.HTML extension. From that point on, your browser will load the pages perfectly.

Also, note that many of the Internet documents referenced in this book are available in PostScript form only. PostScript is a wonderful interpreted language that draws graphics and text. It is used primarily in technical fields. To view some of these documents, therefore, you will require a PostScript reader (or interpreter). If you do not already have Adobe Illustrator or some other proprietary PostScript package, there are two leading utilities:

Both are freely available for download on the Internet. Rops is available here:

Ghostscript and Ghostview are available here:

I should point out that Rops is shareware, while Ghostscript and Ghostview (hereafter, the GS utilities) are free. The chief differences between these two distributions are that Rops is smaller, easier to configure, and faster. In fact, it is probably one of the best shareware products I have ever seen; it is incredibly small for the job that it does and requires minimal memory resources. It was coded by Roger Willcocks, a software engineer in London, England.

In contrast, the GS utilities are slower, but support many more fonts and other subtle intricacies you will likely encounter in PostScript documents produced on disparate platforms. In other words, on documents that Rops fails to decode, the GS utilities will probably still work. The GS utilities also have more tolerance for faults within a PostScript document. If you have never used a PostScript interpreter, there are certain situations you may encounter that seem confusing. One such situation is where the interpreter cannot find evidence of page numbering. If you encounter this problem, you will only be able to move forward in the document (you will not be able to go back to page 1 after you have progressed to page 2). In such instances, it's best to print the document.

To avoid this problem, I have purposefully (and by hand) searched out alternate formats. That is, for each PostScript document I encountered, I tried to find the identical paper in PDF, TXT, DOC, WPG, or HTML. In some cases, I'm afraid, I could not find the document in any other form (this was especially so with early classic papers on Internet security). In cases where I did successfully find another format, I have pointed you there instead of to the PostScript version. I did this because the majority of PC users (with the exception of Mac users) do not routinely have PostScript facilities on their machines.

Next I need to say several things about the hyperlinks in this book. Each one was tested by hand. In certain instances, I have offered links overseas to papers that are also available here in the United States. This is because I tried to pick the most reliable links possible. By reliable links, I mean the links most easily retrieved in the shortest time possible. Although you wouldn't think so, some overseas links are much faster. Also, in some instances, I could only find a verified link to a document overseas (verified links means that when I tested the link, the requested item actually existed at the URL in question). To provide you with maximum value, I have attempted to reduce the incidences of Object Not Found to practically nil. Naturally, however, your mileage may vary. Sites often change their structure, so expect a few links to be no longer valid (even though most were checked just a month or two before the book's printing.)

Also, many hyperlink paths are expressed in their totality, meaning that wherever possible, I have extracted the total address of an object and not simply the server on which it resides. In reference to downloadable files (tools, usually), these links will not bring you to a page. Instead, they will initiate a download session to your machine, bringing the file directly to you. This will save you time, but might first be confusing to less experienced users. Don't be surprised when a dialog box appears, asking you to save a file.

Wherever I specify what language a tool or software program was written in, pay careful attention. Many tools mentioned require either a compiler or an interpreter before they can be built and used. If you do not currently have the language or interpreter necessary (or if your platform is different from that for which the tool was designed), re-examine the reference. Unless it seems that the distribution contains documents that are of value to you, you should probably refrain from downloading it. Moreover, many utilities come in source code form only. Although I have examined much of the source code myself, I cannot vouch for each and every line of it. If you intend to download source code and compile it on your own architecture, be aware that neither I nor Sams can be responsible for trojans or other malicious code that may exist in these files. The majority of files referenced are actually from reliable sources and many are accompanied by digital signatures, PGP keys, or other co-signing assurances of authenticity and integrity. However, code that originated on cracker sites may or may not be clean. Use your judgment in these instances.


NOTE: Special note to Windows and Mac users: if you have no idea what I am talking about, fear not. You will by the time you reach Chapter 6, "A Brief Primer on TCP/IP." I made every possible attempt to make this book easily read and understood for all users. I have taken great pains to explain many terms and procedures along the way. If you are already aware of the definitions, skip these passages. If you are not, read them carefully.

The majority of the sites referenced are easily viewed by anyone. There may be a few sites that use extensive table structures or maintain an all-graphic interface. Those with noncompliant browsers may not be able to view these sites. Nonetheless, there are very few such sites. Wherever possible, I have attempted to find alternate pages (that support non-table browsers) so almost all of the pages are viewable using any browser. However, I am not perfect; my efforts may fail in some cases. For this, I apologize.

In reference to sites mentioned that I deem "very good," a word of caution: This is my opinion only. I classify sites as "good" if they impart information that is technically sound or point you in many valuable directions. But simply because I say one site is good and say nothing about another does not mean the other site is bad. I have hand-picked every site here, and each offers good information on security. Those I single out as particularly good are so identified usually because the maintainer of that site has done an exemplary job of presenting the information.

With respect to hyperlinks, I will say this: At the end of Appendix A, "Where to Get More Information," I offer an uncommented, bare list of hyperlinks. This is the equivalent of a huge bookmark file. There is a purpose for this, which I discuss in detail within that Appendix, but I will briefly address that purpose now. That list (which will also appear on the CD-ROM) is provided for serious students of security. By loading that list into a personal robot (Clearweb is one good example), you can build a huge security library on your local machine. Such personal robots rake the pages on the list, retrieving whatever file types you specify. For companies that have adequate disk space and are looking to build a security library, this can be done automatically. Most robots will clone a remote site within a few minutes.

Be aware, however, that the majority of links offered lead to pages with many links themselves. Thus, if you are running such a robot, you'd better have adequate disk space for the output. Printed in their native form, all retrievable documents in that list (if retrieved with a robot that goes out one level for each link) would print a stack of paper approximately seven feet tall. I know this because I have done it. In Appendix A, I describe the procedure to do so. If you decide to retrieve and print written information and binaries from all the sites listed, you will have the majority of written security knowledge available on the Internet within two weeks. In organizations doing serious security research, this could have significant value, particularly if all documents are reformatted to a single file format (you could do special indexing and so forth).

Certain books or other documents have been referenced that are not available online. These documents are obtainable, however. In all cases, I have included as much information on them as possible. Sometimes, the ISBN or ISSN is included, and sometimes not. ISBNs were not always obtainable. In these instances (which are admittedly rare), I have included the Library of Congress catalog number or other, identifying features that may help you find the referenced material offline. Any sources that could not be traced down (either on the Net or elsewhere) were omitted from the book.

Moreover, I have made every possible effort to give credit to individuals who authored or otherwise communicated information that is of technical value. This includes postings in Usenet newsgroups, mailing lists, Web pages, and other mediums. In almost all cases (with the exception of the list of vendors that appears in Appendix B, "Security Consultants"), I have omitted the e-mail addresses of the parties. True, you can obtain those addresses by going to various sites, but I refrained from printing them within this book. I have made every effort to respect the privacy of these individuals.

The list of vendors that appears in Appendix B was not taken from the local telephone book. In March 1997, I issued a bulletin to several key security groups requesting that vendors place a listing in this book. The people (and companies) who replied are all qualified security vendors and consultants. These vendors and individuals provide security products and services every day. Many deal in products that have been evaluated for defense-level systems or other typically secure environments. They represent one small portion of the cream of the crop. If a vendor does not appear on this list, it does not mean that it is not qualified; it simply means that the vendor did not want to be listed in a book written by an anonymous author. Security people are naturally wary, and rightly so.

In closing, I have some final words of advice. Appendix C, "A Hidden Message," points to a block of encrypted text located on the CD-ROM. The encryption used was Pretty Good Privacy (PGP). When (or rather, if) you decrypt it, you will find a statement that reveals an element of the Internet that is not widely understood. However, within five years, that element will become more clear to even the average individual. There are several things that you need to know about that encrypted statement.

First, the encrypted text contains my opinion only. It is not the opinion of Sams.net. In fact, to ensure that Sams.net is not associated with that statement, I have taken the precaution of refusing to provide employees of Sams.net with the private passphrase. Therefore, they have absolutely no idea what the statement is. Equally, I assure you (as I have assured Sams.net) that the statement does not contain profanity or any other material that could be deemed unsuitable for readers of any age. It is a rather flat, matter-of-fact statement that warns of one facet of the Internet that everyone, including security specialists, have sorely missed. This facet is of extreme significance, not simply to Americans, but to all individuals from every nation. At its most basic, the statement is a prognostication.

Now for a little note on how to decrypt the statement. The statement itself is very likely uncrackable, because I have used the highest grade encryption possible. However, you can determine the passphrase through techniques once common to the spy trade. Contained in Appendix C are several lines of clear text consisting of a series of characters separated by semi-colons (semi-colons are the field separator character). After you identify the significance of these characters, you are presented with some interesting possibilities. After trying them all, you will eventually crack that statement (the significance of the clear text fields will reveal the passphrase). If you are clever, cracking the message is easier than it looks (certainly, those wild and crazy characters at NSA will have no problem, as long as the folks doing it are vintage and not kids; that is about the only clue I will give). The public key for the message is root@netherworld.net.

If you crack the message, you should forward it to all members of Congress. For them, a group largely uneducated about the Internet, the message within that encrypted text is of critical importance.

Good luck.


Next chapterContents


Macmillan Computer Publishing USA

© Copyright, Macmillan Computer Publishing. All rights reserved.