home *** CD-ROM | disk | FTP | other *** search
Text File | 2003-06-11 | 146.0 KB | 3,257 lines |
- Founded By: | _ _______
- Guardian Of Time | __ N.I.A. _ ___ ___ Are you on any WAN? are
- Judge Dredd | ____ ___ ___ ___ ___ you on Bitnet, Internet
- ------------------+ _____ ___ ___ ___ ___ Compuserve, MCI Mail,
- \ / ___ ___ ___ ___ ___________ Sprintmail, Applelink,
- +---------+ ___ ___ ___ ___ ___________ Easynet, MilNet,
- | 05MON18 | ___ ______ ___ ___ ___ FidoNet, et al.?
- | File 74 | ___ _____ ___ ___ ___ If so please drop us a
- +---------+ ____ _ __ ___ line at
- ___ _ ___ nia@nuchat.sccsi.com
- Internal Affairs BBS __ NIA074
- _ Network Information Access
- Ignorance, There's No Excuse.
-
- NIA Issue 074 Volume 2
-
-
- "I didn't invent the Unix security problem. I just optimized it."
-
-
- Greetings. This newsletter is published on a non-regular basis and
- is only a hobby by the editors, not a job. No responsibility is taken by
- the editors for this newsletter, all of that and the credit goes to the
- contributers. We are changing format again to go with the changing times.
- First of all, there will be NO news unless it is first hand accounts of it.
- If you want news, there are plenty of other electronic 'zines and more
- efficient ways of getting it than to wait for an NIA issue to come out.
- Second, the articles are going to be getting technical. There is only
- so many intro/basics we can publish/re-print.
- We are looking for contributions. All articles submitted must be in a
- regular format for the magazine. There is a one month review time for the
- article to be chosen. There is an additional one month revise time if the
- article is chosen. We do keep copies of everything that is sent to us so if
- it is not published in the immediate issue than it could be published in a
- later issue (in which case you will be notified). The readers make the
- magazine, so if you want to see better issues then do some research and
- send us reports.
-
- ------------------------------------------------------------------------------
- 1. Introduction ......................................................Editors
- 2. Security Problems in TCP/IP Suite [01/02] ...................S.M. Bellovin
- 3. Security Problems in TCP/IP Suite [02/02] ...................S.M. Bellovin
- 4. Firewalls: The Design of Secure Internet Gateway ............Bill Cheswick
- 5. Notes on Centigram Systems ......................................Anonymous
- 6. How to Steal Information .......................................The Butler
- 7. Killer Chips: Physical Virus ...................Jean-Bernard Condat [CCCF]
- ------------------------------------------------------------------------------
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- NIA074 / File 02
-
- Security Problems in the TCP/IP Protocol Suite
-
- Part I of II
-
- S.M. Bellovin
-
- AT&T Bell Laboratories
-
- ABSTRACT
-
- The TCP/IP protocol suite, which is very
- widely used today, was developed under
- the sponsorship of the Department of
- Defense. Despite that, there are a
- number of serious security flaws
- inherent in the protocols, regardless of
- the correctness of any implementations.
- We describe a variety of attacks based
- on these flaws, including sequence
- number spoofing, routing attacks, source
- address spoofing, and authentication
- attacks. We also present defenses
- against these attacks, and conclude with
- a discussion of broad-spectrum defenses
- such as encryption.
-
- 1. INTRODUCTION
-
- The TCP/IP protocol suite[1][2], which is very widely used
- today, was developed under the sponsorship of the Department
- of Defense. Despite that, there are a number of serious
- security flaws inherent in the protocols. Some of these
- flaws exist because hosts rely on IP source address for
- authentication; the Berkeley "r-utilities"[3] are a
- notable example. Others exist because network control
- mechanisms, and in particular routing protocols, have
- minimal or non-existent authentication.
-
- When describing such attacks, our basic assumption is that
- the attacker has more or less complete control over some
- machine connected to the Internet. This may be due to flaws
- in that machine's own protection mechanisms, or it may be
-
- __________
-
- * Author's address: Room 3C-536B AT&T Bell Laboratories,
- 600 Mountain Avenue, Murray Hill, New Jersey 07974.
-
- Reprinted from Computer Communication Review Vol. 19
- No. 2, p.32-48, April 1989.
-
- because that machine is a microcomputer, and inherently
- unprotected. Indeed, the attacker may even be a rogue
- system administrator.
-
- 1.1 Exclusions
-
- We are not concerned with flaws in particular
- implementations of the protocols, such as those used by the
- Internet "worm"[4][5][6]. Rather, we discuss generic
- problems with the protocols themselves. As will be seen,
- careful implementation techniques can alleviate or prevent
- some of these problems. Some of the protocols we discuss
- are derived from Berkeley's version of the UNIXr system;
- others are generic Internet protocols.
-
- We are also not concerned with classic network attacks, such
- as physical eavesdropping, or altered or injected messages.
- We discuss such problems only in so far as they are
- facilitated or possible because of protocol problems.
-
- For the most part, there is no discussion here of vendor-
- specific protocols. We do discuss some problems with
- Berkeley's protocols, since these have become de facto
- standards for many vendors, and not just for UNIX systems.
-
-
- 2. TCP SEQUENCE NUMBER PREDICTION
-
- One of the more fascinating security holes was first
- described by Morris[7]. Briefly, he used TCP sequence
- number prediction to construct a TCP packet sequence without
- ever receiving any responses from the server. This allowed
- him to spoof a trusted host on a local network.
-
- The normal TCP connection establishment sequence involves a
- 3-way handshake. The client selects and transmits an
- initial sequence number ISNC, the server acknowledges it and
- sends its own sequence number ISNS, and the client
- acknowledges that. Following those three messages, data
- transmission may take place. The exchange may be shown
- schematically as follows:
-
- C->S:SYN(ISNC)
- S->C:SYN(ISNS),ACK(ISNC)
- C->S:ACK(ISNS)
- C->S:data
- and/or
- S->C:data
-
- That is, for a conversation to take place, C must first hear
- ISNS, a more or less random number.
-
- Suppose, though, that there was a way for an intruder X to
- predict ISNS. In that case, it could send the following
- sequence to impersonate trusted host T:
-
- X->S:SYN(ISNX),SRC=T
- S->T:SYN(ISNS),ACK(ISNX)
- X->S:ACK(ISNS),SRC=T
- X->S:ACK(ISNS),SRC=T,nasty-data
-
- Even though the message S->T does not go to X, X was able to
- know its contents, and hence could send data. If X were to
- perform this attack on a connection that allows command
- execution (i.e., the Berkeley rsh server), malicious
- commands could be executed.
-
- How, then, to predict the random ISN? In Berkeley systems,
- the initial sequence number variable is incremented by a
- constant amount once per second, and by half that amount
- each time a connection is initiated. Thus, if one initiates
- a legitimate connection and observes the ISNS used, one can
- calculate, with a high degree of confidence, ISNS' used on
- the next connection attempt.
-
- Morris points out that the reply message
-
- S->T:SYN(ISNS),ACK(ISNX)
-
- does not in fact vanish down a black hole; rather, the real
- host T will receive it and attempt to reset the connection.
- This is not a serious obstacle. Morris found that by
- impersonating a server port on T, and by flooding that port
- with apparent connection requests, he could generate queue
- overflows that would make it likely that the S->T message
- would be lost. Alternatively, one could wait until T was
- down for routine maintenance or a reboot.
-
- A variant on this TCP sequence number attack, not described
- by Morris, exploits the netstat[8] service. In this attack,
- the intruder impersonates a host that is down. If netstat
- is available on the target host, it may supply the necessary
- sequence number information on another port; this eliminates
- all need to guess1.
- __________
-
- 1. The netstat protocol is obsolete, but is still present
- on some Internet hosts. Security concerns were not
-
- Defenses
- Obviously, the key to this attack is the relatively coarse
- rate of change of the initial sequence number variable on
- Berkeley systems. The TCP specification requires that this
- variable be incremented approximately 250,000 times per
- second; Berkeley is using a much slower rate. However, the
- critical factor is the granularity, not the average rate.
- The change from an increment of 128 per second in 4.2BSD to
- 125,000 per second in 4.3BSD is meaningless, even though the
- latter is within a factor of two of the specified rate.
-
- Let us consider whether a counter that operated at a true
- 250,000 hz rate would help. For simplicity's sake, we will
- ignore the problem of other connections occurring, and only
- consider the fixed rate of change of this counter.
-
- To learn a current sequence number, one must send a SYN
- packet, and receive a response, as follows:
-
- X->S: SYN(ISNX)
- S->X: SYN(ISNS),ACK(ISNX) (1)
-
- The first spoof packet, which triggers generation of the
- next sequence number, can immediately follow the server's
- response to the probe packet:
-
- X->S: SYN(ISNX),SRC=T (2)
-
- The sequence number ISNS used in the response
-
- S->T: SYN(ISNS),ACK(ISNX)
-
- is uniquely determined by the time between the origination
- of message (0) and the receipt at the server of message (0).
- But this number is precisely the round-trip time between X
- and S. Thus, if the spoofer can accurately measure (and
- predict) that time, even a 4-second clock will not defeat
- this attack.
-
- How accurately can the trip time be measured? If we assume
- that stability is good, we can probably bound it within 10
- milliseconds or so. Clearly, the Internet does not exhibit
- such stability over the long-term[9], but it is often good
- enough over the short term.2 There is thus an uncertainty of
- ____________________________________________________________
-
- behind its elimination.
-
- 2500 in the possible value for ISNS. If each trial takes 5
- seconds, to allow time to re-measure the round-trip time, an
- intruder would have a reasonable likelihood of succeeding in
- 7500 seconds, and a near-certainty within a day. More
- predictable (i.e., higher quality) networks, or more
- accurate measurements, would improve the odds even further
- in the intruder's favor. Clearly, simply following the
- letter of the TCP specification is not good enough.
-
- We have thus far tacitly assumed that no processing takes
- places on the target host. In fact, some processing does
- take place when a new request comes in; the amount of
- variability in this processing is critical. On a 6 MIPS
- machine, one tick -- 4 M-seconds -- is about 25
- instructions. There is thus considerable sensitivity to the
- exact instruction path followed. High-priority interrupts,
- or a slightly different TCB allocation sequence, will have a
- comparatively large effect on the actual value of the next
- sequence number. This randomizing effect is of considerable
- advantage to the target. It should be noted, though, that
- faster machines are more vulnerable to this attack, since
- the variability of the instruction path will take less real
- time, and hence affect the increment less. And of course,
- CPU speeds are increasing rapidly.
-
- This suggests another solution to sequence number attacks:
- randomizing the increment. Care must be taken to use
- sufficient bits; if, say, only the low-order 8 bits were
- picked randomly, and the granularity of the increment was
- coarse, the intruder's work factor is only multiplied by
- 256. A combination of a fine-granularity increment and a
- small random number generator, or just a 32-bit generator,
- is better. Note, though, that many pseudo-random number
- generators are easily invertible[10]. In fact, given that
- most such generators work via feedback of their output, the
- enemy could simply compute the next "random" number to be
- picked. Some hybrid techniques have promise -- using a 32-
- bit generator, for example, but only emitting 16 bits of it
- -- but brute-force attacks could succeed at determining the
- seed. One would need at least 16 bits of random data in
- ____________________________________________________________
-
- 2. At the moment, the Internet may not have such stability
- even over the short-term, especially on long-haul
- connections. It is not comforting to know that the
- security of a network relies on its low quality of
- service.
-
-
- each increment, and perhaps more, to defeat probes from the
- network, but that might leave too few bits to guard against
- a search for the seed. More research or simulations are
- needed to determine the proper parameters.
-
- Rather than go to such lengths, it is simpler to use a
- cryptographic algorithm (or device) for ISNS generation.
- The Data Encryption Standard[11] (DES) in electronic
- codebook mode[12] is an attractive choice as the ISNS
- source, with a simple counter as input. Alternatively, DES
- could be used in output feedback mode without an additional
- counter. Either way, great care must be taken to select the
- key used. The time-of-day at boot time is not adequate;
- sufficiently good information about reboot times is often
- available to an intruder, thereby permitting a brute-force
- attack. If, however, the reboot time is encrypted with a
- per-host secret key, the generator cannot be cracked with
- any reasonable effort.
-
- Performance of the initial sequence number generator is not
- a problem. New sequence numbers are needed only once per
- connection, and even a software implementation of DES will
- suffice. Encryption times of 2.3 milliseconds on a 1 MIPS
- processor have been reported[13].
-
- An additional defense involves good logging and alerting
- mechanisms. Measurements of the round-trip time --
- essential for attacking RFC-compliant hosts -- would most
- likely be carried out using ICMP Ping messages; a
- "transponder" function could log excessive ping requests.
- Other, perhaps more applicable, timing measurement
- techniques would involve attempted TCP connections; these
- connections are conspicuously short-lived, and may not even
- complete SYN processing. Similarly, spoofing an active host
- will eventually generate unusual types of RST packets; these
- should not occur often, and should be logged.
-
- 3. THE JOY OF ROUTING
-
- Abuse of the routing mechanisms and protocols is probably
- the simplest protocol-based attack available. There are a
- variety of ways to do this, depending on the exact routing
- protocols used. Some of these attacks succeed only if the
- remote host does source address-based authentication; others
- can be used for more powerful attacks.
-
- A number of the attacks described below can also be used to
- accomplish denial of service by confusing the routing tables
- on a host or gateway. The details are straight-forward
- corollaries of the penetration mechanisms, and will not be
- described further.
-
- 3.1 Source Routing
-
- If available, the easiest mechanism to abuse is IP source
- routing. Assume that the target host uses the reverse of
- the source route provided in a TCP open request for return
- traffic. Such behavior is utterly reasonable; if the
- originator of the connection wishes to specify a particular
- path for some reason -- say, because the automatic route is
- dead -- replies may not reach the originator if a different
- path is followed.
-
- The attacker can then pick any IP source address desired,
- including that of a trusted machine on the target's local
- network. Any facilities available to such machines become
- available to the attacker.
-
- Defenses
- It is rather hard to defend against this sort of attack.
- The best idea would be for the gateways into the local net
- to reject external packets that claim to be from the local
- net. This is less practical than it might seem since some
- Ethernet3 network adapters receive their own transmissions,
- and this feature is relied upon by some higher-level
- protocols. Furthermore, this solution fails completely if
- an organization has two trusted networks connected via a
- multi-organization backbone. Other users on the backbone
- may not be trustable to the same extent that local users are
- presumed to be, or perhaps their vulnerability to outside
- attack is higher. Arguably, such topologies should be
- avoided in any event.
-
- A simpler method might be to reject pre-authorized
- connections if source routing information was present. This
- presumes that there are few legitimate reasons for using
- this IP option, especially for relatively normal operations.
- A variation on this defense would be to analyze the source
- route and accept it if only trusted gateways were listed;
- that way, the final gateway could be counted on to deliver
- the packet only to the true destination host. The
- complexity of this idea is probably not worthwhile.
- __________
-
- 3. Ethernet is a registered trademark of Xerox Corporation.
-
- Some protocols (i.e., Berkeley's rlogin and rsh) permit
- ordinary users to extend trust to remote host/user
- combinations. In that case, individual users, rather than
- an entire system, may be targeted by source routing
- attacks.4 Suspicious gateways[14] will not help here, as the
- host being spoofed may not be within the security domain
- protected by the gateways.
-
- 3.2 Routing Attacks
-
- The Routing Information Protocol[15] (RIP) is used to
- propagate routing information on local networks, especially
- broadcast media. Typically, the information received is
- unchecked. This allows an intruder to send bogus routing
- information to a target host, and to each of the gateways
- along the way, to impersonate a particular host. The most
- likely attack of this sort would be to claim a route to a
- particular unused host, rather than to a network; this would
- cause all packets destined for that host to be sent to the
- intruder's machine. (Diverting packets for an entire
- network might be too noticeable; impersonating an idle
- work-station is comparatively risk-free.) Once this is
- done, protocols that rely on address-based authentication
- are effectively compromised.
-
- This attack can yield more subtle, and more serious,
- benefits to the attacker as well. Assume that the attacker
- claims a route to an active host or workstation instead.
- All packets for that host will be routed to the intruder's
- machine for inspection and possible alteration. They are
- then resent, using IP source address routing, to the
- intended destination. An outsider may thus capture
- passwords and other sensitive data. This mode of attack is
- unique in that it affects outbound calls as well; thus, a
- user calling out from the targeted host can be tricked into
- divulging a password. Most of the earlier attacks discussed
- are used to forge a source address; this one is focused on
- the destination address.
- __________
-
- 4. Permitting ordinary users to extend trust is probably
- wrong in any event, regardless of abuse of the
- protocols. But such concerns are beyond the scope of
- this paper.
-
- Defenses
- A RIP attack is somewhat easier to defend against than the
- source-routing attacks, though some defenses are similar. A
- paranoid gateway -- one that filters packets based on source
- or destination address -- will block any form of host-
- spoofing (including TCP sequence number attacks), since the
- offending packets can never make it through. But there are
- other ways to deal with RIP problems.
-
- One defense is for RIP to be more skeptical about the routes
- it accepts. In most environments, there is no good reason
- to accept new routes to your own local networks. A router
- that makes this check can easily detect intrusion attempts.
- Unfortunately, some implementations rely on hearing their
- own broadcasts to retain their knowledge of directly-
- attached networks. The idea, presumably, is that they can
- use other networks to route around local outages. While
- fault-tolerance is in general a good idea, the actual
- utility of this technique is low in many environments
- compared with the risks.
-
- It would be useful to be able to authenticate RIP packets;
- in the absence of inexpensive public-key signature schemes,
- this is difficult for a broadcast protocol. Even if it were
- done, its utility is limited; a receiver can only
- authenticate the immediate sender, which in turn may have
- been deceived by gateways further upstream.
-
- Even if the local routers don't implement defense
- mechanisms, RIP attacks carry another risk: the bogus
- routing entries are visible over a wide area. Any router
- (as opposed to host) that receives such data will
- rebroadcast it; a suspicious administrator almost anywhere
- on the local collection of networks could notice the
- anomaly. Good log generation would help, but it is hard to
- distinguish a genuine intrusion from the routing instability
- that can accompany a gateway crash.
-
- 3.3 Exterior Gateway Protocol
-
- The Exterior Gateway Protocol (EGP)[16] is intended for
- communications between the core gateways and so-called
- exterior gateways. An exterior gateway, after going through
- a neighbor acquisition protocol, is periodically polled by
- the core; it responds with information about the networks it
- serves. These networks must all be part of its autonomous
- system. Similarly, the gateway periodically requests
- routing information from the core gateway. Data is not
- normally sent except in response to a poll; furthermore,
- since each poll carries a sequence number that must be
- echoed by the response, it is rather difficult for an
- intruder to inject a false route update. Exterior gateways
- are allowed to send exactly one spontaneous update between
- any two polls; this, too, must carry the sequence number of
- the last poll received. It is thus comparatively difficult
- to interfere in an on-going EGP conversation.
-
- One possible attack would be to impersonate a second
- exterior gateway for the same autonomous system. This may
- not succeed, as the core gateways could be equipped with a
- list of legitimate gateways to each autonomous system. Such
- checks are not currently done, however. Even if they were,
- they could be authenticated only by source IP address.
-
- A more powerful attack would be to claim reachability for
- some network where the real gateway is down. That is, if
- gateway G normally handles traffic for network N, and G is
- down, gateway G' could advertise a route to that network.
- This would allow password capture by assorted mechanisms.
- The main defense against this attack is topological (and
- quite restrictive): exterior gateways must be on the same
- network as the core; thus, the intruder would need to
- subvert not just any host, but an existing gateway or host
- that is directly on the main net.
-
- A sequence number attack, similar to those used against TCP,
- might be attempted; the difficulty here is in predicting
- what numbers the core gateway is using. In TCP, one can
- establish arbitrary connections to probe for information; in
- EGP, only a few hosts may speak to the core. (More
- accurately, the core could only speak to a few particular
- hosts, though as noted such checks are not currently
- implemented.) It may thus be hard to get the raw data
- needed for such an attack.
-
- 3.4 The Internet Control Message Protocol
-
- The Internet Control Message Protocol (ICMP)[17] is the
- basic network management tool of the TCP/IP protocol suite.
- It would seem to carry a rich potential for abuse.
- Surprisingly, ICMP attacks are rather difficult; still,
- there are often holes that may be exploited.
-
- The first, and most obvious target, is the ICMP Redirect
- message; it is used by gateways to advise hosts of better
- routes. As such it can often be abused in the same way that
- RIP can be. The complication is that a Redirect message
- must be tied to a particular, existing connection; it cannot
- be used to make an unsolicited change to the host's routing
- tables. Furthermore, Redirects are only applicable within a
- limited topology; they may be sent only from the first
- gateway along the path to the originating host. A later
- gateway may not advise that host, nor may it use ICMP
- Redirect to control other gateways.
-
- Suppose, though, that an intruder has penetrated a secondary
- gateway available to a target host, but not the primary one.
- (It may suffice to penetrate an ordinary host on the
- target's local network, and have it claim to be a gateway.)
- Assume further that the intruder wishes to set up a false
- route to trusted host T through that compromised secondary
- gateway. The following sequence may then be followed. Send
- a false TCP open packet to the target host, claiming to be
- from T. The target will respond with its own open packet,
- routing it through the secure primary gateway. While this
- is in transit, a false Redirect may be sent, claiming to be
- from the primary gateway, and referring to the bogus
- connection. This packet will appear to be a legitimate
- control message; hence the routing change it contains will
- be accepted. If the target host makes this change to its
- global routing tables, rather than just to the per-
- connection cached route, the intruder may proceed with
- spoofing host T.
-
- Some hosts do not perform enough validity checks on ICMP
- Redirect messages; in such cases, the impact of this attack
- becomes similar to RIP-based attacks.
-
- ICMP may also be used for targeted denial of service
- attacks. Several of its messages, such as Destination
- Unreachable and Time to Live Exceeded, may be used to reset
- existing connections. If the intruder knows the local and
- remote port numbers of a TCP connection, an ICMP packet
- aimed at that connection may be forged5. Such information
- is sometimes available through the netstat service.
-
- A more global denial of service attack can be launched by
- sending a fraudulent Subnet Mask Reply message. Some hosts
- will accept any such message, whether they have sent a query
- or not; a false one could effectively block all
- communications with the target host.
- __________
-
- 5. In fact, such programs are available today; they are
- used as administrative tools to reset hung TCP
- connections.
-
- Defenses
- Most ICMP attacks are easy to defend against with just a
- modicum of paranoia. If a host is careful about checking
- that a message really does refer to a particular connection,
- most such attacks will not succeed. In the case of TCP,
- this includes verifying that the ICMP packet contains a
- plausible sequence number in the returned-packet portion.
- These checks are less applicable to UDP, though.
-
- A defense against Redirect attacks merits additional
- attention, since such attacks can be more serious.
- Probably, the best option is to restrict route changes to
- the specified connection; the global routing table should
- not be modified in response to ICMP Redirect messages6.
-
- Finally, it is worth considering whether ICMP Redirects are
- even useful in today's environment. They are only usable on
- local networks with more than one gateway to the outside
- world. But it is comparatively easy to maintain complete
- and correct local routing information. Redirect messages
- would be most useful from the core gateways to local
- exterior gateways, as that would allow such local gateways
- to have less than complete knowledge of the Internet; this
- use is disallowed, however.
-
- Subnet Mask attacks can be blocked if the Reply packet is
- honored only at the appropriate time. In general, a host
- wants to see such a message only at boot time, and only if
- it had issued a query; a stale reply, or an unsolicited
- reply, should be rejected out of hand. There is little
- defense against a forged reply to a genuine Subnet Mask
- query, as a host that has sent such a query typically has
- few resources with which to validate the response. If the
- genuine response is not blocked by the intruder, though, the
- target will receive multiple replies; a check to ensure that
- all replies agree would guard against administrative errors
- as well.
- __________
-
- 6. This has other benefits as well, especially in
- environments where ICMP-initiated route changes are not
- timed out. The author has seen situations where RIP
- instability following a gateway crash has led to
- erroneous ICMP Redirect messages. These had the effect
- of permanently corrupting the routing tables on other
- hosts.
-
- 4. THE "AUTHENTICATION" SERVER
-
- As an alternative to address-based authentication, some
- implementations use the Authentication Server[18]. A server
- that wishes to know the identity of its client may contact
- the client host's Authentication Server7, and ask it for
- information about the user owning a particular connection.
- This method is inherently more secure than simple address-
- based authentication, as it uses a second TCP connection not
- under control of the attacker. It thus can defeat sequence
- number attacks and source routing attacks. There are
- certain risks, however.
-
- The first, and most obvious, is that not all hosts are
- competent to run authentication servers. If the client host
- is not secure, it does not matter who the user is claimed to
- be; the answer cannot be trusted. Second, the
- authentication message itself can be compromised by routing
- table attacks. If RIP has been used to alter the target's
- idea of how to reach some host, the authentication query
- will rely on the same altered routing data. Finally, if the
- target host is down, a variant on the TCP sequence number
- attack may be used; after the server sends out a TCP open
- request to the presumed authentication server, the attacker
- can complete the open sequence and send a false reply. If
- the target runs a netstat server, this is even easier; as
- noted, netstat will often supply the necessary sequence
- numbers with no need to guess.
-
- A less-obvious risk is that a fake authentication server can
- always reply "no". This constitutes a denial of service
- attack.
-
- Defenses
- A server that wishes to rely on another host's idea of a
- user should use a more secure means of validation, such as
- the Needham-Schroeder algorithm[20][21][22]. TCP by itself
- is inadequate.
- __________
-
- 7. The Internet Activities Board does not currently
- recommend the Authentication Server for
- implementation[19]. However, the decision was not made
- because of security problems[5].
-
- 5. HERE BE DRAGONS
-
- Some protocols, while not inherently flawed, are
- nevertheless susceptible to abuse. A wise implementor would
- do well to take these problems into account when providing
- the service.
-
- 5.1 The "Finger" Service
-
- Many systems implement a finger service[23]. This server
- will display useful information about users, such as their
- full names, phone numbers, office numbers, etc.
- Unfortunately, such data provides useful grist for the mill
- of a password cracker.[24] By running such a service, a
- system administrator is giving away this data.
-
- 5.2 Electronic Mail
-
- Electronic mail is probably the most valuable service on the
- Internet. Nevertheless, it is quite vulnerable to misuse.
- As normally implemented[25][26], the mail server provides no
- authentication mechanisms. This leaves the door wide open
- to faked messages. RFC 822 does support an Encrypted header
- line, but this is not widely used. (However, see RFC
- 1040[27] for a discussion of a proposed new encryption
- standard for electronic mail.)
-
- 5.2.1 The Post Office Protocol
-
- The The Post Office Protocol (POP)[28] allows a remote user
- to retrieve mail stored on a central server machine.
- Authentication is by means of a single command containing
- both the user name and the password. However, combining the
- two on a single command mandates the use of conventional
- passwords. And such passwords are becoming less popular;
- they are too vulnerable to wire-tappers, intentional or
- accidental disclosure, etc.
-
- As an alternative, many sites are adopting "one-time
- passwords"8. With one-time passwords, the host and some
- device available to the user share a cryptographic key. The
- host issues a random challenge; both sides encrypt this
- number, and the user transmits it back to the host. Since
- __________
-
- 8. One-time passwords were apparently first used for
- military IFF (Identification Friend or Foe) systems[29].
-
- the challenge is random, the reply is unique to that
- session, thereby defeating eavesdroppers. And since the
- user does not know the key -- it is irretrievably stored in
- the device -- the password cannot be given away without
- depriving the user of the ability to log in.
-
- The newest version of POP[30] has split the user name and
- password into two commands, which is useful. However, it
- also defines an optional mechanism for preauthenticated
- connections, typically using Berkeley's mechanisms.
- Commendably, the security risks of this variant are
- mentioned explicitly in the document.
-
- 5.2.2 PCMAIL
-
- The PCMAIL protocol[31] uses authentication mechanisms
- similar to those in POP2. In one major respect, PCMAIL is
- more dangerous: it supports a password-change command.
- This request requires that both the old and new passwords be
- transmitted unencrypted.
-
- 5.3 The Domain Name System
-
- The Domain Name System (DNS)[32][33] provides for a
- distributed database mapping host names to IP addresses. An
- intruder who interferes with the proper operation of the DNS
- can mount a variety of attacks, including denial of service
- and password collection. There are a number of
- vulnerabilities.
-
- In some resolver implementations, it is possible to mount a
- sequence number attack against a particular user. When the
- target user attempts to connect to a remote machine, an
- attacker can generate a domain server response to the
- target's query. This requires knowing both the UDP port
- used by the client's resolver and the DNS sequence number
- used for the query. The latter is often quite easy to
- obtain, though, since some resolvers always start their
- sequence numbers with 0. And the former may be obtainable
- via netstat or some analogous host command.
-
- A combined attack on the domain system and the routing
- mechanisms can be catastrophic. The intruder can intercept
- virtually all requests to translate names to IP addresses,
- and supply the address of a subverted machine instead; this
- would allow the intruder to spy on all traffic, and build a
- nice collection of passwords if desired.
-
- For this reason, domain servers are high-value targets; a
- sufficiently determined attacker might find it useful to
- take over a server by other means, including subverting the
- machine one is on, or even physically interfering with its
- link to the Internet. There is no network defense against
- the former, which suggests that domain servers should only
- run on highly secure machines; the latter issue may be
- addressed by using authentication techniques on domain
- server responses.
-
- The DNS, even when functioning correctly, can be used for
- some types of spying. The normal mode of operation of the
- DNS is to make specific queries, and receive specific
- responses. However, a zone transfer (AXFR) request exists
- that can be used to download an entire section of the
- database; by applying this recursively, a complete map of
- the name space can be produced. Such a database represents
- a potential security risk; if, for example, an intruder
- knows that a particular brand of host or operating system
- has a particular vulnerability, that database can be
- consulted to find all such targets. Other uses for such a
- database include espionage; the number and type of machines
- in a particular organization, for example, can give away
- valuable data about the size of the organization, and hence
- the resources committed to a particular project.
-
- Fortunately, the domain system includes an error code for
- "refused"; an administrative prohibition against such zone
- transfers is explicitly recognized as a legitimate reason
- for refusal. This code should be employed for zone transfer
- requests from any host not known to be a legitimate
- secondary server. Unfortunately, there is no authentication
- mechanism provided in the AXFR request; source address
- authentication is the best that can be done.
-
- Recently, a compatible authentication extension to the DNS
- has been devised at M.I.T. The Hesiod name server[34] uses
- Kerberos[35] tickets to authenticate queries and responses.
- The additional information section of the query carries an
- encrypted ticket, which includes a session key; this key,
- known only to Hesiod and the client, is used to compute a
- cryptographic checksum of the both the query and the
- response. These checksums are also sent in the additional
- information field.
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- NIA074 / File 03
-
- Security Problems in the TCP/IP Protocol Suite
-
- Part II of II
-
- S.M. Bellovin
-
- AT&T Bell Laboratories
-
-
- 5.4 The File Transfer Protocol
-
- The File Transfer Protocol (FTP)[36] itself is not flawed.
- However, a few aspects of the implementation merit some
- care.
-
- 5.4.1 FTP Authentication
-
- FTP relies on a login and password combination for
- authentication. As noted, simple passwords are increasingly
- seen as inadequate; more and more sites are adopting one-
- time passwords. Nothing in the FTP specification precludes
- such an authentication method. It is vital, however, that
- the "331" response to a USER subcommand be displayed to
- the user; this message would presumably contain the
- challenge. An FTP implementation that concealed this
- response could not be used in this mode; if such
- implementations are (or become) common, it may be necessary
- to use a new reply code to indicate that the user must see
- the content of the challenge.
-
- 5.4.2 Anonymous FTP
-
- A second problem area is "anonymous FTP". While not
- required by the FTP specification, anonymous FTP is a
- treasured part of the oral tradition of the Internet.
- Nevertheless, it should be implemented with care.
-
- One part of the problem is the implementation technique
- chosen. Some implementations of FTP require creation of a
- partial replica of the directory tree; care must be taken to
- ensure that these files are not subject to compromise. Nor
- should they contain any sensitive information, such as
- encrypted passwords.
-
- The second problem is that anonymous FTP is truly anonymous;
- there is no record of who has requested what information.
- Mail-based servers will provide that data; they also provide
- useful techniques for load-limiting9, background transfers,
- etc.
-
- 5.5 Simple Network Management Protocol
-
- The Simple Network Management Protocol (SNMP)[37] has
- recently been defined to aid in network management.
- Clearly, access to such a resource must be heavily
- protected. The RFC states this, but also allows for a null
- __________
-
- 9. Recently, a host was temporarily rendered unusable by
- massive numbers of FTP requests for a popular technical
- report. If this were deliberate, it would be considered
- a successful denial of service attack.
-
- authentication service; this is a bad idea. Even a "read-
- only" mode is dangerous; it may expose the target host to
- netstat-type attacks if the particular Management
- Information Base (MIB)[38] used includes sequence numbers.
- (The current standardized version does not; however, the MIB
- is explicitly declared to be extensible.)
-
- 5.6 Remote Booting
-
- Two sets of protocols are used today to boot diskless
- workstations and gateways, Reverse ARP (RARP)[39] with the
- Trivial File Transfer Protocol (TFTP)[40] and BOOTP[41] with
- TFTP. A system being booted is a tempting target; if one
- can subvert the boot process, a new kernel with altered
- protection mechanisms can be substituted. RARP-based
- booting is riskier because it relies on Ethernet-like
- networks, with all the vulnerabilities adhering thereto.
- One can achieve a modest improvement in security by ensuring
- that the booting machine uses a random number for its UDP
- source port; otherwise, an attacker can impersonate the
- server and send false DATA packets.
-
- BOOTP adds an additional layer of security by including a
- 4-byte random transaction id. This prevents an attacker
- from generating false replies to a workstation known to be
- rebooting. It is vital that these numbers indeed be random;
- this can be difficult in a system that is freshly powered
- up, and hence with little or no unpredictable state. Care
- should be taken when booting through gateways; the more
- networks traversed, the greater the opportunity for
- impersonation.
-
- The greatest measure of protection is that normally, the
- attacker has only a single chance; a system being booted
- does not stay in that state. If, however, communications
- between the client and the standard server may be
- interrupted, larger-scale attacks may be mounted.
-
- 6. TRIVIAL ATTACKS
-
- A few attacks are almost too trivial to mention;
- nevertheless, completeness demands that they at least be
- noted.
-
- 6.1 Vulnerability of the Local Network
-
- Some local-area networks, notably the Ethernet networks, are
- extremely vulnerable to eavesdropping and host-spoofing. If
- such networks are used, physical access must be strictly
- controlled. It is also unwise to trust any hosts on such
- networks if any machine on the network is accessible to
- untrusted personnel, unless authentication servers are used.
-
- If the local network uses the Address Resolution Protocol
- (ARP)[42] more subtle forms of host-spoofing are possible.
- In particular, it becomes trivial to intercept, modify, and
- forward packets, rather than just taking over the host's
- role or simply spying on all traffic.
-
- It is possible to launch denial of service attacks by
- triggering broadcast storms. There are a variety of ways to
- do this; it is quite easy if most or all of the hosts on the
- network are acting as gateways. The attacker can broadcast
- a packet destined for a non-existent IP address. Each host,
- upon receiving it, will attempt to forward it to the proper
- destination. This alone will represent a significant amount
- of traffic, as each host will generate a broadcast ARP query
- for the destination. The attacker can follow up by
- broadcasting an ARP reply claiming that the broadcast
- Ethernet address is the proper way to reach that
- destination. Each suspectible host will then not only
- resend the bogus packet, it will also receive many more
- copies of it from the other suspectible hosts on the
- network.
-
- 6.2 The Trivial File Transfer Protocol
-
- TFTP[40] permits file transfers without any attempt at
- authentication. Thus, any publicly-readable file in the
- entire universe is accessible. It is the responsibility of
- the implementor and/or the system administrator to make that
- universe as small as possible.
-
- 6.3 Reserved Ports
-
- Berkeley-derived TCPs and UDPs have the notion of a
- "privileged port". That is, port numbers lower than 1024
- may only be allocated to privileged processes. This
- restriction is used as part of the authentication mechanism.
- However, neither the TCP nor the UDP specifications contain
- any such concept, nor is such a concept even meaningful on a
- single-user computer. Administrators should never rely on
- the Berkeley authentication schemes when talking to such
- machines.
-
- 7. COMPREHENSIVE DEFENSES
-
- Thus far, we have described defenses against a variety of
- individual attacks. Several techniques are broad-spectrum
- defenses; they may be employed to guard against not only
- these attacks, but many others as well.
-
- 7.1 Authentication
-
- Many of the intrusions described above succeed only because
- the target host uses the IP source address for
- authentication, and assumes it to be genuine.
- Unfortunately, there are sufficiently many ways to spoof
- this address that such techniques are all but worthless.
- Put another way, source address authentication is the
- equivalent of a file cabinet secured with an S100 lock; it
- may reduce the temptation level for more-or-less honest
- passers-by, but will do little or nothing to deter anyone
- even slightly serious about gaining entry.
-
- Some form of cryptographic authentication is needed. There
- are several possible approaches. Perhaps the best-known is
- the Needham-Schroeder algorithm[20][21][22]. It relies on
- each host sharing a key with an authentication server; a
- host wishing to establish a connection obtains a session key
- from the authentication server and passes a sealed version
- along to the destination. At the conclusion of the dialog,
- each side is convinced of the identity of the other.
- Versions of the algorithm exist for both private-key and
- public-key[43] cryptosystems.
-
- How do these schemes fit together with TCP/IP? One answer
- is obvious: with them, preauthenticated connections can be
- implemented safely; without them, they are quite risky. A
- second answer is that the DNS provides an ideal base for
- authentication systems, as it already incorporates the
- necessary name structure, redundancy, etc. To be sure, key
- distribution responses must be authenticated and/or
- encrypted; as noted, the former seems to be necessary in any
- event.
-
- In some environments, care must be taken to use the session
- key to encrypt the entire conversation; if this is not done,
- an attacker can take over a connection via the mechanisms
- described earlier.
-
- 7.2 Encryption
-
- Suitable encryption can defend against most of the attacks
- outlined above. But encryption devices are expensive, often
- slow, hard to administer, and uncommon in the civilian
- sector. There are different ways to apply encryption; each
- has its strengths and weaknesses. A comprehensive treatment
- of encryption is beyond the scope of this paper; interested
- readers should consult Voydock and Kent[44] or Davies and
- Price[45].
-
- Link-level encryption -- encrypting each packet as it leaves
- the host computer -- is an excellent method of guarding
- against disclosure of information. It also works well
- against physical intrusions; an attacker who tapped in to an
- Ethernet cable, for example, would not be able to inject
- spurious packets. Similarly, an intruder who cut the line
- to a name server would not be able to impersonate it. The
- number of entities that share a given key determines the
- security of the network; typically, a key distribution
- center will allocate keys to each pair of communicating
- hosts.
-
- Link-level encryption has some weaknesses, however.
- Broadcast packets are difficult to secure; in the absence of
- fast public-key cryptosystems, the ability to decode an
- encrypted broadcast implies the ability to send such a
- broadcast, impersonating any host on the network.
- Furthermore, link-level encryption, by definition, is not
- end-to-end; security of a conversation across gateways
- implies trust in the gateways and assurance that the full
- concatenated internet is similarly protected. (This latter
- constraint may be enforced administratively, as is done in
- the military sector.) If such constraints are not met,
- tactics such as source-routing attacks or RIP-spoofing may
- be employed. Paranoid gateways can be deployed at the
- entrance to security domains; these might, for example,
- block incoming RIP packets or source-routed packets.
-
- Many portions of the DARPA Internet employ forms of link
- encryption. All Defense Data Network (DDN) IMP-to-IMP
- trunks use DES encryption, even for non-classified traffic;
- classified lines use more secure cryptosystems[46]. These,
- however, are point-to-point lines, which are comparatively
- easy to protect.
-
- A multi-point link encryption device for TCP/IP is the
- Blacker Front End (BFE)[47]. The BFE looks to the host like
- an X.25 DDN interface, and sits between the host and the
- actual DDN line. When it receives a call request packet
- specifying a new destination, it contacts an Access Control
- Center (ACC) for permission, and a Key Distribution Center
- (KDC) for cryptographic keys. If the local host is denied
- permission to talk to the remote host, an appropriate
- diagnostic code is returned. A special "Emergency Mode"
- is available for communications to a restricted set of
- destinations at times when the link to the KDC or ACC is not
- working.
-
- The permission-checking can, to some extent, protect against
- the DNS attacks described earlier. Even if a host has been
- mislead about the proper IP address for a particular
- destination, the BFE will ensure that a totally unauthorized
- host does not receive sensitive data. That is, assume that
- a host wishes to send Top Secret data to some host foo. A
- DNS attack might mislead the host into connecting to
- penetrated host 4.0.0.4, rather than 1.0.0.1. If 4.0.0.4 is
- not cleared for Top Secret material, or is not allowed
- communications with the local host, the connection attempt
- will fail. To be sure, a denial of service attack has taken
- place; this, in the military world, is far less serious than
- information loss.
-
- The BFE also translates the original ("Red") IP address to
- an encrypted ("Black") address, using a translation table
- supplied by the ACC. This is done to foil traffic analysis
- techniques, the bane of all multi-point link encryption
- schemes.
-
- End-to-end encryption, above the TCP level, may be used to
- secure any conversation, regardless of the number of hops or
- the quality of the links. This is probably appropriate for
- centralized network management applications, or other
- point-to-point transfers. Key distribution and management
- is a greater problem, since there are more pairs of
- correspondents involved. Furthermore, since encryption and
- decryption are done before initiation or after termination
- of the TCP processing, host-level software must arrange for
- the translation; this implies extra overhead for each such
- conversation10.
-
- End-to-end encryption is vulnerable to denial of service
- attacks, since fraudulently-injected packets can pass the
- __________
-
- 10. We are assuming that TCP is handled by the host, and not
- by a front-end processor.
-
- TCP checksum tests and make it to the application. A
- combination of end-to-end encryption and link-level
- encryption can be employed to guard against this. An
- intriguing alternative would be to encrypt the data portion
- of the TCP segment, but not the header; the TCP checksum
- would be calculated on the cleartext, and hence would detect
- spurious packets. Unfortunately, such a change would be
- incompatible with other implementations of TCP, and could
- not be done transparently at application level.
-
- Regardless of the method used, a major benefit of encrypted
- communications is the implied authentication they provide.
- If one assumes that the key distribution center is secure,
- and the key distribution protocols are adequate, the very
- ability to communicate carries with it a strong assurance
- that one can trust the source host's IP address for
- identification.
-
- This implied authentication can be especially important in
- high-threat situations. A routing attack can be used to
- "take over" an existing connection; the intruder can
- effectively cut the connection at the subverted machine,
- send dangerous commands to the far end, and all the while
- translate sequence numbers on packets passed through so as
- to disguise the intrusion.
-
- It should be noted, of course, that any of these encryption
- schemes provide privacy. Often that is the primary goal of
- such systems.
-
- 7.3 Trusted Systems
-
- Given that TCP/IP is a Defense Department protocol suite, it
- is worth asking to what extent the Orange Book[48] and Red
- Book[49] criteria would protect a host from the attacks
- described above. That is, suppose that a target host (and
- the gateways!) were rated B1 or higher. Could these attacks
- succeed? The answer is a complex one, and depends on the
- assumptions we are willing to make. In general, hosts and
- routers rated at B2 or higher are immune to the attacks
- described here, while C2-level systems are susceptible.
- B1-level systems are vulnerable to some of these attacks,
- but not all.
-
- In order to understand how TCP/IP is used in secure
- environments, a brief tutorial on the military security
- model is necessary. All objects in the computer system,
- such as files or network channels, and all data exported
- from them, must have a label indicating the sensitivity of
- the information in them. This label includes hierarchical
- components (i.e., Confidential, Secret, and Top Secret) and
- non-hierarchical components. Subjects -- i.e., processes
- within the computer system -- are similarly labeled. A
- subject may read an object if its label has a higher or
- equal hierarchical level and if all of the object's non-
- hierarchical components are included in the subject's label.
- In other words, the process must have sufficient clearance
- for the information in a file. Similarly, a subject may
- write to an object if the object has a higher or equal level
- and the object's non-hierarchical components include all of
- those in the subject's level. That is, the sensitivity
- level of the file must be at least as high as that of the
- process. If it were not, a program with a high clearance
- could write classified data to a file that is readable by a
- process with a low security clearance.
-
- A corollary to this is that for read/write access to any
- file, its security label must exactly match that of the
- process. The same applies to any form of bidirectional
- interprocess communication (i.e., a TCP virtual circuit):
- both ends must have identical labels.
-
- We can now see how to apply this model to the TCP/IP
- protocol suite. When a process creates a TCP connection,
- that connection is given the process's label. This label is
- encoded in the IP security option. The remote TCP must
- ensure that the label on received packets matches that of
- the receiving process. Servers awaiting connections may be
- eligible to run at multiple levels; when the connection is
- instantiated, however, the process must be forced to the
- level of the connection request packet.
-
- IP also makes use of the security option[50]. A packet may
- not be sent over a link with a lower clearance level. If a
- link is rated for Secret traffic, it may carry Unclassified
- or Confidential traffic, but it may not carry Top Secret
- data. Thus, the security option constrains routing
- decisions. The security level of a link depends on its
- inherent characteristics, the strength of any encryption
- algorithms used, the security levels of the hosts on that
- network, and even the location of the facility. For
- example, an Ethernet cable located in a submarine is much
- more secure than if the same cable were running through a
- dormitory room in a university.
-
- Several points follow from these constraints. First, TCP-
- level attacks can only achieve penetration at the level of
- the attacker. That is, an attacker at the Unclassified
- level could only achieve Unclassified privileges on the
- target system, regardless of which network attack was
- used11. Incoming packets with an invalid security marking
- would be rejected by the gateways.
-
- Attacks based on any form of source-address authentication
- should be rejected as well. The Orange Book requires that
- systems provide secure means of identification and
- authentication; as we have shown, simple reliance on the IP
- address is not adequate. As of the B1 level, authentication
- information must be protected by cryptographic checksums
- when transmitted from machine to machine12.
-
- The authentication server is still problematic; it can be
- spoofed by a sequence number attack, especially if netstat
- is available. This sort of attack could easily be combined
- with source routing for full interactive access. Again,
- cryptographic checksums would add significant strength.
-
- B1-level systems are not automatically immune from routing
- attacks; RIP-spoofing could corrupt their routing tables
- just as easily. As seen, that would allow an intruder to
- capture passwords, perhaps even some used on other trusted
- systems. To be sure, the initial penetration is still
- restricted by the security labelling, but that may not block
- future logins captured by these means.
-
- Routing attacks can also be used for denial of service.
- Specifically, if the route to a secure destination is
- changed to require use of an insecure link, the two hosts
- will not be able to communicate. This change would probably
- be detected rather quickly, though, since the gateway that
- noticed the misrouted packet would flag it as a security
- problem.
-
- At the B2 level, secure transmission of routing control
- information is required. Similar requirements apply to
- other network control information, such as ICMP packets.
-
- __________
-
- 11. We are assuming, of course, that the penetrated system
- does not have bugs of its own that would allow further
- access.
-
- 12. More precisely, user identification information must be
- protected to an equal extent with data sensitivity
- labels. Under certain circumstances, described in the
- Red Book, cryptographic checks may be omitted. In
- general, though, they are required.
-
- Several attacks we have described rely on data derived from
- "information servers", such as netstat and finger. While
- these, if carefully done, may not represent a direct
- penetration threat in the civilian sense, they are often
- seen to represent a covert channel that may be used to leak
- information. Thus, many B-division systems do not implement
- such servers.
-
- In a practical sense, some of the technical features we have
- described may not apply in the military world.
- Administrative rules[51] tend to prohibit risky sorts of
- interconnections; uncleared personnel are not likely to have
- even indirect access to systems containing Top Secret data.
- Such rules are, most likely, an accurate commentary on
- anyone's ability to validate any computer system of non-
- trivial size.
-
- 8. CONCLUSIONS
-
- Several points are immediately obvious from this analysis.
- The first, surely, is that in general, relying on the IP
- source address for authentication is extremely dangerous13.
- Fortunately, the Internet community is starting to accept
- this on more than an intellectual level. The Berkeley
- manuals[3] have always stated that the authentication
- protocol was very weak, but it is only recently that serious
- attempts (i.e., Kerberos[35] and SunOS 4.0's DES
- authentication mode[52]) have been made to correct the
- problem. Kerberos and SunOS 4.0 have their weaknesses, but
- both are far better than their predecessor. More recently,
- an extension to the Network Time Protocol (NTP)[53] has been
- proposed that includes a cryptographic checksum[54].
-
- A second broad class of problems is sequence number attacks.
- If a protocol depends on sequence numbers -- and most do --
- it is vital that they be chosen unpredictably. It is worth
- considerable effort to ensure that these numbers are not
- knowable even to other users on the same system.
- __________
-
- 13. There are some exceptions to this rule. If the entire
- network, and all of its components (hosts, gateways,
- cables, etc.) are physically protected, and if all of
- the operating systems are sufficiently secure, there
- would seem to be little risk.
-
- We may generalize this by by stating that hosts should not
- give away knowledge gratuitously. A finger server, for
- example, would be much safer if it only supplied information
- about a known user, rather than supplying information about
- everyone logged on. Even then, some censorship might be
- appropriate; a refusal to supply the last login date and
- other sensitive information would be appropriate if the
- account was not used recently. (Never-used accounts often
- have simple default passwords. Infrequently-used accounts
- are often set up less carefully by the owner.) We have also
- seen how netstat may be abused; indeed, the combination of
- netstat with the authentication server is the single
- strongest attack using the standardized Internet protocols.
-
- Finally, network control mechanisms are dangerous, and must
- be carefully guarded. Static routes are not feasible in a
- large-scale network, but intelligent use of default routes
- and verifiable point-to-point routing protocols (i.e., EGP)
- are far less vulnerable than broadcast-based routing.
-
- 9. ACKNOWLEDGEMENTS
-
- Dave Presotto, Bob Gilligan, Gene Tsudik, and especially
- Deborah Estrin made a number of useful suggestions and
- corrections to a draft of this paper.
-
- REFERENCES
-
- 1. E.J. Feinler, O.J. Jacobsen, M.K. Stahl, C.A. Ward, eds.
- DDN Protocol Handbook. DDN Network Information Center,
- SRI International, 1985.
-
- 2. Comer, D. Internetworking with TCP/IP: Principles,
- Protocols, and Architecture. Prentice Hall, 1988
-
- 3. Computer Systems Research Group. UNIX User's Reference
- Manual (URM). 4.3 Berkeley Software Distribution
- Virtual Vax-11 Version. Computer Science Division,
- Department of Electrical Engineering and Computer
- Science, University of California, Berkeley. 1986.
-
- 4. Spafford, E.H. The Internet Worm Program: An Analysis.
- Purdue Technical Report CSD-TR-823, Department of
- Computer Sciences Purdue University, West Lafayette, IN.
- 1988
-
- 5. Seeley, D. A Tour of the Worm. Department of Computer
- Science, University of Utah. 1988.
-
- 6. Eichin, M. and Rochlis, J. With Microscope and
- Tweezers: An Analysis of the Internet Virus of November
- 1988. Massachussetts Institute of Technology, 1988.
-
- 7. Morris, R.T. 1985. A Weakness in the 4.2BSD UNIX
- TCP/IP Software. Computing Science Technical Report No.
- 117, AT&T Bell Laboratories, Murray Hill, New Jersey.
-
- 8. Reynolds, J.K., and J. Postel. Assigned Numbers. RFC
- 990, 1986
-
- 9. Mills, D.L. Internet Delay Experiments, RFC 889, 1983.
-
- 10. Blum, M. and Micali, S. "How to Generate
- Cryptographically Strong Sequences of Pseudo-Random
- Bits". SIAM J Computing, vol. 13, no. 4, pp. 850-864,
- Nov. 1984.
-
- 11. US Federal Information Processing Standards Publication
- (FIPS PUB) 46, Data Encryption Standard, 15 January
- 1977.
-
- 12. US Federal Information Processing Standards Publication
- (FIPS PUB) 81. DES Modes of Operation, 2 December 1980.
-
- 13. Bishop, M. An Application of a Fast Data Encryption
- Standard Implementation. Technical Report PCS-TR88-138,
- Department of Mathematics and Computer Science,
- Dartmouth College, Hanover, NH. 1988.
-
- 14. Mogul, J. "Simple and Flexible Datagram Access
- Controls for UNIX-based Gateways", Proceedings, Summer
- USENIX, 1989, Baltimore, Maryland (to appear).
-
- 15. Hedrick, C. Routing Information Protocol. RFC 1058,
- 1988.
-
- 16. Mills, D.L. Exterior Gateway Protocol Formal
- Specification. RFC 904, 1984.
-
- 17. Postel, J. Internet Control Message Protocol. RFC 792,
- 1981.
-
- 18. St. Johns, M. Authentication Server. RFC 931, 1985.
-
- 19. Defense Advanced Research Projects Agency, Internet
- Activities Board. IAB Official Protocol Standards. RFC
- 1083, 1988
-
- 19. Postel, J. Private communication. 1989.
-
- 20. Needham, R.M. and Schroeder, M.D. "Using Encryption
- for Authentication in Large Networks of Computers".
- Communications of the ACM, vol. 21, no. 12, pp. 993-999,
- December 1978.
-
- 21. Denning, D.E. and Sacco, G.M. "Timestamps in Key
- Distribution Protocols", Communications of the ACM,
- vol. 24, no. 8, pp. 533-536, August 1981.
-
- 22. Needham, R.M. and Schroeder, M.D. "Authentication
- Revisited", Operating Systems Review, vol. 21, no. 1,
- p. 7, January 1987.
-
- 23. Harrenstien, K. NAME/FINGER Protocol, RFC 742, 1977.
-
- 24. Grampp, F.T. and Morris, R.H. "UNIX Operating System
- Security", AT&T Bell Laboratories Technical Journal,
- vol. 63, no. 8, part 2, October, 1984.
-
- 25. Crocker, D. Standard for the Format of ARPA-Internet
- Text Messages. RFC 822, 1982.
-
- 26. Postel, J. Simple Mail Transfer Protocol. RFC 821,
- 1982.
-
- 27. Linn, J. Privacy Enhancement for Internet Electronic
- Mail: Part I: Message Encipherment and Authentication
- Procedures. RFC 1040, 1988.
-
- 28. Butler, M.; Postel, J.B.; Chase, D.; Goldberger, J.;
- Reynolds, J.K. Post Office Protocol - Version 2. RFC
- 937, 1985.
-
- 29. Diffie, W. "The First Ten Years of Public Key
- Cryptography". Proc. IEEE, vol. 76, no. 5, pp. 560-
- 577, May 1988.
-
- 30. Rose, M. Post Office Protocol - Version 3. RFC 1081,
- 1988
-
- 31. Lambert, M.L. PCMAIL: A Distributed Mail System for
- Personal Computers. RFC 1056, 1988
-
- 32. Mockapetris, P. Domain Names - Concepts and Facilities.
- RFC 1034, 1987.
-
- 33. Mockapetris, P. Domain Names - Implementations and
- Specifications. RFC 1035, 1987.
-
- 34. Dyer, S.P. "Hesiod", Proceedings, Winter USENIX,
- 1988, Dallas, Texas.
-
- 35. Steiner, J.G, Neuman, C., Schiller, J.I. "Kerberos: An
- Authentication Service for Open Network Systems",
- Proceedings, Winter USENIX, 1988, Dallas, Texas.
-
- 36. Postel, J. File Transfer Protocol. RFC 959, 1985.
-
- 37. Case, J., Fedor, M., Schoffstall, J., and Davin, J. A
- Simple Network Management Protocol. RFC 1067, 1988.
-
- 38. McCloghrie, K. and Rose, M. Management Information Base
- for Network Management of TCP/IP-based Internets. RFC
- 1066. 1988.
-
- 39. Finlayson, R.; Mann, T.; Mogul, J.; Theimer, M. Reverse
- Address Resolution Protocol. RFC 903, 1984.
-
- 40. Sollins, K.R. The TFTP Protocol (Revision 2). RFC 783,
- 1981.
-
- 41. Croft, W.J.; Gilmore, J. Bootstrap Protocol. RFC 951,
- 1985.
-
- 42. Plummer, D.C. An Ethernet Address Resolution Protocol.
- RFC 826, 1982.
-
- 43. Diffie, W. and Hellman, M.E. "New Directions in
- Cryptography." IEEE Transactions on Information
- Theory, vol. IT-22, no. 6, pp. 644-654.
-
- 44. Voydock, V.L. and Kent, S.T. "Security Mechanisms in
- High-Level Network Protocols". ACM Computer Surveys,
- vol. 15, no. 2, pp. 135-171, June 1983.
-
- 45. Davies, D.W. and Price, W.L. Security for Computer
- Networks: An Introduction to Data Security in
- Teleprocessing and Electronic Funds Transfer. Wiley.
- 1984.
-
- 46. Defense Communications Agency. Defense Data Network
- Subscriber Security Guide. 1983.
-
- 47. "Blacker Front End Interface Control Document", in DDN
- Protocol Handbook. DDN Network Information Center, SRI
- International, vol. 1, 1985.
-
- 48. DoD Computer Security Center. DoD Trusted Computer
- System Evaluation Criteria, 1983, CSC-STD-001-83.
-
- 49. National Computer Security Center. Trusted Network
- Interpretation of the Trusted Computer System Evaluation
- Criteria. NCSC-TG-005, Version 1, July 31, 1987.
-
- 50. St. Johns, M. Draft Revised IP Security Option. RFC
- 1038, 1988.
-
- 51. DoD Computer Security Center. Technical Rationale
- Behind CSC-STD-003-85: Computer Security Requirements,
- CSC-STD-004-83, 1983.
-
- 52. Taylor, B. and Goldberg, D. "Secure Networking in the
- Sun Environment". Proceedings, Summer USENIX, 1986,
- Atlanta, Georgia.
-
- 53. Mills, D.L. Network Time Protocol (Version 1)
- Specification and Implementation. RFC 1059, 1988.
-
- 54. Mills, D.L. Mailing list message
- <8901192354.aa03743@Huey.UDEL.EDU>, January 19, 1989.
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-
-
- The Design of a Secure Internet Gateway
-
- Bill Cheswick
- 10 September 1991
- TECHNICAL MEMORANDUM
-
- Abstract
- --------
- The Internet supports a vast and growing community of computer users
- around the world.
- Unfortunately, this network can provide anonymous access to this
- community by unscrupulous, careless, or dangerous people.
- On any given Internet there is a certain percentage of poorly-maintained
- systems.
- AT&T has a large internal
- Internet that we wish to protect from outside attacks, while providing
- useful services between the two.
-
- This paper describes our Internet gateway. It is an application-level
- gateway that passes mail and many of the common Internet services
- between our internal machines and the Internet. This is accomplished
- without IP connectivity using a pair of machines: a trusted internal
- machine and an untrusted external gateway. These are connected by a private
- link. The internal machine provides a few carefully-guarded services
- to the external gateway. This configuration helps protect the internal
- internet even if the external machine is fully compromised.
-
- This is a slightly-updated version of the paper presented at the 1990
- summer Usenix at Anaheim.
-
- Introduction
- ------------
- The design of a Corporate gateway to the Internet must deal with the
- classical tradeoff between security and convenience. Most institutions
- opt for convenience and use a simple router between their internal
- internets and the rest of the world. This is dangerous.
- Strangers on the Internet can reach and test every internal machine.
- With workstations sitting on many desks, system administration is
- often decentralized and neglected. Passwords are weak or missing.
- A professor or researcher often may install the operating system
- and forget it, leaving well-known security holes uncorrected.
- For example, a sweep of 1,300 machines inside Bell Labs around
- the time of the Internet Worm found over 300 that had at least one of
- several known security holes.
-
- When we first obtained a connection to the ARPAnet, Dave Presotto
- configured our gateway mache (named arpa) as an application-level
- gateway. For two years this machine was the sole official link
- to the Internet for AT&T. Until its disconnection in 1989, this VAX 750 handled
- all the Internet mail traffic and other services for the company.
- Arpa had Ethernet connections to both the inside and outside Internets, just
- like a router. It could also make and accept calls on our corporate Datakit
- network.
-
- Dave took a number of steps to make our gateway more secure.
- He turned off IP forwarding in the kernel so packets could not
- travel between the Internets. He installed a kernel modification
- that limited TCP connections from arpa to the inside network to smtp, uucp,
- named, and hostname ports. And he rejected the sendmail mailer as too
- complicated and dangerous: the Upas [cite upas] mailer was installed
- in its place. We removed a number of non-essential daemons, including the
- finger server.
-
- To give insiders access to the Internet, a gate service
- was installed on arpa. Insiders could call this service and
- supply an Internet address. The gate connected to a socket of a remote
- Internet host and then copied bytes between the two connections. It was
- easy to provide atelnet, a version of telnet that used the gate service.
- Aftp supplied FTP services: it was the standard ftp modified so both the
- command and data connections were initiated from the inside. (The standard
- ftp would have tried to make the data connection from arpa to the inside, a
- connection prohibited by arpa's kernel.)
-
- This configuration successfully resisted the Internet worm. We ran neither
- sendmail nor fingerd, the two programs exploited by the worm. [cite seeley] The
- internal internet was spared the infection. (Actually, there was a second,
- unguarded IP link to the Outside. We got lucky: only a few machines
- at the other end knew of the link, and their machines were shut down
- before the worm could creep across.)
-
- Had arpa been infected, the worm could have reached the inside
- machines. The initial smtp sendmail connection was permitted,
- and the worm's second connection would have been initiated from the
- inside target machine into arpa, the permitted direction.
-
-
- The new gateway
- --- --- -------
- All of arpa's protection has, by design, left the internal AT&T machines
- untested---a sort of crunchy shell around a soft, chewy center.
- We run security scans on internal machines and bother system administrators
- when holes are found. Still, it would be nice to have a gateway that is
- demonstrably secure to protect the internal machines. For peace of mind,
- the gateway design should not rely on vendors' code more than absolutely
- necessary. We would like the internal machines protected even if an invader
- breaks into the gateway machine, becomes root, and creates and runs a new
- kernel.
-
- We had to replace arpa. The VAX 750 ran with typical load averages of seven
- to twelve jobs throughout the day. When the load average hit about
- fifteen, the old Datakit driver expired, wedging the Datakit ports and
- requiring a reboot.
-
- A new machine gave the opportunity for a clean start.
- We could re-think the security arrangements to improve on arpa's shortcomings.
-
- Our new gateway machine, named inet, is a MIPS M/120 running RISC/OS,
- a System V implementation with Berkeley enhancements. Various daemons and
- critical programs have been obtained from other sources, checked,
- and installed.
-
- We store nothing vital or secret on inet, since we assume that it may be
- defeated in unforeseen ways. It does not run uucp---systems files and dialers
- could fall into the wrong hands. There are few system administration accounts,
- and user accounts are discouraged.
- Inet is not used for other tasks.
- It is backed up regularly, and scanned for unauthorized changes and
- common system administration mistakes.
- Though we don't trust inet, we protect it as much as we can.
-
- Inet has a single Ethernet port which is connected to a router
- on JVNCnet, our external regional network. It also has a connection to Datakit.
- We have configured our Dat╨takit controller to force all connections
- from inet to a single internal machine, named r70.
- R70 can redial, or splice connections to other internal machines. R70
- provides a limited set of services to inet for reaching internal machines.
- The list of services are:
- 1. connection to an approved machine's smtp port,
- 2. connection to a login or trusted-login Datakit destination
- after passing a challenge-response test, and
- 3. connection to a logging service.
-
- The key to the arrangement is a restricted channel from inet
- to r70. This private channel was easily constructed using stock features of
- our research Datakit controller. Other connection schemes could be implemented
- using a simple multiplexed protocol over some back-to-back connection
- between the machines, or a simple two-machine Ethernet would suffice.
- If the last approach is used with TCP, the internal
- machine must supply differing TCP services to its two Ethernet
- interfaces. (I am not sure this is possible with stock commercial TCP
- software. It wouldn't be too hard to modify inetd to do this.)
-
- These functions do not load the internal machine too much;
- it could have other uses like uucp, mail, or even normal user jobs.
- But the services it provides the external machine are the key
- to security, and must be protected well.
-
-
- Outbound services
- -------- --------
- It is quite easy to implement most outbound services to the Internet.
- Inet has a small program, named proxy (a descendant of arpa's
- gate), that makes calls to the Internet on behalf of an inside machine
- and relays bytes between the inside Datakit connection and the outside
- Internet TCP connection. Proxy can also listen to a non-privileged socket
- and report connections to an inside process. Several outbound services
- are implemented using proxy, and more are easy to create.
- In all cases, it appears to the remote Internet hosts that our gateway
- machine is making the calls.
-
- %%%% picture of a proxy call
-
- Inet may be reached over the Datakit.
- But how do internal machines reach inet over the Ethernet?
- R70 responds to two IP addresses: its own, and an internal IP address for
- inet. (Dave Presotto implemented this after a trivial change to the
- Tenth Edition Research Unix connection server. [cite connection]
- Calls to certain TCP ports on this internal IP address invoke dcon, a
- program that simply relays the bytes between the TCP port
- and Datakit connections on inet.
-
- I have replaced the old aftp and atelnet with ptelnet and pftp. They work
- in the same manner, but the new routines call a portable implementation of
- ipcopen, a piece of the connection server. Ipcopen hides the details of
- a connection (TCP sockets or Datakit), simplifying the application program.
- For example:
- ptelnet tcp!toucan
- connects to machine toucan on our internet, and
- ptelnet proxy!ernie.berkeley.edu
- connects to ernie.berkeley.edu on the external Internet.
- proxy! is the default.
- The ipcopen implementation is not flawless:
- some socket features such as out-of-band data and the urgent pointer
- are missing because they are not supported by Datakit.
- Ptelnet was stripped down to avoid these features.
-
- %%%% figure of a proxy
-
- Pftp provides FTP access in a similar manner. It is an updated
- version of aftp from arpa. The ipcopen routines allow it to work over Datakit.
-
- The proxy software is available
- by anonymous FTP from toucan.zoo.att.com. The file is proxy.tar.Z.
-
- % figure of pftp and ftp function
-
- Outgoing mail is sent to inet via smtp over either Datakit or the
- internal Internet. It is stored and forwarded from there. Upas
- performs the mail gateway functions.
-
-
- $ telnet research.att.com
- Trying...
- Connected to research.att.com.
- Escape character is '^]'.
-
-
- RISC/os (inet)
-
- login: guard
- RISC/os (UMIPS) 4.0 inet
- Copyright 1986, MIPS Computer Systems
- All Rights Reserved
- Security Authentication check
-
- login: ches
- Enter response code for 90902479: 818b71fe
-
- Destination please: coma
- OKYou have mail.
- coma=; date
- Tue Nov 14 10:52:37 EST 1989
- coma=;
- Eof
- Connection closed by foreign host.
- $
-
- *A connection session through the guard.*
-
-
- Inbound services
- ------- --------
- We provide incoming login and mail service. For incoming file transfer,
- inet provides an anonymous FTP service.
-
- We do not trust our passwords to the Internet: it is too easy to eavesdrop
- or steal packets. See [cite smb] for a discussion of these security problems.
- Login service requires a hand-held authenticator (HHA). These are
- calculator-sized devices that contain DES encryption and a manually-loaded
- 64-bit key. They cost about $60.
-
- Inbound login service is provided through an authentication manager on
- r70. A session is shown in figure [ref connect].
- To connect, the following sequence occurs:
- 1. The Internet caller uses telnet to connect to research.att.com
- inet via telnet. The login name is tt guard.
- 2. The tt guard login connects to the authentication manager on r70
- over the Datakit. It spends the rest of the connection
- relaying bytes between the two connections.
- 3. The authentication manager on r70 requests a login name.
- 4. R70 sends a random challenge number, which the caller supplies.
- 5. The user enters the challenge into his HHA.
- 6 The HHA encrypts the challenge using a pre-loaded DES key,
- and displays the response.
- 7. The user types the response. He has three tries to
- answer a challenge correctly, and is disconnected if he fails.
- 8. The authorization manager prompts for a Datakit destination.
- 9. When the user enters the destination, the manager sends a redial
- request to the Datakit controller with the given destination and
- a service of `dcon'. For machines that trust r70, the `dcon'
- service bypasses further logins and avoids further passwords.
- 10. The redial request transfers the call, switching r70 out of
- the connection. Connections for a TCP host are handed to rlogin.
-
- Users may wish to trust the gate machine and so avoid typing any passwords
- over the internet. TCP callers can put r70-mhbb.research.att.com in their
- .rhosts file. For Datakit connections using the standard DKHOST software,
- they can log in through the guard once using ptelnet, and then request the
- destination area/exchange/host.authorize.t.
- This will connect them to their own machine's authorization server,
- which will prompt them for a login and password. Obviously, this
- should be done from a secure terminal, and not from out on the
- Internet.
- (Both of these practices are dangerous. Do you really want to trust
- r70? It is probably safer than entering passwords on some alien
- workstation out on the Internet. We frown on user-level authentication in
- general, preferring to have the system administrator make and support these
- judgements.)
-
- Each user requires a DES key, and keys have an expiration date.
- The key file is stored on r70 in a file readable only by root.
- This is unfortunate, and the file will probably move into an authentication
- manager somewhere.
-
- Inbound mail is delivered directly to inet.
- Inet checks the destination. If it is a trusted machine (i.e. its
- smtp is trusted), a connection request is sent to r70. If not,
- the mail is relayed through an accessible internal machine.
- R70 will permit connections only to trusted smtp implementations.
- The list is short because most internal machines run sendmail.
-
- % so why do we need inet? Why not a Cisco with inet on the inside?
-
- %% The restricted list of known 112 smtps should be justified both from
- %% a security standpoint and a practicality one -- some smtps (i.e.,
- %% sendmail on sunos) have security bugs. Thus, the techniques used
- %% to let logins through are not acceptable for mail.
-
- % what about network file system connections into inet? Another hole?
-
- %% You may want to have two public ftp directories, though I'm not certain
- %% exactly how to set things up this way without giving out inet logins.
- %% 'pub' is mode 555 or 755 not owned by ftp; it's used for 'blessed'
- %% outgoing packages that we advertise for pickup. 'incoming' is mode 333
- %% or 733 -- i.e., not readable from the outside. If you know the
- %% file name, you can pick it up, but you can't snoop for stuff. This
- %% avoids things like you putting a file in there for me, but a cracker
- %% plants a horse before I get to it. I've recommended a similar scheme
- %% to the Comp Centers; they like it so far.
-
- %% How does ftpd work without running as root? On Berkeley systems
- %% at least, it can't function without being root when talking to
- %% a client that doesn't generate PORT commands.
-
-
- Protecting INET
- ---------- ----
- The preceding precautions might imply that we expect our gateway
- to be compromised at some point. In fact, we are taking great pains
- to protect the machine, including the usual good system administration
- steps needed to secure any Unix system [cite ritchie]: directory and file
- permissions are checked, backups performed regularly, etc.
-
- We have taken some steps to avoid denial-of-service attacks.
- For example, the logs, the spool directory, and the publically-accessible
- FTP directory are each on separate file systems. If a stranger fills
- the public FTP directory, there is still room for the logs.
-
- Here are some other steps taken:
-
- 1. All the important executable files are periodically
- checksummed and checked for changes.
- 2. Most user accounts do not have passwords to be checked. They
- obtain permission to login based on the source of the call.
- 3. User accounts are discouraged.
- 4. Non-essential network daemons have been removed: we don't need
- to trust them.
- 5. Inetd(8) handles all network connections. Certain modifications
- allow telnetd, smtpd, and ftpd to run with reduced permissions:
- [cite ritchie] inetd handles the privileged stuff.
- 6. There is extensive logging of network activity, including connection
- and login attempts. Logs are stored forever on a WORM-based backup
- system.
- 7. Since the network daemons are so important to the security of the machine,
- we obtained the latest BSD versions and examined, modified, and
- installed them.
-
-
- Gateway alternatives
- ------- ------------
- There are several much simpler alternatives for an Internet gateway.
- The simplest is a router, which just lets the packets through. Some
- routers, like Cisco's, provide packet filtering that can block various
- types of access to an institution.
-
- We did not choose the router. Though the filtering is quite good, it's
- not clear whether a clever worm could get through the permitted ports.
- Can we trust the router?
- If telnet access is allowed from the outside, inside machines are exposed
- to password-guessing attacks. If telnet access is not allowed, an alternative
- is needed anyway, requiring additional provisions. The router does not
- provide logging to detect invasion attempts. And mail gating must be
- provided by a machine somewhere: it is unreasonable to expect each internal
- machine to be configured to handle all the varieties of external mail
- addressing.
-
- Many Internet sites use a gateway machine like a Sun. These machines forward
- IP packets in both directions, and provide a mail gateway service.
- The packet flow is still dangerous, though filtering is available.
- Many internal machines may trust the gate machine, leaving them further
- exposed if the gate machine is compromised.
-
-
- Performance
- -----------
- The mail throughput of the new gateway has been gratifying,
- though a VAX 750 is an easy act to follow. In many cases,
- we have had replies to cross-country mail return in less than a minute.
- It sometimes seems that the mail must have bounced. Inet has little
- else to do, and a MIPS M/120 is a fast machine.
-
- Pftp transfers are fastest over Datakit, since they avoid the
- dcon gateway in r70. File transfers range from 17 to 44 Kb/sec.
- TCP transfers through r70 run at 9 to 16 Kb/sec. By comparison,
- thinspace ftp on inet runs at about 60--90 Kb/sec.
- Clearly, security has its costs. But these are top speeds. The limiting
- factor is often the external net or host. The throughput seems adequate, and
- there have been no complaints.
-
- % ftp> get /vmunix /dev/null
- % 200 PORT command okay.
- % 150 Opening data connection for /vmunix (192.20.225.2,2242) (707584 bytes).
- % 226 Transfer complete.
- % 707584 bytes received in 15.834 seconds (43.64 Kbytes/s)
-
- %
- % 19505 bytes from pilot.njin.net:
- % dk to inet: 1.1 sec 17.3 K/sec
- % TCP to inet: 1.4 sec 13.6 K/sec
- % dk to att-in: 13 sec 1.5 K/sec
- %
- % 17403 bytes from uunet.uu.net:
- % dk to inet: .84 sec 20.2 K/sec
- % TCP to inet: 1.9 sec 8.9 K/sec
- % dk to att-in: 9.2 sec 1.8 K/sec
- %
- %
-
-
- Conclusions
- -----------
- The new gateway achieves a useful balance of utility and
- security. Most internal users seem to be happy with pftp and
- ptelnet. Some have asked for talk, resolver service and other UDP-based
- protocols. These could be provided with non-proxy services
- on inet accessible through Datakit. Steve Bellovin has cooked up a
- scheme to support X through the gateway. The security implications are
- frightening.
-
- There are certainly limits to our security. If r70 and inet are subverted,
- the inside machines could be attacked.
-
- Insiders can easily import trouble such as Trojan horses or programs
- infected with viruses. Our best defense is continued scanning of internal
- machines for security holes in case such a program gets loose.
-
- There is now a second AT&T internet gateway [cite horton].
- Its configuration is based on this work.
- These two front doors provide reasonable security to an isolated
- internal internet. But AT&T is a large company, so we keep a constant watch to
- assure that no other links are made to the external Internet. A locked front
- door is useless if the back wall of the house is missing.
-
- The incoming guarded telnet service is not perfect. The remote telnet
- may be insecure, and the TCP connection itself could be stolen after
- login is complete. Most internal AT&T machines do not accept r70's
- judgement that the user is valid, and require their own login passwords.
- These passwords travel over the Internet in the clear.
-
- Our solution does have some drawbacks.
- We rely on two machines and Datakit to keep things working. This
- yields three points of failure, while the simpler approaches have
- (in some sense) only one point of failure. The use of TCP-level gateways
- does lower throughput. Though most users seem to be content with the
- pftp response, it would be nice to speed it up some. The uptime of this
- service is measured in months, and the mail transit time in seconds or minutes.
-
- This paper is not an invitation to come
- test the security of our gateway.
- It is management's policy to call the
- authorities when intruders are detected.
-
-
- Acknowledgements
- ----------------
- Many people have contributed to the support of
- these gateways. Steve Bellovin did most of the initial work to get arpa
- talking to the ARPAnet and Datakit.
- Dave Presotto has supplied much of the software and most
- of the paranoia to provide a secure gateway. Howard Trickey implemented
- earlier versions of ptelnet and pftp.
- Dennis Ritchie has kept a watchful eye and stepped in when things broke.
- Steve Bellovin and others have provided numerous suggestions and warnings
- on various networking and security topics.
- Jim McKie ported many useful Research Unix [cite V10] functions and the
- INCON Datakit driver to our MIPS computers, making life much easier for me.
-
-
- 1. The box is completely reset.
- Enter a code digit and press "Enter":
-
- digit & hexadecimal encryption & "error"
- 0 & yes & yes
- 1 & yes & no
- 4 & no & yes
- 5 & no & no
-
- Hexadecimal encryption provides slightly higher security,
- but it is easy to mistake "6" and "b". In decimal
- mode, the hexadecimal characters "a"--"c" and "d"--"f"
- are mapped to "2" and "3" respectively. The guard software
- accepts either answer. The error mode displays "error"
- if an invalid PIN is entered. Five invalid entries will
- reset the box to . If "error" is off, the SNK
- provides an invalid encryption. We use mode 4.
- 2. Enter the DES key. The key consists of eight
- 8-bit bytes typed in octal. Press "Enter."
- 3. Enters a 4 to 16-digit PIN, followed by "Enter."
- 4. Re-enter the PIN, followed by "Enter."
- 5. Enter the PIN followed by "Enter".
- 6. Enter the challenge, followed by "Enter".
- The SNK displays the response.
-
- Programming the Hand Held Authenticator
- ----------- --- ---- ---- -------------
- We use the Securenet Key SNK-4. It is available from
-
- Digital Pathways
- 221 West Grand Avenue
- Montvale NJ 07645
-
- It costs $60 in unit quantities. Its major competitor is the
- SecureId card. The latter uses a time-based algorithm to generate
- the key and requires substantial and expensive software in the
- host. The SNK-4 needs a small program that uses the standard
- encrypt function.
-
- We program the SNK-4s by hand, though a PC-based system is
- available as well. Figure [ref programming] details the programming
- steps.
-
- The SNK shuts off automatically after 30 seconds. Press
- "On" to restart.
-
- We have found that the battery runs down in the SNK if the
- "On" button is pressed continuously, say, in luggage. The
- bumps around the "On" switch don't protect the switch well
- enough. We suggest storing the box in the original packing
- material.
-
-
- Bibliography
- ------------
- upas
- David Presotto.
- Upas - a simpler approach to network mail.
- USENIX Summer Conference Proceedings, pps.533-538, June 1985.
- seeley
- Donn Seeley.
- A Tour of the Worm.
- USENIX Winter Conference Proceedings, Jan. 1989.
- connection
- David Presotto and Dennis Ritchie.
- Interprocess Communication in the Ninth Edition UNIX System.
- Unix Programmer's Manual, Tenth Edition.
- A. G. Hume and M. D. McIlroy, Editors.
- AT&T Bell Laboratories, Murray Hill, NJ. 1990.
- smb
- Bellovin, S.M.
- Security Problems in the TCP/IP Protocol Suite.
- Computer Communications Review, Vol. 9, No. 2; April, 1989,
- pps.32-48.
- ritchie
- Ritchie, Dennis M.
- On the Security of UNIX.
- Unix Programmer's Manual, Tenth Edition.
- A. G. Hume and M. D. McIlroy, Editors.
- AT&T Bell Laboratories, Murray Hill, NJ. 1990.
- V10
- Unix Programmer's Manual, Tenth Edition, Volumes One and Two.
- A. G. Hume and M. D. McIlroy, Editors.
- AT&T Bell Laboratories, Murray Hill, NJ. 1990.
- horton
- Horton, Mark R.
- Charter for an Electronic Communication Gateway Service - Issue 1.
- %MRH CB 45264 4276 1E-271
- 45264-881003.01IM.
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- NIA074 / File 5
-
- Notes on Centigram Voice Mail system Consoles
-
- Proper entry procedure, possible design flaw and serious security
- bug:
-
- Due to, I assume, more efficient task-handling and the
- desire for a more 'Unix-like' environment, the developers at
- Centigram needed for certain key functions to be available at all
- times. For instance, the ^Z key acts as the 'escape' key (these
- can be remapped, if desired). When necessary for some
- applications to use an 'escape' procedure, pressing this key can,
- in at leas cases, cause a drop to shell, or /cmds/qnxsh
- (possibly /cmds/sh, as well, but I'm used to seeing qnxsh). If
- this escape procedure were invoked during, say, /cmds/login, the
- resulting drop to shell would by-pass the 'Enter Passcode:'
- message. And it does.
-
- After calling the Centigram, normal procedure is to hit ^Z
- to activate the terminal, followed by the entry of the remote or
- console passcodes, and then proceeding with normal console
- activities. However, if ^Z is continually depressed during the
- login sequence, the login program will abort and run /cmds/qnxsh.
- The behavior may be somewhat erratic by the repeat use of the
- escape key, but when the $ prompt appears, usually, it doesn't
- deliberately go away without an 'exit' command or a ^D.
- Typically, a login pattern can develop to accommodate the erratic
- behavior something along the lines of: continuously depress ^Z
- until $ prompt appears, hit return, possibly get 'Enter Passcode:'
- message, hit return, and $ prompt appears again, set proper tty
- setting, and change directory appropriately, and continue with
- normal console functions.
-
- Initial STTY Setting:
-
- I've had problems with my terminal settings not being set
- properly during the above entry procedure. I can correct this by
- using the "stty +echo +edit" command, and, for my terminal, all
- is restored. The correct values for STTY options and keys appear
- to be:
-
- Options: +echo +edit +etab +ers +edel +oflow +mapcr +hangup
- break=03h esc=1Ah rub=7Fh can=18h eot=04h up=15h
-
- down=
- 0Ah left=08h ins=0Eh del=0Bh
-
- The keymap, of course, can be modified as desired, but the
- options, especially +edit, appear to be necessary.
-
- [A somewhat detailed description of the options could follow, or
- maybe just a list and a brief review of the ones I care to
- comment on]
-
- Disks and directories:
-
- The drives and directories are set up in a remotely MessDos
- fashion. The output of a 'pwd' command looks similar to '4:/'.
- '4;' represents the drive number, and '/' is the start of the
- directory structure, '4:/' being the root directory for drive 4,
- '3:/tmp' being the /tmp directory on drive 3, etc.
-
- The two most important directories are 1:/cmds and 4:/cmds,
- which contain, for the most part, the program files for all of
- the performable commands on the system, excluding the commands
- written into the shell. The directory 1:/cmds should look
- similar to:
-
- $ ls
- backup drel ls rm talk
- chattr eo mkdir rmdir tcap
- choose fdformat mount runfloppy timer
- clrhouse files p search tsk
- cp frel pack sh unpack
- date get_boolean patch slay ws
- ddump led pwd sleep zap
- diff led.init qnxsh spatch
- dinit login query stty
-
- This is a display of many useful commands. chattr changes
- the read/write file attributes, cp is copy, ddump dumps disk
- sectors in hex & ascii, led is the line editor, p is the file
- print utility, and a variety of other things that you can
- experiment with at your own leisure. DO NOT USE THE TALK
- COMMAND. At least, be careful if you do. If you try to
- communicate with your own terminal, it locks communication with
- the shell, and upon hangup, for some reason, causes (well, in one
- instance) a major system error and system-wide reboot, which,
- quite frankly, made me say 'Oops. I'm not doing that again'
- when I called to check on the actual voice mailboxes, and the
- phone line just sat there, dead as old wood; and I was quite
- relieved that it came back up after a few minutes.
-
- The other directory, 4:/cmds, is filled with more specific
- commands pertaining to functions within the voice mail system
- itself. These programs are actually run from within other
- programs, to produce an easy-to-understand menu system.
- Normally, this menu system is immediately run after the entry
- of the remote or console passcode, but it would not be run when
- using the aforementioned security bug. It can be run from the
- shell simply by typing the name of the program, 'console'.
-
- Mounting and Initializing Drives:
-
- The MOUNT command produces results similar to this when run
- without arguments:
-
- $ mount
- Drive 1: Hard, 360k, offset = 256k, partition= Qnx
- Drive 2: Floppy, 360k, p=1Drive 3: RamDisk, 96k, partition= Qnx
- Drive 4: Hard, 6.1M, offset = 616k, partition= Qnx
- $tty0 = $con, Serial at 03F8
- $tty1 = $term1 , Serial at 02F8
- $tty2 = $term2 , Serial at 0420
- $tty3 = $mdm , Serial at 0428
-
- The Hard and Floppy drives are fairly self-explanatory,
- although I can't explain why they appear to be so small, nor do
- I know where the voice recordings go, or if this list contain all
- the space required for voice storage.
-
- The Ramdisk, however, is a bit more interesting to me. The
- mount command used for the above-mentioned disk 3 was:
-
- $ mount ramdisk 3 s=96k -v
-
- Although I'm not sure what the -v qualifier does, the rest
- is fairly straightforward. I assume that the size of the drive
- can be greater than 96k, although I haven't yet played with it to
- see how far it can go. To initialize the drive, the following
- command was used:
-
- $ dinit 3
-
- Quite simple, really. Now the drive is ready for use, so
- one can 'mkdir 3:/tmp' or such and route files there as desired,
- or use it for whatever purpose. If something is accidentally
- redirected to the console with >$cons, you can use the line
- editor 'led' to create a temporary file and then use the print
- utility 'p' to clear the console's screen by using "p filename
- >$cons", where filename contains a clear screen of 25 lines, or
- an ANSI bomb (if appropriate), or a full-screen DobbsHead or
- whatever you like.
-
- EVMON and password collecting:
-
- The evmon utility is responsible for informing the system
- manager about the activity currently taking place within the
- voice mail system. Run alone, evmon produces output similar to:
-
- $ evmon
- Type Ctrl-C to terminate.
- ln 26 tt 3
- ln 26 line break
- ln 26 onhook
- ln 28 ringing
- ln 28 tt 8
- ln 28 tt 7
- ln 28 tt 6
- ln 28 tt 2
- ln 28 offhook
- ln 28 tt *
- ln 28 tt 2
- ln 28 tt 0
- ln 28 tt 3
- ln 28 tt 0
- ln 28 line break
- ln 28 onhook
- [...]
-
- And so forth. This identifies a certain phone line, such as line
- 28, and a certain action taking place on the line, such as the
- line ringing, going on or offhook, etc. The 'tt' stands (I
- assume) for touch tone, and it is, of course, the tone currently
- played on the line; which means that touchtone entry of passcodes
- can be recorded and filed at will. In the above example, the
- passcode for Mailbox 8762 is 2030 (the * key, along with the 0
- key, can acts as the 'user entering mailbox' key; it can,
- however, also be the abort key during passcode entry, and other
- things as well). Now the user, of course, doesn't (usually) dial
- 8762 to enter his mailbox, he simply dials the mailbox number and
- then * plus his passcode; the reason for this is the type of
- signalling coming from the switch to this particular business
- line was set-up for four digit touch tone ID to route the line to
- the appropriate called number. This is not the only method of
- signalling, however, as I've seen other businesses that use three
- digit pulse signalling, for example, and there are others as
- well. Each may have it's own eccentricities, but I would imagine
- that the line ID would be displayed with EVMON in most cases.
-
- Now, let's say we're online, and we want to play around, and
- we want to collect passcodes. We've set up our Ramdisk to normal
- size and we are ready to run evmon. We could run it, sit at our
- terminal, and then record the output, but it's such a time
- consuming task (this is 'real-time', after all) that sitting and
- waiting be nearly pointless. So, we use the handy features of
- run-in-background and file-redirection. (See, I told you we were
- getting 'Unix-like'.)
-
- $ evmon > 3:/tmp/output &
- Type Ctrl-C to terminate.
- 5e1e
- $ ...
-
- 5e1e is the task ID (TID) of the new evmon process. Now we
- can go off and perform whatever lists we want, or just play in
- the directories, or route DobbsHeads or whatever. When we decide
- to end for the day, we simply stop EVMON, nab the file, remove
- it, and if necessary, dismount the ramdisk.
-
- $ kill 5e1e
- $ p 3:/tmp/output
- [ EVMON output would normally appear; if, however, ]
- [ there is none, the file would be deleted during ]
- [ the kill with an error message resulting ]
- $ rm 3:/tmp/output
- $ rmdir 3:/tmp
- $ mount ramdisk 3
-
- and now we can ^D or exit out of the shell and say good-bye.
-
- The good thing about this EVMON procedure is that you don't
- need to be online while it runs. You could start a task sometime
- at night and then wait until the next day before you kill the
- process and check your results. This usually produces large log
- files anywhere from 40K to 200K, depending upon the amount of
- system usage (these figures are rough estimates). If, however,
- you start the EVMON task and leave it running, then the
- administrator will not be able to start a new EVMON session until
- the old task is killed. While this probably shouldn't be a
- problem over the weekends, during business hours it may become a
- little risky.
-
- Remember though, that the risk might be worth it, especially
- if the administrator decides to check his mailbox; you'd then
- have his passcode, and possibly, remote telephone access to
- system administrator functions via touch-tone on the mailbox
- system.
-
- Task management:
-
- As we have just noted, any task like EVMON can be run in the
- background by appending the command line with a &, the standard
- unix 'run-in-background' character. A Task ID will echo back in
- hexadecimal, quite comparable to the unix Process ID. The
- program responsible for task management is called 'tsk' and
- should be in 1:/cmds/tsk. Output from running tsk alone should
- look something like:
-
- $ tsk
- Tty Program Tid State Blk Pri Flags Grp Mem Dad Bro Son
- 0 task 0001 READY ---- 1 ---IPLA----- 255 255 ---- ---- ----
- 0 fsys 0002 RECV 0000 3 ---IPLA----- 255 255 ---- ---- ----
- 0 dev 0003 RECV 0000 2 ---IPLA----- 255 255 ---- ---- ----
- 0 idle 0004 READY ---- 15 ----PLA----- 255 255 ---- ---- 0508
- 0 /cmds/timer 0607 RECV 0000 2 -S--P-AC---- 255 255 ---- ---- ----
- 0 /cmds/err_log 0509 RECV 0000 5 -S--P--C---- 255 255 0A0A ---- ----
- 0 /cmds/ovrseer 0A0A REPLY 0607 5 -S--P--C---- 255 255 ---- ---- 030C
- 0 /cmds/recorder 010B REPLY 0509 5 -S--P--C---- 255 255 0A0A 0509 ----
- 0 /cmds/master 030C REPLY 0607 5 -S--P--C---- 255 255 0A0A 010B 011C
- [ ... a wide assortment of programs ... ]
- 0 /cmds/vmemo 011C REPLY 0110 13 -S-----C---- 255 255 030C 011B ----
- 3 /cmds/comm 0508 RECV 5622 8 ----P-A----- 255 255 0004 ---- 5622
- 3 /cmds/tsk 051D REPLY 0001 8 ------------ 255 255 301E ---- ----
- 3 /cmds/qnxsh 301E REPLY 0001 14 ---------E-- 255 255 5622 ---- 051D
- 3 /cmds/login 5622 REPLY 0003 8 -------C---- 255 255 0508 ---- 301E
-
-
- Although I'm not quite sure at some of the specifics
- displayed in this output, the important parts are obvious. The
- first column is the tty number which corresponds to the $tty list
- in 'mount' (meaning that the modem I've just called is $tty3, and
- I am simultaneously running four tasks from that line); the
- second column is the program name (without the drive
- specification); the third column is the task ID; the middle
- columns are unknown to me; and the last three represent the ties
- and relations to other tasks (Parent task ID, another task ID
- created from the same parent, and task ID of any program called).
-
- Knowing this, it's easy to follow the tasks we've created
- since login. Initially, task 0508, /cmds/comm, was run, which
- presumably contains the requisite 'what should I do know that my
- user has pressed a key?' functions, which called /cmds/login to
- log the user in. Login was interrupted with ^Z and one of the
- shells, qnxsh, was called to handle input from the user.
- Finally, the typing of 'tsk' requires that the /cmds/tsk program
- be given a task ID, and the output of the program is simply
- confirming that it exists.
-
- As mentioned, to kill a task from the shell, simply type
- 'kill [task-id]' where [task-id] is the four digit hexadecimal
- number.
-
- There are other functions of the tsk program, as well. The
- help screen lists:
-
- $ tsk ?
- use: tsk [f={cmoprst}] [p=program] [t=tty] [u=userid]
- tsk code [p=program]
- tsk info
- tsk mem t=tid
- tsk names
- tsk size [p=program] [t=tty] [u=userid]
- tsk ports
- tsk
- tsk
- tsk tree [+tid] [+all] [-net]
- tsk users [p=program] [t=tty] [u=userid]
- tsk vcs
- tsk who tid ...
- options: +qnx -header +physical [n=]node s=sort_field
-
- I haven't seen all the information available from this, yet,
- as the plain 'tsk' tells me everything I need to know; however,
- you may want to play around, there's no telling what secrets are
- hidden...
-
- $ tsk tsk
- Tsk tsk? Have I been a bad computer?
-
- See what I mean?
-
- ddump:
-
- The ddump utility is used to display the contents on a
- specified blocks of the disk. It's quite simple to use.
-
- $ ddump ?
- use: ddump drive block_number [-v]
-
- Again, I'm not quite sure what the -v switch does, but the
- instructions are very straightforward. Normal output looks
- similar to:
-
- $ ddump 3 3
- Place diskette in drive 3 and hit <CR> <-- this message is always
- displayed by ddump.
- Block 00000003 Status: 00
- 000: 00 00 00 00 00 00 00 00 94 00 00 00 00 00 00 00 ................
- 010: 01 00 01 00 40 02 00 00 00 02 00 00 00 00 00 00 ....@...........
- 020: 00 01 00 FF FF 00 00 97 37 29 17 00 01 01 01 30 ........7).....0
- 030: C4 17 8E 62 69 74 6D 61 70 00 00 00 00 00 00 00 ...bitmap.......
- 040: 00 00 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 ................
- 050: 00 00 00 FF FF 00 00 A5 37 29 17 00 01 01 17 30 ........7).....0
- 060: C4 25 8E 6C 6C 6C 00 00 00 00 00 00 00 00 00 00 .%.lll..........
- 070: 00 00 00 00 50 0E 00 00 00 0E 00 00 00 00 00 00 ....P...........
- 080: 00 01 00 FF FF 7E 05 A8 38 29 17 00 01 01 17 30 .....~..8).....0
- 090: C4 28 8F 61 62 63 00 00 00 00 00 00 00 00 00 00 .(.abc..........
- 0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- 0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
- [...etc...]
-
- As you can probably notice, what we have here is the
- directory track for the ramdisk. It lists three files, even
- though the file abc no longer exists. The actual bytes have yet
- to be decoded, but, as far as the ramdisk goes, I suspect that
- they'll be memory related, and not physical block related; that
- is, I suspect that some of the numbers given above correspond to
- the memory address of the file, and not to the actual disk-block.
- So, at least for the ramdisk, finding specific files may be
- difficult. However, if you only have one file one the ramdisk
- besides 'bitmap' (which appears to be mandatory across all the
- disks), then the next file you create should reside on track 4
- and continue working it's way up. Therefore, if you have evmon
- running and redirected to a file on the ramdisk, in order to
- check the contents, it's not necessary to kill the process, and
- restart evmon, etc. Simply 'ddump 3 4', and you could get either
- useless information (all the bytes are 00 or FF), or you could
- get something like:
-
- $ ddump 3 4
- Place diskette in drive 3 and hit <CR>
-
- Block 00000004 Status: 00
- 000: 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 ................
- 010: 6C 6E 20 20 32 36 20 74 74 20 33 1E 6C 6E 20 20 ln 26 tt 3.ln
- 020: 32 36 20 6C 69 6E 65 20 62 72 65 61 6B 1E 6C 6E 26 line break.ln
- 030: 20 20 32 36 20 6F 6E 68 6F 6F 6B 1E 6C 6E 20 20 26 onhook.ln
- 040: 32 38 20 72 69 6E 67 69 6E 67 1E 6C 6E 20 20 32 28 ringing.ln 2
- 050: 38 20 74 74 20 38 1E 6C 6E 20 20 32 38 20 74 74 8 tt 8.ln 28 tt
- 060: 20 37 1E 6C 6E 20 20 32 38 20 74 74 20 36 1E 6C 7.ln 28 tt 6.l
- 070: 6E 20 20 32 38 20 74 74 20 32 1E 6C 6E 20 20 32 n 28 tt 2.ln 2
- 080: 38 20 6F 66 66 68 6F 6F 6B 1E 6C 6E 20 20 32 38 8 offhook.ln 28
- 090: 20 74 74 20 2A 1E 6C 6E 20 20 32 38 20 74 74 20 tt *.ln 28 tt
-
- ... and so forth, thus making sure that the file does have
- some content. Depending upon the length of that content, you
- could then choose to either keep the file running, or restart
- evmon and buffer the previous output.
-
- led:
-
- The program 'led' is Centigram's answer to a standard text
- editor. It is equivalent to 'ed' in unix or 'edlin' in MSDOS,
- but it does have it's minor differences. led is used to create
- text files, edit, existing log files, or edit executable shell
- scripts. By typing 'led [filename]', you will enter the led
- editor, and if a filename is specified, and it exists, the file
- will be loaded and the editor set to line 1. If there is no
- filename on the command line, or the file does not exist, of the
- file is busy, then led begins editing a null file, an empty
- buffer, without the corresponding filename. (Commands can also
- be specified to be used in led after the filename is entered. If
- needed, you can experiment with this.)
-
- Notable commands from within led:
-
- i insert
- a append
- w [filename] write to disk; if no file is named, attempt to
- write to current file; if there is no current
- file, do not write.
- d delete current line
- a number goto line numbered
- q quit (if not saved, inform user to use 'qq')
- qq Really quit
-
- When inserting or appending, led will prompt you with a '.'
- period. To end you entry, simply enter one period alone on a
- line, and you will then return to command mode. When displaying
- the current entry, led will prefix
- all new, updated lines, with the 'i' character.
-
- The key sequence to enter a Dobbshead into a file and
- redirect it to the console, then, would be:
-
- $ led 3:/dobbshead3:/dobbshead : unable to match file
- i ___
- . / \
- . | o o |
- . | Y |
- U===== |
- \___/
- FUCK YOU!
- q
- ?4 buffer has been modified, use qq to quit without saving
- w 3:/dobbshead
- 7 [the number of lines in the file]
- q
- $ p 3:/dobbshead > $cons
- $ rm 3:/dobbshead
-
- Ok, so it's not quite the Dobbshead. Fuck you.
-
- The console utility:
-
- The program that acts as the menu driver for the Voice Mail
- System Administration, the program that is normally run upon
- correct passcode entry, is /cmds/console. This program will
- simply produce a menu with a variety of sub-menu's that allow
- the administrator to perform a wide assortment of tasks. Since
- this is mostly self-explanatory, I'll let you find out about
- these functions for youself; I will, however, add just a few
- comments about the console utility. The first menu received
- should look like this:
-
- (c) All Software Copyright 1983, 1989 Centigram Corporation
- All Rights Reserved.
-
- MAIN MENU
-
- (R) Mailbox maintenance
- (R) Report generation
- (S) System maintenance
- (X) Exit
-
- Enter letter in () to execute command.
- When you need help later, type ?.
-
- COMMAND (M/R/S/X):
-
- The mailbox maintenance option is used when you want to
- find specific information concerning mailboxes on the system.
- For instance, to get a listing of all the mailboxes currently
- being used on the system:
-
- COMMAND (M/R/S/X): m
-
- MAILBOX MAINTENANCE
-
- (B) Mailbox block inquiry
- (C) Create new mailboxes
- (D) Delete mailboxes
- (E) Mailbox dump
- (I) Inquire about mailboxes
- (L) List maintenance
- (M) Modify mailboxes
- (P) Set passcode/tutorial
- (R) Rotational mailboxes
- (S) Search for mailboxes
- (X) Exit
-
- If you need help later, type ?.
-
- COMMAND (B/C/D/E/I/L/M/P/R/S/X): i
- Report destination (c/s1/s2) [c]:
-
- Mailbox to display: 0000-9999
-
- >>> BOBTEL <<<
- Mailbox Data Inquiry
- Tue Mar 31, 1992 3:07 am
-
- Box Msgs Unp Urg Rec Mins FCOS LCOS GCOS NCOS MWI Passwd
- 8001 1 1 0 0 0.0 5 5 1 1 None Y
- 8002 0 0 0 0 0.0 5 5 1 1 None Y (t)
- 8003 0 0 0 0 0.0 12 12 1 1 None
- 0 0 0.0 12 12 1 1 None Y
- 8006 6 6 0 0 0.7 12 12 1 1 None N
- 8008 0 0 0 0 0.0 5 5 1 1 None Y
- 8013 0 0 0 0 0.0 12 12 1 1 None 1234
- 8014 0 0 0 0 0.0 5 5 1 1 None Y
- 8016 0 0 0 0 0.0 12 12 1 1 None Y
- [ ... etc ... ]
-
- This simply lists every box along with the relevant
- information concerning are the
- Total number of messages, number of unplayed messages, number of
- urgent messages, and number of received messages currently being
- stored on the drive for the mailbox; Mins is the numbers of
- minutes currently being used by those messages; F, L, G, and
- NCOS are various classes of service for the mailboxes; MWI is
- the message waiting indicator, or service light; and Passwd is
- simply a Yes/No condition informing the administrator whether
- the mailbox currently has a password. The'(t)' the password
- field means the box is currently in tutorial mode, and the '1234'
- that replaces the Y/N condition, I assume, means the box is set
- to initial tutorial mode with simple passcode 1234 -- in other
- words the box is available to be used by a new subscriber.
- Mailboxes with FCOS of 1 should be looked for, these represent
- administration or service mailboxes, although they are not
- necessarily capable of performing system administration
- functions.
-
- The System maintenance option from the main menu is very
- useful in that, if you don't have access to the qnxsh, you can
- still run a number of tasks or print out any file you wish from
- within the menu system. The System Mainenance menu looks like:
-
- SYSTEM MAINTENANCE
-
- (A) Automatic Wakeup
- (B) Automated Receptionist Extensions
- (D) Display modem passcode
- (E) Enable modem/serial port
- (F) Floppy backup
- (G) Resynchronize HIS PMS room status
- (H) Hard Disk Utilities
- (L) Lights test
- (M) Manual message purge
- (N) System name
- (P) Passcode
- (R) Reconfiguration
- (S) System shutdown
- (T) Time and date
- (U) Utility menu
- (V) Call Detail Recorder
- (W) Network menu
- (X) Exit
-
- Enter letter in () to execute command.
- When you need help later, type ?.
-
- COMMAND (A/B/D/E/F/G/H/L/M/N/P/R/S/T/U/V/W/X):
-
- If you don't have access to the 'p' command, you can still
- display any specific file on the drive that you wish to see.
- Choose 'v', the Call Detail Recorder option, from above, and you
- will get this menu:
-
- COMMAND (A/B/D/E/F/G/H/L/M/N/P/R/S/T/U/V/W/X): v
- Warning: cdr is not running.
-
- CALL DETAIL RECORDER MENU
-
- (C) Configure CDR
- (R) Run CDR
- (T) Terminate CDR
- (E) Run EVMON
- (F) Terminate EVMON
- (S) Show CDR log file
- (D) Delete CDR log file
- (X) Exit
-
- If you need help later, type ?.
-
- COMMAND (C/R/T/E/F/S/D/X):
-
- From here, you can use (C) Configure CDR to set the log
- file to any name that you want, and use (S) to print that file
- to your terminal.
-
- COMMAND (C/R/T/E/F/S/D/X): c
-
- Answer the following question to configure call detail recorder
- [ simply hit return until the last 'filename' question come up ]
- VoiceMemo line numbers enabled:
- HOST 1 lines:
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- VoiceMemo line numbers:
-
- EVMON: HOST 1 lines to monitor:
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- EVMON:VoiceMemo line numbers:
- Message levels are:
- 1: Detailed VoiceMemo
- 2: VoiceMemo
- 3: Pager
- 4: Receptionist
- 5: EVMON
- 6: Automatic WakeUp
- 7: Open Account Administrator
- 8: DTMF to PBX
- 9: Message Waiting Lamp
- 10: SL-1 integration
- 11: Centrex Integration
- Message levels enabled:
- 2 3 7 9
- Message levels:
- cdr enable = [N]
- Enter filename to save log data = [/logfile] /config/remote.cmds
-
- Returning from the CDR configuration.
-
- CALL DETAIL RECORDER MENU
-
- (C) Configure CDR
- (R) Run CDR
- (T) Terminate CDR
- (E) Run EVMON
- (F) Terminate EVMON
- (S) Show CDR log file
- (D) Delete CDR log file
- (X) Exit
-
- If you need help later, type ?.
-
- COMMAND (C/R/T/E/F/S/D/X): s
- ad
- cd
- copy
- date
- dskchk
- evmon
- files
- ls
- mount
- p
- pwd
- query
- task
- tcap
- what
-
- Don't forget to return the filename back to it's original
- name, as shown in the [] field, after you have finished.
-
- If you don't have access to the shell, you can also run
- EVMON, from the CDR menu, using option E. It will simply start
- the evmon process displaying to your terminal, interruptable by
- the break character, ^C. This, unfortunately, cannot be
- redirected or run in the background as tasks running from the
- shell can. If, however, you have some time to kill you may want
- to play with it.
-
- Also from the System Maintenance menu, you can perform a
- number of shell tasks without direct access to the shell. Option
- (U), Utilities Menu, has an option called Task. This will allow
- you limited shell access, possibly with redirection and '&' back-
- grounding.
-
- COMMAND (A/B/D/E/F/G/H/L/M/N/P/R/S/T/U/V/W/X): U
-
- UTILITY MENU
-
- (B) Reboot
- (H) History
- (T) Task
- (X) Exit
-
- Enter letter in () to execute command.
- When you need help later, type ?.
-
- COMMAND (B/H/T/X): t
-
- Choose the following commands:
- ad cd copy date
- dskchk evmon files ls
- mount p pwd query
- task tcap what
-
- Enter a command name or 'X' to exit: pwd
- 1:/
-
- Choose the following commands:
- ad cd copy date
- dskchk evmon files ls
- mount p pwd query
- task tcap what
-
- Enter a command name or 'X' to exit: evmon
- Type Ctrl-C to terminate.
- ln 29 ringing
- ln 29 tt 8
- ln 29 tt 0
- ln 29 tt 8
- ln 29 tt 6
- ln 29 offhook
- ln 29 record ended
- [ ... etc ... ]
-
- A look at 'ad':
-
- The program 'ad' is called to dump information on a variety
- of things, the most useful being mailboxes. Dumps of specific
- information about a mailbox can be done either in Mailbox format,
- or Raw Dump format. Mailbox format looks like:
-
- $ ad
- Type #: 0
- Mailbox #: 8486
- (M)ailbox, (D)ump ? m
-
- MAILBOX: 8486
-
- Login status:
- Bad logs = 3 Last log = 03/26/92 12:19 pmVersion = 0
-
- Configuration:
- Name # = 207314 Greeting = 207309 Greeting2 = 0
- Passcode = XXXXXXXXXX Tutorial = N Extension = 8486
- Ext index = 0 Attendant = Attend index = 0
- Code = ID = BOBTECHM Night_treat = M Fcos = 12 Lcos = 12 Gcos = 1 Ncos = 1 Rot index = 0 Rot period = 0 Rot start = -- wkup defined = N wkup freq = 0 wkup_intvl = 0 wkup index = 0 wkup number =Contents: Motd_seq = 8 Motd_played = N User_msgs = 0 Caller_msgs = 4 Sent_cpx_msgs= 0 Sent_
- fdx_msgs= 0
- Sent_urg_msgs= 0 Tas_msgs = 0 Pages = 0
- Receipt = 0 Sent_to_node = 0 Urg_to_node = 0
- Net_urg_mlen = 0 Net_msgs_rcv = 0 Net_urg_rcv = 0
- Net_sent_node= 0 Net_send_nurg= 0 Net_send_rcp = 0
- Greet_count = 9 Successlogins= 1 Recpt_calls = 0
- Recpt_complt = 0 Recpt_busy = 0 Recpt_rna = 0
- Recpt_msgs = 0 Recpt_attend = 0 User_connect = 20
- Clr_connect = 22 Callp_connect= 0 Disk_use = 498
- Net_sent_mlen= 0 Net_rcvd_mlen= 0 Net_rcvd_urg = 0
- Net_node_mlen= 0 Net_recip_mlen=0 Net_node_urg = 0
- Text_msg_cnt = 0
-
-
- Message Queues:
- TYPE COUNT TOTAL HEAD TAIL TYPE COUNT TOTAL HEAD TAIL
- Free 71 --- 58 55 Unplayed 0 --- -1 -1
- Played 2 0.5 56 57 Urgent 0 --- -1 -1
- Receipts 0 --- -1 -1 Undelivered 0 --- -1 -1
- Future delivery 0 --- -1 -1 Call placement 0 --- -1 -1
-
- Messages: 2
- # msg # DATE TIME LENGTH SENDER PORT FLAGS MSG SIBL
- (MINS) NXT PRV NXT PRV
- Played Queue
- 56 207126 03/26/92 12:17 pm 0.5 000000000000000 27 ------P- 57 -1 -1 -1
-
- 57 207147 03/26/92 12:19 pm 0.1 000000000000000 29 ------P- -1 56 -1 -1
-
- The Ramp format looks like:
- $ ad
- Type #: 0
- Mailbox #: 8487
- (M)ailbox, (D)ump ? d
-
- HEX: 8487
- 000: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- 010: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- 020: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 34 38 |..............48|
- 030: 37 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |7...............|
- 040: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- 050: 00 00 00 00 00 00 00 00 - 00 00 42 49 4f 54 45 43 |..........BOBTEC|
- 060: 48 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |H...............|
- 070: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- 080: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 37 32 33 |.............723|
- 090: 36 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |6...............|
- 0a0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- 0b0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- 0c0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |................|
- [mostly deleted -- the list continues to hex fff.]
-
- One of the unfortunate aspects is that the password is not
- displayed in the Mailbox format (Awwww!). I can tell you now,
- though, that it also isn't displayed anywhere in the Raw Dump
- format. The program 'asetpass' was used to change the password
- of a test mailbox, and both full dumps were downloaded and
- compared; they matched exactly. So, it looks like the passcodes
- are probably stored somewhere else, and the dump simply contains
- a link to the appropriate offset; which meansthe only way, so
- far, to get passcodes for mailboxes is to capture them in EVMON.
-
- Intricacies of the login program:
-
- The console login program is 1:/cmds/login. Although I
- can't even recognize any valid 8080 series assembly in the
- program (and I'm told the Centigram boxes run on the 8080
- family), I did manage to find a few interesting tidbits inside of
- it. Firstly, the console and remote passwords seems to be stored
- in the file /config/rates; unfortunately, it's encrypted and I'm
- not going to try to break the scheme. /config/rates looks like
- this:
-
- $ p /config/rates
- \CE\FFC~C~\0A\00\00\00\00\00\0A\00\00\00\00\00\0A\00\00\00\00\00\0A\00\00\00\00
- \00\0A\00\00\00\00\00\0A\00\00\00\00\00\0A\00\00\00\00\00\00\00\00\00\00\00\00
- \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
-
- Accepting the \CE as some sort of control byte, this file is
- divided up into about eight empty sections of five bytes a piece,
- mostly null, indicating that, possibly, there are a number of
- acceptable passcode combinations, or a number of different
- functions with different passcodes. In this instance, only one
- passcode appears to be selected. I am still unsure, however,
- whether this is actually a password file, or a file that would
- acts as a pointer to another space on the disk which contains the
- actual password. I would assume, for this login program, that it
- is actually an encrypted password.
-
- Another very interesting thing sleeping within the confines
- of the login program is the inconspicuous string 'QNX'. It sits
- in the code between two 'Enter Passcode:' prompts, separated by
- \00's. I believe this to be a system-wide backdoor placed into
- the login program by Centigram, Corp. Such a thing does exist;
- whenever Centigram wants to get into a certain mailbox system to
- perform maintenance or solve a problem, they can. They may,
- however, require the Serial number of the machine or of the Hard
- Drive, in order to get this access. (This serial number would be
- provided by the company requiring service.)
-
- When logging in with QNX, a very strange thing happens.
-
- (^Z)
- Enter Passcode: (QNX^M) Enter Passcode:
-
- A second passcode prompt appears, a prompt in which the
- 'QNX' passcode produces an Invalid Passcode message. I believe
- that when Centigram logs in from remote, they use this procedure,
- along with either a predetermined passcode, or a passcode
- determined based on a serial number, to access the system. I
- have not ever seen this procedure actually done, but it is the
- best speculation that I can give.
-
- I should also make note of a somewhat less important point.
- Should the console have no passcodes assigned, a simple ^Z for
- terminal activation will start the /cmds/console program, and
- log the user directly in without prompting for a passcode. The
- odds on finding a Centigram like this, nowadays, is probably as
- remote as being struck by lightning, but personally, I can recall
- a time a number of years back when a Florida company hadn't yet
- passcode protected a Centigram. It was very fun to have such a
- large number of people communicating back and forth in normal
- voice; it was even more fun to hop on conferences with a number
- of people and record the stupidity of the average Bell operator.
-
- Special Keys or Strings:
-
- There are a number of special characters or strings that are
- important to either the shell or the program being executed.
- Some of these are:
-
- ? after the program name, gives help list for that program.
- & runs a task in the background
- : sets the comment field (for text within shell scripts)
- ; command delimiter within the shell
- > redirects output of a task to a file
- < (theoretically) routes input from a file
- $cons the 'filename' of the console (redirectable)
- $tty# the 'filename' of tty number '#'
- $mdm the 'filename' of the modem line
- #$ ? produces a value like '1920', '321d'
- probably the TID of the current process
- ## ? produces a value like 'ffff'
- #% ? produces a value like '0020', '001d'
- #& ? produces a value like '0000'
- #? ? produces a value like '0000'
- #* a null argument
- #g ? produces a value like '00ff'
- #i directly followed by a number, produces '0000'
- not followed, produces the error 'non-existent integer
- variable' probably used in conjunction with environment
- variables
- #k accepts a line from current input (stdin) to be
- substituted on the command line
- #m ? '00ff'
- #n ? '0000'
- #p ? '0042'
- #s produces the error 'non-existent string variable'
- probably used in conjunction with environment variables
- #t ? '0003'
- #u ? some string similar to 'system'
- #D ? '0018'
- #M ? '0004'
- #Y ? '005c'
-
- "Notes on Centigram Voice Mail system Consoles" was written
- anonymously. There are no group affiliations tied to this file.
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- NIA074 / File 05
-
- How to steal Information
-
- The Butler...
-
-
-
- Now that we have entered the "Information Age" we must realize that
- information is an asset worth protecting. The problem is that what
- some people consider trash others view as gold. That is why on any
- given day you can find mounds of valuable information in most
- companies trashcans, employees desks, and on floppy disks lying
- around the office. This article will focus on the different ways
- of gaining access to that information which is most often left
- unprotected.
-
- To begin with I will discuss the most vulnerable aspect of any
- security plan, people. Individuals are the weakest link in any
- security system whether it be a guard check point or a CN/A
- operator, the reason this is so is because when ever a human is
- brought into the picture to determine whether or not to give access
- or information to another human more often than not a judgement
- call has to be made. As human beings we have feelings like sorrow
- and pity to deal with, and those feelings can and are exploited.
-
- Now lets say you wanted to gain access to a certain building that
- required some sort of Key-Card to open the door. With out having
- one yourself you could either 1) steal one, 2) make your own, or 3)
- walk in behind someone else who does have one. Number 3 is the one
- I want to expand on here. I have used this method myself, for
- legitimate purposes of course. By looking like you belong in said
- building and waiting by the door with a confused and sad look on
- your face you could say to someone "I left my Key-Card at home" and
- just walk in behind them. Now this probably wouldn't work at a
- small company but more likely at a large institution with several
- entrances, use the back door! When I said look like you belong I
- mean dress accordingly. i.e. to go to a high tech software company
- you should be wearing a suit with a briefcase in hand. Just in
- case why don't you case the establishment for a few days before
- your attempt and make note of what the majority of employees are
- wearing.
-
- Another scenario could be at a industrial firm that you were
- interested in. In this case we will try and play on another human
- feeling, greed. Chances are in this situation the individuals
- responsible for any and all computers are, well less than computer
- literate. You could send them a letter in the mail advertising a
- free cleaning and inspection of all personal computers on the
- premises. This is an excellent way of gathering information from
- heavily industrialized companies. Usually places where computers
- are practically on the factory floor will be more than happy to let
- you clean their machines. While doing so just copy to your hearts
- content, or if you are adventurous you could take a portable and
- connect it via a serial port or whatever and copy the entire hard
- drive. Just tell them you are running some diagnostics.
-
- The last scenario I will cover is another example of disguising
- yourself. I know this one works and it seems that people are doing
- it quite frequently. Just get a job with a janitorial firm and
- sneak away from the actual work to do your bidding.
-
- After gaining access to any company by whatever means you have to
- know where to look. To begin with go to the largest office you can
- find, usually in a corner with a good view. These prime offices
- usually belong to those in the upper echelon of the company. Once
- in the office you obviously should start with computers since you
- can copy electronic information easier than hardcopy. Next you
- should turn to the desk drawer and file cabinets in the office.
- Check the rolodex for dialup #'s and passwords. Basically don't
- leave any stone unturned. Depending on what you are looking for
- you might want to start out in the Data Processing department since
- their computers are the heart of the whole business. From there
- you can plant trojan horses, copy proprietary software, or steal
- specific data.
-
- Some other means of disguise:
-
- PC Repair Shop Technician
- Software Demonstrator
-
- All of the above items can be used for completely legal purposes
- also.
-
- The above have all been physical means of gathering information,
- now lets turn to other ways.
-
-
- Van Eck
-
- With the proper equipment it is possible to capture every
- electronic pulse that is sent out from a keyboard or a monitor
- while you are hidden far away from the actual activity. The U.S.
- Government calls this the Tempest project. If you are ever in a
- government office just take a look at their computers. I know that
- the armed services have all of their computers protected by heavy
- metal shielding around all computers, even pc's in army recruiting
- stations. Check the loompatics(sp) catalog for a book called Van-
- -Eck Phreaking, it explains the whole process and the equipment
- needed. This method would generally be used to steal usernames and
- passwords.
-
-
- Network Protocol Analyzers
-
- If you have access to a Local Area Network you might already have
- one of these puppies. A Network protocol analyzer is a device that
- lets you examine every packet that is sent out over a network. I
- am talking about Novell, Banyan and 3COM networks if you are
- wondering. By using one of these you can capture every byte that
- travels from any given workstation to the file server. This
- equipment is very expensive but could well be worth it depending on
- what you are after. This method could be used to steal everything
- from usernames and passwords to actual data.
-
-
- Keyboard & Monitor Capture program
-
- I have never done this but I think it could be possible to write a
- program (a trojan) that would capture everything that is entered
- from the keyboard and everything that goes across the monitor and
- save it in a hidden file somewhere on a network.
-
-
- Old Reliable--Social Engineering
-
- Now (with a known bug) we can social engineer electronically via
- E-mail. The Telnet bug which allows you to send a message to
- someone without them knowing the source can be very useful.
- Unlimited applications.....And there is always the telephone for
- the same purpose. Just make up a story and try it out. The
- obvious "Hello I am the Sysop please change your password to ____"
- is not what I am talking about. You need to be more creative like
- posing as a salesman or a surveyor to get information that will
- make your "Crack" easier.
-
-
- I hope this helps you with your quest for knowledge!!!
-
-
- The Butler...
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- NIA074 / File 07
-
- Invisible Killer Chips Now Availible
-
- Jean-Bernard Condat
- General Secretary
- Chaos Computer Club France
- B.P. 8005
- 69351 Lyon Cedex 08, France
- Tel.: +33 78 61 15 88
-
- Intelligence Newsletter (10 rue du Sentier, 75002 Paris, France)
- No. 186 (Jan. 29, 1992), page 2, ISSN 0997-7139
- By: Jean-Bernard Condat (CCCF, B.P. 8005, 69351 Lyon Cedex 08, France)
-
-
- The military use of computer viruses is often overblown, if not just
- simple disinformation as in the recent Iraqi case. But researchers at
- Boston University have developed and patented (U.S. patent 5 049 775)
- an infinitely more offensive and effective anti-computer agent: the
- silicon ant. Micro-electronics has perfected technologies for making
- toys and machines so small that they are invisible.
-
- Using piezoelectric ceramics which expand or contract under an
- electric current, the researchers constructed a microscopic ship with
- three "legs" on each side and a "cutter" in front. By alternating
- current in different sides of each "leg", it bends forward or backward.
-
- Under remote control the killer chips can be "walked" into a computer
- and cut up other microscopic chips, turn around and "walk" away, leaving
- invisible damage in the computer system. The killer chips could be solar
- powered and therefore have an indefinite life-span.
-
-
- PATENT DESCRIPTION
-
-
- 008245420 WPI Acc No: 90-132421/17
- XRPX Acc No: N90-102550
- Piezoelectric micro-machine or robot basic operating unit - made by
- covering silicon cantilever beams projecting from frame with
- piezoelectric material when applied voltages cause them to deflect
- Patent Assignee: (UYBO-) BOSTON UNIV
- Author (inventor): SMITS J G
- Number of Patents: 002
- Patent Family:
- CC Number Kind Date Week
- WO 9003665 A 900405 9017 (Basic)
- US 5049775 A 910917 9140
- Priority Data (CC,No,Date): US 251565 (880930);
- Applications (CC,No,Date): WO 89US4129 (890921);
- EP and/or WO Language: English
- EP and/or WO Cited Patents:
- No.SR.Pub
- Designated States (National): JP (Regional): AT; BE; CH; DE; FR; GB; IT; LU
- ; NL; SE
- Abstract (Basic): WO 9003665
- An electrical micromachine is made by securing films (20,22) of
- piezoelectric material to the top surfaces (16,18) of crystalline
- silicon beams (12,14) projecting from a crystalline silicon body (10)
- to form a bimorph structure. A potential applied across the ends
- (24,26) of the piezoelectric films causes the beams to deflect. The
- piezoelectric material used is zinc oxide.
- A number of such micromachines can be assembled to form a robot,
- and when a foot (30) is provided the machine can move itself along a
- surface by sequential deflecting and straightening of the beams. The
- foot can be associated with a toothed wheel to produce rotary motion.
- The micromachine may be solar powered, and can be associated with
- sensors or a microprocessor with programmable memory.
- USE - Microsurgical tools, and robots for grasping, carrying or
- cutting tasks. @(33pp Dwg.No.1/10)@
- Abstract (US): 9140 US 5049775
- The piezoelectric actuation machine comprises two cantilever beams
- extending from a frame. The beams comprise a piezoelectric material
- such that application of an electric potential across the material of
- each beam rotationally diplaces the first and second beams relative to
- each other.
- An actuating member is secured between displaceable surfaces on
- the beams and extends orthogonally from a plane through the beams such
- that relative displacement of the beams displaces a portion of the
- member in a direction orthogonal to beam displacement. A rigid object
- contacting the displaced portion of the member is translated relative
- to the member and the frame.
- USE - For piezoelectric micromachines e.g. small robot or
- cutting tool. @(17pp)@
- File Segment: EPI
- Derwent Class: S05; V06; X25; R46;
- Int Pat Class: H01L-041/09
- Manual Codes (EPI/S-X): S05-B; V06-M06D; X25-A03E
-
- [Editor's Note: I have not investigated to see if this patent really does
- exist due to the timing of the article so close to the release date. This
- is a rush-in and I am basing all of its credibility to Chaos Computer
- Club France (CCCF) and Jean-Bernard Condat.]
-
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-
-