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
pgpVhILvfn87W.pgp
Description: PGP signature

