home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / hacking / general / alt_secu.faq < prev    next >
Encoding:
Text File  |  2003-06-11  |  51.3 KB  |  1,240 lines

  1.  
  2. Archive-name: alt-security-faq
  3. Last-modified: 1993/6/30
  4. Version: 1.6
  5.  
  6. Version History:
  7.  
  8. 1.6    Minor revisions, meant to bring it a bit more up to date.
  9. 1.5    Structural revision.
  10. 1.4    Fixed John Haugh's name, modified entry for "shadow"
  11.     Added Ulf Kieber's update on the rainbow series
  12.     Added bit about Karila paper
  13. 1.3:    Tweak for comp.security.misc/news.answers
  14.     Updated entry for orange book (foreign purchases)
  15. 1.2:    Undocumented prior to this
  16.  
  17. ---------------------------------------------------------------------------
  18.     Almost Everything You Ever Wanted To Know About Security*
  19.                *(but were afraid to ask!)
  20.  
  21. This document is meant to answer some of the questions which regularly
  22. appear in the Usenet newsgroups "comp.security.misc" and "alt.security",
  23. and is meant to provide some background to the subject for newcomers to
  24. that newsgroup.
  25.  
  26. This FAQ is maintained by Alec Muffett (Alec.Muffett@uk.sun.com), with
  27. contributions from numerous others; the views expressed in the document
  28. are the personal views of the author(s), and it should not be inferred
  29. that they are necessarily shared by anyone with whom the author(s) are
  30. now, or ever may be, associated.
  31.  
  32. Many thanks go to (in no particular order): Steve Bellovin, Matt Bishop,
  33. Mark Brader, Ed DeHart, Dave Hayes, Jeffrey Hutzelman, William LeFebvre,
  34. Wes Morgan, Rob Quinn, Chip Rosenthal, Wietse Venema, Gene Spafford,
  35. John Wack and Randall Atkinson.
  36.  
  37. Disclaimer: Every attempt is made to ensure that the information
  38. contained in this FAQ is up to date and accurate, but no responsibility
  39. will be accepted for actions resulting from information gained herein.
  40.  
  41. Questions which this document addresses:
  42.  
  43.  
  44. Q.1 What are alt.security and comp.security.misc for?
  45. Q.2 Whats the difference between a hacker and a cracker?
  46. Q.3 What is "security through obscurity"
  47. Q.4 What makes a system insecure?
  48. Q.5 What tools are there to aid security?
  49. Q.6 Isn't it dangerous to give cracking tools to everyone?
  50. Q.7 Where can I get these tools?
  51. Q.8 Why and how do systems get broken into?
  52. Q.9 Who can I contact if I get broken into?
  53. Q.10 What is a firewall?
  54. Q.11 Why shouldn't I use setuid shell scripts?
  55. Q.12 Why shouldn't I leave "root" permanently logged on the console?
  56. Q.13 Why shouldn't I create Unix accounts with null passwords?
  57. Q.14 What security holes are associated with X-windows (and other WMs)?
  58. Q.15 What security holes are associated with NFS?
  59. Q.16 How can I generate safe passwords?
  60. Q.17 Why are passwords so important?
  61. Q.18 How many possible passwords are there?
  62. Q.19 Where can I get more information?
  63. Q.20 How silly can people get?
  64.  
  65. ---------------------------------------------------------------------------
  66.  
  67.  
  68. Q.1 What are alt.security and comp.security.misc for?
  69.  
  70. Comp.security.misc is a forum for the discussion of computer security,
  71. especially those relating to Unix (and Unix like) operating systems.
  72. Alt.security used to be the main newsgroup covering this topic, as well
  73. as other issues such as car locks and alarm systems, but with the
  74. creation of comp.security.misc, this may change.
  75.  
  76. This FAQ will concentrate wholly upon computer related security issues.
  77.  
  78. The discussions posted range from the likes of "What's such-and-such
  79. system like?" and "What is the best software I can use to do so-and-so"
  80. to "How shall we fix this particular bug?", although there is often a
  81. low signal to noise ratio in the newsgroup (a problem which this FAQ
  82. hopes to address).
  83.  
  84. The most common flamewars start when an apparent security novice posts a
  85. message saying "Can someone explain how the such-and-such security hole
  86. works?" and s/he is immediately leapt upon by a group of self appointed
  87. people who crucify the person for asking such an "unsound" question in a
  88. public place, and flame him/her for "obviously" being a cr/hacker.
  89.  
  90. Please remember that grilling someone over a high flame on the grounds
  91. that they are "a possible cr/hacker" does nothing more than generate a
  92. lot of bad feeling.  If computer security issues are to be dealt with in
  93. an effective manner, the campaigns must be brought (to a large extent)
  94. into the open.
  95.  
  96. Implementing computer security can turn ordinary people into rampaging
  97. paranoiacs, unable to act reasonably when faced with a new situation.
  98. Such people take an adversarial attitude to the rest of the human race,
  99. and if someone like this is in charge of a system, users will rapidly
  100. find their machine becoming more restrictive and less friendly (fun?) to
  101. use.
  102.  
  103. This can lead to embarrasing situations, eg: (in one university) banning
  104. a head of department from the college mainframe for using a network
  105. utility that he wasn't expected to.  This apparently required a lot of
  106. explaining to an unsympathetic committee to get sorted out.
  107.  
  108. A more sensible approach is to secure a system according to its needs,
  109. and if its needs are great enough, isolate it completely.  Please, don't
  110. lose your sanity to the cause of computer security; it's not worth it.
  111.  
  112.  
  113. Q.2 What's the difference between a hacker and a cracker?
  114.  
  115. Lets get this question out of the way right now:
  116.  
  117. On USENET, calling someone a "cracker" is an unambiguous statement that
  118. some person persistently gets his/her kicks from breaking from into
  119. other peoples computer systems, for a variety of reasons.  S/He may pose
  120. some weak justification for doing this, usually along the lines of
  121. "because it's possible", but most probably does it for the "buzz" of
  122. doing something which is illicit/illegal, and to gain status amongst a
  123. peer group.
  124.  
  125. Particularly antisocial crackers have a vandalistic streak, and delete
  126. filestores, crash machines, and trash running processes in pursuit of
  127. their "kicks".
  128.  
  129. The term is also widely used to describe a person who breaks copy
  130. protection software in microcomputer applications software in order to
  131. keep or distribute free copies.
  132.  
  133. On USENET, calling someone a "hacker" is usually a statement that said
  134. person holds a great deal of knowledge and expertise in the field of
  135. computing, and is someone who is capable of exercising this expertise
  136. with great finesse.  For a more detailed definition, readers are
  137. referred to the Jargon File [Raymond].
  138.  
  139. In the "real world", various media people have taken the word "hacker"
  140. and coerced it into meaning the same as "cracker" - this usage
  141. occasionally appears on USENET, with disastrous and confusing results.
  142.  
  143. Posters to the security newsgroups should note that they currently risk
  144. a great deal of flamage if they use the word "hacker" in place of
  145. "cracker" in their articles.
  146.  
  147. NB: nowhere in the above do I say that crackers cannot be true hackers.
  148. It's just that I don't say that they are...
  149.  
  150.  
  151. Q.3 What is "security through obscurity"
  152.  
  153. Security Through Obscurity (STO) is the belief that any system can be
  154. secure so long as nobody outside of its implementation group is allowed
  155. to find out anything about its internal mechanisms.  Hiding account
  156. passwords in binary files or scripts with the presumption that "nobody
  157. will ever find it" is a prime case of STO.
  158.  
  159. STO is a philosophy favoured by many bureaucratic agencies (military,
  160. governmental, and industrial), and it used to be a major method of
  161. providing "pseudosecurity" in computing systems.
  162.  
  163. Its usefulness has declined in the computing world with the rise of open
  164. systems, networking, greater understanding of programming techniques, as
  165. well as the increase in computing power available to the average person.
  166.  
  167. The basis of STO has always been to run your system on a "need to know"
  168. basis.  If a person doesn't know how to do something which could impact
  169. system security, then s/he isn't dangerous.
  170.  
  171. Admittedly, this is sound in theory, but it can tie you into trusting a
  172. small group of people for as long as they live.  If your employees get
  173. an offer of better pay from somewhere else, the knowledge goes with
  174. them, whether the knowledge is replaceable or not.  Once the secret gets
  175. out, that is the end of your security.
  176.  
  177. Nowadays there is also a greater need for the ordinary user to know
  178. details of how your system works than ever before, and STO falls down a
  179. as a result.  Many users today have advanced knowledge of how their
  180. operating system works, and because of their experience will be able to
  181. guess at the bits of knowledge that they didn't "need to know".  This
  182. bypasses the whole basis of STO, and makes your security useless.
  183.  
  184. Hence there is now a need is to to create systems which attempt to be
  185. algorithmically secure (Kerberos, Secure RPC), rather than just
  186. philosophically secure.  So long as your starting criteria can be met,
  187. your system is LOGICALLY secure.
  188.  
  189. Incidentally, "Shadow Passwords" (below) are sometimes dismissed as STO,
  190. but this is incorrect, since (strictly) STO depends on restricting
  191. access to an algorithm or technique, whereas shadow passwords provide
  192. security by restricting access to vital data.
  193.  
  194.  
  195. Q.4 What makes a system insecure?
  196.  
  197. Switching it on.  The adage usually quoted runs along these lines:
  198.  
  199.  "The only system which is truly secure is one which is switched off
  200.  and unplugged, locked in a titanium lined safe, buried in a concrete
  201.  bunker, and is surrounded by nerve gas and very highly paid armed
  202.  guards.  Even then, I wouldn't stake my life on it."
  203.  
  204. (the original version of this is attributed to Gene Spafford)
  205.  
  206. A system is only as secure as the people who can get at it.  It can be
  207. "totally" secure without any protection at all, so long as its continued
  208. good operation is important to everyone who can get at it, assuming all
  209. those people are responsible, and regular backups are made in case of
  210. hardware problems.  Many laboratory PC's quite merrily tick away the
  211. hours like this.
  212.  
  213. The problems arise when a need (such as confidentiality) has to be
  214. fulfilled.  Once you start putting the locks on a system, it is fairly
  215. likely that you will never stop.
  216.  
  217. Security holes manifest themselves in (broadly) four ways:
  218.  
  219. 1) Physical Security Holes.
  220.  
  221. - Where the potential problem is caused by giving unauthorised persons
  222. physical access to the machine, where this might allow them to perform
  223. things that they shouldn't be able to do.
  224.  
  225. A good example of this would be a public workstation room where it would
  226. be trivial for a user to reboot a machine into single-user mode and muck
  227. around with the workstation filestore, if precautions are not taken.
  228.  
  229. Another example of this is the need to restrict access to confidential
  230. backup tapes, which may (otherwise) be read by any user with access to
  231. the tapes and a tape drive, whether they are meant to have permission or
  232. not.
  233.  
  234. 2) Software Security Holes
  235.  
  236. - Where the problem is caused by badly written items of "privledged"
  237. software (daemons, cronjobs) which can be compromised into doing things
  238. which they shouldn't oughta.
  239.  
  240. The most famous example of this is the "sendmail debug" hole (see
  241. bibliography) which would enable a cracker to bootstrap a "root" shell.
  242. This could be used to delete your filestore, create a new account, copy
  243. your password file, anything.
  244.  
  245. (Contrary to popular opinion, crack attacks via sendmail were not just
  246. restricted to the infamous "Internet Worm" - any cracker could do this
  247. by using "telnet" to port 25 on the target machine.  The story behind a
  248. similar hole (this time in the EMACS "move-mail" software) is described
  249. in [Stoll].)
  250.  
  251. New holes like this appear all the time, and your best hopes are to:
  252.  
  253.   a: try to structure your system so that as little software as possible
  254.   runs with root/daemon/bin privileges, and that which does is known to
  255.   be robust.
  256.  
  257.   b: subscribe to a mailing list which can get details of problems
  258.   and/or fixes out to you as quickly as possible, and then ACT when you
  259.   receive information.
  260.  
  261. 3) Incompatible Usage Security Holes
  262.  
  263. - Where, through lack of experience, or no fault of his/her own, the
  264. System Manager assembles a combination of hardware and software which
  265. when used as a system is seriously flawed from a security point of view.
  266. It is the incompatibility of trying to do two unconnected but useful
  267. things which creates the security hole.
  268.  
  269. Problems like this are a pain to find once a system is set up and
  270. running, so it is better to build your system with them in mind.  It's
  271. never too late to have a rethink, though.
  272.  
  273. Some examples are detailed below; let's not go into them here, it would
  274. only spoil the surprise.
  275.  
  276. 4) Choosing a suitable security philosophy and maintaining it.
  277.  
  278. >From: Gene Spafford <spaf@cs.purdue.edu>
  279. >The fourth kind of security problem is one of perception and
  280. >understanding.  Perfect software, protected hardware, and compatible
  281. >components don't work unless you have selected an appropriate security
  282. >policy and turned on the parts of your system that enforce it.  Having
  283. >the best password mechanism in the world is worthless if your users
  284. >think that their login name backwards is a good password! Security is
  285. >relative to a policy (or set of policies) and the operation of a system
  286. >in conformance with that policy.
  287.  
  288.  
  289. Q.5 What tools are there to aid security?
  290.  
  291. 1) "COPS"
  292.  
  293. Managed by Dan Farmer, this is a long established suite of shell scripts
  294. which forms an extensive security testing system; There is a rudimentary
  295. password cracker, and routines to check the filestore for suspicious
  296. changes in setuid programs, others to check permissions of essential
  297. system and user files, and still more to see whether any system software
  298. behaves in a way which could cause problems.
  299.  
  300. The software comes in two versions - one written in Perl and one
  301. (largely equivalent) written in shell scripts.  The latest version is
  302. very up-to-date on Unix Security holes.
  303.  
  304. 2) "Crack" (+ "UFC").
  305.  
  306. Written by Alec Muffett, this is a program written with one purpose in
  307. mind: to break insecure passwords.  It is probably the most efficent and
  308. friendly password cracker that is publically available, with the ability
  309. to let the user to specify precisely how to form the words to use as
  310. guesses at users passwords.
  311.  
  312. It also has an inbuilt networking capability, allowing the load of
  313. cracking to be spread over as many machines as are available on a
  314. network, and it is supplied with an optimised version of the Unix crypt()
  315. algorithm.
  316.  
  317. An even faster version of the crypt() algorithm, "UFC" by Michael Glad,
  318. is freely available on the network, and the latest versions of UFC and
  319. Crack are compatible and can be easily hooked together.
  320.  
  321. 3) NPasswd (Clyde Hoover) & Passwd+ (Matt Bishop)
  322.  
  323. These programs are written to redress the balance in the password
  324. cracking war.  They provide replacements for the standard "passwd"
  325. command, but prevent a user from selecting passwords which are easily
  326. compromised by programs like Crack.
  327.  
  328. Several versions of these programs are available on the network, hacked
  329. about to varying degrees in order to provide compatibility for System V
  330. based systems, NIS/YP, shadow password schemes, etc.  The usual term for
  331. this type of program is a 'fascist' password program.
  332.  
  333. 4) "Shadow" - a Shadow Password Suite
  334.  
  335. This program suite (by John F Haugh II) is a set of program and function
  336. replacements (compatible with most Unixes) which implements shadow
  337. passwords, ie: a system where the plaintext of the password file is
  338. hidden from all users except root, hopefully stopping all password
  339. cracking attempts at source.  In combination with a fascist passwd
  340. frontend, it should provide a good degree of password file robustness.
  341.  
  342. >From: jfh@rpp386.lonestar.org (John F. Haugh II)
  343. >Shadow does much more than hide passwords.  It also provides for
  344. >terminal access control, user and group administration, and a few
  345. >other things which I've forgotten.  There are a dozen or more
  346. >commands in the suite, plus a whole slew of library functions.
  347.  
  348. 5) TCP Wrappers (Wietse Venema)
  349.  
  350. These are programs which provide a front-end filter to many of the
  351. network services which Unix provides by default.  If installed, they can
  352. curb otherwise unrestricted access to potential dangers like incoming
  353. FTP/TFTP, Telnet, etc, and can provide extra logging information, which
  354. may be of use if it appears that someone is trying to break in.
  355.  
  356. 6) SecureLib
  357.  
  358. >From: phil@pex.eecs.nwu.edu (William LeFebvre)
  359. >You may want to add a mention of securelib, a security enhancer
  360. >available for SunOS version 4.1 and higher.
  361.  
  362. >Securelib contains replacement routines for three kernel calls:
  363. >accept(), recvfrom(), recvmsg().  These replacements are compatible with
  364. >the originals, with the additional functionality that they check the
  365. >Internet address of the machine initiating the connection to make sure
  366. >that it is "allowed" to connect.  A configuration file defines what
  367. >hosts are allowed for a given program.  Once these replacement routines
  368. >are compiled, they can be used when building a new shared libc library.
  369. >The resulting libc.so can then be put in a special place.  Any program
  370. >that should be protected can then be started with an alternate
  371. >LD_LIBRARY_PATH.
  372.  
  373. 7) SPI
  374.  
  375. >From: Gene Spafford <spaf@cs.purdue.edu>
  376. >Sites connected with the Department of Energy and some military
  377. >organizations may also have access to the SPI package.  Interested (and
  378. >qualified) users should contact the CIAC at LLNL for details.
  379.  
  380. >SPI is a screen-based administrator's tool that checks configuration
  381. >options, includes a file-change (integrity) checker to monitor for
  382. >backdoors and viruses, and various other security checks.  Future
  383. >versions will probably integrate COPS into the package.  It is not
  384. >available to the general public, but it is available to US Dept of
  385. >Energy contractors and sites and to some US military sites.  A version
  386. >does or will exist for VMS, too.  Further information on availabilty can
  387. >be had from the folks at the DoE CIAC.
  388.  
  389. 8) CrackLib
  390.  
  391. Cracklib is a C library containing a routine which may be wired into all
  392. sorts of "passwd"-like programs; not just Unix, but with a little effor
  393. it could probably go onto VMS (this is being worked upon), or many other
  394. systems.
  395.  
  396. Using "CrackLib" allows you to wire proactive password checking into
  397. _any_ of you applications; it is an offshoot of the the version 5
  398. "Crack" software, and contains a considerable number of ideas nicked
  399. from the new software.
  400.  
  401.  
  402. Q.6 Isn't it dangerous to give cracking tools to everyone?
  403.  
  404. That depends on your point of view.  Some people have complained that
  405. giving unrestricted public access to programs like COPS and Crack is
  406. irresponsible because the "baddies" can get at them easily.
  407.  
  408. Alternatively, you may believe that the really bad "baddies" have had
  409. programs like this for years, and that it's really a stupendously good
  410. idea to give these programs to the good guys too, so that they may check
  411. the integrity of their system before the baddies get to them.
  412.  
  413. So, who wins more from having these programs freely available? The good
  414. guys or the bad ? You decide, but remember that less honest tools than
  415. COPS and Crack tools were already out there, and most of the good guys
  416. didn't have anything to help.
  417.  
  418.  
  419. Q.7 Where can I get these tools?
  420.  
  421. COPS:
  422.  
  423.   V1.04, available for FTP from cert.sei.cmu.edu in pub/cops and
  424.   archive.cis.ohio-state.edu in pub/cops.
  425.  
  426. Crack/UFC:
  427.  
  428.   Crack v4.1f and UFC Patchlevel 1.  Get both of them.
  429.  
  430.   Available from:         ftp.uu.net (137.39.1.9)
  431.   In the directory:       /usenet/comp.sources.misc/volume28
  432.   As:                     crack/part01.Z to part05.Z      ( 5 files )
  433.   And                     ufc-crypt/part01.Z & part02.Z   ( 2 files )
  434.  
  435. >From: glad@daimi.aau.dk (Michael Glad)
  436. >
  437. >A UNIX password cracker for the Thinking Machine CM/2 and CM/200
  438. >Connection Machines is available for FTP from
  439. >
  440. >    ftp.denet.dk:/pub/misc/cm200-UFC.tar.Z
  441. >
  442. >To quote the README file:
  443. >
  444. > Overview
  445. >
  446. > This is a password cracker for the Thinking Machines CM/2 and CM/200
  447. > Connection Machines. It features
  448. >
  449. >     o A standalone dictionary preprocessor accepting a
  450. >      language of rewrite rules compatible with the one
  451. >      found in Alec Muffets 'Crack' password cracker as of
  452. >         release 4.1f.
  453. >
  454. >    o An optimized port of the UFC-crypt: a fast implementation
  455. >      of the UNIX crypt(3) function developed by Michael Glad and
  456. >      donated to the Free Software Foundation (FSF).
  457. >
  458. >    o The password cracker itself. It supports restart of crashed
  459. >      runs and incremental use. Incremental use means that when
  460. >      you use a fixed dictionary, the cracker can maintain a status
  461. >      file of already cracked passwords and passwords considered
  462. >      uncrackable (because they've been tested in previous runs).
  463. >      Thus it only has to waste CPU cycles on new accounts and accounts
  464. >      with changed passwords.
  465. >
  466. >    o When run with a _large_ dictionary (a 1 million word dictionary
  467. >      obtained by preprocessing /usr/dict/words), the cracker can
  468. >      test in excess of 50,000 passwords a second on a CM/200 with
  469. >      8192 processors.
  470. > [...]
  471.  
  472. NPasswd:
  473.  
  474.   Currently suffering from being hacked about by many different people.
  475.   Version 2.0 is in the offing, but many versions exist in many
  476.   different configurations. Will chase this up with authors - AEM
  477.  
  478. Passwd+:
  479.  
  480.   "alpha version, update 3" - beta version due soon.  Available from
  481.   dartmouth.edu as pub/passwd+.tar.Z
  482.  
  483. Shadow:
  484.  
  485.   This is available from the comp.sources.misc directory at any major
  486.   USENET archive - relevant files are in:
  487.  
  488.         usenet/comp.sources.misc/volume26
  489.         usenet/comp.sources.misc/volume28
  490.         usenet/comp.sources.misc/volume29
  491.         usenet/comp.sources.misc/volume30
  492.         usenet/comp.sources.misc/volume32
  493.  
  494. - the contents of which are needed, for a full set of patches.
  495.  
  496. TCP Wrappers:
  497.  
  498.   Available for anonymous FTP:
  499.  
  500.     ftp.win.tue.nl: pub/security/log_tcp.shar.Z
  501.     cert.sei.cmu.edu: pub/network_tools/tcp_wrapper.shar
  502.  
  503. Securelib:
  504.  
  505.   The latest version of securelib is available via anonymous FTP from the
  506.   host "eecs.nwu.edu".  It is stored in the file "pub/securelib.tar".
  507.  
  508. CrackLib:
  509.  
  510.   Posted to "comp.sources.misc", and therefore available from any major
  511.   usenet archive. A reference copy (+ large dictionary) can be FTP'ed from:
  512.  
  513.      black.ox.ac.uk:~ftp/src/security/cracklib25.tar.Z
  514.  
  515.   - if you search for CrackLib on "Archie", care should be taken to
  516.   get the package from a comp.sources.misc archive; beware confusing
  517.   it with a package of the same name, which was hacked into "npasswd".
  518.  
  519.  
  520. Q.8 Why and how do systems get broken into?
  521.  
  522. This is hard to answer definitively.  Many systems which crackers break
  523. into are only used as a means of entry into yet more systems; by hopping
  524. between many machines before breaking into a new one, the cracker hopes
  525. to confuse any possible pursuers and put them off the scent.  There is
  526. an advantage to be gained in breaking into as many different sites as
  527. possible, in order to "launder" your connections.
  528.  
  529. Another reason may be psychological: some people love to play with
  530. computers and stretch them to the limits of their capabilities.
  531.  
  532. Some crackers might think that it's "really neat" to hop over 6 Internet
  533. machines, 2 gateways and an X.25 network just to knock on the doors of
  534. some really famous company or institution (eg: NASA, CERN, AT+T, UCB).
  535. Think of it as inter-network sightseeing.
  536.  
  537. This view is certainly appealing to some crackers, and certainly leads
  538. to both the addiction and self-perpetuation of cracking.
  539.  
  540. As to the "How" of the question, this is again a very sketchy area.  In
  541. universities, it is extremely common for computer account to be passed
  542. back and forth between undergraduates:
  543.  
  544.   "Mary gives her account password to her boyfriend Bert at another
  545.   site, who has a friend Joe who "plays around on the networks".  Joe
  546.   finds other crackable accounts at Marys site, and passes them around
  547.   amongst his friends..." pretty soon, a whole society of crackers is
  548.   playing around on the machines that Mary uses.
  549.  
  550. This sort of thing happens all the time, and not just in universities.
  551. One solution is in education.  Do not let your users develop attitudes
  552. like this one:
  553.  
  554.        "It doesn't matter what password I use on _MY_ account,
  555.             after all, I only use it for laserprinting..."
  556.                 - an Aberystwyth Law student, 1991
  557.  
  558. Teach them that use of the computer is a group responsibility.  Make
  559. sure that they understand that a chain is only as strong as it's weak
  560. link.
  561.  
  562. Finally, when you're certain that they understand your problems as a
  563. systems manager and that they totally sympathise with you, configure
  564. your system in such a way that they can't possibly get it wrong.
  565.  
  566. Believe in user education, but don't trust to it alone.
  567.  
  568.  
  569. Q.9 Who can I contact if I get broken into?
  570.  
  571. If you're connected to the Internet, you should certainly get in touch
  572. with CERT, the Computer Emergency Response Team.
  573.  
  574.     To quote the official blurb:
  575.  
  576. >From: Ed DeHart
  577. > The Computer Emergency Response Team (CERT) was formed by the Defense
  578. > Advanced Research Projects Agency (DARPA) in 1988 to serve as a focal
  579. > point for the computer security concerns of Internet users.  The
  580. > Coordination Center for the CERT is located at the Software Engineering
  581. > Institute, Carnegie Mellon University, Pittsburgh, PA.
  582.  
  583. > Internet E-mail: cert@cert.sei.cmu.edu
  584. > Telephone: 412-268-7090 24-hour hotline:
  585. >     CERT/CC personnel answer 7:30a.m. to 6:00p.m. EST(GMT-5)/EDT(GMT-4),
  586. >     and are on call for emergencies during other hours.
  587.  
  588. ...and also, the umbrella group "FIRST", which mediates between the
  589. incident handling teams themselves...
  590.  
  591. >From: John Wack <wack@csrc.ncsl.nist.gov>
  592. >[...] FIRST is actually a very viable and growing
  593. >organization, of which CERT is a member.  It's not actually true that,
  594. >if you're connected to the Internet, you should call CERT only - that
  595. >doesn't do justice to the many other response teams out there and in the
  596. >process of forming.
  597.  
  598. >NIST is currently the FIRST secretariat; we maintain an anonymous ftp
  599. >server with a directory of FIRST information (csrc.ncsl.nist.gov:
  600. >~/pub/first).  This directory contains a contact file that lists the
  601. >current members and their constituencies and contact information
  602. >(filename "first-contacts").
  603.  
  604. >While CERT is a great organization, other response teams who do handle
  605. >incidents on their parts of the Internet merit some mention as well -
  606. >perhaps mentioning the existence of this file would help to do that in a
  607. >limited space.
  608.  
  609. The file mentioned is a comprehensive listing of contact points per
  610. network for security incidents.  It is too large to reproduce here, I
  611. suggest that the reader obtains a copy for his/her self by the means
  612. given.
  613.  
  614.  
  615. Q.10 What is a firewall?
  616.  
  617. A (Internet) firewall is a machine which is attached (usually) between
  618. your site and a wide area network.  It provides controllable filtering
  619. of network traffic, allowing restricted access to certain internet port
  620. numbers (ie: services that your machine would otherwise provide to the
  621. network as a whole) and blocks access to pretty well everything else.
  622. Similar machines are available for other network types, too.
  623.  
  624. Firewalls are an effective "all-or-nothing" approach to dealing with
  625. external access security, and they are becoming very popular, with the
  626. rise in Internet connectivity.
  627.  
  628. For more information on these sort of topics, see the Gateway paper by
  629. [Cheswick], below.
  630.  
  631.  
  632. Q.11 Why shouldn't I use setuid shell scripts?
  633.  
  634. You shouldn't use them for a variety of reasons, mostly involving bugs
  635. in the Unix kernel.  Here are a few of the more well known problems,
  636. some of which are fixed on more recent operating systems.
  637.  
  638. 1) If the script begins "#!/bin/sh" and a link (symbolic or otherwise)
  639. can be made to it with the name "-i", a setuid shell can be immediately
  640. obtained because the script will be invoked: "#!/bin/sh -i", ie: an
  641. interactive shell.
  642.  
  643. 2) Many kernels suffer from a race condition which can allow you to
  644. exchange the shellscript for another executable of your choice between
  645. the times that the newly exec()ed process goes setuid, and when the
  646. command interpreter gets started up.  If you are persistent enough, in
  647. theory you could get the kernel to run any program you want.
  648.  
  649. 3) The IFS bug: the IFS shell variable contains a list of characters to
  650. be treated like whitespace by a shell when parsing command names.  By
  651. changing the IFS variable to contain the "/" character, the command
  652. "/bin/true" becomes "bin true".
  653.  
  654. All you need do is export the modified IFS variable, install a command
  655. called "bin" in your path, and run a setuid script which calls
  656. "/bin/true".  Then "bin" will be executed whilst setuid.
  657.  
  658. If you really must write scripts to be setuid, either
  659.  
  660.   a) Put a setuid wrapper in "C" around the script, being very careful
  661.   to reset IFS and PATH to something sensible before exec()ing the
  662.   script.  If your system has runtime linked libraries, consider the
  663.   values of the LD_LIBRARY_PATH also.
  664.  
  665.   b) Use a scripting language like Perl which has a safe setuid
  666.   facility, and is proactively rabid about security.
  667.  
  668. - but really, it's safest not to use setuid scripts at all.
  669.  
  670.  
  671. Q.12 Why shouldn't I leave "root" permanently logged on the console?
  672.  
  673. Using a 'smart' terminal as console and leaving "/dev/console" world
  674. writable whilst "root" is logged in is a potential hole.  The terminal
  675. may be vulnerable to remote control via escape sequences, and can be
  676. used to 'type' things into the root shell.  The terminal type can
  677. usually be obtained via the "ps" command.
  678.  
  679. Various solutions to this can be devised, usually by giving the console
  680. owner and group-write access only , and then using the setgid mechanism
  681. on any program which has need to output to the console (eg: "write").
  682.  
  683.  
  684. Q.13 Why shouldn't I create Unix accounts with null passwords?
  685.  
  686. Creating an unpassworded account to serve any purpose is potentially
  687. dangerous, not for any direct reason, but because it can give a cracker
  688. a toehold.
  689.  
  690. For example, on many systems you will find a unpassworded user "sync",
  691. which allows the sysman to sync the disks without being logged in.  This
  692. appears to be both safe and innocuous.
  693.  
  694. The problem with this arises if your system is one of the many which
  695. doesn't do checks on a user before authorising them for (say) FTP.  A
  696. cracker might be able to connect to your machine for one of a variety of
  697. FTP methods, pretending to be user "sync" with no password, and then
  698. copy your password file off for remote cracking.
  699.  
  700. Although there are mechanisms to prevent this sort of thing happening in
  701. most modern vesions of Unix, to be totally secure requires an in-depth
  702. knowledge of every package on your system, and how it deals with the
  703. verification of users.  If you can't be sure, it's probably better not
  704. to leave holes like this around.
  705.  
  706. Another hole that having null-password accounts opens up is the
  707. possibility (on systems with runtime linked libraries) of spoofing
  708. system software into running your programs as the "sync" user, by
  709. changing the LD_LIBRARY_PATH variable to a library of your own devising,
  710. and running "login -p" or "su" to turn into that user.
  711.  
  712.  
  713. Q.14 What security holes are associated with X-windows (and other WMs)?
  714.  
  715. Lots, some which affect use of X only, and some which impact the
  716. security of the entire host system.
  717.  
  718. I would prefer not to go into too much detail here, and would refer any
  719. reader reader looking for detailed information to the other FAQ's in
  720. relevant newsgroups.  (comp.windows.*)
  721.  
  722. One point I will make is that X is one of those packages which often
  723. generates "Incompatible Usage" security problems, for instance the
  724. ability for crackers to run xsessions on hosts under accounts with no
  725. password (eg: sync), if it is improperly set up.  Read the question
  726. about unpassworded accounts in this FAQ.
  727.  
  728.  
  729. Q.15 What security holes are associated with NFS?
  730.  
  731. Lots, mostly to do with who you export your disks to, and how.  The
  732. security of NFS relies heavily upon who is allowed to mount the files
  733. that a server exports, and whether they are exported read only or not.
  734.  
  735. The exact format for specifying which hosts can mount an exported
  736. directory varies between Unix implementations, but generally the
  737. information is contained within the file "/etc/exports".
  738.  
  739. This file contains a list of directories and for each one, it has a
  740. series of either specific "hosts" or "netgroups" which are allowed to
  741. NFS mount that directory.  This list is called the "access list".
  742.  
  743. The "hosts" are individual machines, whilst "netgroups" are combinations
  744. of hosts and usernames specified in "/etc/netgroup".  These are meant to
  745. provide a method of finetuning access.  Read the relevant manual page
  746. for more information about netgroups.
  747.  
  748. The exports file also contains information about whether the directory
  749. is to be exported as read-only, read-write, and whether super-user
  750. access is to be allowed from clients which mount that directory.
  751.  
  752. The important point to remember is that if the access list for a
  753. particular directory in /etc/exports contains:
  754.  
  755. 1) <nothing>
  756.  
  757. Your directory can be mounted by anyone, anywhere.
  758.  
  759. 2) <a specific hostname>
  760.  
  761. Your directory can be mounted by anyone permitted to run the mount
  762. command at hostname.  This might not be a trustworthy person; for
  763. instance, if the machine is a PC running NFS, it could be anyone.
  764.  
  765. 3) <a netgroup name>
  766.  
  767. If the netgroup:
  768.  
  769. a) is empty, anyone can mount your directory, from anywhere.
  770.  
  771. b) contains "(,,)", anyone can mount your directory, from anywhere.
  772.  
  773. c) contains the name of a netgroup which is empty or contains "(,,)",
  774.    anyone can mount your directory, from anywhere.
  775.  
  776. d) contains "(hostname,,)", anyone on the named host who is permissioned
  777.    to mount files can mount your directory.
  778.  
  779. e) contains "(,username,)", the named user can mount your directory,
  780.    from anywhere.
  781.  
  782. 4) <a word which is neither a hostname or a netgroup>
  783.  
  784. If you meant to export the directory to the host "athena" but actually
  785. type "ahtena", the word "ahtena" is taken as a netgroup name, is found
  786. to be an empty netgroup, and thus the directory can be mounted by
  787. anyone, anywhere.
  788.  
  789. So, if you aren't careful about what you put into /etc/exports and
  790. /etc/netgroup you could find that a user with a PC could
  791.  
  792.   a) mount your mainframe filestore as a network disk
  793.   b) edit your /etc/passwd or .rhosts or /etc/hosts.equiv ...
  794.   c) log into your mainframe as another user, possibly "root"
  795.  
  796. Disclaimer: The above information may not be true for all platforms
  797. which provide an NFS serving capability, but is true for all of the ones
  798. in my experience (AEM).  It should be noted that the SAFE way to create
  799. an "empty" netgroup entry is:
  800.  
  801.                ngname (-,-,-)
  802.  
  803. Which is a netgroup which matches no-one on no-host on no-NIS-domain.
  804.  
  805.  
  806. Q.16 How can I generate safe passwords?
  807.  
  808. You can't.  The key word here is GENERATE.  Once an algorithm for
  809. creating passwords is specified using upon some systematic method, it
  810. merely becomes a matter of analysing your algorithm in order to find
  811. every password on your system.
  812.  
  813. Unless the algorithm is very subtle, it will probably suffer from a very
  814. low period (ie: it will soon start to repeat itself) so that either:
  815.  
  816.   a) a cracker can try out every possible output of the password
  817.   generator on every user of the system, or
  818.  
  819.   b) the cracker can analyse the output of the password program,
  820.   determine the algorithm being used, and apply the algorithm to other
  821.   users to determine their passwords.
  822.  
  823. A beautiful example of this (where it was disastrously assumed that a
  824. random number generator could generate an infinite number of random
  825. passwords) is detailed in [Morris & Thompson].
  826.  
  827. The only way to get a reasonable amount of variety in your passwords
  828. (I'm afraid) is to make them up.  Work out some flexible method of your
  829. own which is NOT based upon:
  830.  
  831.   1) modifying any part of your name or name+initials
  832.   2) modifying a dictionary word
  833.   3) acronyms
  834.   4) any systematic, well-adhered-to algorithm whatsoever
  835.  
  836. For instance, NEVER use passwords like:
  837.  
  838. alec7         - it's based on the users name (& it's too short anyway)
  839. tteffum        - based on the users name again
  840. gillian        - girlfiends name (in a dictionary)
  841. naillig        - ditto, backwards
  842. PORSCHE911     - it's in a dictionary
  843. 12345678     - it's in a dictionary (& people can watch you type it easily)
  844. qwertyui     - ...ditto...
  845. abcxyz        - ...ditto...
  846. 0ooooooo    - ...ditto...
  847. Computer     - just because it's capitalised doesn't make it safe
  848. wombat6     - ditto for appending some random character
  849. 6wombat     - ditto for prepending some random character
  850. merde3        - even for french words...
  851. mr.spock     - it's in a sci-fi dictionary
  852. zeolite     - it's in a geological dictionary
  853. ze0lite     - corrupted version of a word in a geological dictionary
  854. ze0l1te     - ...ditto...
  855. Z30L1T3     - ...ditto...
  856.  
  857. I hope that these examples emphasise that ANY password derived from ANY
  858. dictionary word (or personal information), modified in ANY way,
  859. constitutes a potentially guessable password.
  860.  
  861. For more detailed information in the same vein, you should read the
  862. APPENDIX files which accompany Crack [Muffett].
  863.  
  864.  
  865. Q.17 Why are passwords so important?
  866.  
  867. Because they are the first line of defence against interactive attacks
  868. on your system.  It can be stated simply: if a cracker cannot interact
  869. with your system(s), and he has no access to read or write the
  870. information contained in the password file, then he has almost no
  871. avenues of attack left open to break your system.
  872.  
  873. This is also why, if a cracker can at least read your password file (and
  874. if you are on a vanilla modern Unix, you should assume this) it is so
  875. important that he is not able to break any of the passwords contained
  876. therein.  If he can, then it is also fair to assume that he can (a) log
  877. on to your system and can then (b) break into "root" via an operating
  878. system hole.
  879.  
  880.  
  881. Q.18 How many possible passwords are there?
  882.  
  883. Most people ask this at one time or another, worried that programs like
  884. Crack will eventually grow in power until they can do a completely
  885. exhaustive search of all possible passwords, to break into a specific
  886. users' account - usually root.
  887.  
  888. If (to simplify the maths) we make the assumptions that:
  889.  
  890.   1) Valid passwords are created from a set of 62 chars [A-Za-z0-9]
  891.   2) Valid passwords are to be between 5 and 8 chars long
  892.  
  893. Then the size of the set of all valid passwords is: (in base 62)
  894.  
  895.                    100000b62 +
  896.                   1000000b62 +
  897.                  10000000b62 +
  898.                 100000000b62 =
  899.                 ---------
  900.                 111100000b62
  901.  
  902.               ~= 222000000000000 (decimal)
  903.  
  904. A figure which is far too large to usefully undertake an exhaustive
  905. search with current technologies.  Don't forget, however, that passwords
  906. CAN be made up with even more characters then this; you can use <space>,
  907. all the punctuation characters, and symbols (~<>|\#$%^&*) too.  If you
  908. can use some of all the 95 non-control characters in passwords, this
  909. increases the search space for a cracker to cover even further.
  910.  
  911. However, it's still MUCH more efficient for a cracker to get a copy of
  912. "Crack", break into ANY account on the system (you only need one), log
  913. onto the machine, and spoof his way up to root priviledges via operating
  914. systems holes.
  915.  
  916. Take comfort from these figures.  If you can slam the door in the face
  917. of a potential crackers with a robust password file, you have sealed
  918. most of the major avenues of attack immediately.
  919.  
  920.  
  921. Q.19 Where can I get more information?
  922.  
  923. Books:
  924.  
  925. [Kochan & Wood]
  926. Unix System Security
  927.  
  928. A little dated for modern matters, but still a very good book on the
  929. basics of Unix security.
  930.  
  931. [Spafford & Garfinkel]
  932. Practical Unix Security
  933.  
  934. This wonderful book is a worthy successor to the above, and covers a
  935. wide variety of the topics which the Unix (and some non Unix) system
  936. manager of the 90's will come across.
  937.  
  938. >From: Gene Spafford <spaf@cs.purdue.edu>
  939. >Mention appendix E in "Practical Unix Security."
  940.  
  941. Okay: Appendix E contains an extensive bibliography with even more
  942. pointers to security books than this FAQ contains.
  943.  
  944. [Stoll]
  945. The Cuckoo's Egg
  946.  
  947. A real life 1980's thriller detailing the tracing of a cracker from
  948. Berkeley across the USA and over the Atlantic to Germany.  An excellent
  949. view from all points: a good read, informative about security, funny,
  950. and a good illustration of the cracker psyche.  Contains an excellent
  951. recipie for chocolate chip cookies.
  952.  
  953. A videotape of the "NOVA" (PBS's Science Program on TV) episode that
  954. explained/reenacted this story is available from PBS Home Video.  They
  955. have a toll-free 800 number within North America.
  956.  
  957. I believe that this program was aired on the BBC's "HORIZON" program,
  958. and thus will be available from BBC Enterprises, but I haven't checked
  959. this out yet - AEM
  960.  
  961. [Raymond] (Ed.)
  962. The New Hackers Dictionary/Online Jargon File
  963.  
  964. A mish-mash of history and dictionary definitions which explains why it
  965. is so wonderful to be a hacker, and why those crackers who aren't
  966. hackers want to be called "hackers".  The Jargon File version is
  967. available online - check an archie database for retails.  Latest
  968. revision: 2.9.12.
  969.  
  970. [Gasser]
  971. Building a Secure Computer System.
  972.  
  973. By Morrie Gasser, and van Nostrand Reinhold; explains what is required
  974. to build a secure computer system.
  975.  
  976. [Rainbow Series] (Especially the "Orange Book")
  977.  
  978. >From: epstein@trwacs.fp.trw.com (Jeremy Epstein)
  979. >The "Rainbow Series" consists of about 25 volumes.  Some of the
  980. >more interesting ones are:
  981. >
  982. >    The "Orange Book", or Trusted Computer Systems Evaluation
  983. >        Criteria, which describes functional and assurance
  984. >        requirements for computer systems
  985. >
  986. >    Trusted Database Interpretation, which talks both about
  987. >        trusted databases and building systems out of trusted
  988. >        components
  989. >
  990. >    Trusted Network Interpretation, which (obviously) talks
  991. >        about networked systems
  992. >
  993. >A (possibly) complete list is:
  994. >    -- Department of Defense Trusted Computer System Evaluation Criteria
  995. >       (TCSEC), aka the "Orange Book"
  996. >    -- Computer Security Subsystem Interpretation of the TCSEC
  997. >    -- Trusted Data Base Management System Interpretation of the TCSEC
  998. >    -- Trusted Network Interpretation of the TCSEC
  999. >    -- Trusted Network Interpretation Environments Guideline -- Guidance
  1000. >       for Applying the Trusted Network Interpretation
  1001. >    -- Trusted Unix Working Group (TRUSIX) Rationale for Selecting
  1002. >       Access Control List Features for the Unix System
  1003. >    -- Trusted Product Evaulations -- A Guide for Vendors
  1004. >    -- Computer Security Requirements -- Guidance for Applying the DoD
  1005. >       TCSEC in Specific Environments
  1006. >    -- Technical Rationale Behind CSC-STD-003-85: Computer Security
  1007. >       Requirements
  1008. >    -- Trusted Product Evaluation Questionnaire
  1009. >    -- Rating Maintenance Phase -- Program Document
  1010. >    -- Guidelines for Formal Verification Systems
  1011. >    -- A Guide to Understanding Audit in Trusted Systems
  1012. >    -- A Guide to Understanding Trusted Facility Management
  1013. >    -- A Guide to Understanding Discretionary Access Control in Trusted
  1014. >       Systems
  1015. >    -- A Guide to Understanding Configuration Management in Trusted Systems
  1016. >    -- A Guide to Understanding Design Documentation in Trusted Systems
  1017. >    -- A Guide to Understanding Trusted Distribution in Trusted Systems
  1018. >    -- A Guide to Understanding Data Remanence in Automated Information
  1019. >       Systems
  1020. >    -- Department of Defense Password Management Guideline
  1021. >    -- Glossary of Computer Security Terms
  1022. >    -- Integrity in Automated Information Systems
  1023. >
  1024. >You can get your own copy (free) of any or all of the books by
  1025. >writing or calling:
  1026. >
  1027. >    INFOSEC Awareness Office
  1028. >    National Computer Security Centre
  1029. >    9800 Savage Road
  1030. >    Fort George G. Meade, MD  20755-6000
  1031. >    Tel +1 301 766-8729
  1032. >
  1033. >If you ask to be put on the mailing list, you'll get a copy of each new
  1034. >book as it comes out (typically a couple a year).
  1035.  
  1036. >From: kleine@fzi.de (Karl Kleine)
  1037. >I was told that this offer is only valid for US citizens ("We only send
  1038. >this stuff to a US postal address").  Non-US people have to PAY to get
  1039. >hold of these documents.  They can be ordered from NTIS, the National
  1040. >Technical Information Service:
  1041. >    NTIS,
  1042. >    5285 Port Royal Rd,
  1043. >    Springfield VA 22151,
  1044. >    USA
  1045. >    order dept phone: +1-703-487-4650, fax +1-703-321-8547
  1046.  
  1047. >From: Ulf Kieber <kieber@de.tu-dresden.inf.freia>
  1048. >just today I got my set of the Rainbow Series.
  1049. >
  1050. >There are three new books:
  1051. > -- A Guide to Understanding Trusted Recovery in Trusted Systems
  1052. > -- A Guide to Understanding Identification and Authentication in Trusted
  1053. >    Systems
  1054. > -- A Guide to Writing the Security Features User's Guide for Trusted Systems
  1055. >
  1056. >They also shipped
  1057. > -- Advisory Memorandum on Office Automation Security Guideline
  1058. >issued by NTISS.  Most of the books (except three or four) can also be
  1059. >purchased from
  1060. >
  1061. >    U.S. Government Printing Office
  1062. >    Superintendent of Documents
  1063. >    Washington, DC 20402        phone: (202) 783-3238
  1064. >
  1065. >>-- Integrity in Automated Information Systems
  1066. >THIS book was NOT shipped to me--I'm not sure if it is still in
  1067. >the distribution.
  1068.  
  1069. >From: epstein@trwacs.fp.trw.com (Jeremy Epstein)
  1070. >...
  1071. >The ITSEC (Information Technology Security Evaluation Criteria) is a
  1072. >harmonized document developed by the British, German, French, and
  1073. >Netherlands governments.  It separates functional and assurance
  1074. >requirements, and has many other differences from the TCSEC.
  1075. >
  1076. >You can get your copy (again, free/gratis) by writing:
  1077. >
  1078. >    Commission of the European Communities
  1079. >    Directorate XIII/F
  1080. >    SOG-IS Secretariat
  1081. >    Rue de la Loi 200
  1082. >    B-1049 BRUSSELS
  1083. >    Belgium
  1084.  
  1085. Also note that NCSC periodically publish an "Evaluated Products List"
  1086. which is the definitive statement of which products have been approved
  1087. at what TCSEC level under which TCSEC interpretations.  This is useful
  1088. for separating the output of marketdroids from the truth.
  1089.  
  1090. Papers:
  1091.  
  1092. [Morris & Thompson]
  1093. Password Security, A Case History
  1094.  
  1095. A wonderful paper, first published in CACM in 1974, which is now often
  1096. to found in the Unix Programmer Docs supplied with many systems.
  1097.  
  1098. [Curry]
  1099. Improving the Security of your Unix System.
  1100.  
  1101. A marvellous paper detailing the basic security considerations every
  1102. Unix systems manager should know.  Available as "security-doc.tar.Z"
  1103. from FTP sites (check an Archie database for your nearest site.)
  1104.  
  1105. [Klein]
  1106. Foiling the Cracker: A Survey of, and Improvements to, Password Security.
  1107.  
  1108. A thorough and reasoned analysis of password cracking trends, and the
  1109. reasoning behind techniques of password cracking.  Your nearest copy
  1110. should be easily found via Archie, searching for the keyword "Foiling".
  1111.  
  1112. [Cheswick]
  1113. The Design of a Secure Internet Gateway.
  1114.  
  1115. Great stuff.  It's in research.att.com:/dist/internet_security/gateway.ps
  1116.  
  1117. [Cheswick]
  1118. An Evening With Berferd: in which a Cracker is Lured, Endured and Studied.
  1119.  
  1120. Funny and very readable, somewhat in the style of [Stoll] but more
  1121. condensed.  research.att.com:/dist/internet_security/berferd.ps
  1122.  
  1123. [Bellovin89]
  1124. Security Problems in the TCP/TP Protocol Suite.
  1125.  
  1126. A description of security problems in many of the protocols widely used
  1127. in the Internet.  Not all of the discussed protocols are official
  1128. Internet Protocols (i.e.  blessed by the IAB), but all are widely used.
  1129. The paper originally appeared in ACM Computer Communications Review,
  1130. Vol 19, No 2, April 1989.  research.att.com:/dist/ipext.ps.Z
  1131.  
  1132. [Bellovin91]
  1133. Limitations of the Kerberos Authentication System
  1134.  
  1135. A discussion of the limitations and weaknesses of the Kerberos
  1136. Authentication System.  Specific problems and solutions are presented.
  1137. Very worthwhile reading.  Available on research.att.com via anonymous
  1138. ftp, originally appeared in ACM Computer Communications Review but the
  1139. revised version (identical to the online version, I think) appeared in
  1140. the Winter 1991 USENIX Conference Proceedings.
  1141.  
  1142. [Muffett]
  1143. Crack documentation.
  1144.  
  1145. The information which accompanies Crack contains a whimsical explanation
  1146. of password cracking techniques and the optimisation thereof, as well as
  1147. an incredibly long and silly diatribe on how to not choose a crackable
  1148. password.  A good read for anyone who needs convincing that password
  1149. cracking is _really easy_.
  1150.  
  1151. [Farmer]
  1152. COPS
  1153.  
  1154. Read the documentation provided with COPS.  Lots of hints and
  1155. philosophy.  The where, why and how behind the piece of security
  1156. software that started it all.
  1157.  
  1158. [CERT]
  1159. maillists/advisories/clippings
  1160.  
  1161. CERT maintains archives of useful bits of information that it gets from
  1162. USENET and other sources.  Also archives of all the security
  1163. "advisories" that it has posted (ie: little messages warning people that
  1164. there is a hole in their operating system, and where to get a fix)
  1165.  
  1166. [OpenSystemsSecurity]
  1167.  
  1168. A notorious (but apparently quite good) document, which has been dogged
  1169. by being in a weird postscript format.
  1170.  
  1171. >From: amesml@monu1.cc.monash.edu.au (Mark L. Ames)
  1172.  
  1173. >I've received many replies to my posting about Arlo Karila's paper,
  1174. >including the news (that I and many others have missed) that a
  1175. >manageable postscript file and text file are available via anonymous ftp
  1176. >from ajk.tele.fi (131.177.5.20) in the directory PublicDocuments.
  1177.  
  1178. These are all available for FTP browsing from "cert.sei.cmu.edu".
  1179.  
  1180. [RFC-1244]
  1181. Site Security Handbook
  1182.  
  1183. RFC-1244 : JP Holbrook & JK Reynolds (Eds.) "The Site Security Handbook"
  1184. covering incident handling and prevention.  July 1991; 101 pages
  1185. (Format: TXT=259129 bytes), also called "FYI 8"
  1186.  
  1187. [USENET]
  1188. comp.virus: for discussions of virii and other nasties, with a PC bent.
  1189. comp.unix.admin: for general administration issues
  1190. comp.unix.<platform>: for the hardware/software that YOU use.
  1191. comp.protocols.tcp-ip: good for problems with NFS, etc.
  1192.  
  1193.  
  1194. Q.20 How silly can people get?
  1195.  
  1196. This section (which I hope to expand) is a forum for learning by
  1197. example; if people have a chance to read about real life (preferably
  1198. silly) security incidents, it will hopefully instill in readers some of
  1199. the zen of computer security without the pain of experiencing it.
  1200.  
  1201. If you have an experience that you wish to share, please send it to the
  1202. editors.  It'll boost your karma no end.
  1203.  
  1204. ---------------------------------------------------------------------------
  1205. aem@aber.ac.uk: The best story I have is of a student friend of mine
  1206. (call him Bob) who spent his industrial year at a major computer
  1207. manufacturing company.  In his holidays, Bob would come back to college
  1208. and play AberMUD on my system.
  1209.  
  1210. Part of Bob's job at the company involved systems management, and the
  1211. company was very hot on security, so all the passwords were random
  1212. strings of letters, with no sensible order.  It was imperative that the
  1213. passwords were secure (this involved writing the random passwords down
  1214. and locking them in big, heavy duty safes).
  1215.  
  1216. One day, on a whim, I fed the MUD persona file passwords into Crack as a
  1217. dictionary (the passwords were stored plaintext) and then ran Crack on
  1218. our systems password file.  A few student accounts came up, but nothing
  1219. special.  I told the students concerned to change their passwords - that
  1220. was the end of it.
  1221.  
  1222. Being the lazy guy I am, I forgot to remove the passwords from the Crack
  1223. dictionary, and when I posted the next version to USENET, the words went
  1224. too.  It went to the comp.sources.misc moderator, came back over USENET,
  1225. and eventually wound up at Bob's company.  Round trip: ~10,000 miles.
  1226.  
  1227. Being a cool kinda student sysadmin dude, Bob ran the new version of
  1228. Crack when it arrived.  When it immediately churned out the root
  1229. password on his machine, he damn near fainted...
  1230.  
  1231. The moral of this story is: never use the same password in two different
  1232. places, and especially on untrusted systems (like MUDs).
  1233. --
  1234. Alec Muffett (alec.muffett@sun.co.uk) Sun Microsystems IR, Bagshot, Surrey, UK
  1235.                          #include <stddisclaimer.h>
  1236. No previous timestamp file; posting comp.security.misc.
  1237. Not writing new /homedir/alecm/faq/.comp.security.misc_id (741440651).
  1238.  
  1239.  
  1240.