140 lines
6.5 KiB
Plaintext
140 lines
6.5 KiB
Plaintext
|
From R746RZ02@VB.CC.CMU.EDU Fri Mar 3 11:46:50 1989
|
|||
|
To: VIRUS-L@IBM1.CC.LEHIGH.EDU
|
|||
|
Date: Fri, 3 Feb 89 04:00:00 EST
|
|||
|
Sender: SECURITY Digest <SECURITY@PYRITE.RUTGERS.EDU>
|
|||
|
From: AMSTerDamn System <R746RZ02@VB.CC.CMU.EDU>
|
|||
|
Subject: Viruses and System Security (a story)
|
|||
|
|
|||
|
[Ed. reprinted from SECURITY Digest]
|
|||
|
|
|||
|
The following story was posted in news.sysadmin recently.
|
|||
|
|
|||
|
The more things change, the more they stay the same...
|
|||
|
|
|||
|
Back in the mid-1970s, several of the system support staff at Motorola
|
|||
|
(I believe it was) discovered a relatively simple way to crack system
|
|||
|
security on the Xerox CP-V timesharing system (or it may have been
|
|||
|
CP-V's predecessor UTS). Through a simple programming strategy, it was
|
|||
|
possible for a user program to trick the system into running a portion
|
|||
|
of the program in "master mode" (supervisor state), in which memory
|
|||
|
protection does not apply. The program could then poke a large value
|
|||
|
into its "privilege level" byte (normally write-protected) and could
|
|||
|
then proceed to bypass all levels of security within the file-management
|
|||
|
system, patch the system monitor, and do numerous other interesting
|
|||
|
things. In short, the barn door was wide open.
|
|||
|
|
|||
|
Motorola quite properly reported this problem to XEROX via an official
|
|||
|
"level 1 SIDR" (a bug report with a perceived urgency of "needs to be
|
|||
|
fixed yesterday"). Because the text of each SIDR was entered into a
|
|||
|
database that could be viewed by quite a number of people, Motorola
|
|||
|
followed the approved procedure: they simply reported the problem as
|
|||
|
"Security SIDR", and attached all of the necessary documentation,
|
|||
|
ways-to-reproduce, etc. separately.
|
|||
|
|
|||
|
Xerox apparently sat on the problem... they either didn't acknowledge
|
|||
|
the severity of the problem, or didn't assign the necessary
|
|||
|
operating-system-staff resources to develop and distribute an official
|
|||
|
patch.
|
|||
|
|
|||
|
Time passed (months, as I recall). The Motorola guys pestered their
|
|||
|
Xerox field-support rep, to no avail. Finally they decided to take
|
|||
|
Direct Action, to demonstrate to Xerox management just how easily the
|
|||
|
system could be cracked, and just how thoroughly the system security
|
|||
|
systems could be subverted.
|
|||
|
|
|||
|
They dug around through the operating-system listings, and devised a
|
|||
|
thoroughly devilish set of patches. These patches were then
|
|||
|
incorporated into a pair of programs called Robin Hood and Friar Tuck.
|
|||
|
Robin Hood and Friar Tuck were designed to run as "ghost jobs" (daemons,
|
|||
|
in Unix terminology); they would use the existing loophole to subvert
|
|||
|
system security, install the necessary patches, and then keep an eye on
|
|||
|
one another's statuses in order to keep the system operator (in effect,
|
|||
|
the superuser) from aborting them.
|
|||
|
|
|||
|
So... one day, the system operator on the main CP-V software-development
|
|||
|
system in El Segundo was surprised by a number of unusual phenomena.
|
|||
|
These included the following (as I recall... it's been a while since I
|
|||
|
heard the story):
|
|||
|
|
|||
|
- - Tape drives would rewind and dismount their tapes in the middle of a
|
|||
|
job.
|
|||
|
|
|||
|
- - Disk drives would seek back&forth so rapidly that they'd attempt to
|
|||
|
walk across the floor.
|
|||
|
|
|||
|
- - The card-punch output device would occasionally start up of itself
|
|||
|
and punch a "lace card" (every hole punched). These would usually
|
|||
|
jam in the punch.
|
|||
|
|
|||
|
- - The console would print snide and insulting messages from Robin Hood
|
|||
|
to Friar Tuck, or vice versa.
|
|||
|
|
|||
|
- - The Xerox card reader had two output stackers; it could be
|
|||
|
instructed to stack into A, stack into B, or stack into A unless a
|
|||
|
card was unreadable, in which case the bad card was placed into
|
|||
|
stacker B. One of the patches installed by the ghosts added some
|
|||
|
code to the card-reader driver... after reading a card, it would flip
|
|||
|
over to the opposite stacker. As a result, card decks would divide
|
|||
|
themselves in half when they were read, leaving the operator to
|
|||
|
recollate them manually.
|
|||
|
|
|||
|
I believe that there were some other effects produced, as well.
|
|||
|
|
|||
|
Naturally, the operator called in the operating-system developers. They
|
|||
|
found the bandit ghost jobs running, and X'ed them... and were once
|
|||
|
again surprised. When Robin Hood was X'ed, the following sequence of
|
|||
|
events took place:
|
|||
|
|
|||
|
!X id1
|
|||
|
|
|||
|
id1: Friar Tuck... I am under attack! Pray save me! (Robin Hood)
|
|||
|
id1: Off (aborted)
|
|||
|
|
|||
|
id2: Fear not, friend Robin! I shall rout the Sheriff of Nottingham's men!
|
|||
|
|
|||
|
id3: Thank you, my good fellow! (Robin)
|
|||
|
|
|||
|
Each ghost-job would detect the fact that the other had been killed, and
|
|||
|
would start a new copy of the recently-slain program within a few
|
|||
|
milliseconds. The only way to kill both ghosts was to kill them
|
|||
|
simultaneously (very difficult) or to deliberately crash the system.
|
|||
|
|
|||
|
Finally, the system programmers did the latter... only to find that the
|
|||
|
bandits appeared once again when the system rebooted! It turned out
|
|||
|
that these two programs had patched the boot-time image (the /vmunix
|
|||
|
file, in Unix terms) and had added themselves to the list of programs
|
|||
|
that were to be started at boot time...
|
|||
|
|
|||
|
The Robin Hood and Friar Tuck ghosts were finally eradicated when the
|
|||
|
system staff rebooted the system from a clean boot-tape and reinstalled
|
|||
|
the monitor. Not long thereafter, Xerox released a patch for this
|
|||
|
problem.
|
|||
|
|
|||
|
I believe that Xerox filed a complaint with Motorola's management about
|
|||
|
the merry-prankster actions of the two employees in question. To the
|
|||
|
best of my knowledge, no serious disciplinary action was taken against
|
|||
|
either of these guys.
|
|||
|
|
|||
|
Several years later, both of the perpetrators were hired by Honeywell,
|
|||
|
which had purchased the rights to CP-V after Xerox pulled out of the
|
|||
|
mainframe business. Both of them made serious and substantial
|
|||
|
contributions to the Honeywell CP-6 operating system development effort.
|
|||
|
Robin Hood (Dan Holle) did much of the development of the PL-6
|
|||
|
system-programming language compiler; Friar Tuck (John Gabler) was one
|
|||
|
of the chief communications-software gurus for several years. They're
|
|||
|
both alive and well, and living in LA (Dan) and Orange County (John).
|
|||
|
Both are among the more brilliant people I've had the pleasure of
|
|||
|
working with.
|
|||
|
|
|||
|
Disclaimers: it has been quite a while since I heard the details of how
|
|||
|
this all went down, so some of the details above are almost certainly
|
|||
|
wrong. I shared an apartment with John Gabler for several years, and he
|
|||
|
was my Best Man when I married back in '86... so I'm somewhat
|
|||
|
predisposed to believe his version of the events that occurred.
|
|||
|
|
|||
|
- --
|
|||
|
Dave Platt
|
|||
|
Coherent Thought Inc. 3350 West Bayshore #205 Palo Alto CA 94303
|
|||
|
|
|||
|
|
|||
|
|