-----BEGIN PGP SIGNED MESSAGE-----
CERT Advisory CA-2002-27 Apache/mod_ssl Worm
Original release date: September 14, 2002
Last revised: --
Source: CERT/CC
A complete revision history can be found at the end of this file.
Systems Affected
* Linux systems running Apache with mod_ssl accessing SSLv2-enabled
OpenSSL 0.9.6d or earlier on Intel x86 architectures
Overview
The CERT/CC has received reports of self-propagating malicious code
which exploits a vulnerability (VU#102795) in OpenSSL. This malicious
code has been referred to as Apache/mod_ssl worm, linux.slapper.worm
and bugtraq.c worm.
I. Description
The Apache/mod_ssl worm is self-propagating malicious code that
exploits the OpenSSL vulnerability described in VU#102795.
http://www.kb.cert.org/vuls/id/102795
This vulnerability was the among the topics discussed in CA-2002-23
"Multiple Vulnerabilities In OpenSSL".
http://www.cert.org/advisories/CA-2002-23.html
While this OpenSSL server vulnerability exists on a wide variety of
platforms, the Apache/mod_ssl worm appears to work only on Linux
systems running Apache with the OpenSSL module (mod_ssl) on Intel
architectures.
The Apache/mod_ssl worm scans for potentially vulnerable systems on
80/tcp using an invalid HTTP GET request.
GET /mod_ssl:error:HTTP-request HTTP/1.0
When an Apache system is detected, it attempts to send exploit code to
the SSL service via 443/tcp. If successful, a copy of the malicious
source code is then placed on the victim server, where the attacking
system tries to compile and run it. Once infected, the victim server
begins scanning for additional hosts to continue the worm's
propagation.
Additionally, the Apache/mod_ssl worm can act as an attack platform
for distributed denial-of-service (DDoS) attacks against other sites
by building a network of infected hosts. During the infection process,
the attacking host instructs the newly-infected victim to initiate
traffic on 2002/udp back to the attacker. Once this communications
channel has been established, the infected system becomes part of the
Apache/mod_ssl worm's DDoS network. Infected hosts can then share
information on other infected systems as well as attack instructions.
Thus, the 2002/udp traffic can be used by a remote attacker as a
communications channel between infected systems to coordinate attacks
on other sites.
Identifying infected hosts
Reports indicate that the Apache/mod_ssl worm's source code is placed
in /tmp/.bugtraq.c on infected systems. It is compiled with gcc,
resulting in the executable binary being stored at /tmp/.bugtraq;
therefore, presence of any of the following files on Linux systems
running Apache with OpenSSL is indicative of compromise.
/tmp/.bugtraq.c
/tmp/.bugtraq
The probing phase of the attack may show up in web server logs as:
GET /mod_ssl:error:HTTP-request HTTP/1.0
Note that the appearance of this entry in a web server log is not
indicative of compromise, but is merely evidence of a probe from an
infected system.
Reports received by the CERT/CC indicate that Apache systems may
subsequently log messages similar to the following:
[error] SSL handshake failed: HTTP spoken on HTTPS port; trying
to send HTML error page (OpenSSL library error follows)
[error] OpenSSL: error:1407609C:SSL
routines:SSL23_GET_CLIENT_HELLO:http request [Hint: speaking
HTTP to HTTPS port!?]
Actual log entries may vary from system to system, but will generally
include an "SSL handshake failed" followed by an OpenSSL library
error.
Hosts found to be listening for or transmitting data on 2002/udp are
also indicative of compromise by the Apache/mod_ssl worm.
Detecting Apache/mod_ssl worm activity on the network
Infected systems are readily identifiable on a network by the
following traffic characteristics:
* Probing -- Scanning on 80/tcp
* Propagation -- Connections to 443/tcp
* DDoS -- Transmitting or receiving datagrams with both source and
destination ports 2002/udp. This traffic is used as a
communications channel between infected systems to coordinate
attacks on other sites.
Additionally, infected hosts that are actively participating in DDoS
attacks against other systems may generate unusually high volumes of
attack traffic using various protocols (e.g., TCP, UDP, ICMP)
II. Impact
Compromise by the Apache/mod_ssl worm indicates that a remote attacker
can execute arbitrary code as the apache user on the victim system. It
may be possible for an attacker to subsequently leverage a local
privilege escalation exploit in order to gain root access to the
victim system. Furthermore, the DDoS capabilities included in the
Apache/mod_ssl worm allow victim systems to be used as platforms to
attack other systems.
III. Solution
Apply a patch
Administrators of all systems running OpenSSL are encouraged to review
CA-2002-23 and VU#102795 for detailed vendor recommendations regarding
patches.
http://www.cert.org/advisories/CA-2002-23.html
http://www.kb.cert.org/vuls/id/102795
Note that while the vulnerability exploited by the Apache/mod_ssl worm
was fixed beginning with OpenSSL version 0.9.6e, as of this writing
the latest version of OpenSSL is 0.9.6g. Administrators may wish to
upgrade to that version instead.
http://www.openssl.org/source/
The following is reproduced in part from CA-2002-23
Upgrade to version 0.9.6e of OpenSSL
Upgrade to version 0.9.6e of OpenSSL to resolve the issues
addressed in this advisory. As noted in the OpenSSL advisory,
separate patches are available:
Combined patches for OpenSSL 0.9.6d:
http://www.openssl.org/news/patch_20020730_0_9_6d.txt
After either applying the patches above or upgrading to 0.9.6e,
recompile all applications using OpenSSL to support SSL or TLS
services, and restart said services or systems. This will eliminate
all known vulnerable code.
Sites running OpenSSL pre-release version 0.9.7-beta2 may wish to
upgrade to 0.9.7-beta3, which corrects these vulnerabilities.
Separate patches are available as well:
Combined patches for OpenSSL 0.9.7 beta 2:
http://www.openssl.org/news/patch_20020730_0_9_7.txt
Disable SSLv2
Disabling SSLv2 handshaking will prevent exploitation of VU#102795.
CERT/CC recomends consulting the mod_ssl documentation for a complete
description of the options but one method for disabling SSLv2 is to
remove SSLv2 as a supported cipher in the SSLCipherSuite directive in
the configuration file. For example:
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+SSLv2
which allows SSLv2 can be changed to
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:!SSLv2
which will disable SSLv2. Note the changing of +SSLv2 to !SSLv2.
However, systems may still be susceptible to the other vulnerabilities
described in CA-2002-23.
Recovering from a system compromise
If you believe a system under your administrative control has been
compromised, please follow the steps outlined in
http://www.cert.org/tech_tips/win-UNIX-system_compromise.html
Reporting
The CERT/CC is interested in receiving reports of this activity. If
machines under your administrative control are compromised, please
send mail to cert@cert.org with the following text included in the
subject line: "[CERT#23820]".