Un blogger español, y usuario de Meneame meneame.net/user/jcarlosn encuentra un presunto agujero de seguridad en Windows Vista, incluido el sp1, y se le censura de la famosa lista bugtraq de seguridad, con excusas, para no hacer público el error. ¿Podría ser esto una estrategia de Microsoft para lavar la cara a su seguridad?
menéame
en.wikipedia.org/wiki/Integer_overflow
Su explotación y riesgos está descrita en phrack 60:
www.phrack.org/archives/60/p60-0x0a.txt
Llegados a este punto sabemos que existe un agujero de seguridad en winsat.exe, que es una aplicación que a través del UAC, hereda los privilegios totales del usuario, por defecto root.
En windows vista, existe una separación root | usuarios, por defecto, tu usario es root, pero lo que ejecuta NO es root, sino que hereda privilegios limitados, es una de las features mas innovadoras de vista, según microsoft.
El problema reside en que si puedes tomar el control de un proceso que ... » ver todo el comentario
En ubuntu el usuario por defecto en la instalación, no es root, pero está en el /etc/sudoers, por lo que si quiere ejecutar algo como root, puede hacerlo usando sudo y proporcionando su contraseña.
En vista, es casi igual, la diferencia es que funciona un poco diferente, en vista el usuario por defecto es root, pero los procesos que ejecuta, no lo son, a menos que el proceso lo pida expresamente, cuando un proceso lo pide, sale en pantalla un aviso, con la empresa que firma el ejecutable, y su ruta.
De esta forma, si te aparece en pantalla que C:userspepitoDesktopmalware.... » ver todo el comentario
El problema aquí no es que tenga un bug de seguridad, todo software más o menos complejo suele tenerlo, sino en cómo han tratado a este reporte en securityfocus a diferencia de otros que se explica en al apunte.
Esto es como el canon (en mi opinión), el problema no es que tengamos que pagar, sino el proceso por el cuál se decidió y quiénes son los que administran el dominio. En este caso el problema NO es el bug, sino en cómo tomaron decisiones en securityfocus.
¿Es infantil o conspiranoico preguntarse porqué para una empresa gorda son tan "así" y para productos libres son tan liberales de acpetar bugs que no lo son o que inlcuso no están demostrados que sea un bug?
Sin embargo, cuando es windows, entonces todo se mira con lupa, y a la mínima, se censura.
Dejando a un lado los flames, no tenemos certeza de cuantos agujeros mas se están censurando así, y luego microsoft dice que hay menos bugs en su software, que en los productos libres...
Es un bug bastante grave (MUY grave), aunque no haya manera obvia de exploitearlo. Es vergonzoso es que se cause un overflow de una manera tan fácil para un programa que corre ¡como root!
Esto es un poco similar a los binarios suid en linux.
Por el contrario, como jcarlosn acaba de demostrar, en Windows no es suficiente con que una aplicación cualquiera pueda causar un error en un proceso con privilegios y pueda controlar la manera en que sobreescribe la memoria. Parece que es necesario que alguien descubra como explotarlo y distribuya un virus que infecte a medio mundo. Entonces sí tendremos un agujero de seguridad.
for(int i=0;i<NUMERO_RECIBIDO_COMO_ARGUMENTO;i++) {
crea_figura();
}
con lo cual no es un fallo de seguridad. Ahora bien, si hiciera algo como:
char buffer[NUMERO_RECIBIDO_COMO_ARGUMENTO];
o accediese al elemento n (n=NUMERO_RECIBIDO_COMO_ARGUMENTO) de una región de memoria sí sería peligroso. Lo que te pedía el tipo de Microsoft es que le dieras pruebas de que eso era explotable, no que le explicaras lo que es un integer overflow. Como dicen en el artículo de Phrack:
Of course most integer overflows are not exploitable because memory is not being directly overwritten, but sometimes they can lead to other classes of bugs, frequently buffer overflows.
es decir, que normalmente no son explotables, salvo cuando se usan para trabajar con buffers.
De todas formas, no es esto motivo suficiente para no censurarlo, y que quien quiera lo investigue y se sepa el final? ahora seguro que no lo sabremos nunca.
A mi lo que me ofende es que si esto mismo hubiese sido en otro producto que no fuese de microsoft, como ya ha pasado en el pasado, no hubiese sido censurado en securityfocus, y mucha gente podría haberlo investigado, y se hubiese sacado una conclusión finalmente.
De todas formas, por lo que se ve en el debugger (miralo si tienes un rato) parece ser que ese indice se usa para reservar memoría, por lo que si sería peligroso.
Perdón, creí que era un concurso de obviedades. Soy muy competitivo.
– Dr. Gregory House.
Edit: "The worm spread by exploiting a buffer overflow in the DCOM RPC service on the affected operating systems, for which a patch had been released one month earlier in MS03-026"
en.wikipedia.org/wiki/Blaster_%28computer_worm%29
Esto se complica ya muchísimo, lo máximo que le puedo dar a los de Microsoft es la prueba de que hay un buffer overfloweado como consecuencia del entero, y que se puede controlar parcialmente, pero sabes que? al final acabamos todos trabajando para microsoft, te cansas, lo envias a bugtraq para que lo sigan los demás, y te lo censuran, cuando bugs calcados a este, pero en preoductos de software libre, los aceptan a diario, ese es el punto del artículo.
La noticia es que securityfocus esta comprada por MS y no reportan (ni aceptan) bugs en productos de MS.
Y aún así hay gente que continua diciendo que nos quejamos de Microsoft por mania y que el software propietario es también bueno. en fin...
Envié el enlace de mi blog a un conocido para que le echara un vistazo.
Entonces, como supongo que sabéis, en las estadísticas te sale quien te ha vistado y desde donde.
Pues resulta que al acceder esta persona a mi blog, en las estadísticas salía directamente el enlace vía webmail.
Me da por clicarlo y accedí directamente al correo de esta persona (evidentemente esta persona estaba con sesión abierta en su correo vía web).
Y tenía acceso completo a su correo.
Cabe decir que no me pude resistir y miré la agenda, jejejeje.
Pero como vi que era un error enorme avisé.
Aunque mis conocimientos de informática no me permitieron saber si era un bug en los blogs de msn, o en el correo vía web de esta persona.
Pero no entiendo dónde está el agujero de seguridad.
El error que encuentras parece un error de una aplicación de sistema. Parece un bug, cierto pero no veo el problema de seguridad a priori.
Si alguien logra escalar prilegios en un sistema, ese es el fallo de seguridad.
Es como si en un sistema Linux dices que puedes llegar a ejecutar como root un determinado binario que puede ser un troyano.
Lo grave, es la escalación de privilegios. Un sistema seguro no debe permitir que un usuario acceda a permisos de superusuario.
Incluso lo reconoces en el correo: "I’m not sure if you can control some memory using other options in winsat.exe arguments to take advantage of this issue, and exploit it."
Te echo una mano con un par de votos positivos.
La verdad es que en el bugtraq se comen casi cualquier cosa... que suene a esto es una bomba. Así que si hay exploit, de la chorrada más chorra, lo publican seguro. Que le de exposición al problema y, si se puede explotar, ya saltará algo.
Si lo ha descubierto él, tendrá crédito seguro.
meneame.net/story/macbook-hackeado-en-2-minutos
P.D: que curioso, el meneo anterior no ha salido a portada.
P.D2: eventos.barrapunto.com/article.pl?sid=08/03/28/1134238
Ya lo sabía, por eso lo puse ;) . Me explico, a windows le criticamos hasta el fondo de pantalla pero los demás... los demás tienen carta blanca.
Puedes quejarte de Microsoft y de sus productos, pero ¿ qué tiene que ver el software cerrado ?.
Os recuerdo que el navegador Opera es cerrado y nadie lo considera un coladero.
Hay cientos de programas que no son de código abierto que son muy seguros.
Para expresar las ventajas del SL no hace falta atacar el software cerrado: creo que tiene cosas buenas por si mismo.
Insisto: que haya un bug no significa que haya agujero de seguridad.
Tu equiparas bug con inseguridad y no siempre es así.
Tan sólo has probado a meter un entero 2147483648 y la aplicación ha fallado
Como bien dices, Windows Vista no es código abierto, así que no queda más remedio que lo echen un ojo los propios desarrolladores.
Que es un bug es evidente, pero parece ser que Microsoft no lo considera un fallo de seguridad.
Dices: "El problema reside en que si puedes tomar el control de un proceso que hereda privilegios completos del UAC, puedes usarlo como puente en tu aplicación, para escalar privilegios."
Desconozco como funciona Vista, pero en este caso, estas denunciando una mala arquitectura, no la escalacion de privilegios por una situación concreta de un bug en una aplicación concreta.