708 lines
36 KiB
Plaintext
708 lines
36 KiB
Plaintext
|
From: breinhar@access.digex.com (Robert B. Reinhardt)
|
|||
|
Newsgroups: comp.security.misc
|
|||
|
Subject: (Version 3): SUMMARY PAPER: An Arch. Overview of UNIX Net. Security
|
|||
|
Message-ID: <1gm0p6INNabu@mirror.digex.com>
|
|||
|
Date: 16 Dec 1992 01:29:10 GMT
|
|||
|
Organization: Express Access Online Communications, Greenbelt, Maryland USA
|
|||
|
Lines: 699
|
|||
|
|
|||
|
This is VERSION 3 of my occassional paper on the architecture
|
|||
|
of UNIX network security and related methods...
|
|||
|
|
|||
|
It is not very different from previous versions, but does
|
|||
|
contain some additions and corrections at the request of
|
|||
|
some of the folks who contribute these tools to the community.
|
|||
|
|
|||
|
I hope to complete a more complete and polished paper on this
|
|||
|
subject in the coming months. My thanks in advance for those
|
|||
|
who have contributed changes.
|
|||
|
|
|||
|
---Bob Reinhardt (breinhar@access.digex.com)
|
|||
|
|
|||
|
=======================cut here================================
|
|||
|
SUMMARY PAPER: An Architectural Overview of UNIX Network Security
|
|||
|
(Specifically oriented toward Internet connectivity)
|
|||
|
|
|||
|
Version 3
|
|||
|
|
|||
|
By Robert B. Reinhardt, November 11, 1992
|
|||
|
(breinhar%srg@uunet.uu.net) - work
|
|||
|
(breinhar@access.digex.com) - home
|
|||
|
|
|||
|
Nothing in this paper should be construed as a product
|
|||
|
endorsement. The contents herein are the a result of light
|
|||
|
research and some prototype implementation that I've done over the
|
|||
|
past nine months. I don't know if this will help you or not. This
|
|||
|
is basically just a digest of information that a lot of people
|
|||
|
already know. This is for those of you who don't already know.
|
|||
|
|
|||
|
For each of the FIREWALL layers (sections) below, there is a
|
|||
|
subsection that follows that gives a brief description of some of
|
|||
|
the most widely used tools and techniques for implementing security
|
|||
|
controls and their availability.
|
|||
|
|
|||
|
=================================================================
|
|||
|
| | |
|
|||
|
PUBLIC (or) NON-PRIVATE NETWORK ACCESS Y |
|
|||
|
| O |
|
|||
|
======================================================== U |
|
|||
|
| | R Y
|
|||
|
SECTION A --------------- | O
|
|||
|
| Router | F N U
|
|||
|
| | I E R
|
|||
|
--------------- R T
|
|||
|
| E W P
|
|||
|
====================================================== W O O
|
|||
|
| A R L
|
|||
|
SECTION B --------------- L K I
|
|||
|
| Dual-homed | L C
|
|||
|
| UNIX Gateway| | A Y
|
|||
|
--------------- | N
|
|||
|
| | D A
|
|||
|
======================================================== N
|
|||
|
| E D
|
|||
|
SECTION C --------------- Q
|
|||
|
| Hosts on | U P
|
|||
|
| Local Net | I E
|
|||
|
--------------- P R
|
|||
|
=========================================================== M S
|
|||
|
E O
|
|||
|
SECTION D Additional Measures to Enhance Security N N
|
|||
|
T N
|
|||
|
============================================================= E
|
|||
|
L
|
|||
|
SECTION E Functional Requirements and Security Policy |
|
|||
|
|
|
|||
|
=================================================================Before starting into a description of the various elements of
|
|||
|
each of the above layers I feel I should reiterate the need for
|
|||
|
first developing a local security policy. Each organization or
|
|||
|
site needs to have an effective security policy. There are many
|
|||
|
tools and techniques available to implement security controls, but
|
|||
|
you should first conduct a thorough analysis of what your needs
|
|||
|
are, in order to design and implement an efficient operational
|
|||
|
environment. You need to determine what your requirements for
|
|||
|
network services and features are, what level of security you
|
|||
|
require, and what risks you are willing to accept. Sometimes the
|
|||
|
benefit outweighs the risk, sometimes not. But, those decisions
|
|||
|
differ for each organization. The "firewall" concept for creating
|
|||
|
a security demarkation point between your local net and the
|
|||
|
outside, as well as the various methods for enhancing security may
|
|||
|
not be appropriate for everyone, and in some cases may not go far
|
|||
|
enough. But I believe this a good starting point for almost anyone
|
|||
|
with a general concern for UNIX network security.
|
|||
|
|
|||
|
Let me apologize right now to the authors of these tools and
|
|||
|
designs. Since I am just giving a brief overview, I cannot do
|
|||
|
justice to a complete description of them. To the reader let me
|
|||
|
say that you should check the availability section and whenever
|
|||
|
possible obtain a README or other information before making your
|
|||
|
decisions. In many cases there is at least one paper (in most
|
|||
|
cases probably several) that have been published that describe
|
|||
|
these things in better detail. I'll try to list at least one
|
|||
|
source for each.
|
|||
|
|
|||
|
Papers describing most if not all of these packages and
|
|||
|
techniques can be found in the SYMPOSIUM PROCEEDINGS of the USENIX
|
|||
|
Third UNIX Security Symposium (c) 1992 by the USENIX Association.
|
|||
|
|
|||
|
Some of the functionality of these tools overlap. Since you
|
|||
|
have the source to these tools, you can modify them or customize
|
|||
|
them to add new features.
|
|||
|
|
|||
|
SECTION A - Physical Access to your Network
|
|||
|
|
|||
|
A1. Packet filtering. Several internet protocol routers provide
|
|||
|
the capability to filter packets. Packet filtering allows you
|
|||
|
to program the router to make a decision whether or not
|
|||
|
traffic can pass to or from your network based on several
|
|||
|
criteria such as: source ip address, destination ip address,
|
|||
|
protocol, tcp or udp port, etc.
|
|||
|
|
|||
|
Availability: I only have experience with CISCO routers,
|
|||
|
however I've been told that Wellfleet and Proteon routers also
|
|||
|
have this feature. There may be other vendors as well, but
|
|||
|
they probably all implement it a little differently. Read:
|
|||
|
Smoot Carl-Mitchell and John S. Quarterman, "Building Internet
|
|||
|
Firewalls"; UnixWorld; February, 1992; pp 93-102.
|
|||
|
|
|||
|
NOTE: This layer of your security firewall also includes other
|
|||
|
methods of access between networks such as CALL-BACK
|
|||
|
MODEMS.
|
|||
|
|
|||
|
SECTION B - Logical Access to your Network
|
|||
|
|
|||
|
B1. TCP_WRAPPER. The "TCP_WRAPPER" tool provides monitoring and
|
|||
|
control of network services. Essentially, what happens is
|
|||
|
that you configure inetd on your dual-homed gateway to run the
|
|||
|
TCP WRAPPER software whenever certain services (ports) are
|
|||
|
connected to. Depending on how you configure TCP WRAPPER, it
|
|||
|
will then LOG information about the connection and then
|
|||
|
actually start the intended SERVER program that the connection
|
|||
|
was intended for. Since you have the source to the tool, you
|
|||
|
can modify it to do more depending on what your needs are.
|
|||
|
For example, you may want TCP WRAPPER to connect the user to
|
|||
|
a proxy service instead of the actual program, then have your
|
|||
|
proxy software handle the transaction in whatever way your
|
|||
|
security requirements demand.
|
|||
|
|
|||
|
Availability: This is available from several sources, but to
|
|||
|
ensure that you get the most recent copy that CERT has
|
|||
|
verified, you should use anonymous FTP to retrieve it from
|
|||
|
cert.org in ~/pub/tools/tcp_wrappers/tcp_wrappers.*.
|
|||
|
|
|||
|
B2. SOCKS Library and sockd. The "sockd" and "SOCKS Library"
|
|||
|
provide another way to implement a "tcp wrapper." It is not
|
|||
|
intended to make the system it runs on secure, but rather to
|
|||
|
centralize ("firewall") all external internet services. The
|
|||
|
sockd process is started by inetd whenever a connection is
|
|||
|
requested for certain services, and then only allows
|
|||
|
connections from approved hosts (listed in a configuration
|
|||
|
file). The sockd also will LOG information about the
|
|||
|
connection. You can use the Socks Library to modify the
|
|||
|
client software to directly utilize the sockd for outgoing
|
|||
|
connections also, but this is described as very tedious and of
|
|||
|
course requires you to have the source to those client
|
|||
|
programs.
|
|||
|
|
|||
|
Availability: The socks package, which in addition to
|
|||
|
including both the daemon and the library, has a pre-modified
|
|||
|
FTP client and finger client; it is available via anonymous
|
|||
|
FTP from s1.gov in ~/pub as socks.tar.Z. Contact the authors
|
|||
|
for more information. David Koblas (koblas@netcom.com) or
|
|||
|
Michelle R. Koblas (mkoblas@nas.nasa.gov).
|
|||
|
|
|||
|
B3. Kernel_Wrap for SunOS/RPC via Shared Libraries. Essentially
|
|||
|
this is a wrapper for SunOS daemons that use RPC, such as
|
|||
|
portmap, ypserv, ypbind, ypupdated, mountd, pwdauthd, etc. To
|
|||
|
utilize this, you must have SunOS 4.1 or higher and must have
|
|||
|
the capability to rebuild your shared libraries (but, you
|
|||
|
don't need the source to your entire system). Essentially
|
|||
|
what happens is that you modify the function calls that the
|
|||
|
kernel uses to establish RPC connections, such as accept(),
|
|||
|
recvfrom() and recvmsg(). Since these calls are maintained in
|
|||
|
the shared libraries, you have access to modify them without
|
|||
|
rewriting the kernel.
|
|||
|
|
|||
|
Availability: The secured C library package to implement this
|
|||
|
is available via anonymous FTP from eecs.nwu.edu in
|
|||
|
~/pub/securelib.
|
|||
|
|
|||
|
B4. SWATCH. Simple WATCHER is really two things, it is a program
|
|||
|
used to parse through the myriad of LOG data generated by the
|
|||
|
various security programs, in particular "syslog." But, it's
|
|||
|
more than that. It is fully configurable with triggers
|
|||
|
(actions), so that while it is continuously monitoring the LOG
|
|||
|
in "real-time," it can take actions based upon certain high-
|
|||
|
priority events that you tell it to watch for. To get full
|
|||
|
use of this, you will need to modify your network service
|
|||
|
daemons such as ftpd and telnetd so that enhanced logging is
|
|||
|
added to syslog, to feed SWATCH.
|
|||
|
|
|||
|
Availability: The SWATCH source and documentation is
|
|||
|
available via anonymous FTP from sierra.stanford.edu in
|
|||
|
~/pub/sources.
|
|||
|
|
|||
|
B5. Controlled Access Point (CAP). This is more of a method or
|
|||
|
protocol definition than a specific product. CAP provides a
|
|||
|
network mechanism intended to reduce the risk of: password
|
|||
|
guessing, probing for well-known accounts with default
|
|||
|
passwords, trusted host rlogin, and password capture by
|
|||
|
network snooping. It is really a design for a variation or
|
|||
|
enhancement to the general firewall approach to connecting two
|
|||
|
or more networks. In the paper describing this there is an
|
|||
|
example of two local nets, one a secure segment with an
|
|||
|
authentication service, and the other an unsecure segment.
|
|||
|
Both communicate with each other via a CAP, while there is a
|
|||
|
router for communication to public networks connected on the
|
|||
|
unsecure side of the CAP. The CAP is essentially a router
|
|||
|
with additional functionality to detect incoming connection
|
|||
|
requests, intercept the user authentication process, and
|
|||
|
invoke the authentication server.
|
|||
|
|
|||
|
Availability: Unknown. Contact the authors for more
|
|||
|
information. J. David Thompson (thompsond@orvb.saic.com) and
|
|||
|
Kate Arndt (karndt@mitre.org).
|
|||
|
|
|||
|
B6. Mail Gateway. This is more of a procedure than a software
|
|||
|
package (although there are packages designed just to do
|
|||
|
this). I included this to maintain continuity with what I'm
|
|||
|
trying to illustrate in this paper. This really should be
|
|||
|
applied to all network services that require external
|
|||
|
connectivity (meaning any communication over non-private or
|
|||
|
non-secure channels). In the simplest implementation of this,
|
|||
|
you configure your router to filter packets so that all mail
|
|||
|
traffic (SMTP protocol for example) is only allowed to and
|
|||
|
from one host, the "Mail Gateway." Likewise, your DNS and MTA
|
|||
|
software will need to be configured for this as well.
|
|||
|
|
|||
|
B7. TTY_WRAPPER. This is one of my pet ideas. I have not seen
|
|||
|
something like this around, and I'll probably never have time
|
|||
|
to develop it. But, essentially this would be like "TCP
|
|||
|
WRAPPER," only it is designed specifically for serial
|
|||
|
communications. After that, we will need a "PSEUDO-TTY
|
|||
|
WRAPPER," but that's for another day.
|
|||
|
|
|||
|
B8. HSC-Gatekeeper. The HSC-Gatekeeper from Herve' Schauer
|
|||
|
Consultants, is a complete solution to both layers A and B of
|
|||
|
this firewall model. It consists of a thorough firewall
|
|||
|
methodology and authentication server, providing pass-thru FTP
|
|||
|
and TELNET services. The author (Herve Schauer) noted that
|
|||
|
HSC-Gatekeeper was alone to be able to offer fully transparent
|
|||
|
authentication for these services. I have not had personal
|
|||
|
experience with HSC's products, so I cannot make a conclusive
|
|||
|
statement about it other than to comment that the description
|
|||
|
of it in HSC's paper "An Internet Gatekeeper" (available in
|
|||
|
the USENIX Proceedings) depicts it (IMHO) as a very
|
|||
|
comprehensive solution.
|
|||
|
|
|||
|
Availability: For more information, contact Herve Schauer via
|
|||
|
e-mail at Herve.Schauer@hsc-sec.fr.
|
|||
|
|
|||
|
B9. AT&T INET. Since I discussed HSC's firewall solution, I
|
|||
|
thought it only fair to mention AT&T's INET Gateway. For a
|
|||
|
complete description of AT&T's internal solution, you should
|
|||
|
read Bill Cheswick's paper "The Design of a Secure Internet
|
|||
|
Gateway." For additional information, contact the author via
|
|||
|
e-mail at ches@research.att.com. I do not believe that AT&T
|
|||
|
is in the business of selling this solution to anyone, but the
|
|||
|
paper describes in good detail how it was done. It should
|
|||
|
provide the puritan firewaller additional depth to the
|
|||
|
problems and possible solutions to an Internet firewall
|
|||
|
approach.
|
|||
|
|
|||
|
SECTION C - Physical and Logical Access to Hosts on your Network
|
|||
|
|
|||
|
C1. Computer Oracle and Password System (COPS). COPS is a UNIX
|
|||
|
security status checker. Essentially what it does is check
|
|||
|
various files and software configurations to see if they have
|
|||
|
been compromised (edited to plant a trojan horse or back
|
|||
|
door), and checks to see that files have the appropriate modes
|
|||
|
and permissions set to maintain the integrity of your security
|
|||
|
level (make sure that your file permissions don't leave
|
|||
|
themselves wide open to attack/access).
|
|||
|
|
|||
|
NOTE: Many vendors of UNIX are now bundling a security
|
|||
|
status checker with the OS, usually under the
|
|||
|
nomenclature of a "C2" or "trusted system." You
|
|||
|
may still find that this package has more features
|
|||
|
than your canned package. Compare them.
|
|||
|
|
|||
|
Additional Comments: The current version of COPS (1.04) makes
|
|||
|
a limited attempt to detect bugs that are posted in CERT
|
|||
|
advisories. Also, it has an option to generate a limited
|
|||
|
script that can correct various security problems that are
|
|||
|
discovered. Dan also offers a quick hint that should easily
|
|||
|
get you started using COPS. After you have unarchived the
|
|||
|
COPS package, perform the following steps: './reconfig',
|
|||
|
'make', and './cops -v -s . -b bit_bucket'. -- There is a lot
|
|||
|
of README documentation included if you need more help.
|
|||
|
|
|||
|
Availability: COPS can be retrieved via anonymous FTP from
|
|||
|
cert.org in ~/pub/tools/cops.
|
|||
|
|
|||
|
C2. Chkacct. Chkacct is a COPS for the ordinary user. This tool
|
|||
|
is made available to the users to run, or it is run for them
|
|||
|
once per day. It will do an integrity check on the status of
|
|||
|
files in their own account and then mail them the results
|
|||
|
(such as "Dear user: Your .rhosts file is unsafe"). This
|
|||
|
package can help make your users more aware of security
|
|||
|
controls and raise their level of participation in the
|
|||
|
program.
|
|||
|
|
|||
|
Availability: Chkacct is distributed with the COPS package
|
|||
|
(>= COPS 1.04), for additional information contact
|
|||
|
shabby@mentor.cs.purdue.edu.
|
|||
|
|
|||
|
C3. CRACK. Crack helps the security administrator identify weak
|
|||
|
passwords by checking for various weaknesses and attempting to
|
|||
|
decrypt them. If Crack can figure out your password, then you
|
|||
|
must choose a better password. It is very likely that a
|
|||
|
determined intruder will be able to get the password too
|
|||
|
(using similar techniques, or the Crack program itself, since
|
|||
|
it is publicly available).
|
|||
|
|
|||
|
Availability: Crack is available via anonymous FTP from
|
|||
|
cert.org in ~/pub/tools/crack/crack_4.1-tar.Z.
|
|||
|
|
|||
|
C4. SHADOW. The shadow password suite of programs replaces the
|
|||
|
normal password control mechanisms on your system to remove
|
|||
|
the encrypted password from the publicly readable file
|
|||
|
/etc/passwd and hides them in a place that only this program
|
|||
|
has permission to read. It consists of optional, configurable
|
|||
|
components, provides password aging to force users to change
|
|||
|
their passwords once in awhile, adds enhanced syslog logging,
|
|||
|
and can allow users to set passwords up to a length of sixteen
|
|||
|
characters.
|
|||
|
|
|||
|
NOTE: Many vendors of UNIX are now bundling a shadow
|
|||
|
password suite with the OS, usually under the
|
|||
|
nomenclature of a "C2" or "trusted system." You
|
|||
|
may still find that this package has more features
|
|||
|
than your canned package. Compare them.
|
|||
|
|
|||
|
Availability: Shadow is available from USENET archives which
|
|||
|
store the comp.sources.misc newsgroup. Distribution is
|
|||
|
permitted for all non-commercial purposes. For more
|
|||
|
information contact the author, John F. Haugh III
|
|||
|
(jfh@rpp386.cactus.org).
|
|||
|
|
|||
|
C5. PASSWD+. Passwd+ is a proactive password checker that
|
|||
|
replaces /bin/passwd on your system. It is rule-based and
|
|||
|
easily configurable. It prevents users from selecting a weak
|
|||
|
password so that programs like "CRACK" can't guess it, and it
|
|||
|
provides enhanced syslog logging.
|
|||
|
|
|||
|
NOTE: Many vendors of UNIX are now bundling a proactive
|
|||
|
password checker with the OS, usually under the
|
|||
|
nomenclature of a "C2" or "trusted system." You
|
|||
|
may still find that this package has more features
|
|||
|
than your canned package. Compare them.
|
|||
|
|
|||
|
Availability: Passwd+ is available via anonymous FTP from
|
|||
|
dartmouth.edu in ~/pub/passwd+tar.Z.
|
|||
|
|
|||
|
C6. AUDIT. Audit is a policy-driven security checker for a
|
|||
|
heterogeneous environment. It is fully configurable so that
|
|||
|
you can set up Audit to exactly match your site's security
|
|||
|
policy. This program functionally does what COPS is intended
|
|||
|
to do, but does not hard-code your policy decisions for you
|
|||
|
the way that COPS does.
|
|||
|
|
|||
|
NOTE: Many vendors of UNIX are now bundling an auditing
|
|||
|
subsystem with the OS, usually under the
|
|||
|
nomenclature of a "C2" or "trusted system." You
|
|||
|
may still find that this package has more features
|
|||
|
than your canned package. Compare them. One
|
|||
|
particular subject to note is that most (IMHO)
|
|||
|
vendors auditing subsystems only collect and
|
|||
|
regurgitate tons of raw data, with no guidance and
|
|||
|
assistance for using that information. They leave
|
|||
|
that up to you. The Audit and/or Swatch tools are
|
|||
|
probably better.
|
|||
|
|
|||
|
Availability: The final version of Audit will eventually be
|
|||
|
posted to USENET. However, the beta release will only be made
|
|||
|
available on a limited basis, to larger, heterogeneous sites.
|
|||
|
If your interested in participating in the beta test, send e-
|
|||
|
mail to the auther, Bjorn Satdeva (bjorn@sysadmin.com).
|
|||
|
|
|||
|
C7. MIRO. Miro is a suite of tools for specifying and checking
|
|||
|
security contraints (like COPS and Audit), including a couple
|
|||
|
programming languages. It is general because it is not tied
|
|||
|
to any particular OS, and it is flexible because security
|
|||
|
administrators express site policies via a formal
|
|||
|
specification language. It is easy to extend or modify a
|
|||
|
policy by simply augmenting or changing the specification of
|
|||
|
the current policy.
|
|||
|
|
|||
|
Availability: Miro is the product of a large research
|
|||
|
project, and to understand it you need more than the paragraph
|
|||
|
I've written above. For more information about the Miro
|
|||
|
project send e-mail to (miro@cs.cmu.edu), there is even a
|
|||
|
video available. The authors Ph.D thesis, as well as the
|
|||
|
sources for the Miro tools, are available via anonymous FTP
|
|||
|
from ftp.cs.cmu.edu. When you connect there, type "cd
|
|||
|
/afs/cs/project/miro/ftp" and "get ftp-instructions"; this
|
|||
|
will explain how to get the thesis and/or software.
|
|||
|
|
|||
|
SECTION D - Additional Security Enhancements
|
|||
|
|
|||
|
The tools described in sections {A...C} above, are what I
|
|||
|
consider part of a "base" set of tools and functional requirements
|
|||
|
for general security administration. The tools and methods
|
|||
|
described in this section are additional measures that can be
|
|||
|
combined with or added to your overall security program at any of
|
|||
|
the other levels {A...C}.
|
|||
|
|
|||
|
D1. One-time Password ("Key Card"). Since reusable passwords can
|
|||
|
be captured and used/reused by intruders, consider a "one-time
|
|||
|
password" scheme. One-time passwords can be implemented using
|
|||
|
software-only solutions or software/hardware solutions, and
|
|||
|
there are several commercial products available. The
|
|||
|
following is an example of what CERT uses. Each user is
|
|||
|
assigned a "Digital Pathways" key-card (approximately $60 per
|
|||
|
user). When you enter your PIN code, it supplies a password
|
|||
|
that is good only one time. The only other piece to this, is
|
|||
|
software that replace the login shell on your "firewall"
|
|||
|
server.
|
|||
|
|
|||
|
Availability: The source-code for this shell is based on code
|
|||
|
from the key card vendor and is currently not available to the
|
|||
|
public domain via anonymous FTP. For additional information
|
|||
|
about this, send e-mail to (cert@cert.org).
|
|||
|
|
|||
|
D2. Privacy Enhanced Mail (PEM). PEM is a RSA-based encryption
|
|||
|
scheme that encrypts sensitive information, but more than that
|
|||
|
it checks for message integrity and non-repudiation of origin,
|
|||
|
so that the originator cannot deny having sent the message.
|
|||
|
PEM is actually a protocol that is designed to allow use of
|
|||
|
symmetric (private-key) and asymmetric (public-key)
|
|||
|
cryptography methods. In this example, Trusted Information
|
|||
|
Systems, Inc. (TIS) has implemented a PEM package using the
|
|||
|
public-key technique together with the Rand MH Message
|
|||
|
Handling System (version 6.7.2). TIS/PEM libraries can be
|
|||
|
adapted for implementation of non-mail applications as well.
|
|||
|
|
|||
|
Availability: TIS/PEM is a commercially available product,
|
|||
|
for additional information send e-mail to (pem-info@tis.com).
|
|||
|
|
|||
|
D3. Kerberos. Kerberos is a DES-based encryption scheme that
|
|||
|
encrypts sensitive information, such as passwords, sent via
|
|||
|
the network from client software to the server daemon process.
|
|||
|
The network services will automatically make requests to the
|
|||
|
Kerberos server for permission "tickets." You will need to
|
|||
|
have the source to your client/server programs so that you can
|
|||
|
use the Kerberos libraries to build new applications. Since
|
|||
|
Kerberos tickets are cached locally in /tmp, if there is more
|
|||
|
than one user on a given workstation, then a possibility for
|
|||
|
a collision exists. Kerberos also relies upon the system time
|
|||
|
to operate, therefore it should be enhanced in the future to
|
|||
|
include a secure time server (timed is not appropriate).
|
|||
|
There are two versions of Kerberos, one for OSF ported by HP,
|
|||
|
and one BSD-based developed by the author.
|
|||
|
|
|||
|
Availability: Kerberos is distributed via anonymous FTP from
|
|||
|
athena-dist.mit.edu in ~/pub/kerberos or ~/pub/kerberos5.
|
|||
|
|
|||
|
D4. Private-Key Certificates. This is not really a product, but
|
|||
|
rather a design proposal that is an alternative method to PEM
|
|||
|
for adding network security to applications such as mail.
|
|||
|
Simply put, it uses the public-key style of implementation
|
|||
|
with private-key cryptography. It can be adapted to different
|
|||
|
types of applications and it is boilerplate so that you can
|
|||
|
essentially plug-in any encryption algorithm. This is
|
|||
|
designed so that public-key protocols no longer have to rely
|
|||
|
on public-key encryption.
|
|||
|
|
|||
|
Availability: Unknown. For more information, contact Don
|
|||
|
Davis, at Geer Zolot Assoc., Boston, MA (formerly of Project
|
|||
|
Athena at MIT). His paper "Network Security via Private-Key
|
|||
|
Certificates" better describes this techique.
|
|||
|
|
|||
|
D5. Multi-Level Security (MLS). After you've done everything else
|
|||
|
(above) to make your network secure, then MLS will probably be
|
|||
|
one of your next logical steps. That doesn't mean you have to
|
|||
|
wait until you've done everything else before implementing
|
|||
|
MLS, it's just (IMHO) that you would be wasting your time to
|
|||
|
go to the Nth degree before covering the fundamentals. The
|
|||
|
other alternative if you are just now deciding to buy your
|
|||
|
UNIX operating system is to buy an MLS variant now, and after
|
|||
|
you configure it to manage your security policy, go back
|
|||
|
through layers {A...C} to see what you might add to make it
|
|||
|
more secure in a networked environment. Many UNIX vendors are
|
|||
|
now shipping or preparing to ship a MLS version. A couple
|
|||
|
examples that immediately come to mind is SecureWare CMW+
|
|||
|
(based on A/UX or SCO ODT 1.1) and AT&T USL System V-Release
|
|||
|
4-Version 1-Enhanced Security (SVR4.1ES).
|
|||
|
|
|||
|
For additional information regarding MLS implementations
|
|||
|
within the Department of Defense (DoD), contact Charles West
|
|||
|
at (703) 696-1891, Multilevel Security Technology Insertion
|
|||
|
Program (MLS TIP), Defense Information Systems Agency (DISA).
|
|||
|
|
|||
|
For additional information regarding SecureWare CMW+, contact
|
|||
|
David Luterancik at (404) 315-6296, or send e-mail to
|
|||
|
info@sware.com. For additional information regarding AT&T USL
|
|||
|
SVR$.1ES, contact Tom Vaden at (908) 522-6154, or send e-mail
|
|||
|
to fate@usl.com.
|
|||
|
D6. File Encryption. Users should get into the habit of
|
|||
|
encrypting sensitive files whenever they are stored in a
|
|||
|
public place or transmitted via public communication circuits.
|
|||
|
File encryption isn't bulletproof, but it is better than clear
|
|||
|
text for sensitive information. The UNIX crypt utility is the
|
|||
|
least secure of these tools, since it can be broken using
|
|||
|
well-known decryption techniques. The UNIX des utility
|
|||
|
(available in US only) is more secure. It has not been known
|
|||
|
to be broken, however DoD does not sanction its use for
|
|||
|
transmitting classified material. A new UNIX tool PGP 2.0 is
|
|||
|
available (uses RSA encryption), however there may be
|
|||
|
licensing issues to be concerned with.
|
|||
|
|
|||
|
D7. Secure Programming Methods. Programmers can assist in the
|
|||
|
effort of security by reducing the chance that a potential
|
|||
|
intruder can exploit a hole or bug that is coded into locally
|
|||
|
developed software. There is probably a lot that can be said
|
|||
|
about this, and their are probably many books on the subject
|
|||
|
somewhere. But, here are some common recommendations. (A)
|
|||
|
Never create a SETUID shell script. There are well-known
|
|||
|
techniques used by intruders to gain access to a shell program
|
|||
|
that is running as root. (B) List the complete file name,
|
|||
|
including the full path in any system() or popen() call. (C)
|
|||
|
Since there is no reason for users to have read access to a
|
|||
|
SETUID file (or any exectuble for that matter), set
|
|||
|
permissions to 4711 (SETUID) or 711 (Non-SETUID).
|
|||
|
|
|||
|
D8. Counterintelligence. To extend your security program to seek
|
|||
|
out, identify, and locate intruders; you may want to modify
|
|||
|
some of the security tools (especially those proxy service
|
|||
|
daemons and event-driven auditors) to trace intruders back to
|
|||
|
their source, and otherwise maintain logs of data on intrusion
|
|||
|
attempts. This information can prove vital in taking an
|
|||
|
offensive stance against security break-in's and can help
|
|||
|
prosecute offenders.
|
|||
|
|
|||
|
D9. Other Possibilities. Depending on your requirements you might
|
|||
|
look into specialized solutions such as Compartmented Mode
|
|||
|
Workstations (CMW), end-to-end Data Link Encryption, and
|
|||
|
TEMPEST. The NCSC (Rainbow Series) and ITSEC specifications
|
|||
|
can help you define what level of need you have for security
|
|||
|
and help lead you to additional types of solutions.
|
|||
|
|
|||
|
SECTION E - Security Policy
|
|||
|
|
|||
|
Everything discussed in sections {A...D} involve specific
|
|||
|
things you can do, tools and techniques to implement, to address a
|
|||
|
particular area or "hole" in security. Your SECURITY POLICY is
|
|||
|
what ties all of that together into a cohesive and effective
|
|||
|
SECURITY PROGRAM. There are many diverse issues to consider when
|
|||
|
formulating your policy, which alone is one of the biggest reasons
|
|||
|
why you must have one:
|
|||
|
|
|||
|
-- What are the functional requirements of your network?
|
|||
|
-- How secure do you need to be? What needs to be protected?
|
|||
|
-- How will you handle incident reporting and prosecution?
|
|||
|
-- What does the law require you to do? What about privacy? Since
|
|||
|
break-ins often occur via multiple hops on computers throughout the
|
|||
|
US and the rest of the world, you will need to consider a variation
|
|||
|
of federal, state, local, as well as foreign laws.
|
|||
|
-- Make security a dedicated and deliberate effort.
|
|||
|
-- User training and security awareness.
|
|||
|
-- What is considered acceptable use for users? Do the users
|
|||
|
understand what it is they are permitted to do and what it is they
|
|||
|
are not permitted to do?
|
|||
|
-- What is considered acceptable use for system administration
|
|||
|
staff? Is using Crack to test passwords okay? Is giving friends
|
|||
|
outside the organization accounts okay?
|
|||
|
-- Maintain a working relationship with the Computer Emergency
|
|||
|
Response Team (CERT) at Carnegie Mellon University (CMU) and your
|
|||
|
Forum of Incident Response and Security Teams (FIRST) regional
|
|||
|
representative "CERT" team.
|
|||
|
-- PLUS a myriad of different issues too numerous to go into in a
|
|||
|
summary paper.
|
|||
|
|
|||
|
By answering these questions you determine what packages and
|
|||
|
methods in sections {A...D} that you want to implement, and in what
|
|||
|
ways you want to modify or configure them. "A security policy is
|
|||
|
a formal specification of the rules by which people are given
|
|||
|
access to a computer and its resources." (and to extend that to
|
|||
|
say...a network and its resources). Whatever tools you install to
|
|||
|
help you maintain the security of your network and monitor it, they
|
|||
|
must be configured to implement YOUR POLICY, or else they are not
|
|||
|
doing the whole job that needs to be done. Therefore, you must
|
|||
|
first have a POLICY.
|
|||
|
|
|||
|
For additional help in the area of policy development, contact
|
|||
|
cert@cert.org, and they can probably lead you to useful
|
|||
|
documentation on the subject and guide you to your FIRST regional
|
|||
|
CERT team representative. A good starting point is Request For
|
|||
|
Comments (RFC) 1244 "Site Security Handbook" (96 pages), which is
|
|||
|
available via anonymous FTP from numerous RFC archive sites (for
|
|||
|
example: nic.ddn.mil).SUMMARY OF AVAILABILITY
|
|||
|
|
|||
|
Section Name Availability
|
|||
|
|
|||
|
A1 Router Cisco, Wellfleet, Proteon
|
|||
|
B1 Tcp_wrapper cert.org:/pub/tools/tcp_wrappers
|
|||
|
B2 Socks s1.gov:/pub/socks.tar.Z
|
|||
|
B3 Kernel_wrap eecs.nwu.edu:/pub/securelib
|
|||
|
B4 Swatch sierra.stanford.edu:/pub/sources
|
|||
|
B5 CAP e-mail to thompsond@orvb.saic.com
|
|||
|
B6 Mail Gateway NOT APPLICABLE
|
|||
|
B7 Tty_wrapper NOT APPLICABLE
|
|||
|
B8 HSC-Gatekeeper e-mail to Herve.Schauer@hsc-sec.fr
|
|||
|
B9 AT&T INET e-mail to ches@research.att.com
|
|||
|
C1 COPS cert.org:/pub/tools/cops
|
|||
|
C2 Chkacct cc.perdue.edu:/pub/chkacctv1.1.tar.Z
|
|||
|
C3 Crack cert.org:/pub/tools/crack/crack_4.1-tar.Z
|
|||
|
C4 Shadow comp.sources.misc (jfh@rpp386.cactus.org).
|
|||
|
C5 Passwd+ dartmouth.edu:/pub/passwd+tar.Z
|
|||
|
C6 Audit e-mail to bjorn@sysadmin.com
|
|||
|
C7 Miro e-mail to miro@cs.cmu.edu
|
|||
|
D1 Key-card e-mail to cert@cert.org
|
|||
|
D2 TIS/PEM e-mail to pem-info@tis.com
|
|||
|
D3 Kerberos athena-dist.mit.edu:/pub/kerberos5
|
|||
|
D4 Private-key contact Don Davis, at Geer Zolot Assoc.
|
|||
|
D5 MLS contact your UNIX vendor
|
|||
|
D6 File encrypt contact your UNIX vendor
|
|||
|
D7 Programming NOT APPLICABLE
|
|||
|
D8 Counter-Intel NOT APPLICABLE
|
|||
|
D9 Other Poss. research and contact various vendors
|
|||
|
E* Policy RFC 1244 and cert@cert.org
|
|||
|
|
|||
|
Additional Sources of Information
|
|||
|
|
|||
|
Subscribe to the following mailing lists:
|
|||
|
|
|||
|
cert-advisory-request@cert.org
|
|||
|
cert-tools-request@cert.org
|
|||
|
firewalls@greatcircle.com
|
|||
|
|
|||
|
Read the following USENET newsgroups:
|
|||
|
|
|||
|
comp.security.announce (echos the CERT advisory mailing list)
|
|||
|
comp.security.misc
|
|||
|
alt.security (frequently dissolves into "flame wars")
|
|||
|
comp.risks
|
|||
|
comp.virus (almost exclusively for discussing PC and MAC viruses)
|
|||
|
|
|||
|
Copy files from the CERT Usenet Clipping Archive via anonymous FTP
|
|||
|
from cert.org
|
|||
|
|
|||
|
CERT Contact Information:
|
|||
|
|
|||
|
Emergencies: +1 412 268-7090
|
|||
|
FAX: +1 412 268-6989
|
|||
|
E-mail: cert@cert.org
|
|||
|
|
|||
|
U.S. Mail: CERT Coordination Center
|
|||
|
Software Engineering Institute
|
|||
|
Carnegie Mellon University
|
|||
|
4500 Fifth Avenue
|
|||
|
Pittsburgh, PA 15213-3890, USA
|
|||
|
|
|||
|
USENIX Papers are available directly from USENIX:
|
|||
|
|
|||
|
The USENIX Association
|
|||
|
2560 Ninth Street, Suite 215
|
|||
|
Berkeley, CA 94710, USA
|
|||
|
|
|||
|
READ: The SYMPOSIUM PROCEEDINGS of the USENIX Third UNIX Security
|
|||
|
Symposium (September 14-16, 1992). It is 330+ pages, containing
|
|||
|
papers describing in better detail a lot of the packages and
|
|||
|
security techniques I briefly described in this paper.
|
|||
|
|
|||
|
------------------------SUMMARY OF CHANGES-------------------------
|
|||
|
Version 1 was distributed on September 19, 1992
|
|||
|
Version 2 was distributed on October 8, 1992
|
|||
|
Version 3 was distributed on November 11, 1992
|
|||
|
|
|||
|
(V3) Paragraph B2 (Socks) - Changes to e-mail address submitted by
|
|||
|
Ed DeHart of CERT. Changes to availability submitted by the
|
|||
|
authors, David and Michelle Koblas, the package is available from
|
|||
|
s1.gov. (V3) Paragraph B8 (HSC-Gatekeeper) - Added this at the
|
|||
|
suggestion of the author, Herve Schauer. (V3) Paragraph B9 (AT&T
|
|||
|
INET) - Added this to show a contrast to new paragraph B8. (V2)
|
|||
|
Paragraph C1 (COPS) - Additional Comments and Hints submitted by
|
|||
|
Dan Farmer, the author of COPS. (V2) Paragraph C2 (Chkacct) -
|
|||
|
Correction to availability, the package is distributed with COPS
|
|||
|
(versions >= 1.04). (V2) Paragraph D1 (KeyCard) - Correction to
|
|||
|
availability, source code is not in public domain, submitted by Jim
|
|||
|
Ellis at CERT. (V3) Paragraph D5 (MLS) - Changed to take a more
|
|||
|
progressive stance toward MLS in current operating environments.
|
|||
|
(V3) Additional information - Added address for the new Firewalls
|
|||
|
mailing list.
|
|||
|
|
|||
|
------------------------NOTICE---DISCLAIMER------------------------
|
|||
|
The contents of this paper do not necessarily reflect the opinions
|
|||
|
of my employer or anyone else that I know. Nothing in this paper
|
|||
|
should be construed as a product endorsement. No warranty is
|
|||
|
expressed or implied. Any comments? Please send me e-mail.
|
|||
|
-------------------------------------------------------------------
|
|||
|
|
|||
|
------------------------NOTICE---COPYRIGHT-------------------------
|
|||
|
(c) Copyright 1992, Robert B. Reinhardt. This paper is freely
|
|||
|
distributable as long as the paper is not modified in any way,
|
|||
|
includes this notice, and is provided without guarantee or warranty
|
|||
|
expressed or implied. E-mail comments to breinhar@access.digex.com
|
|||
|
-------------------------------------------------------------------
|
|||
|
|