El mar, 15-01-2002 a las 12:22, Antonio Castro escribi�:
> On 15 Jan 2002, Juan Antonio Martinez wrote:
> 
> > par de errores gordos de concepto en cuanto a seguridad ( el usar
> > system() sin ajustar el entorno, por ejemplo ), pero por lo menos hace
> 
> Eso no lo entiendo.  A que te refieres con ajustar el entorno ?
> En el man de system() lo �nico que veo sobre esto es:
> 
>       No llame a system() desde un programa con privilegios suid o sgid, 
>       porque  pudiera  ser  que  se emplearan  valores  extra�os  para  
>       algunas  variables  de entorno para comprometer la integridad del 
>       sistema. 
> Yo creo que cuando system llama a un programa normal sin privilegios
> no deber�a haber problemas a no ser que exista la posibilidad de salir 
> a la shell como es el caso de un mont�n de comandos de tipo interactivo.

En los tiempos de maricasta�a hab�a un bug famoso del telnetd que hac�a
que se invocase a una shell desde �ste. Daba la casualidad de que
telnetd corre como setuid root.... El truco consist�a en aprovechar que
se utilizaba una llamada a un programa que tomaba como par�metros
valores de las variables de entorno... algo as� "ARGS=hola;/bin/bash"

El telnetd, obediente, llamaba a su programita...( totalmente seguro y a
prueba de hackers)... y acto seguido lanzaba una shell :)

Normalmente, en lugar de system(), en entornos seguros se utilizan las
funciones execvp() y familia, donde le puedes pasar como par�metro un
puntero a la lista de variables de entorno, que TU has previamente
definido. La verdad es que nadie deber�a utilizar system() en entornos
"criticos"

No hace falta que el programa al que llamas sea "seguro". El problema
reside en meter en la l�nea de comandos datos de las variables de
entorno que puedan haber sido editados por alguien ajeno a t�. El
ejemplo del telnetd deber�a ser suficientemente elocuente

-- 
        Juan Antonio          \|||/
                             / _ _ \
                             \ o o /
=========================o00o===U===o00o======================================
Juan Antonio Martinez               Universidad Politecnica de Madrid
email: [EMAIL PROTECTED]          E.T.S.I Telecomunicacion
http://www.dit.upm.es/~jantonio     Ciudad Universitaria s/n
Tel:   34-1-3367366 ext 416         Laboratorio de Programaci�n. Desp
A-127-2
Fax:   34-1-3367333                 28040 Madrid, Spain
==============================================================================
�Y que har�ais si Dios os Dijera: "Os ordeno que, por encima de todo, 
se�is felices el resto de vuestra vida"?  - Richard Bach

Attachment: pgpVhILvfn87W.pgp
Description: PGP signature

Responder a