How to eliminate the ten most critical Internet security threats
Editor’s Note: the ÆGIS e-journal has discussed a number of times the fact that most attacks on Web sites are external and do not require technical cunning or expertise. Nonetheless, there are also significant technical vulnerabilities that should be addressed. The following article has been excerpted from the Web site of the SANS Institute (Copyright © 2000, The SANS Institute) and appears here with the kind permission of the Institute. Since we have edited out some technical references, we urge you to go to http://www.sans.org/ for the most complete and current version of this document, as well as other invaluable information.
The majority of successful attacks on computer systems via the Internet can be traced to exploitation of one of a small number of security flaws. Most of the systems compromised in the Solar Sunrise Pentagon hacking incident were attacked through a single vulnerability. A related flaw was exploited to break into many of the computers later used in massively distributed denial- of-service attacks. Recent compromises of Windows NT-based Web servers are typically traced to entry via a well-known vulnerability. Another vulnerability is widely thought to be the means used to compromise more than 30,000 Linux systems.
A few software vulnerabilities account for the majority of successful attacks because attackers are opportunistic — taking the easiest and most convenient route. They exploit the best known flaws with the most effective and widely available attack tools. They count on organizations not fixing the problems, and they often attack indiscriminately, by scanning the Internet for vulnerable systems.
System administrators report that they have not corrected these flaws because they simply do not know which of over 500 potential problems are the ones that are most dangerous, and they are too busy to correct them all.
The information security community is meeting this problem head-on by identifying the most critical Internet security problem areas — the clusters of vulnerabilities that system administrators need to eliminate immediately. This consensus Top Ten list represents an unprecedented example of active cooperation among industry, government, and academia. The participants came together from the most security-conscious federal agencies, from the leading security software vendors and consulting firms, from the top university-based security programs, and from CERT/CC and the SANS Institute.
Three Notes For Readers:
Note 1. This is a living document. It includes initial, step-by-step instructions and pointers for correcting the flaws. We will update these instructions as more current or convenient methods are identified and we welcome your input. To get the latest version of the guidelines, e-mail [email protected] with Top Ten Fixes in the Subject line.
Note 2. The original document, which we urge you to get if it is applicable to your work, includes references to CVE numbers — the Common Vulnerabilities and Exposures reference numbers that correspond with vulnerabilities. CAN numbers are candidates for CVE entries that are not yet fully verified. For more data on the award-winning CVE project, see http://cve.mitre.org.
Note 3. At the end of the list, you’ll find an extra section offering a list of the ports used by commonly probed and attacked services. By blocking traffic to those ports at the firewall or other network perimeter protection device, you add an extra layer of defense that helps protect you from configuration mistakes.
1. BIND weaknesses: nxt, qinv, and in.named allow immediate root compromise.
The Berkeley Internet Name Domain (BIND) package is the most widely used implementation of Domain Name Service (DNS) — the critical means by which we all locate systems on the Internet by name (e.g., www.sans.org) without having to know specific IP addresses — and this makes it a favorite target for attack. Sadly, according to a mid-1999 survey, about 50% of all DNS servers connected to the Internet are running vulnerable versions of BIND. In a typical example of a BIND attack, intruders erased the system logs and installed tools to gain administrative access. They then compiled and installed IRC utilities and network scanning tools, which they used to scan more than a dozen class-B networks in search of additional systems running vulnerable versions of BIND. In a matter of minutes, they had used the compromised system to attack hundreds of remote systems abroad, resulting in many additional successful compromises. This illustrates the chaos that can result from a single vulnerability in the software for ubiquitous Internet services such as DNS.
Systems Affected:
Multiple UNIX and Linux systems As of May 22, 2000, any version earlier than BIND v.8.2.2 patch level 5 is vulnerable.
Advice on Correcting the Problem:
A. Disable the BIND name daemon (named) on all systems that are not authorized to be DNS servers. Some experts recommend you also remove the DNS software.
B. On machines that are authorized DNS servers, update to the latest version and patch level (as of May 22, 2000, latest version was 8.2.2 patch level 5). Use the guidance contained in the following advisories:
For the NXT vulnerability: http://www.cert.org/advisories/CA-99-14-bind.html
For the QINV (Inverse Query) and NAMED vulnerabilities: http://www.cert.org/advisories/CA-98.05.bind_problems.html http://www.cert.org/summaries/CS-98.04.html
C. Run BIND as a non-privileged user for protection in the event of future remote-compromise attacks. (However, only processes running as root can be configured to use ports below 1024 — a requirement for DNS. Therefore you must configure BIND to change the user-ID after binding to the port.)
D. Run BIND in a chroot()ed directory structure for protection in the event of future remote-compromise attacks.
2. Vulnerable CGI programs and application extensions (e.g., ColdFusion) installed on Web servers.
Most Web servers support Common Gateway Interface (CGI) programs to provide interactivity in Web pages, such as data collection and verification. Many Web servers come with sample CGI programs installed by default. Unfortunately, many CGI programmers fail to consider ways in which their programs may be misused or subverted to execute malicious commands. Vulnerable CGI programs present a particularly attractive target to intruders because they are relatively easy to locate and they operate with the privileges and power of the Web server software itself. Intruders are known to have exploited vulnerable CGI programs to vandalize Web pages, steal credit card information, and set up backdoors to enable future intrusions, even if the CGI programs are secured. When Janet Reno’s picture was replaced by that of Adolph Hitler at the Department of Justice Web site, an in-depth assessment concluded that a CGI hole was the most probable avenue of compromise. Allaire’s ColdFusion is a Web server application package which includes vulnerable sample programs when installed. As a general rule, sample programs should always be removed from production systems.
Systems Affected:
All Web servers.
Remedy:
Remove all sample CGI programs on a production server. (see http://www.microsoft.com/technet/security/bulletin/ms99-013.asp)
Remedy:
Apply patch from: ftp://ftp.microsoft.com/bussys/iis/iis-public/fixes/usa/Viewcode-fix/
Refer to http://www.cert.org/advisories/CA-96.11.interpreters_in_cgi_bin_dir.html
Remedy:
The solution to this problem is to ensure that the CGI bin directory does not include any general-purpose interpreters, for example:
PERL Tcl
UNIX shells (sh, csh, ksh, etc.) http://xforce.iss.net/static/291.php
(More info at http://www.netspace.org/cgi- bin/wa?A2=ind9702B&L=bugtraq&P=R64)
Remedy:
Remove the “view-source” script from the cgi-bin directory on your Web server.
Advice on Correcting the Problem:
A. Do not run Web servers as root.
B. Get rid of CGI script interpreters in bin directories: http://www.cert.org/advisories/CA-96.11.interpreters_in_cgi_bin_dir.html
C. Remove unsafe CGI scripts http://www.cert.org/advisories/CA-97.07.nph-test-cgi_script.html http://www.cert.org/advisories/CA-96.06.cgi_example_code.html http://www.cert.org/advisories/CA-97.12.webdist.html
D. Write safer CGI programs: http://www-4.ibm.com/software/developer/library/secure-cgi/ http://www.cert.org/tech_tips/cgi_metacharacters.html http://www.cert.org/advisories/CA-97.24.Count_cgi.html
E. Don’t configure CGI support on Web servers that don’t need it.
F. Run your Web server in a chroot()ed environment to protect the machine against yet-to-be discovered exploits.
3. Remote Procedure Call (RPC) weaknesses in rpc.ttdbserverd (ToolTalk), rpc.cmsd (Calendar Manager), and rpc.statd that allow immediate root compromise.
Remote procedure calls (RPC) allow programs on one computer to execute programs on a second computer. They are widely used to access network services such as shared files in NFS. Multiple vulnerabilities caused by flaws in RPC are being actively exploited. There is compelling evidence that the vast majority of the distributed denial-of-service attacks launched during 1999 and early 2000 were executed by systems that had been victimized because they had the RPC vulnerabilities. The broadly successful attack on U.S. military systems during the Solar Sunrise incident also exploited an RPC flaw found on hundreds of Department of Defense systems.
Systems Affected:
Multiple UNIX and Linux systems
Advice on Correcting the Problem:
A. Wherever possible, turn off and/or remove these services on machines directly accessible from the Internet.
B. Where you must run them, install the latest patches:
For Solaris software patches: http://sunsolve.sun.com
For IBM AIX software: http://techsupport.services.ibm.com/support/rs6000.support/downloads http://techsupport.services.ibm.com/rs6k/fixes.html
For SGI software patches: http://support.sgi.com/
For Compaq (Digital Unix) patches: http://www.compaq.com/support
Search the vendor patch database for ToolTalk patches and install them right away.
A summary document pointing to specific guidance about each of three principal RPC vulnerabilities may be found at: http://www.cert.org/incident_notes/IN-99-04.html
For statdd: http://www.cert.org/advisories/CA-99-05-statd-automountd.html
For ToolTalk: http://www.cert.org/advisories/CA-98.11.tooltalk.html
For Calendar Manager: http://www.cert.org/advisories/CA-99-08-cmsd.html
4. RDS security hole in the Microsoft Internet Information Server (IIS).
Microsoft’s Internet Information Server (IIS) is the Web server software found on most Web sites deployed on Microsoft Windows NT and Windows 2000 servers. Programming flaws in IIS’s Remote Data Services (RDS) are being employed by malicious users to run remote commands with administrator privileges. Some participants who developed the “Top Ten” list believe that exploits of other IIS flaws, such as .HTR files, are at least as common as exploits of RDS. Prudence dictates that organizations using IIS install patches or upgrades to correct all known IIS security flaws when they install patches or upgrades to fix the RDS flaw.
Systems Affected:
Microsoft Windows NT systems using Internet Information Server
Advice on Correcting the Problem:
An outstanding guide to the RDS weakness and how to correct it may be found at: http://www.wiretrip.net/rfp/p/doc.asp?id=29&iface=2
B. Microsoft has also posted relevant information at:
http://support.microsoft.com/support/kb/articles/q184/3/75.asp http://www.microsoft.com/technet/security/bulletin/ms98-004.asp http://www.microsoft.com/technet/security/bulletin/ms99-025.asp
5. Sendmail buffer overflow weaknesses, pipe attacks and MIMEbo, that allow immediate root compromise.
Sendmail is the program that sends, receives, and forwards most electronic mail processed on UNIX and Linux computers. Sendmail’s widespread use on the Internet makes it a prime target of attackers. Several flaws have been found over the years. The very first advisory issued by CERT/CC in 1988 made reference to an exploitable weakness in Sendmail. In one of the most common exploits, the attacker sends a crafted mail message to the machine running Sendmail, and Sendmail reads the message as instructions requiring the victim machine to send its password file to the attacker’s machine (or to another victim) where the passwords can be cracked.
Systems Affected:
Multiple UNIX and Linux systems
Advice on Correcting the Problem:
A. Upgrade to the latest version of Sendmail and/or implement patches for Sendmail. See: http://www.cert.org/advisories/CA-97.05.sendmail.html
B. Do not run Sendmail in daemon mode (turn off the -bd switch) on machines that are neither mail servers nor mail relays.
6. sadmind and mountd.
Sadmind allows remote administration access to Solaris systems, providing graphical access to system administration functions. Mountd controls and arbitrates access to NFS mounts on UNIX hosts. Buffer overflows in these applications can be exploited, allowing attackers to gain control with root access.
Systems Affected:
Multiple UNIX and Linux systems Sadmind: Solaris machines only
Advice on Correcting the Problem:
A. Wherever possible, turn off and/or remove these services on machines directly accessible from the Internet.
B. Install the latest patches:
For Solaris software patches: http://sunsolve.sun.com
For IBM AIX software: http://techsupport.services.ibm.com/support/rs6000.support/downloads
http://techsupport.services.ibm.com/rs6k/fixes.html
For SGI software patches: http://support.sgi.com/
For Compaq (Digital Unix) patches: http://www.compaq.com/support
C. More guidance at: http://www.cert.org/advisories/CA-99-16-sadmind.html
http://www.cert.org/advisories/CA-98.12.mountd.html
7. Global file sharing and inappropriate information sharing via NetBIOS and Windows NT ports 135->139 (445 in Windows2000), or UNIX NFS exports on port 2049, or Macintosh Web sharing or AppleShare/IP on ports 80, 427, and 548
These services allow file sharing over networks. When improperly configured, they can expose critical system files or give full file system access to any hostile party connected to the network. Many computer owners and administrators use these services to make their file systems readable and writeable in an effort to improve the convenience of data access. Administrators of a government computer site used for software development for mission planning made their files world-readable so people at a different government facility could get easy access. Within two days, other people had discovered the open file shares and stolen the mission- planning software.
When file sharing is enabled on Windows machines they become vulnerable to both information theft and certain types of quick-moving viruses. A recently released virus called the 911 Worm uses file shares on Windows 95 and 98 systems to propagate and causes the victim’s computer to dial 911 on its modem. Macintosh computers are also vulnerable to file sharing exploits.
The same NetBIOS mechanisms that permit Windows File Sharing may also be used to enumerate sensitive system information from NT systems. User and Group information (usernames, last logon dates, password policy, RAS information), system information, and certain Registry keys may be accessed via a “null session” connection to the NetBIOS Session Service. This information is typically used to mount a password-guessing or brute-force password attack against the NT target.
Systems Affected:
UNIX, Windows, and Macintosh systems
Advice on Correcting the Problem:
A. When sharing mounted drives, ensure that only required directories are shared.
B. For added security, allow sharing only to specific IP addresses because DNS names can be spoofed.
C. For Windows systems, ensure that all shares are protected with strong passwords.
D. For Windows NT systems, prevent anonymous enumeration of users, groups, system configuration, and registry keys via the “null session” connection.
Block inbound connections to the NetBIOS Session Service (tcp 139) at the router or the NT host.
Consider implementing the RestrictAnonymous registry key for Internet- connected hosts in stand-alone or non-trusted domain environments:
NT4: http://support.microsoft.com/support/kb/articles/Q143/4/74.asp
Win2000: http://support.microsoft.com/support/kb/articles/Q246/2/61.asp
E. A quick, free, and secure test for the presence of NetBIOS file sharing, and its related vulnerabilities, effective for machines running any operating system, is available at the Gibson Research Corporation Web site. Simply visit http://grc.com/ and click the “ShieldsUP” icon to receive a real-time appraisal of any system’s NetBIOS exposure. Detailed instructions are available to help Microsoft Windows users deal with NetBIOS vulnerabilities.
F. For Macintosh systems, disable file-sharing and Web-sharing extensions unless absolutely required. If file sharing must be enabled, ensure strong passwords for access, and stop file sharing during periods in which it is not required.
To permanently disable Web sharing in MacOS 8 or MacOS 9, remove two files and restart:
System Folder:Control Panels:Web Sharing System Folder:Extensions:Web Sharing Extension
To permanently disable AppleShare/IP in MacOS 9, remove one file and restart:
System Folder:Extensions:Shareway IP Personal Bgnd
8. User IDs, especially root/administrator with no passwords or weak passwords.
Some systems come with “demo” or “guest” accounts with no passwords or with widely known default passwords. Service workers often leave maintenance accounts with no passwords, and some database management systems install administration accounts with default passwords. In addition, busy system administrators often select system passwords that are easily guessable (“love,” “money,” “wizard” are common) or just use a blank password. Default passwords provide effortless access for attackers. Many attackers try default passwords and then try to guess passwords before resorting to more sophisticated methods. Compromised user accounts get the attackers inside the firewall and inside the target machine. Once inside, most attackers can use widely accessible exploits to gain root or administrator access.
Systems Affected:
All systems.
Advice on Correcting the Problem:
A. Create an acceptable password policy including assigned responsibility and frequency for verifying password quality. Ensure senior executives are not exempted. Also include in the policy a requirement to change all default passwords before attaching computers to the Internet, with substantial penalties for noncompliance.
B1. Very Important! Obtain written authority to test passwords.
B2. Test passwords with password-cracking programs:
For Windows NT: l0pthcrack http://www.l0pht.com
For UNIX: Crack http://www.users.dircon.co.uk/~crypto
C. Implement utilities that check passwords when created.
For UNIX: Npasswd http://www.utexas.edu/cc/unix/software/npasswd
For Windows NT: http://support.microsoft.com/support/kb/articles/Q161/9/90.asp
D. Force passwords to expire periodically (at a frequency established in your security policy).
E. Maintain password histories so users cannot recycle old passwords.
Additional information may be found at: http://www.cert.org/tech_tips/passwd_file_protection.html http://www.cert.org/incident_notes/IN-98.03.html http://www.cert.org/incident_notes/IN-98.01.irix.html
9. IMAP and POP buffer overflow vulnerabilities or incorrect configuration.
IMAP and POP are popular remote-access mail protocols, allowing users to access their e-mail accounts from internal and external networks. The “open access” nature of these services makes them especially vulnerable to exploitation because openings are frequently left in firewalls to allow for external e-mail access. Attackers who exploit flaws in IMAP or POP often gain instant root-level control.
Systems Affected:
Multiple UNIX and Linux systems
Advice on Correcting the Problem:
A. Disable these services on machines that are not e-mail servers.
B. Use the latest patches and versions. Additional information may be found at: http://www.cert.org/advisories/CA-98.09.imapd.html http://www.cert.org/advisories/CA-98.08.qpopper_vul.html http://www.cert.org/advisories/CA-97.09.imap_pop.html
C. Some experts also recommend controlling access to these services using TCP wrappers and encrypted channels such as SSH and SSL to protect passwords.
10. Default SNMP community strings set to ‘public’ and ‘private.’
The Simple Network Management Protocol (SNMP) is widely used by network administrators to monitor and administer all types of network- connected devices ranging from routers to printers to computers. SNMP uses an unencrypted “community string” as its only authentication mechanism.
Lack of encryption is bad enough, but the default community string used by the vast majority of SNMP devices is “public,” with a few “clever” network equipment vendors changing the string to “private.” Attackers can use this vulnerability in SNMP to reconfigure or shut down devices remotely. Sniffed SNMP traffic can reveal a great deal about the structure of your network, as well as the systems and devices attached to it. Intruders use such information to pick targets and plan attacks.
Systems Affected:
All system and network devices
Advice on Correcting the Problem:
A. If you do not absolutely require SNMP, disable it.
B. If you are using SNMP, use the same policy for community names as used for passwords.
C. Validate and check community names using snmpwalk.
D. Where possible, make MIBs read-only. Additional information: http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.htm#xtocid210315
Appendix A: A-High Priority Bonus Item for Windows Users and Administrators.
Various Scripting Holes in Internet Explorer and Office 2000:
Recent virus attacks have illustrated how macro and script code could spread easily through e-mail attachments, and people were admonished to avoid opening potentially dangerous attachments. However, Windows users can also spread malicious viruses without opening attachments. Microsoft Outlook and Outlook Express will execute HTML and script code in an e- mail in their default installations. In addition, several so-called ActiveX components are incorrectly executable from an e-mail containing HTML and script code. Some of the vulnerable controls include the Scriplet.typlib (ships with IE 4.x and 5.x) and the UA control (Office 2000). Other vulnerabilities arising from the use of Active Scripting are that an e-mail could be used to install new software on a user’s computer.
A relatively benign virus known as the kak worm is already spreading through these mechanisms. A malicious version of kak can be anticipated at any time. We recommend that all users and administrators set Outlook and
Outlook Express to read e-mail in the “Restricted Sites Zone” and then further disable all Active Scripting– and ActiveX-related settings in that zone. This is done in the Options dialog’s Security tab, but can be automated using System Policies. Microsoft has made patches available for the individual problems and is readying a patch that will set the security settings in Outlook, but apparently has no plans on fixing Outlook Express.
Systems Affected:
All Windows systems with Internet Explorer 4.x and 5.x (even if it is not used) or Office 2000. Windows 2000 is not affected by some of the IE issues.
Advice on Correcting the Problem:
http://www.microsoft.com/security/bulletins/ms99-032.asp http://www.microsoft.com/security/bulletins/MS99-048.asp http://www.microsoft.com/technet/security/bulletin/MS00-034.asp
The fixes for the particular vulnerabilities discussed here are available from: http://www.microsoft.com/msdownload/iebuild/scriptlet/en/scriptlet.htm http://www.microsoft.com/msdownload/iebuild/ascontrol/en/ascontrol.htm http://officeupdate.microsoft.com/info/ocx.htm
Set your Security Zone to restricted sites and then disable all active content in that zone.
Apply the patch to Outlook as soon as it becomes available at: http://www.officeupdate.com/2000/articles/out2ksecarticle.htm
Updating your virus detection software, while important, is not a complete solution for this problem. You must also correct the flaws in Microsoft’s software.
Appendix B: Perimeter Protection For an Added Layer of Defense In Depth.
In this section, we list ports that are commonly probed and attacked. Blocking these ports is a minimum requirement for perimeter security, not a comprehensive firewall specification list. A far-better rule is to block all unused ports. And even if you believe these ports are blocked, you should still actively monitor them to detect intrusion attempts. A warning is also in order. Blocking some of the ports in the following list may disable needed services. Please consider the potential effects of these recommendations before implementing them.
Block “spoofed” addresses — packets coming from outside your company sourced from internal addresses or private (RFC1918 and network 127) addresses. Also block source routed packets.
Login services — telnet (23/tcp), SSH (22/tcp), FTP (21/tcp), NetBIOS (139/tcp), rlogin et al. (512/tcp through 514/tcp)
RPC and NFS — Portmap/rpcbind (111/tcp and 111/udp), NFS (2049/tcp and 2049/udp), lockd (4045/tcp and 4045/udp)
NetBIOS in Windows NT — 135 (tcp and udp), 137 (udp), 138 (udp), 139 (tcp). Windows 2000 — earlier ports plus 445 (tcp and udp)
X Windows — 6000/tcp through 6255/tcp
Naming services — DNS (53/udp) to all machines that are not DNS servers, DNS zone transfers (53/tcp) except from external secondaries, LDAP (389/tcp and 389/udp)
Mail — SMTP (25/tcp) to all machines that are not external mail relays, POP (109/tcp and 110/tcp), IMAP (143/tcp)
Web — HTTP (80/tcp) and SSL (443/tcp) except to external Web servers, may also want to block common high-order HTTP port choices (8000/tcp, 8080/tcp, 8888/tcp, etc.)
“Small Services” — ports below 20/tcp and 20/udp, time (37/tcp and 37/udp)
Miscellaneous — TFTP (69/udp), finger (79/tcp), NNTP (119/tcp), NTP (123/tcp), LPD (515/tcp), syslog (514/udp), SNMP (161/tcp and 161/udp, 162/tcp and 162/udp), BGP (179/tcp), SOCKS (1080/tcp)
ICMP — block incoming echo request (ping and Windows traceroute), block outgoing echo replies, time exceeded, and destination unreachable messages except “packet too big” messages (type 3, code 4). (This item assumes that you are willing to forgo the legitimate uses of ICMP echo request in order to block some known malicious uses.)
Appendix C: UNIX Vendor Patch Retrieval.
Compaq (Digital Unix) http://www.compaq.com/support
FreeBSD http://www.freebsd.org/security/
HP HP-UX For the U.S., Canada, Asia-Pacific, and Latin America: http://us-support.external.hp.com For Europe: http://europe-support.external.hp.com
Choose Individual Patches, then log in or create new login ID.
To Retrieve a Security Patch Matrix: ftp://us-ffs.external.hp.com/export/patches/hp-ux_patch_matrix/
IBM AIX http://techsupport.services.ibm.com/support/rs6000.support/downloads http://techsupport.services.ibm.com/rs6k/fixes.html
SCO (OpenServer and Unixware) http://www.sco.com/security/ (Security Bulletins and Patches) http://www.sco.com/support/ftplists/index.html (General OS patches)
Sun Solaris http://sunsolve.sun.com (Recommended & Security Patches)
Linux
Caldera http://www.caldera.com/support/security/
Debian http://www.debian.org/security/index.en.html
Mandrake http://www.linux-mandrake.com/en/fupdates.php3
Red Hat http://www.redhat.com/apps/download/
SuSe http://www.suse.com/support/download/updates/index.html http://www.suse.de/en/support/security/index.html