home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Forum of Incident Response & Security Teams
/
Forum_of_Incident_Response_and_Security_Teams_FIRST_October_1994.iso
/
teaminfo
/
cert_it
/
advisory
/
s_94_03.txt
< prev
next >
Wrap
Text File
|
1994-07-08
|
4KB
|
119 lines
==============================================================================
SECURITY ADVISORY CERT-IT
==============================================================================
Author/Source : CERT-IT <cert-it@dsi.unimi.it> Index : S-94-03
Distribution : World Size : 4236
Classification: External Version: Final
Subject : Wuarchive FTP daemon (ftpd) bug Date : 11-04-94
==============================================================================
========
Abstract
========
Nelle versioni anteriori alla 2.3 del daemon ``ftpd''
di wuarchive.wustl.edu sono presenti due gravi bug che
permettono, in determinate condizioni, di diventare
root a chiunque conosca la giusta sequenza di comandi.
Tale daemon e` ormai comunemente usato in moltissimi sistemi
come replacement del daemon ftpd di sistema.
Consigliamo di disabilitare il daemon finche` non si e`
fatto l'upgrade alla nuova versione 2.3.
===========
Descrizione
===========
Qualunque utente remoto o locale puo` acquisire i privilegi
di root utilizzando questi bugs indipendentemente dal fatto
che ci sia o meno una configurazione per il servizio di
anonymous ftp.
Il primo bug puo` essere sfruttato molto facilmente solo se
esiste la directory ~ftp/bin/ftp-exec in cui, generalmente,
vengono messi i comandi eseguibili durante il collegamento ftp.
La presenza del secondo bug puo` essere verificata eseguendo
il seguente comando nella directory dei sorgenti:
$ grep \"NULL\" src/*.c
Se trovate la stringa ``NULL'' molto probabilmente e` presente
un Trojan Horse nel vostro daemon. Piu` in particolare e`
possibile editare il file ftpd.c e controllare se, ad un
certo punto, il sorgente appare come segue:
>
>#ifdef ULTRIX_AUTH
> if ((numfails = ultrix_check_pass(passwd, xpasswd)) < 0) {
>#else
> /* The strcmp does not catch null passwords! */
> if (pw == NULL || *pw->pw_passwd == '\0' ||
> strcmp(xpasswd, pw->pw_passwd)) {
>#endif
> reply(530, "Login incorrect.");
>
Se il vostro sorgente e` come sopra, allora il vostro ftpd
probabilmente NON contiene la backdoor. In ogni caso, anche
se entrambi i bug sembrano non esistere sul vostro sistema,
e` auspicabile sostituire ugualmente il vecchio ftpd con
la nuova versione 2.3.
======
Rimedi
======
Consigliamo di cambiare il daemon di ftp. La versione 2.3 non
e` affetta dai bug sopraindicati. Occorre eseguire i seguenti
passi:
1. Disabilitare subito il servizio ftp editando
/etc/inetd.conf e commentando l'entry relativa.
2. Se cio` non fosse possibile, rimuovere almeno la
directory ~ftp/bin/ftp-exec.
3. Fare l'upgrade alla nuova versione 2.3. La versione
e` disponibile in:
ftp@ftp.uu.net:
/networking/ftp/wuarchive-ftpd/wu-ftpd-2.3.tar.Z.
Per maggiore sicurezza si puo` verificare il
checksum MD5 di wu-ftpd-2.3.tar.Z che deve
corrispondere a c43d27cd00b80dfcfed5d673bcb7a07a.
===========
Prevenzione
===========
Come misura precauzionale per eventuali futuri bug che
potrebbero essere scoperti in seguito, sia per ftpd sia per
qualunque altro daemon, consigliamo l'utilizzo del piccolo
programma ``chrootuid''. Chrootuid e` stato scritto da
W. Venema ed e` disponibile in:
ftp@ftp.dsi.unimi.it:
/ftp/pub/security/src/system/chrootuid1.2.shar.Z
Chrootuid effettua un chroot() e un setuid() prima di lanciare
un certo comando. Se si usa chrootuid in /etc/inetd.conf e`
possibile fare il chroot PRIMA che il vero daemon venga lanciato
e cosi` facendo si minimizzano le conseguenze di qualsiasi
bug software.
Un entry in /etc/inetd.conf riguardante ftpd dovrebbe avere
questa sintassi (nell'eventualita` che si voglia utilizzare in
congiunzione anche l'utilissimo ``tcpd'', sempre di Venema):
ftp stream tcp nowait root /etc/tcpd chrootuid /ftp root /bin/ftpd
Consigliamo di estendere l'utilizzo di chrootuid anche ad
altri servizi come gopher, WWW, Wais, tftpd ecc.
==============================================================================