home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-1.iso / CDROM / FAQs / Security / compromise-faq < prev    next >
Encoding:
Internet Message Format  |  1996-10-23  |  16.2 KB

  1. Path: informatik.tu-muenchen.de!Germany.EU.net!main.Germany.EU.net!Frankfurt.Germany.EU.net!howland.erols.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!psinntp!pubxfer.news.psi.net!iss.net!cklaus
  2. From: cklaus@iss.net (Christopher Klaus)
  3. Newsgroups: comp.security,alt.security,comp.security.misc,comp.security.unix,comp.unix.admin,comp.answers,alt.answers,news.answers,misc.security,comp.sys.sun.admin,comp.sys.sgi.admin,comp.security.firewalls
  4. Subject: computer-security/compromise FAQ
  5. Supersedes: <secfaq.p2_842885343@iss.net>
  6. Followup-To: poster
  7. Date: 23 Oct 1996 15:53:10 GMT
  8. Organization: ISS, Inc.
  9. Lines: 328
  10. Approved: news-answers-request@MIT.Edu
  11. Distribution: world
  12. Expires: 21 Nov 1996 15:52:06 GMT
  13. Message-ID: <secfaq.p2_846085926@iss.net>
  14. Reply-To: cklaus@iss.net
  15. NNTP-Posting-Host: 204.241.60.5
  16. Keywords: security compromise intruder
  17. Xref: informatik.tu-muenchen.de alt.security:40142 comp.security.misc:34390 comp.security.unix:33403 comp.unix.admin:56267 comp.answers:21846 alt.answers:19530 news.answers:84874 comp.sys.sun.admin:88711 comp.sys.sgi.admin:42988 comp.security.firewalls:5412
  18.  
  19. Archive-name: computer-security/compromise-faq 
  20. Posting-frequency: monthly
  21. Last-Modified: 1995/4/05
  22. Version: 2.0
  23.  
  24. Compromise FAQ
  25.  
  26. Version: 2.0
  27. ----------------------------------------------------------------------------
  28. This Security FAQ is a resource provided by:
  29.  
  30.      Internet Security Systems, Inc.
  31.      Suite 660, 41 Perimeter Center East          Tel: (770) 395-0150
  32.      Atlanta, Georgia 30346                       Fax: (770) 395-1972
  33.  
  34. ----------------------------------------------------------------------------
  35. To get the newest updates of Security files check the following services:
  36.  
  37.      http://www.iss.net/
  38.      ftp ftp.iss.net /pub/
  39.  
  40. ----------------------------------------------------------------------------
  41.  
  42. What if your Machines are Compromised by an Intruder.
  43.  
  44. This FAQ deals with some suggestions for securing your Unix machine after it
  45. has already been compromised. Even if your machines have not been
  46. compromised, there are many helpful tips on securing a machine in this
  47. paper.
  48.  
  49.   1. Try to trace/follow the intruder back to his origin via looking at
  50.  
  51.        1. who
  52.        2. w
  53.        3. last
  54.        4. lastcomm
  55.        5. netstat
  56.        6. snmpnetstat
  57.        7. router information.
  58.        8. /var/adm/messages (many crackers send e-mail to their "home"
  59.           accounts)
  60.        9. syslog (sends logs to other hosts as well)
  61.       10. wrapper logs
  62.       11. do a 'finger' to all local users(and check where they last logged
  63.           in from)
  64.       12. history files from shells, such as .history, .rchist, and similiar
  65.           files.
  66.  
  67.      Footnote: 'who', 'w', 'last', and 'lastcomm' are commands that rely on
  68.      /var/adm/pacct, /usr/adm/wtmp, and /etc/utmp to report the information
  69.      to you. Most backdoors will keep the intruder from being shown in these
  70.      logs. Even if the intruder has not installed any backdoors yet, it is
  71.      trivial to remove any detection in these logs. But they may just forget
  72.      about one or two of them. Especially if you have some additional,
  73.      non-standard ones.
  74.  
  75.      Suggestion: Install xinetd or tcp_wrapper that will log all connections
  76.      to your machine to see if someone is knocking on its doors. Forward
  77.      syslogs to another machine so intruder will not easily detect the logs
  78.      and modify. Other possibilities: netlog from
  79.      net.tamu.edu:/pub/security.
  80.  
  81.      It might be wise to monitor the intruder via some ethernet sniffer to
  82.      see how he is exploiting his systems before taking corrective measures.
  83.  
  84.   2. Close the machine from outside access. Remove from network to stop
  85.      further access via intruder. If the intruder finds out that the
  86.      administrator is unto him, he may try to hide his tracks by rm -rf /.
  87.  
  88.   3. Check the binaries with the originals. Especially check the following
  89.      binaries because they are commonly replaced backdoors for regaining
  90.      access:
  91.  
  92.        1. /bin/login
  93.        2. all the /usr/etc/in.* files (ie. in.telnetd)
  94.        3. and /lib/libc.so.* (on Suns).
  95.        4. anything called from inetd
  96.  
  97.      Other commonly replaced backdoor binaries:
  98.  
  99.        1. netstat - allows hiding connections
  100.        2. ps - allows hiding processes (ie Crack)
  101.        3. ls - allows hiding directories
  102.        4. ifconfig - hides the fact that promiscuity mode is on the ethernet
  103.        5. sum - fools the checksum for binaries, not necessarily replaced
  104.           anymore because its possible to change the checksum of the
  105.           binaries to the correct value without modifying sum. *EMPHASIZE*
  106.           Do NOT Rely on sum.
  107.  
  108.      Use 'ls -lac' to find the real modification time of files. Check
  109.      /etc/wtmp (if you still have one) for any system time adjustments.
  110.      Check the files with the distribution media (CD or tape) or calculate
  111.      MD5 checksums and compare them with the originals kept offline (you did
  112.      calculate them sometime ago, didn't you?) Suggestion: cmp the files
  113.      with copies that are known to be good.
  114.  
  115.      Another popular backdoor is suid'ing a common command (ie. /bin/time)
  116.      to allow root access with regular accounts.
  117.  
  118.      To find all suid programs you may use:
  119.  
  120.           find / -type f -perm -4000 -ls
  121.  
  122.      To be thorough you may need to re-load the entire OS to make sure there
  123.      are no backdoors. Tripwire helps prevent modifying binaries and system
  124.      files (ie. inetd.conf) on the system, without the administrator
  125.      knowing.
  126.  
  127.   4. Implement some password scheme for your users to verify that they
  128.      change their passwords often. Install anlpasswd, npasswd, or passwd+ in
  129.      place of passwd (or yppasswd) so that your users are forced to set
  130.      reasonable passwords. Then run Crack, which is available on
  131.      ftp.cert.org:/pub/tools/crack to make sure that your users aren't
  132.      bypassing the password check. Crack ensures that users are picking
  133.      difficult passwords. With the network, clear text passwords are a
  134.      problem. Other possible choices: smart hubs (stops ethernet sniffing of
  135.      the whole LAN) and one-time password technology.
  136.  
  137.   5. Check all the users' .rhosts and .forward files to make sure none of
  138.      them are weird or out of the ordinary. If .rhosts file contains '+ +',
  139.      the account can be accessed anywhere by anyone without a password. COPS
  140.      has a scripts for checking .rhosts.
  141.  
  142.           find / -name .rhosts -ls -o -name .forward -ls
  143.  
  144.      Look also for all the files created/modified in the time you are
  145.      suspecting the break-in has taken place, eg:
  146.  
  147.           find / -ctime -2 -ctime +1 -ls
  148.  
  149.      To find all the files modified not less than one day ago, but not more
  150.      than 2.
  151.  
  152.      All .login, .logout, .profile, .cshrc files are also worth looking at
  153.      (at least for the modification date/time). Make sure there are no
  154.      '.rhosts' for the locked or special accounts (like 'news', 'sundiag',
  155.      'sync', etc.) The shell for such accounts should be something like
  156.      '/bin/false' anyway (and not '/bin/sh') to make them more secure. Also
  157.      search for directories that have like ". ", ".. " as names. They are
  158.      usually found in /tmp , /var/tmp, /usr/spool/* and any other publicly
  159.      writeable directory.
  160.  
  161.   6. Check to make sure your NFS exports are not world writable to everyone.
  162.      NFSwatch available on harbor.ecn.purdue.edu:/pub/davy , a program by
  163.      David Curry, will log any NFS transactions that are taking place. Try
  164.      'showmount -e' to see whether system agrees with your opinion of what
  165.      are you exporting and where. There are bugs in some nfsd
  166.      implementations which ignore the access lists when they exceed some
  167.      limit (256 bytes). Check also what are you IMPORTING!!! Use 'nosuid'
  168.      flag whenever possible. You do not want to be cracked by a sysadm from
  169.      another host (or a cracker there) running suid programs mounted via
  170.      NFS, do you?
  171.  
  172.   7. Make sure you have implemented the newest sendmail daemon. Old sendmail
  173.      daemons allowed remote execution of commands on any Unix machine. See
  174.      the computer-security/security-patch FAQ.
  175.  
  176.   8. Try to install all the security patches available from the vendor on
  177.      your machine. See the computer-security/security-patch FAQ.
  178.  
  179.   9. Here is a check list of common ways that a machine is vulnerable:
  180.  
  181.        1. Do an rpcinfo -p on your machine to make sure it is not running
  182.           any processes that are not needed. (ie. rexd).
  183.  
  184.        2. Check for '+' in /etc/hosts.equiv.
  185.  
  186.        3. Check whether tftp is disabled on your system. If not - disable
  187.           it, or at least use '-s' flag to chroot it to some safe area, if
  188.           you really can't live without it (it is mostly used for booting up
  189.           Xterminals, but sometimes can be avoided by NFS-mounting
  190.           appropriate disks). Under no circumstances you should run it as
  191.           root. Change the line describing it in /etc/inetd.conf to
  192.           something like:
  193.  
  194.                tftp dgram udp wait nobody /usr/etc/in.tftpd in.tftpd -s
  195.                /tftpboot
  196.  
  197.           or better yet, use tcpd wrapper program to protect it from
  198.           addresses which should not get access to tftp and log all other
  199.           connections:
  200.  
  201.                tftp dgram udp wait nobody /usr/etc/tcpd in.tftpd -s
  202.                /tftpboot
  203.  
  204.           and edit appropriately /etc/hosts.allow to restrict access to
  205.           in.tftpd to only those addresses that really need it.
  206.  
  207.        4. Check crontabs and at-jobs. Make sure there are no delayed bombs
  208.           which will explode after you think you have got rid of all the
  209.           nasty things left by a intruder.
  210.  
  211.        5. Check /etc/rc.boot /etc/rc.local (SYSV: /etc/rc?.d/* ) and other
  212.           files cruicial for the system startup. (The best would be if you
  213.           could compare them with the copies kept off-line). Check all other
  214.           files containing system configuration (sendmail.cf, sendmail.fc,
  215.           hosts.allow, at.allow, at.deny, cron.allow, hosts, hosts.lpd,
  216.           etc.) In 'aliases' look for aliases expanding to some unusual
  217.           programs (uudecode is one but example).
  218.  
  219.        6. Check your inetd.conf and /etc/services files to find if there are
  220.           no additional services set up by an intruder.
  221.  
  222.        7. Copy all the log files you still have (pacct, wtmp, lastlog,
  223.           sulog, syslog, authlog, any additional logs you have set up
  224.           earlier) to some safe place (offline) so you may examine them
  225.           later. Otherwise, do not be surprised if they disappear the next
  226.           day when the cracker realises he forgot to remove one of them. Use
  227.           your own imagination to find what other traces he could have left
  228.           in your system (What about /tmp/* files? Check them BEFORE you
  229.           reboot).
  230.  
  231.        8. Make backup copy of /etc/passwd (best offline) then change all
  232.           root passwords (after verifying that 'su' and 'passwd' are not the
  233.           trojan versions left by an intruder). It may sound like a horrible
  234.           thing to do (especially if you have something like 2000 users) but
  235.           *do* lock them all by putting '*' in the password field. If the
  236.           intruder has a copy of your passwords file he may possibly sooner
  237.           or later guess all the passwords contained there (It is all the
  238.           matter of proper dictionaries). In fact he could have inserted few
  239.           passwords that he only knows for some users who for example have
  240.           not logged in for a long time.
  241.  
  242.           On the NIS servers check not only the real /etc/passwd /etc/groups
  243.           etc files but also those used for building NIS maps (if they are
  244.           different).
  245.  
  246.        9. Check if your anonymous ftp (and other services) are configured
  247.           properly (if you have any of course) See the
  248.           computer-security/anonymous-ftp FAQ.
  249.  
  250.       10. If you want to make your life easier next time (or if you still
  251.           cannot get rid of an intruder) consider installing 'ident' daemon.
  252.           Together with tcpd on a set of hosts it can be used to find what
  253.           accounts the intruder is using.
  254.  
  255.       11. Make sure the only 'secure' terminal is console (if at all). This
  256.           way you prevent root logins just from the net. Maybe it is not a
  257.           big deal as if somebody knows the root password he may already
  258.           know other peoples' passwords too, but maybe not?
  259.  
  260.       12. Check hosts.equiv, .rhosts, and hosts.lpd for having # as comments
  261.           within those files. If an intruder changes his hostname to #, it
  262.           will be considered a trusted host and allow him to access your
  263.           machines.
  264.  
  265.       13. And remember... There are so many ways that somebody could have
  266.           modified your system, that you really have to have your eyes and
  267.           ears wide open for a loooooong long time. Above, are the pointers
  268.           just to the most obvious things to check.
  269.  
  270.  10. Mail all the sites that you were able to find out that the intruder was
  271.      going through and warn them. Also, CC: cert@cert.org. Check all the
  272.      sites in your near-by, ie. in your domain/institution/whatever. It's
  273.      usually trivial for a hacker to get to another system by a simple
  274.      'rlogin' if the two systems have a common subset of users (and using
  275.      .rhosts to make the access easier).
  276.  
  277.  11. A preventive from stopping many intruders from even trying your network
  278.      is to install a firewall.
  279.  
  280.      Side-effects: Firewalls may be expensive; filtering may slow down the
  281.      network. Consider blocking nfs (port 2049/udp) and portmap(111/udp) on
  282.      your router. The authentication and access controls of these protocols
  283.      is often minimal. Suggestion: Block all udp ports except DNS and NTP
  284.      ports. Kill all source routing packets. Kill all ip-forwarding packets.
  285.  
  286. Acknowledgements
  287.  
  288. Thanks to the following people for adding and shaping this FAQ:
  289.  
  290. Tomasz Surmacz <tsurmacz@asic.ict.pwr.wroc.pl>
  291. Wes Morgan (morgan@engr.uky.edu)
  292. Alan Hannan (alan@noc1.mid.net)
  293. Peter Van Epp <vanepp@sfu.ca>
  294. Richard Jones <electron@suburbia.apana.org.au>
  295. Wieste Venema <wietse@wzv.win.tue.nl>
  296. Adrian Rodriguez <adrian@caip.rutgers.edu>
  297. Jill Bowyer <jbowyer@selma.hq.af.mil>
  298. Andy Mell <amell@cup.cam.ac.uk>
  299.  
  300. ----------------------------------------------------------------------------
  301.  
  302. Copyright
  303.  
  304. This paper is Copyright (c) 1994, 1995, 1996
  305.    by Christopher Klaus of Internet Security Systems, Inc.
  306.  
  307. Permission is hereby granted to give away free copies electronically. You
  308. may distribute, transfer, or spread this paper electronically. You may not
  309. pretend that you wrote it. This copyright notice must be maintained in any
  310. copy made. If you wish to reprint the whole or any part of this paper in any
  311. other medium excluding electronic medium, please ask the author for
  312. permission.
  313.  
  314. Disclaimer
  315.  
  316. The information within this paper may change without notice. Use of this
  317. information constitutes acceptance for use in an AS IS condition. There are
  318. NO warranties with regard to this information. In no event shall the author
  319. be liable for any damages whatsoever arising out of or in connection with
  320. the use or spread of this information. Any use of this information is at the
  321. user's own risk.
  322.  
  323. Address of Author
  324.  
  325. Please send suggestions, updates, and comments to:
  326. Christopher Klaus <cklaus@iss.net> of Internet Security Systems, Inc.
  327. <iss@iss.net>
  328.  
  329. Internet Security Systems, Inc.
  330.  
  331. ISS is the leader in network security tools and technology through
  332. innovative audit, correction, and monitoring software. The Atlanta-based
  333. company's flagship product, Internet Scanner, is the leading commercial
  334. attack simulation and security audit tool. The Internet Scanner SAFEsuite is
  335. based upon ISS' award-winning Internet Scanner and was specifically designed
  336. with expanded capabilities to assess a variety of network security issues
  337. confronting web sites, firewalls, servers and workstations. The Internet
  338. Scanner SAFEsuite is the most comprehensive security assessment tool
  339. available. For more information about ISS or its products, contact the
  340. company at (770) 395-0150 or e-mail at iss@iss.net. ISS maintains a Home
  341. Page on the World Wide Web at http://www.iss.net
  342. -- 
  343. Christopher William Klaus         Voice: (770)395-0150. Fax: (770)395-1972
  344. Internet Security Systems, Inc.                        "Internet Scanner finds
  345. Ste. 660,41 Perimeter Center East,Atlanta,GA 30346 your network security holes
  346. Web: http://www.iss.net/  Email: cklaus@iss.net        before the hackers do."
  347.