1. Introduction
The goal of this paper is to present my concept of a UNIX network
security
architecture based on the Internet connectivity model and
Firewall approach to implementing security. This paper defines several
layers of a firewall, which depict the layers of vulnerability. This
paper also provides some subjective comments on some of the most widely
known tools and methods available to protect UNIX networks today, plus a
brief discussion of the threat and the risk.
The list of tools and methods that I present in this paper were
chosen loosely on the basis of the following: (a) My attempt to find at
least one, maybe several examples of a tool or method designed to
address a part of the architectural model (some duplication or overlap
is accepted); (b) my preference to discuss tools that are well-known
and/or part of the public domain (this is not a strict rule, although I
did not purposely seek out commercial products); and (c) I hoped to find
tools that had a recent paper written by the tools' author, for the
reader to use as detailed reference beyond the scope of this document.
Nothing in this paper should be construed as a product endorsement. I
apologize in advance to the authors of these tools and methods; since I
am only presenting a brief overview, I cannot do justice to a
comprehensive description of them. I also apologize to any authors whom
I may have left out of this discussion; it was not intentional. The
reader should check the availability information that accompanies each
tool and obtain additional information prior to proceeding with any plans
or implementation. Of course, there is no warranty expressed or implied
in this paper.
2. Risk, Threat, and Vulnerability
This section presents a general overview of the risk and the threat
to the security of your network. These are general statements that apply
to almost every network. A complete analysis of your network's risk,
threat, and vulnerability should be done in order to assess in detail
the requirements of your own network.
2.1 Risk
The risk is the possibility that an intruder may be successful in
attempting to access your local-area network via your wide-area network
connectivity. There are many possible effects of such an occurrence. In
general, the possibility exists for someone to:
- READ ACCESS. Read or copy information from
your network.
-
WRITE ACCESS. Write to or destroy data on
your network (including planting trojan
horses, viruses, and back-doors).
-
DENIAL OF SERVICE. Deny normal use of your
network resources by consuming all of your
bandwidth, CPU, or memory.
2.2 Threat
The threat is anyone with the motivation to attempt to gain
unauthorized access to your network or anyone with authorized access to
your network. Therefore it is possible that the threat can be anyone.
Your vulnerability to the threat depends on several factors such as:
- MOTIVATION. How useful access to or
destruction of your network might be to
someone.
- TRUST. How well you can trust your authorized
users and/or how well trained are your users
to understand what is acceptable use of the
network and what is not acceptable use,
including the consequences of unacceptable
use.
2.3 Vulnerability
Vulnerability essentially is a definition of how well protected your
network is from someone outside of your network that attempts to gain
access to it; and how well protected your network is from someone within
your network intentionally or accidentally giving away access or otherwise
damaging the network.
Motivation and Trust (see Threat, section 2.2) are two parts of this
concern that you will need to assess in your own internal audit of
security requirements and policy, later I will describe some references
that are available to help you start this process.
The rest of this paper is a presentation of my concept of the
architectural model of UNIX network security (the focus of this paper).
This is geared toward connectivity to the Internet (or Internet Protocol
connectivity in general), employing the FIREWALL method of reducing
vulnerability to the risks and the threat.
3. UNIX Network Security Architecture
For each of the layers in the UNIX Network Security Architecture
(UNIX/NSA) model below, there is a subsection that follows that gives a
brief description of that layer and some of the most widely used tools
and methods for implementing security controls. I am using the ISO/OSI
style of model since most people in the UNIX community are familiar with
it. This architecture is specifically based on UNIX Internet
connectivity, but it is probably general enough to apply to overall
security of any network methodology. One could argue that this model
applies to network connectivity in general, with or without the specific
focus of UNIX network security.
Layer Name Functional Description
LAYER 7 POLICY POLICY DEFINITION AND DIRECTIVES
LAYER 6 PERSONNEL PEOPLE WHO USE EQUIPMENT AND DATA
LAYER 5 LAN COMPUTER EQUIPMENT AND DATA ASSETS
LAYER 4 INTERNAL-DEMARK CONCENTRATOR - INTERNAL CONNECT
LAYER 3 GATEWAY FUNCTIONS FOR OSI 7, 6, 5, 4
LAYER 2 PACKET-FILTER FUNCTIONS FOR OSI 3, 2, 1
LAYER 1 EXTERNAL-DEMARK PUBLIC ACCESS - EXTERNAL CONNECT
The specific aim of this model is to illustrate the relationship
between the various high and low level functions that collectively
comprise a complete security program for wide-area network connectivity.
They are layered in this way to depict (a) the FIREWALL method of
implementing access controls, and (b) the overall transitive effect of
the various layers upon the adjacent layers, lower layers, and the
collective model. The following is a general description of the layers
and the nature of the relationship between them. After this brief
discussion of what each layer is, the next section of this paper will
discuss examples of common methods and tools used to implement some of
your options at each level, or at least try to tell you where to find
out how to get started. Note that there may be some overlap between the
definitions of the various levels, this is most likely between the
different layers of the FIREWALL itself (layers 2 and 3).
The highest layer [ 7 - POLICY ] is the umbrella that the entirety of
your security program is defined in. It is this function that defines
the policies of the organization, including the high level definition of
acceptable risk down to the low level directive of what and how to
implement equipment and procedures at the lower layers. Without a
complete, effective, and implemented policy, your security program
cannot be complete.
The next layer [ 6 - PERSONNEL ] defines yet another veil within the
bigger umbrella covered by layer 7. The people that install, operate,
maintain, use, and can have or do otherwise have access to your network
(one way or another) are all part of this layer. This can include people
that are not in your organization, that you may not have any
administrative control over. Your policy regarding personnel should
reflect what your expectations are from your overall security program.
Once everything is defined, it is imperitive that personnel are trained
and are otherwise informed of your policy, including what is and is not
considered acceptable use of the system.
The local-area network layer [ 5 - LAN ] defines the equipment and
data assets that your security program is there to protect. It also
includes some of the monitor and control procedures used to implement
part of your security policy. This is the layer at which your security
program starts to become automated electronically, within the LAN assets
themselves.
The internal demarcation layer [ 4 - INTERNAL DEMARK ] defines the
equipment and the point at which you physically connect the LAN to the
FIREWALL that provides the buffer zone between your local- area network
(LAN) and your wide-area network (WAN) connectivity. This can take many
forms such as a network concentrator that homes both a network interface
for the FIREWALL and a network interface for the LAN segment. In this
case, the concentrator is the internal demarcation point. The minimum
requirement for this layer is that you have a single point of disconnect
if the need should arise for you to spontaneously separate your LAN from
your WAN for any reason.
The embedded UNIX gateway layer [ 3 - GATEWAY ] defines the entire
platform that homes the network interface coming from your internal
demark at layer 4 and the network interface going to your packet
filtering router (or other connection equipment) at layer 3. The point
of the embedded UNIX gateway is to provide FIREWALL services (as
transparent to the user or application as possible) for all WAN
services. What this really is must be defined in your policy (refer to
layer 1) and illustrates how the upper layers overshadow or are
transitive to the layers below. It is intended that the UNIX gateway (or
server) at this layer will be dedicated to this role and not otherwise
used to provide general network resources (other than the FIREWALL
services such as proxy FTP, etc.). It is also used to implement monitor
and control functions that provide FIREWALL support for the functions
that are defined by the four upper ISO/OSI layers (1-Application,
2-Presentation, 3- Session, 4-Transport). Depending on how this and the
device in layer 2 is implemented, some of this might be merely pass-thru
to the next level. The configuration of layers 3 and 2 should
collectively provide sufficient coverage of all 7 of the functions
defined by the ISO/OSI model. This does not mean that your FIREWALL has
to be capable of supporting everything possible that fits the OSI model.
What this does mean is that your FIREWALL should be capable of
supporting all of the functions of the OSI model that you have
implemented on your LAN/WAN connectivity.
The packet filtering layer [ 2 - FILTER ] defines the platform that
homes the network interface coming from your gateway in layer 3 and the
network interface or other device such as synchronous or asynchronous
serial communication between your FIREWALL and the WAN connectivity at
layer 1. This layer should provide both your physical connectivity to
layer 1 and the capability to filter inbound and outbound network
datagrams (packets) based upon some sort of criteria (what this criteria
needs to be is defined in your policy). This is typically done today by
a commercial off-the- shelf intelligent router that has these
capabilities, but there are other ways to implement this. Obviously
there is OSI link-level activity going on at several layers in this
model, not exclusively this layer. But, the point is that functionally,
your security policy is implemented at this level to protect the overall
link- level access to your LAN (or stated more generally; to separate
your LAN from your WAN connectivity).
The external demarcation layer [ LAYER 1 ] defines the point at which
you connect to a device, telephone circuit, or other media that you do
not have direct control over within your organization. Your policy
should address this for many reasons such as the nature and quality of
the line or service itself and vulnerability to unauthorized access. At
this point (or as part of layer 2) you may even deploy yet another
device to perform point to point data link encryption. This is not
likely to improve the quality of the line, but certainly can reduce your
vulnerability to unauthorized access. You also need to be concerned
about the dissemination of things at this level that are often
considered miscellaneous, such as phone numbers or circuit IDs.
Illustration of the UNIX/NSA Model
------------------------------------------------------------------
| POLICY |
------------------------------------------------------------------
|
|
---------------------------------------------------
| PERSONNEL |
---------------------------------------------------
|
|
---------------------------------
| LAN |
---------------------------------
Enet |
Enet |
-----------------
| INTERNAL-D |
-----------------
Enet |
Enet |
----------------- UNIX server with two Ethernet interfaces and
| GATEWAY-SERVER| custom software and configuration to implement
----------------- security policy (proxy services, auditing).
Enet |
Enet |
-----------------
| PACKET-FILTER | cisco IGS router with access lists
-----------------
X.25 |
|
-----------------
| EXTERNAL-D | leased DID line to WAN service
-----------------
|
|
+ Public Access +
3.1 PUBLIC or NON-PRIVATE CONNECTIVITY
This layer of the model characterizes all external physical
connectivity to your network. This normally includes equipment and
telephone lines that you do not own or do not have control over. The
point of illustrating this is to show this part of the connectivity as
part of the overall model. At some point at this layer, equipment that
you do own or have control of will connect to the external or public
network. Your own policy and implementation must take the dynamics of
this connectivity into account.
3.2 ROUTER (FIREWALL PHYSICAL LAYER)
This layer of the model depicts the point at which your physical
connectivity and your data stream become one. Without going into
hysterics about all of what a router is and does; the point is that at
this layer, your electrical connectivity,
which contains encapsulated
data in some form, becomes information. Your router will decode the
electrical signals from the physical connectivity and turn it into
packets of encapsulated data for any one of various networking
protocols. Within this packet of information is contained the source
address, destination address, protocol ID, the datagram itself, etc.
Many routers available today include the capability to create access
control lists (ACL) for either one or both of the outgoing and the
incoming data interfaces [1][5]. This normally includes the capability
to filter out or allow in packets based upon source address, destination
address, protocol (such as TCP, UDP, ICMP, etc.) and specific port
numbers (TCP and UDP). This provides you the flexibility to design your
own network access control policy, enforced at the router, before access
to your internal network resources is required or granted. In this way,
routers alone are often used to provide the firewall functionality.
While the router ACL capability offers a big advantage, it should not
be your only protection because, basically the router only provides
protection at the first three levels of the OSI model (Physical, Data
Link, and Network layers). The rest of the layers of this firewall model
discuss ways to address functional security of the other four OSI layers
(Transport, Session, Presentation, and Application).
Availability: I only have personal 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.
3.3 DUAL-HOMED UNIX GATEWAY SERVER (FIREWALL LOGICAL LAYER)
This layer of the model illustrated the point at which your various
IP packets (to and from the router) are used by the network operating
system (such as TCP/IP under UNIX) to provide the services identified in
the upper four layers of the OSI model. Of course, this UNIX server is
actually doing work at the bottom three OSI layers also, in order to
communicate with: (a) the router on one side of the server, and (b) the
local-area network on the other side of the server.
At this point the router is already implementing your security policy
for the bottom three OSI layers, now it's up to your dual- homed [10]
UNIX server (acting as a gateway) to implement your security policy
relating to functions of the network for the upper four OSI layers. This
can mean a lot of things. Depending on what your security policy says
you are supposed to enforce, what you do at this point varies. The
following tools and methods are example of some of the tools and methods
(functionality) available today:
3.3.1 TCP Wrapper
The "TCP WRAPPER" tool [2] 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.*.
3.3.2 SOCKS library and sockd
The "sockd" and "SOCKS Library" [3] 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).
3.3.3 Kernel_Wrap for SunOS RPC via Shared Libraries
Essentially this is a wrapper for SunOS daemons that use RPC [4],
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.
3.3.4 Swatch
Simple WATCHER [6] 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.
3.3.5 Controlled Access Point (CAP)
This is more of a method or protocol definition than a specific
product. CAP [7] 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).
3.3.6 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.
3.3.7 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," (something more than just
filtering out the telnet port) but that is for another day.
3.3.8 HSC-Gatekeeper
The HSC-Gatekeeper from Herve' Schauer Consultants [8], is a complete
solution to both layers 1 and 2 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 is 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.
3.3.9 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 [9]
"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.
3.4 COMPUTERS ON THE LOCAL-AREA NETWORK
This layer of the model depicts the place where you you are
potentially at the greatest risk. The previous layers discussed ways to
protect access to this layer of the network. This layer includes all of
you local-area network, workstations, file servers, data bases, and
other network resources. This is also the point at which your user
community sits at their desks and use the network.
There are several things to be concerned about here, access to this
layer in the first place notwithstanding. Just because you think you
have protected and may be monitoring access to this layer within the
previous layers, does not mean that use of computers and other resources
within your local-area network should become a free for all. Again, this
depends on what you identify in your own particular security policy but,
at this layer you should do some routine checking for possible breaches
of your firewall that would leave its mark at this layer and pay close
attention to effective password handling, etc. This is also the layer of
this model at which you want to concern yourself with training your
users, after all this is where they can potentially make their mistakes
(and harm your network).
3.4.1 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).
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.
3.4.2 Chkacct
Chkacct [11] 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.
3.4.3 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.
3.4.4 Shadow
The shadow password suite of programs [12] 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.
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).
3.4.5 Passwd+
Passwd+ is a proactive password checker [13] 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.
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+ (developed by Matt Bishop) is available via
anonymous FTP from dartmouth.edu in ~/pub/passwd+tar.Z.
3.4.6 Audit
Audit is a policy-driven security checker for a heterogeneous
environment [14]. 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.
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).
3.4.7 Miro
Miro [14] 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.
3.5 ADDITIONAL SECURITY ENHANCEMENTS
The tools described in firewall layers {1...4} (sections 3.1 to 3.4)
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.
3.5.1 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).
3.5.2 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
[16] 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).
3.5.3 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.
3.5.4 Private-Key Certificates
This is not really a product, but rather a design proposal [17] 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.
3.5.5 Multilevel 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 n'th degree before covering the fundamentals. However, if
you are just now deciding to which variant of the UNIX operating system
to buy, consider buying an MLS variant now. After you configure it to
manage your security policy, go back through layers {1...4} 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+ 2.2
(based on A/UX or SCO ODT 1.1) and AT&T USL System V-Release
4-Version 2-Enhanced Security (SVR4.2ES).
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+, send e-mail to
info@sware.com. For additional information regarding AT&T USL
SVR4.2ES, send e-mail to fate@usl.com.
3.5.6 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 (US export
restriction apply) 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.2 is available (uses RSA encryption),
however there may be licensing issues to be concerned with.
3.5.7 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; and (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).
3.5.8 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.
3.5.9 Other Possibilities
Depending on your requirements you might look into specialized
solutions such as Compartmented Mode Workstations (CMW), end-to-end Data
Link Encryption (STU-III, Motorola NES, and XEROX XEU are examples), 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.
3.6 SECURITY POLICY
Everything discussed in layers {1...5} (sections 3.1 to 3.5) above
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 layers {1...5} (or their equivalent) 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.
They can direct 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).
4. SUMMARY OF AVAILABILITY
Section Name Availability
3.2 Router Cisco, Wellfleet, Proteon
3.3.1 Tcp_wrapper cert.org:/pub/tools/tcp_wrappers
3.3.2 Socks s1.gov:/pub/socks.tar.Z
3.3.3 Kernel_wrap eecs.nwu.edu:/pub/securelib
3.3.4 Swatch sierra.stanford.edu:/pub/sources
3.3.5 CAP e-mail to thompsond@orvb.saic.com
3.3.6 Mail Gateway
3.3.7 Tty_wrapper
3.3.8 HSC-Gatekeeper e-mail to Herve.Schauer@hsc-sec.fr
3.3.9 AT&T INET e-mail to ches@research.att.com
3.4.1 COPS cert.org:/pub/tools/cops
3.4.2 Chkacct cc.perdue.edu:/pub/chkacctv1.1.tar.Z
3.4.3 Crack cert.org:/pub/tools/crack/crack_4.1-tar.Z
3.4.4 Shadow comp.sources.misc (jfh@rpp386.cactus.org).
3.4.5 Passwd+ dartmouth.edu:/pub/passwd+tar.Z
3.4.6 Audit e-mail to bjorn@sysadmin.com
3.4.7 Miro e-mail to miro@cs.cmu.edu
3.5.1 Key-card e-mail to cert@cert.org
3.5.2 TIS/PEM e-mail to pem-info@tis.com
3.5.3 Kerberos athena-dist.mit.edu:/pub/kerberos5
3.5.4 Private-key contact Don Davis, at Geer Zolot Assoc.
3.5.5 MLS contact your UNIX vendor
3.5.6 File encrypt contact your UNIX vendor
3.5.7 Programming
3.5.8 Counter-Intel
3.5.9 Other Poss. research and contact various vendors
3.6 Policy RFC 1244 and cert@cert.org
5. ADDITIONAL SOURCES OF INFORMATION
There are several primary sources of information that you can tap
into (and correspond with) to keep up to date with current happenings in
the general network security and in specific the "firewall"
community. I recommend subscribing to the following mailing lists: (a)
cert-advisory-request@cert.org; (b) cert-tools- request@cert.org, and
(c) firewalls@greatcircle.com. In addition to that read and participate
in the following USENET newsgroups: (a) comp.security.announce (which
echos the CERT advisory mailing list); (b) comp.security.misc; (c)
alt.security (frequently dissolves into "flame wars"); (d)
comp.risks; and (e) comp.virus (almost exclusively for discussing PC and
MAC viruses). Also, you can 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
6. Acknowledgements
The author extends thanks to several of the authors of the tools
discussed in this paper and others for providing feedback that effected
several changes in the first couple drafts of this paper. This includes
but, is not limited to the following: Ed DeHart (CERT), Jim Ellis
(CERT), David and Michelle Koblas (SOCKS), Herve Schauer (Gatekeeper),
Dan Farmer (COPS), D. Brent Chapman (firewalls@greatcircle.com), and
Matt Bishop (Editor).
7. References
[1] S. Carl-Mitchell and John S. Quarterman, Building Internet
Firewalls. UnixWorld; February, 1992; pp 93-102.
[2] Wietse Venema. TCP Wrapper: Network Monitoring, Access
Control and Booby Traps. USENIX Proceedings, UNIX Security
Symposium III; September 1992.
[3] David and Michelle Koblas. SOCKS. USENIX Proceedings, UNIX
Security Symposium III; September 1992.
[4] William LeFebvre. Restricting Access to System Daemons Under
SunOS. USENIX Proceedings, UNIX Security Symposium III;
September 1992.
[5] D. Brent Chapman. Network (In)Security Through IP Packet
Filtering. USENIX Proceedings, UNIX Security Symposium III;
September 1992.
[6] Stephen E. Hansen and E. Todd Atkins. Centralized System
Monitoring with Swatch. USENIX Proceedings, UNIX Security
Symposium III; September 1992.
[7] J. David Thompson and Kate Arndt. A Secure Public Network
Access Mechanism. USENIX Proceedings, UNIX Security Symposium
III; September 1992.
[8] Herve Schauer. An Internet Gatekeeper. USENIX Proceedings,
UNIX Security Symposium III; September 1992.
[9] William Cheswick. The Design of a Secure Internet Gateway.
Murray Hill, NJ: AT&T Bell Laboratories.
[10] Garfinkel, Simson, and Gene Spafford. Firewall Machines.
Practical UNIX Security. Sabastopol, CA: O'Reilly and
Associates, Inc., 1991.
[11] Shabbir J. Safdar. Giving Customers the Tools to Protect
Themselves. USENIX Proceedings, UNIX Security Symposium III;
September 1992.
[12] John F. Haugh, II. Introduction to the Shadow Password Suite.
USENIX Proceedings, UNIX Security Symposium III; September
1992.
[13] Matt Bishop. Anatomy of a Proactive Password Checker. USENIX
Proceedings, UNIX Security Symposium III; September 1992.
[14] Bjorn Satdeva. Audit: A Policy Driven Security Checker for a
Heterogeneous Environment. USENIX Proceedings, UNIX Security
Symposium III; September 1992.
[15] Allan Heydon and J.D. Tygar. Specifying and Checking UNIX
Security Constraints. USENIX Proceedings, UNIX Security
Symposium III; September 1992.
[16] James M. Galvin and David M. Balenson. Security Aspects of a
UNIX PEM Implementation. USENIX Proceedings, UNIX Security
Symposium III; September 1992.
[17] Don Davis. Network Security Via Private-Key Certificates.
USENIX Proceedings, UNIX Security Symposium III; September
February 18, 1993
Robert B. Reinhardt
breinhar@access.digex.com
ARINC Research Corporation
2551 Riva Road
Annapolis, MD 21401
| (c) Copyright 1992,1993 Robert B. Reinhardt. This
paper may be distributabed freely 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 |
| Disclaimer: Information provided here is
for informational purposes and should not be construed as expert
advice. |
|