Està circulant un cuc, extremadament complex, que ataca als servidors web basats en Apache, a la plataforma FreeBSD, que encara no han estat actualitzats.
Tal com vam informar (veure http://www.quands.cat/alertes/html/apache020617.html) a mitjans del mes passat es va donar a conèixer l'existència d'una vulnerabilitat a les versions d'Apache anteriors a la 1.3.26 i la 2.0.39. El problema estava en la forma en que Apache processava les capçaleres incorrectes a les "dades trossejades" ("chunked data").
La vulnerabilitat permetia a un atacant remot originar una condició d'error al servidor. En funció de la versió d'Apache i el sistema operatiu utilitzat al servidor es podia arribar a l'execució de codi al servidor.
Desgraciadament, i en una actuació que va aixecar força polèmica, la vulnerabilitat va ser divulgada per ISS poques hores després d'haver estat descoberta, sense deixar marge als responsables del projecte Apache a publicar les versions actualitzades. Les noves versions d'Apache van trigar gairebé dos dies en estar disponibles per a ser baixades.
El cuc APC
El passat 28 de juny un servidor que actuava com a "honeypot" amb l'Apache 1.3.24 va permetre la captura d'un cuc que es connectava als servidors i intentava determinar si aquest era vulnerable. El cuc ha estat batejat com a "APC" a partir d'una cadena de text que hi ha al seu interior.
Comportament
La primera acció que fa el cuc és enviar un paquet (un senzill 'hola') al port 2001/udp d'una adreça IP fixa. A continuació resta a l'escolta en aquest mateix port, esperant rebre ordres. Això permet el control remot del cuc per a la seva utilització com un 'zombie' d'un atac distribuït de denegació de servei contra objectius concrets.
Simultàniament el cuc comença a rastrejar adreces IP, de forma aleatòria. A cada adreça intenta establir una connexió TCP contra el port 80, enviant una senzilla petició HTTP ("GET / HTTP/1.1").
Si la màquina remota respon, el cuc analitza la resposta. Si el servidor remot s'ha identificat com l'Apache, s'envia una segona petició HTTP que conté el codi de l'atac (veure, http://www.idefense.com/idtools/Apache%20Worm.txt).
Aquest atac és específic contra la plataforma FreeBSD 4.5.
Infecció
El servidor web registra, al fitxer d'activitat de l'Apache, la següent entrada:
[Sun Jul 7 13:47:19 2002] [error] [client xx.xx.xx.xx] client sent HTTP/1.1
request without hostname (see RFC2616 section 14.23): /
Per la seva banda, a /var/log/messages es registra el següent missatge:
Jul 7 13:47:25 foobar /kernel: pid 22639 (httpd), uid 80: exited on signal 11
Als sistemes vulnerables, el cuc es copia al directori /tmp amb els noms ".a" i ".uua".
Un cop copiats aquests fitxers, s'executa /tmp/.a, finalitzant el cicle.
Detecció
Es pot detectar la presència del cuc comprovant l'existència dels fitxers ".a" i ".uua" al directori /tmp. Una altra forma de detectar l'activitat del cuc és monitoritzant el tràfic que fa servir el port 2001/udp.
Eliminació
Per tal d'eliminar el cuc a una màquina compromesa cal esborrar els fitxers ".a" i ".uua" del directori /tmp i matar el procés del cuc:
% ps aux | grep ".a"
nobody 1103 (...) /tmp/.a xx.xx.xx.xx
% kill -9 1103
Prevenció
Actualitzar la versió d'Apache a la 1.3.26.
Més informació
Una per dia (17-06-02): Vulnerabilitat a Apache
http://www.quands.cat/unaperdia/arxiu/20020617.html
Una per dia (20-06-02): Es publica l'actualització d'Apache
http://www.quands.cat/unaperdia/arxiu/20020620.html
Vulnerabilitat a Apache
http://www.quands.cat/alertes/html/apache020617.html
Apache Security Advisory
http://httpd.apache.org/info/security_bulletin_20020617.txt
Avís del CERT (CA-2002-17)
Apache Web Server Chunk Handling Vulnerability
http://www.cert.org/advisories/CA-2002-17.html
Apache Worm in the wild
http://online.securityfocus.com/archive/1/279529
http://dammit.lt/apache-worm/
http://dammit.lt/apache-worm/apache-worm.c
The Apache "APC" worm
http://www.securiteam.com/securitynews/5ZP05207PQ.html
Apache Worm Analisys
http://www.freebsd.org/cgi/getmsg.cgi?fetch=34552+54852+ /usr/local/www/db/text/2002/freebsd-security/20020707.freebsd-security
Xavier Caballé
xcaballe@quands.com
|