lunes, abril 30, 2007

Defacement en Microsoft.com

La historia comienza con un mensaje de Sirw2p que me envía un defacement de una web en la que han puesto la famosa foto de Bill Gates recibiendo el tartazo, pero no me fijo en el sitio que había sido atacado.

Cuando a la mañana siguiente voy a publicar el post diario en el blog decido poner el link a la lista de sitios defaceados en Zone-h y veo que el mismo hacker tiene uno a las 09:27 (GMT de la web de Zone-h), pero cuando me fijo veo el dominio, “Microsoft.com”.

Lista de sitios defaceados en Zone-h

Hago clic para ir a ver el sitio y efectivamente el sitio está defaceado. Han conseguido meter un valor en la lista select que carga una capa por encima con la foto, así que guardé el archivo modificado para que vierais el código.

Inyección del defacement en el código fuente

El resultado del defacement era este:

Sitio ieak.microsoft.com con defacement

Al rato apareció una noticia en SANS alertando del hecho y confirmando que el equipo de desarrollo del código vulnerable de la página atacada era de una tercera empresa.

Por el momento el sito está caido mientras se arregla el fallo en el código.

Sirva este ejemplo para recalcar el mensaje que llevamos tiempo voceando, las webs están fatal programadas y pocas son aquellas que no tienen fallos de seguridad. Por favor, auditarlas antes de ponerlas en producción.

Démonos TODOS por avisados.

domingo, abril 29, 2007

Date por avisado

Acabo de llamar por teléfono a unos amigos de profesión para avisarles de otros fallos de seguridad.

- ¿Qué pasa Chema? ¿algún problema con la web?¿tiene algo mal?.
- Pues sí, no la he mirado completamente, pero creo que tiene hasta cangrena, es decir, tiene SQL Injection de level 1 (‘or ‘1’=’1) o también llamada “acabo de hacer un curso por correspondencia y ya soy desarrollador de aplicaciones y programo mis propios juegos”, permite manipulación de urls, para que todo lo que uses sea de dominio público, Cross-Site Scripting (XSS) para hacer la web más chula, la cookie no es segura y se puede ver la información de todo el mundo decodificándola y codificándola de nuevo, vamos, que la aplicación está para empezar de nuevo.
- ¡Joder con las prisas!.


Estos compañeros de profesión no me preguntan que andaba haciendo para encontrarlo, ya saben que uno tiene “la mirada sucia” y cada vez que ve un id=1 piensa “¿Tendrá control de errores? ¿Habrá tenido cuidado con el blind sql injection? ¿Tendrá restringidos los privilegios en la base de datos?" Y en cero coma el parámetro recibe una lista de “1’a”, un “-1”, un “1 order by 100--“, “1 and 1=1”, “; shutdown--“, no, este último no, que si rula iba a ser “muy gracioso”.

No avisas a todo el mundo, primero porque algunos se enfadan y en segundo lugar porque te pasarías todo el día enviando correos y dando explicaciones. Muchas veces no persigues el fallo hasta el final, ves que has puesto una tontería y la aplicación ha petado y ya intuyes el final, pero no lo buscas, cuando ya has hecho tantas no tiene la misma gracia que la primera vez.

Recuerdo aquella noche, fue con la web del Atlético de Madrid, estaba entonces en segunda división y yo estuve sin dormir dos noches esperando que llegaran los GEOS por la ventana. Después le hice la demo en un curso al que la había desarrollado. ¡Y me lo agradeció!

Ahora, con la entrada del nuevo código penal esto va a ser un delito de los serios, así que, habrá que dejar de hacerlo. Esto ¿qué va a conllevar? Pues en primer lugar que se acabó el avisar (salvo a los ya amigos), porque si lo haces ya eres oficialmente un phosquito, en segundo lugar sucederá que como nadie avisa, pues nadie se entera… hasta que sea demasiado tarde y a alguien le parece más gracioso usar tu servidor para realizar ataques de phising, controlar botnets o atacar a otros sitios.

¡Todo diversión! Te levantas por la mañana y te encuentras en la web unas calaveras con sus tibias y todo, bien decoradita, con musiquita y eso para amenizar la visita, te dan de alta en zone-h y eres la diversión del sector de negocio. ¡El alma de la fiesta! Si no les da por borrarte una base de datos de esas que se usan para gestionar la pasta o te roban los datos personales de algunos clientes y te cae una pequeñita multa de la LOPD o que se yo, igual dejan de comprar a través de tu web los clientes.

¿Esta medida frenará las intrusiones? La verdad es que bajo mi entender no. Si alguien quiere hacer algo malo, y sabe como hacerlo también va a saber utilizar los sistemas de anonimato, desde utilizar la wireless de ese vecino confiado que la tiene totalmente abierta con su SSID del tipo “Wireless_Juanito” (tranquilo Silverhack, no es la tuya) que vive feliz bajo el lema “¿A mi quién me va a atacar?” o el que tiene el primo del sobrino de su cuñado como experto tecnicoless y le configura WEP en la wifi porque con la distro que le ha puesto no funciona WPA, o ese cibercafé en la esquina de la calle, o ese hotel, aeropuerto, etc… con ese servicio wifi tan cercano, o esa conexión a través de un Proxy anónimo de los miles que se publican en http://www.samair.ru/proxy, que además puedes usar multiplexados con multiproxy, o el servicio de anonimato que ofrecen empresas como Anonymizer, o las redes TOR (The Onion Routing), no, estas no, que dicen que ahora entregan se pueden rastrear por logs, mmmm, ¿será fácil conseguirlos de verdad?.

Así que, sirva este texto para avisarte: Tu web puede que no sea segura. Piensa, si los ingenieros de Oracle, de Microsoft, de Google cometen fallos de seguridad, ¿tus desarrolladores no cometerán fallos o tus desarrollos son perfectos? Tal vez no, tal vez sí. ¿Le has pasado tu web a alguien que tenga la mirada sucia? No habrás publicado una aplicación web conectada a una base de datos donde convivan otros datos delicados del negocio sin haberle hecho un test de intrusión, ¿verdad? Hay que ser responsable con los activos de la compañía, ¿no? ¿Seguro?

Date por Avisado.

Publicado en Windows Ti Magazine número 119 Abril 2007
Date por Avisado

sábado, abril 28, 2007

La verdad ante los ojos

Dice un refrán popular que de lo que oigas no te creas nada y de lo que veas solo la mitad. Esto parece más un dicho de Dilbert aplicado a los informáticos más que una pieza de sabiduría popular.

En el caso de los ojos más aún si no sabemos como funciona la representación mental que nos hacemos de lo que vemos, es decir, como interpreta nuestro cerebro los rebotes de luz de las cosas que llegan a la retina.

Cada vez que veo un juego visual no dejo de maravillarme, así que hoy os dejo para que no os aburráis un conjunto de 71 juegos visuales. Muchos corren como la pólvora en las cadenas de ppts, pero hay otros bastante curiosos. Además, a parte de estar presente el juego está la explicación al por qué de estos sucesos.

Es fin de semana, juguemos un rato.

71 Optical Illusions & Visual Phenomena by Michael Bach

viernes, abril 27, 2007

Definiciones

Técnicoless

|têknikoleS| o |teknikolêS|. Coloquial. Adjetivo. Uso despectivo. No cariñoso.

1. Dícese de aquellos no técnicos que elucubran afirmaciones técnicas.
2. Qué practica el tecnicolissmo: Los técnicoless abundan en la Web 2.0 eligiendo cualquier tema de moda para erigirse como cabecillas de las modas con el fin de obtener visitas a sus blogs. No necesitan llevar razón, pueden censurar comentarios en su blog contra opiniones encontradas o que bajen su imagen pública.
3. Tonto tecnológico.
4. Degeneración de tecnólogo. La diferencia entre un técnicoless y un tecnólogo radica en que, aún siendo los dos NO técnicos, el segundo intenta conocer la tecnología mientras que el primero intenta enseñarla.
5. Que poetiza resultados técnicos en prosa no técnica: “X es mucho más mejor que Y”. Nótese el uso de “mucho más mejor” como unidad de medida.
6. Que no necesita más demostración técnica que la realizada por su propio entendimiento.
7. Acostumbrado a hablar de “pájaros y flores”.

Véase también técnico-less.

Sinónimos: Enterao, Macario, “aplausos”, técnico-less.
Antónimos: Técnico.

Técnico-less

|têknikoleS| o |teknikolêS|. Coloquial. Adjetivo. Uso despectivo. No cariñoso.

Vease también: Técnicoless

Tonto

1. adj. Falto o escaso de entendimiento o razón. U. t. c. s.
2. adj. Dicho de un hecho o de un dicho: Propio de un tonto.
3. adj. coloq. Que padece cierta deficiencia mental. U. t. c. s.

Vease: RAE

jueves, abril 26, 2007

El Segundo 40

Hola holita,

quería hoy publicar alguna cosa, pero estoy con mala gente en Bilbao (Sergio de los Santos de Hispasec, Txipi de la Universidad de Deusto, Victors (2) de GFI y el abuelo de vete tu a saber quién) y no tengo mucho tiempo, así que os dejo dos videos del MVP Summit de este año, al que yo no pude irme porque me quedé a trabajar en el Techday.

Del primero solo os recomiendo el segundo 40. Del segundo no digo nada.


Video: MVP Summit 2007 Opening



Saludos!

miércoles, abril 25, 2007

Testing en Spectra (Parte II de II)

Primera Parte

¿Cuántos casos de prueba se han podido revisar en Windows Vista en la fase de Testing?

Muchos miles. Para cada parte del producto hay diferentes equipos de testeo que se especializan en las diferentes áreas. En España, durante el desarrollo de Windows Vista hemos testeado la parte de Media Center, la compatibilidad con aplicaciones del mercado, todo lo relacionado con conectividad/activación y la interfaz traducida.

Solo verificar la interfaz traducida al castellano eran alrededor de 2000 test cases. Esto no incluye los test cases de Media Center ni los de Compatibilidad

¿Se cuenta con empresas o personas externas o sólo lo hacéis internamente para que "no roben el producto antes de estar listo"?

Siempre que podemos contamos con empresas y personas externas. Para nosotros es muy importante recibir las opiniones de los que va a ser nuestros clientes antes de finalizar el producto. Las direcciones de los productos cambian en función a lo que nos cuentan estos usuarios.

Durante el desarrollo del producto se definen unos milestones (fases). Lo que llamamos “Betas”. En las primeras Betas, el producto está más o menos estable pero todavía en fase muy preliminar. Es muy importante enseñárselo a nuestros clientes para que ellos puedan darnos su criticas y podamos incorporarlas. Así es de importante para nosotros ese feedback.

Pero también es importante para clientes y otros desarrolladores ver versiones preliminares. De este modo, ellos pueden evaluar y planificar sus propios proyectos por si deciden usar nuestra tecnología.

Para coordinar todo el feedback externo abrimos los programas “Beta”.

Los Beta testers son tanto entusiastas que quieren ver lo que se avecina, como empresas que quieren evaluar nuestro software antes de decidir si implantarlo o no

¿Recibís ayuda “anónima”?

Todos los Beta testers tienen un ID. Claro que pueden usar otro nombre, pero es importante hacer seguimiento de quien ha introducido los bugs por si hay que reproducirlo y nos faltan detalles. Introducir bugs en la base de datos, no es cosa trivial. Para que podamos reproducir los errores que se reportan externamente a veces nos hace falta conocer el entorno en el que se ha producido el bug. Si al bug reportado le falta información, va bien poder contactar con quien que lo ha reportado por intentar seguir los mismos pasos y llegar así a identificar el bug.

Varias veces me han llegado comentarios tipo “tengo un amigo que probó tal cosa y no funcionaba…” o “…he oído que tal feature no funciona…”. Cuando pasa esto, miramos de encontrar el bug internamente con las pistas que hemos oído y si tenemos suerte de reproducirlo, lo introducimos nosotros mismos en la base de datos para no perderlo. Mirándolo así, sí que hay ayuda anónima.

¿Se comprueban todas las versiones que va sacando el equipo de desarrollo o hay algunas más importantes que otras dentro del ciclo de desarrollo?

Se comprueban todas las builds pero hay algunas mucho más importantes que otras. A las builds se les asigna una calidad. Cuando salen nuevas builds, son calidad “test”. Si resulta que la build es suficientemente estable se la promueve a calidad “IDW” (Internal Developer Workstation).

Las mejores IDWs se convierten en Betas y son éstas las que publicamos externamente.

Los empleados de Microsoft que no son testesrs y quieren probar el producto, miran de instalarse builds que sean IDWs

Los Project Managers definen al principio del proyecto los diferentes Milestones (etapas). Se define cuando ha de salir una IDW y cuando ha de salir una Beta externa. Y como en cualquier proyecto, también define que ha cubrir cada Beta.

Las Betas que se publican externamente en Internet para todos los públicos, son los Milestones mas importantes por que son las compilaciones a las que tiene acceso todo el mundo.

¿Se comprueba que un bug arreglado en una versión anterior no vuelva a ser introducido?

Si. Cuando encontramos bugs, antes de introducirlos en la base de datos, hacemos una búsqueda no vaya a ser que alguien ya lo haya reportado. En Product Studio (la base de datos que usamos para introducir los bugs) se pueden hacer búsquedas bastante flexibles (por Título, descripción, archivo, palabras sueltas….) Vamos…, que es fácil buscar. Si después de buscar y no encontrar, abrimos un bug y resulta que ya estaba introducido y no lo vimos, el ingeniero lo resuelve como “duplicado” y lo enlaza al bug primario. El tester solo tendrá que verificar que su bug se ha arreglado cuando se arregla el primario.

Todos los bugs arreglados se repasan en builds posteriores. Esto se hace por si al arreglar algún bug, accidentalmente se re-activa otro que ya estaba solucionado (un mismo fix, puede afectar a varios archivos y al mirar de arreglar un problema se puede romper otro). Antes de hacer la build final se repasan todos los bugs por asegurarse que esto no ocurre. A esto le llamamos hacer “regresión”.

¿Tendréis que repetir pruebas para el SP1 de Vista? ¿Tenéis algo de información ya de este Service Pack?

En SP1 se prueban los componentes que se actualizan. Se hacen test cases para abordar todos los archivos que han sido modificados

¿Cuál es la versión de un Beta Tester y que obtiene en compensación por estar “jodiendo” el software de la compañía?

Los Beta Testers tienen acceso a muchísimas builds. Las builds que son declaradas “Beta” se publican en internet y son de acceso libre a través de la site de Microsoft (www.microsoft.com). Pero los Beta testers tiene acceso a las sites beta (http://connect.microsoft.com/ ) de donde se pueden descargar nuevas builds casi semanalmente.
En el mismo http://connect.microsoft.com/ pueden reportar bugs y encontrar documentación sobre cada proyecto.

En Windows Vista, a los beta testers se les agradeció su feedback con una licencia de Windows Vista Ultimate

¿Y ahora con Longhorn, otra vez desde cero?

En Longhorn, al igual que en SP1, se testea todo lo nuevo y todos aquellos compontes que dependen de las partes que trae Server. Las partes “cliente” de Longhorn que no tienen dependencias no se re-testean tan exhaustivamente como en Windows Vista. Se hace un “sanitiy pass”.

Longhorn incluirá los bug fixes de SP1. O sea que los bugs que no se pudieron arreglar durante Windows Vista y se han arreglado en SP1, se verificarán en Longhorn, claro.

Microsoft ya ha empezado a pedir feedback para Viena, durante el proceso de testing encontraréis características “incomodas” que no pueden ser cambiadas debido a la arquitectura del diseño. ¿Habéis pasado algún feedback para Viena que se pueda contar?

No ;)

¿Alguna curiosidad de vuestro trabajo?

Durante los ciclos de testeo, el tiempo es realmente valioso. Todo lo que se puede automatizar se hace. Cuando acaba nuestra jornada laboral dejamos los PCs de prueba encendidos y ejecutando “Stress”. Esta es una herramienta que auto-estresa el sistema en busca de errores identificables automáticamente.

Otro automatismo que tenemos es para descargar e instalar las builds.
Las builds se hacen en Redmond {horario del Pacifico (GMT – 8)}. Usamos herramientas que leen los servidores de las builds en Redmond y empiezan a descargarlas a nuestros servidores locales tan pronto están listas. La misma herramienta hace una instalación automática en PCs asignados la noche anterior. De modo que cuando llegamos a la oficina por la mañana, ya están listas para probar.

Los equipos de testing son multiculturales y están ubicados en muchas partes del mundo. Para asegurarnos que estamos todos alineados mantenemos comunicación regular con estos equipos. Una de las cosas que más me gusta de este trabajo es poder estar en contacto estos compañeros de otras culturas.

A los betas testers les ocurre un poco lo mismo. A través de los newsgroups están en contacto con otras personas que también están probando el producto. Da igual en que parte del mundo estén, todos tienen algo en común, la pasión por la tecnología

¿Alguna anecdota?

Como te he contado antes, los testers abren bugs en la base de datos y se lo asignan a la persona que debe arreglarlo. Recuerdo hace un tiempo ver un bug que alguien había abierto y asignado a una persona. El título de bug era algo así como: “Will you marry me?”

Obviamente el que reportaba el bug y el que lo tenía que arreglar eran pareja. Ahora son familia ;). Es la manera mas original que he visto de pedir matrimonio!

Celia Pipó

martes, abril 24, 2007

Testing en Spectra (Parte I de II)

Celia Pipó es miembro del equipo de Windows Internacional, es una trotamundos. Salio de su casa con una mochila en la espalda a buscarse la vida a los USA, después recayó en Irlanda donde entró a trabajar en Microsoft y desde entonces trabaja para “Spectra”, ahora destinada en Barcelona ¿Por cuánto tiempo? [celiap – no se. lo del tiempo va en función de necesidades y proyectos de la compañía, como todo. Hoy estoy aquí… mañana quien sabe…] en el equipo de testing. A parte es de lo más simpático que te puedes encontrar, así que, como se presta, la he hecho una serie de preguntas sobre que es lo que se cuece internamente por dentro de Windows.

¿Qué comprobaciones son las que realiza el equipo de Testing, vamos, por qué os pagan?

Hola Chema, el equipo de Testing es el responsable de asegurarse que todo funciona como debe. En pocas palabras, responsable de probar, estresar el sistema, encontrar fallos, reportarlos y continuar probando para asegurarse que los fallos reportados son arreglados.

Hay varios equipos que colaboran con el equipo de Testing y que son muy importantes durante todo el desarrollo del producto. Estos otros equipos son vitales para que los Testers puedan hacer su trabajo.

A grandes rasgos están, los PMs (los que diseñan los features y componentes y coordinan), los developers (los que pican código; hacen que cada archivo haga lo que está diseñado para que haga), los Build engineers (los que “montan” los componentes para formar el sistema operativo), los Testers (los que prueban la compilación que han hecho los Build engineers) y los localizadores que son los que escriben la parte que los usuarios vemos. (En compilaciones no-inglesas, éstos son traductores)

Todos estos equipos son dependientes uno del otro.

Para asegurarse que cada una de las partes del producto hace lo que debe, el tester crea una serie de “test cases” para ir repasando esas features que ha diseñado el PM en cada una de las compilaciones de prueba.

Un “Test Case” viene a ser como un guion con instrucciones paso a paso de cómo ejecutar cierta aplicación. Por poner un ejemplo sencillo… si tienes que testear que la impresora imprime, el test case sería algo así como:

Click on Start, Go to Control Panel  Printers  right click on printer  choose properties  click on “print test page”  ensure page is sent to printer

Como el testeo puede durar meses, el test case ayuda a asegurarse que no te olvidas de repasar nada. Una colección de Test Cases forman un “test pass”.

Un ejemplo de un test case real:

Title: EPG; Verify the Edit Channels page is working (block, unblock, remap)
:: Requirements ::
~ Standard MC configured and with working guide

:: Instructions ::
1.) Start MC
2.) Goto Settings -> TV -> Guide -> Edit Channels
3.) Uncheck a channel (e.g., channel 4) and select 'Save'
4.) Go back to Edit Channels and verify that the check box next to the channel is now unchecked
5.) Navigate to the Guide and verify that the channel no longer appears in the EPG
6.) Goto My TV -> Search -> Title and enter the name of a program that normally airs in the channel you just blocked (e.g., Wheel of Fortune). Verify that the blocked channel does not appear in the results list
7.) Goto Settings -> TV -> Guide -> Edit Channels
8.) Check the channel you unchecked in Step 3 and select 'Save'
9.) Go back to Edit Channels and verify that the check box next to the channel is now checked
10.) Navigate to the Guide and verify that the channel does appear in the EPG
11.) Goto My TV -> Search -> Title and enter the name of a program that normally airs in the channel you just unblocked (e.g., Wheel of Fortune). Verify that the unblocked channel does appear in the results list
:: Expected ::
When a channel is removed it should not appear in the Guide Grid nor in any searches done
Navigating through the EPG shouldn't be affected by remapping channels


El testeo solo entra en acción cuando los build engineers han conseguido montar un compilación que es lo suficientemente estable como para empezar a testearla. A partir de entonces se crean los ciclos de testing.

El flujo de trabajo sería:

Build engineers hacen build.
Si la build no pasa el BVT (Build Verification Test).
->Buscan los fallos, los arreglan y vuelven a hacer compilaciones hasta que pase BVT.
Una vez pasa BVT, la envían al equipo de test.
El equipo de test hace todo el test pass.
Introducen los bugs encontrados en la base de datos.
Dependiendo de qué sea el bug, será un ingeniero o un developer o un localizador el que lo arregle.
Se genera nueva build con los fixes.
Se hace BVT.
Se envía a Test.

Y así sucesivamente hasta llegar a ZBB (Zero Bug Build).

Un test pass completo puede ser enorme. Dependiendo del test pass, todo un equipo de testing puede tardar una semana entera en completarlo. Pero si los build engineers hacen builds cada día, no hay tiempo de hacer el test pass. Lo que se hace pues, es dedicar ciertas semanas a test passes completos y otras semanas a testear ciertas partes del producto. Se hace así también porque no todos los componentes se desarrollan a la misma velocidad, por lo que si una semana no ha habido cambio sustancial en cierto componente, no se testea y se centra el esfuerzo de testeo en los componentes que sí han tenido cambio.

También hay semanas que se dedican a hacer “regresión”. Esto es repasar cada uno de los bugs que ya se arreglaron en builds anteriores y asegurarse que no se han “roto” de nuevo en builds recientes. A base de coordinar semanas de “regresión” y semanas de “test pass”, el producto queda testeado exhaustivamente.

Todos los test cases están introducidos en una base de datos interna. Durante cada test pass, el tester introduce el resultado del test case (PASS/FAIL/ PI -> Pass with an issue) en la base de datos y esto queda guardado. De modo que si en algún momento alguien quisiera saber cuándo cierto elemento no funcionaba, solo tiene que mirar en la base de datos.

Hay muchísimas herramientas que ayudan a encontrar fallos, pero en todo ciclo de testeo, las herramientas mas importantes son 1) la que contiene los test cases y 2) donde introducimos los bugs. En Windows estás son:

1) WTT Studio: Herramienta/base de datos que contiene todos los test cases
2) Product Studio: Herramienta/base de datos donde se introducen todos los bugs


El tester introduce los fallos (bugs) en Product Studio y lo asigna al ingeniero o al localizador o al developer, dependiendo de que sea el bug. De no estar seguro, se lo asigna al PM y éste asigna consecuentemente. Cada bug tiene una prioridad y una severidad. Los PMs son responsables de asegurarse que los bugs tienen la prioridad y severidad asignada adecuadamente y que son arreglados según estos criterios. El PM tiene más visibilidad, por lo que también puede decidir en qué fase del desarrollo puede arreglarse el bug. Obviamente los bugs funcionales tienen prioridades más altas que los bugs estéticos.

Cada tester es responsable de hacer seguimiento de sus bugs. Cuando los ingenieros resuelven el error, el tester ha de verificar el fix y cerrar el bug o re-activarlo en función de si el fix ha solucionado el problema original o no.

Finalmente, después de cubrir los diferentes ciclos y cuando se llega a ZBB (Zero Bug Build) el tester firma conforme todo funciona según lo establecido.

Parte II

lunes, abril 23, 2007

¡Coja su cambio. Sea justo!

Hace tiempo que quería hablar de esto porque ya varias veces me he encontrado con esta “arquitectura de seguridad”.

¿Has visto Clerks?

Si no has visto esa película ya puedes cerrar el post de hoy e ir a verla. Si la has visto recordarás esta mítica escena en la que Dante se tumba detrás del mostrador a hablar con su chica sobre las mujeres con la que se ha acostado y la de po.. miembros masculinos a los que ella ha dado cariño y que acaba con la descripción de lo que es una “bola de nieve”. Repito si no has visto la película vete a verla.

Para conseguir esa intimidad Dante decide dejar un plato con dinero para cambio y deja un cartel en el que dice “Cóbrese usted mismo. Coja su cambio. Sea Justo”. El argumento que ofrece Dante es que “todo el mundo es legal porque piensa que le están observando”.

Esto de dejar que sea el cliente que se cobre me lo he encontrado ya en varias webs de venta online. ¿En que consiste la gracia? Algo sencillote, el cliente selecciona un objeto a comprar, ve el precio y selecciona el número de unidades.

El programador recoge todos los campos del formulario, es decir, el título del objeto, el identificador, el precio, el número de unidades e incluso el valor del botón.

Para construir el pedido el programador debe coger el valor del número de unidades que venga desde el cliente, pero ¿debe usar el valor del precio que venga desde el cliente? No, ya que un cliente “sin escrúpulos”, de esos que no dejan propina, podría modificado ¿cierto?

Pero venga, estaréis conmigo en que ya que estás con el objeto request es cómodo coger todo de allí, ¿no? No, seguro que no se le ocurrirá a nadie, ¿verdad? Porque sería una gran cagada, ¿verdad?

Bueno, yo hacía una demo muy graciosa con unas camisetas de cierto equipo de baloncesto ACB, pero ya lo han arreglado. Pedro Laguna me dijo que a él le gustaban mucho los posters de la web de Chuck Norris. ¿Tienes valor de estafar a Chuck Norris?. Yo sin embargo estaba mirando nuevos portátiles. En fin.

Interceptores HTTP:

- Achilles: Achilles 0.27.zip
- Odysseus: http://www.bindshell.net/tools/odysseus
- BurpSuite: http://portswigger.net/suite/
- Fiddler: http://www.fiddlertool.com/fiddler/
- WebScarab: http://www.owasp.org/

Sponsors:

- http://www.chucknorris.com/ [Pon el volumen antes de entrar]
- http://www.pc-portatil.com/ [hay buenos modelos]
- http://www.areapc.com/ [más PCs]
- http://www.antonibosch.com/

Pero recuerda, pueden estar vigilando, así que ¡Se justo!

domingo, abril 22, 2007

Clerks

Como hago muchas veces referencia la película de Clerks he decidido hoy domingo seleccionaros algunos pedacitos en Youtube. Disfrutad:

Jay & Bob el Silencioso:



El retorno del Jedi vs El Imperio Contrataca:



Dante y Randal:



Escena Perdida:

Después de la escena anteiror en el coche, iban a grabar ésta, pero se quedaron sin pasta y no pudieron grabarla. Años después la publicaron en comics y en la serie de dibujos animados, para explicar por qué salian corriendo del funeral.



Difamación:



¿Cuantas?:



Juxtaposición:



Final Alternativo:

Y tras el final (cuando Randal sale bailando) se grabó otro final.

sábado, abril 21, 2007

¿Se puede averiguar quién es el que primero que pone una película en el Emule?
Parte II: La Respuesta

Después de las respuestas al Post de Ayer con la pregunta os pongo aquí nuestra respuesta.

Nosotros, tras primero pensar que no se podía GARANTIZAR quién fue el primero que colgó un archivo de una película en una red p2p, llegamos a una posible solución al problema.

Imaginad que la película “Técnicoless The Movie” va a ser publicada en DVD y queremos saber quien es el primero que cuelga el DVD Rip de la misma. Antes de que salga la película metemos una serie de palabras para buscar un posible nombre de la misma, con lo cual pensamos en hacer consultas con la palabra Técnicoless que es la que más caracteriza a la misma. Realizamos consultas cada 10 minutos a todos los servidores que tenemos sin obtener ningún resultado.

En el intervalo de 10 minutos, por ejemplo, más retardos varios en contestar los servidores, puede que de repente encontremos un archivo que se llama “Tecnicoless_the_movie[DVR_RIP]divx.avi” pero claro en el intervalo ¿Cuántas fuentes del mismo archivo, con el mismo hash, pueden existir ya? Pues pongamos que tenemos 20 fuentes. ¿Quién fue el primero?

La solución no parece demasiado compleja, ya que bastaría con hacer una consulta con el API a cada uno de esos clientes y ver quien lo tiene entero. En 10 minutos, a día de hoy, no parece muy factible que baje una película de 700 Mbs (¡al menos con mi ADSL!). Lógicamente la validez del método dependerá del tamaño del archivo y la velocidad de la red y con canciones de música o documentos pequeños no parece factible. ¿Y si se cuelga en dos veces al mismo tiempo? Bueno, pues se obtendrán las direcciones de los dos equipos que lo han compartido al mismo tiempo.

Tampoco valdría con archivos que ya estén colgados pero si para una compañía que un día X quisiera sacar algo y saber quién es el primero que lo cuelga.

¿Factible? ¿Repercusiones? ¿Habrá que preocuparse? ¿Difícil de programar?

¡Saludos malignos!

viernes, abril 20, 2007

¿Se puede averiguar quién es el que primero que pone una película en el Emule?
Parte I: La pregunta

Hace tiempo nos plantearon un problema, "¿se puede saber quién es el primero que cuelga un archivo en emule?"

Si piensas la pregunta tiene su gracia y lo que nos interesaba, como siempre, era ver si se podía resolver el dilema o no. Hasta el momento las compañías están luchando contra la difusión de películas en las redes p2p de, básicamente, dos formas:

- La primera de ella consiste en poner fakes de la película para entorpecer la distribución y desalentar a la gente que se baja la película.

- Lógicamente, para luchar contra los fakes existen muchas alternativas y una de ellas han sido los Web Sites que publican los e-donkey links a los archivos correctos (hay más soluciones), por lo que la otra gran medida que se está tomando es intentar cerrar estas páginas.

No es este el único motivo por el que existen los fakes en las redes p2p ya que si alguien se quiere bajar un archivo con pocas fuentes puede guardar el archivo con un nombre que vaya a ser buscado para que se multipliquen las fuentes. Me explico:

Imaginad que queréis bajaros la opera prima de Diodon Dovstoktoya, famoso compositor de obras de música clásica para flauta y armónica ruso, cuya obra os hace vibrar. Si no sois muchos los fans de Diodon, seguramente haya pocas fuentes de dicha obra en la red p2p, con lo que tardará mucho en descargar. ¿Solución? Te pones a descargar el archivo de la obra de Diodon, pero le cambias el nombre al guardarlo, poniendo, por ejemplo, [ponga aquí nombre de disco/película/archivo de moda para gran publico].rar. Automáticamente la red pasará a tener un nuevo archivo que va a ser muy buscado por la gente, pero que tiene el hash de la obra de Diodon, con lo cual, mientras tú te bajas la parte 3 de 10 del archivo de Diodon, otro se baja la parte 4 de 10 del archivo de Diodon. ¿Conclusión? Cuando tú te vayas a bajar la parte 4 de 10 del archivo del Gran Diodon ya habrá 2 fuentes. Esto multiplícalo por todos los amantes de [ponga aquí nombre de disco/película/archivo de moda para gran publico].rar y conseguirás que se agilice la descarga.

Pero volviendo al tema principal,…. ¿Habéis pensado en la pegunta inicial? ¿Alguna respuesta?

Os dejo pensando hasta mañana.

[Respuesta]

¡Saludos malignos!

jueves, abril 19, 2007

Se me ha ocurrido una idea cojonuda

Cuando preparamos alguna charla sobre vulnerabilidades en aplicaciones web siempre reservo un espacio al final de las vulnerabilidades más conocidas para una sección que yo llamo “Vulnerabilidades de capa 8” es decir, que es lo que puede hacer una mente brillante en pro de la seguridad.

Ahí meto las protecciones Javascript, Flash, las bases de datos públicas, y cuento la Google Hacking Database.

Un par de meses atrás decidí cambiar los títulos de las demos, así que ahora tienen los siguientes:

- “Mi primera página Web” : SQL Injection
- “Vacilo con el Recorset” : SQL Injection II
- “Ya he aprendido” : Blind SQL Injection
- “Mi primera Web molona”: XSS
- “Mi primer gestor de usuarios en web molona” : Hijacking XSS
- “Mi primer gestor de contenidos” : RFI
- “Mi primer gestor documental”: Webtrojans
- “Se me ha ocurrido una idea cojonuda”: Vulnerabilidades de capa 8


Esta lista muestra el camino de aprendizaje en seguridad informática de aquellos que no pueden o no les dejan formarse en temas de seguridad y hacen aplicaciones web.

Baste como ejemplo de estas ideas brillantes, una nueva para la Google Hacking Database, en este caso de una aplicacioncita llamada Belarc Advisor que saca información del sistema como Usuarios, software instalado, versiones de productos, números de serie, Service Packs, etc.. .Nada, mariconaditas. Claro, como genera un reporte en página web alguien dijo: “oye, ¡se me ha ocurrido una idea cojonuda!, ¿qué te parece si lo publicamos en el servidor web como reporte de máquinas?”

Así que solo hay que buscar en google, con una de estas cadenitas y salen muchas cositas graciosas:

- Windows 2000
- Windows XP Professional
- Windows XP MediaCenter

En fin. [Un ejemplo]

Tons of Genuine Windows Product Keys Published and Available Online

miércoles, abril 18, 2007

Solución al segundo Reto hacking

Hola a todos,

os había prometido hacerlo público el día 19, pero parece que ese día no voy a tener mucho tiempo, así que, como ya lleva dos meses, lo publico hoy. La solución la ha escrito de nuevo Daniel Kachakil, y en esta vez campeón del mismo. Enhorabuena, te pasaré la caricatura. Ya os aviso que estamos haciendo el tercer reto porque nos hemos encontrado una cosa muy divertida en la zona privada de una extranet y lo vamnos a reproducir, será un reto en tres pasos, espero que más fácil que estos, aunque una vez que se ven las soluciones, no son tan dificiles, ¿verdad?

No olvidéis nunca que el objetivo de estos retos es puramente didactico, así que todos serán siempre resolubles y nunca tendrán nada muy raro ya que, además, todos están sacados de fallos reales que nos encontramos en auditorías de seguridad.

Os dejo los links de los retos y sus solucionarios y para después del puente de mayo estára el tercer reto hacking con nuevos y poderosos premios (vamos en la línea habitual).

!Enhorabuena a los 5 que han sacado este reto!

- Primer Reto Hacking
- Solucionario Primer Reto Hacking
- Segundo Reto Hacking
- Solucionario Segundo Reto Hacking por Daniel Kachakil

Bies Malignos!

Solución al 2o Reto Hacking Web por Daniel Kachakil

Introducción

Este documento describe dos soluciones posibles al segundo Reto Hacking de Informática 64 que se publicó el 10 de febrero de 2007 en la siguiente dirección web:

http://retohacking2.elladodelmal.com

El reto consistía en conseguir acceso a la administración del sitio web.

Pistas

En esta ocasión, la única pista inicial a nuestra disposición era la siguiente frase (disponible en el blog www.elladodelmal.com, en la que se publicaba el reto):

Para ello tendrás que unir tres cosas: lo que se ve, lo que no se ve ni verás, y lo que ya sabes que está donde siempre.

Análisis inicial

Entrando en la página principal, inicialmente disponemos de un menú de navegación con las siguientes opciones:

• Zona privada: Formulario solicitando usuario y contraseña
• Eventos: Un listado de eventos (fecha, ciudad y nombre del evento)
• Regístrate: Formulario para obtener una nueva cuenta
• Ganadores del reto: Lista de ganadores que han superado el reto

Para conseguir la mayor información posible, el primer paso necesario es el de registrarse, rellenando un pequeño formulario con los siguientes datos: nombre de usuario, contraseña, dirección de correo electrónico y ciudad.

Una vez completado el registro, accedemos a la opción “Zona privada” e introducimos el usuario y contraseña que habíamos elegido en el paso anterior. El menú lateral cambia y se nos muestran las siguientes opciones:

• Recordar eventos: El listado de eventos anterior, más un botón “Recordar”
• Ver recordatorios: Listado de eventos en los que hemos solicitado recordatorio
• Ganadores del reto: La misma lista de ganadores

Lo que se ve

Cuando en la sección “Recordar eventos” marcamos un evento para recordar, se nos solicita un comentario opcional en un campo de texto multilínea. Una vez aceptado dicho texto, volvemos a la misma página en la que se nos mostrará resaltado el evento seleccionado. Por otro lado, el botón de “Recordar evento” cambia a “Eliminar evento”. Para borrar un recordatorio, simplemente pulsamos sobre dicho botón y se nos solicitará una confirmación en una nueva página.

Al entrar en la sección “Ver recordatorios” veremos un listado con los eventos que hayamos seleccionado en la sección anterior. Cada uno de los eventos aparece con un botón “Ver comentario” que muestra el comentario que hemos introducido (en caso de haberlo hecho) y un botón “Ver documentos” para descargar un PDF con la información del evento.

Estos botones nos llevan respectivamente a las siguientes páginas:

- http://retohacking2.elladodelmal.com/ZonaPrivada/ getComentario.aspx?id=XX
- http://retohacking2.elladodelmal.com/ZonaPrivada/descargar.aspx?id=XX


Hasta aquí podríamos decir que hemos cubierto la primera parte de la pista, es decir, lo que se ve. De momento tenemos varios candidatos para probar si son vulnerables a la inyección de SQL (parámetros, campos de texto, etc) y comprobamos que el parámetro “id” de la página de descargas admite inyección ciega de SQL.

Lo que no se ve ni verás

Una vez encontrada la primera vulnerabilidad, trataremos de explotarla inyectando SQL en el parámetro. Recordemos que una forma fácil de comprobar la existencia de un parámetro vulnerable es añadirle “AND 1=1” y “AND 1=0”. En el primer caso debería comportarse de forma normal y en el segundo caso la condición es siempre falsa, por lo que normalmente no devolverá nada o tomará un valor por defecto.

Llegados a este punto, podemos intentar la unión de los resultados con otra sentencia SELECT con los resultados que queramos. Usaremos un valor inexistente del campo “id” (por ejemplo, el cero) para asegurarnos que el único resultado de la unión sea el valor que hayamos inyectado.

- http://retohacking2.elladodelmal.com/ZonaPrivada/descargar.aspx?id=0

Podemos probar sustituyendo el parámetro “id” de la URL anterior con las siguientes consultas de unión:

- id=0 UNION SELECT 0
- id=0 UNION SELECT 1
- id=0 UNION SELECT null
- id=0 UNION SELECT ‘a’


Comprobamos que en el primer caso intenta descargarse un fichero con el nombre “0”. En el segundo caso, intentará descargar un fichero con nombre “1” (y no el fichero con la id=1). En el tercer caso, la aplicación descargará un fichero con nombre “descargar.aspx”. Por último, en el cuarto caso, aparecerá un mensaje de “Fichero no encontrado”

Vamos a analizar los resultados, comprobando el contenido de cada uno de los ficheros descargados. Observamos que todos ellos tienen el mismo contenido: el texto HTML mostrándonos el típico mensaje de error de ASP.NET.

No obstante, todo indica que la página de descargas es capaz de volcar el contenido de cualquier fichero, pero a su vez parece que está filtrando las cadenas de texto (falla ante cualquier comilla simple). Entonces, ¿cómo nos podemos descargar el fichero que queramos? Pues en realidad basta con hacer la unión con una tabla en la que tengamos posibilidad de escribir y que conozcamos o cuyo nombre sea fácilmente deducible. En este caso, la tabla se llama “Comentarios”, el campo de texto se llama “Comentario” y está identificado por el campo “idComentario”.

El procedimiento es sencillo: añadimos un recordatorio para un evento cualquiera, e introducimos la ruta completa y el nombre del fichero que queramos descargar en el comentario. Nos vamos a “Ver recordatorios” y comprobamos el identificador autonumérico que se le ha asignado a nuestro comentario. Una vez hecho esto, simplemente añadimos la siguiente instrucción en el parámetro:

- id=0 UNION SELECT Comentario FROM Comentarios WHERE idComentario=XXX

Bien, ahora ya podemos descargarnos algunos ficheros del servidor comprometido (según cómo tenga configurados los permisos), pero en realidad ¿nos hemos parado a pensar qué fichero queremos? Podemos bajarnos los ASPX y muchos otros ficheros de la aplicación y del sistema operativo, pero no nos serán de gran utilidad. Hay que buscar algo más…

Recordemos que el reto consiste en administrar el sitio, pero en realidad tampoco sabemos desde dónde se hace esto. Podríamos deducir que existen roles y se accede desde la misma zona privada, pero descartamos esta opción tras analizar el fichero “web.config”. Haciendo pruebas con nombres de ficheros y URLs típicas, al final descubrimos que existe una URL predecible que nos solicita una contraseña:

- http://retohacking2.elladodelmal.com/ZonaPrivada/admin

Las credenciales se enviarán utilizando el método de autentificación básica, por lo que tratándose de un servidor Windows con IIS 6, podemos deducir que el usuario que habrá que introducir debe existir en el sistema operativo y no en una base de datos o en un fichero de configuración.

Lo que ya sabes que está donde siempre

Lo que está donde siempre es precisamente el fichero donde se encuentran todos los usuarios locales del sistema operativo en cuestión. Se trata del fichero SAM (Security Account Manager), que forma parte del registro de Windows y almacena toda la información que necesitamos para superar la última fase. Bueno, en realidad no es suficiente con este fichero, porque parte de dicha información se almacena cifrada con una clave (SysKey), que también se encuentra almacenada en el registro de Windows, pero en el fichero SYSTEM.

Los nombres de usuario están almacenados en el fichero SAM en forma de texto en claro, pero no así las contraseñas, ya que a pesar de estar cifradas con la SysKey, son simples hashes de la contraseña original.

¿Pero dónde se encuentran estos dos ficheros? En una instalación típica, en el directorio “c:\windows\system32\config”, pero esto nos servirá de poco ya que estos ficheros siempre están en uso por el propio sistema operativo y, por tanto, no podremos acceder a ellos directamente, que es precisamente lo que estamos buscando. Hay que acceder a la copia de seguridad, que se encuentra en “c:\windows\repair”

Juntando todas las piezas

Ahora que sabemos los ficheros que necesitamos, cómo conseguirlos y dónde introducir las credenciales, ya podemos rematar el trabajo.

Añadiremos dos recordatorios, introduciendo en los comentarios los textos “c:\windows\repair\SAM” y “c:\windows\repair\SYSTEM”, respectivamente. Luego obtenemos sus identificadores asociados y los introducimos en la sentencia de unión SQL descrita anteriormente y descargamos ambos ficheros.

Una vez obtenidos los ficheros, usamos una herramienta como SamInside (www.insidepro.com) para extraer la información almacenada (usuarios y hashes). Asumiendo que no tenemos una licencia completa de SamInside, usaremos otras herramientas como Caín (www.oxid.it), o www.plain-text.info para obtener la contraseña mediante un ataque a la hash del usuario en cuestión. En caso de existir, optaremos siempre por la hash NT, ya que es mucho más débil que la LM.

No diré cual es el nombre del usuario que necesitaremos para acceder a la administración del sitio web, ya que es trivial deducirlo teniendo en nuestro poder el fichero SAM. Lógicamente, tampoco revelaré su contraseña, lo siento… ;-)

Una vez introducidas las credenciales, nos encontramos con una página que nos indica que no se permite el listado de dicho directorio, por lo que en realidad nos queda un último paso más: deducir el nombre del fichero concreto de la página de inicio. Esto también os lo dejo a vosotros. Ánimo, que tampoco necesita de mucha imaginación.

Otra solución: Un atajo para descargarnos los ficheros

La versión inicial del reto permitía ver los comentarios de los demás de una forma trivial (modificando el parámetro id de la página de comentarios, parámetro que además es secuencial y consecutivo). Pensé que esto podía dar demasiadas pistas al resto de concursantes, por lo que me planteé otra forma de obtener los ficheros sin que otros pudieran aprovecharse de ello y la encontré.

Solamente hay que obtener el valor ASCII de cada uno de los caracteres de la ruta y formar una cadena como la que muestro a continuación (teniendo en cuenta que hay que codificar el carácter “+” en su forma URL, es decir, “%2b”):

- http://retohacking2.elladodelmal.com/ZonaPrivada/descargar.aspx?
id=0 UNION SELECT char(99)+char(58)+char(92)+char(119)+char(105)+…


De esta forma tan sencilla de inyectar una cadena sin utilizar las comillas nos evitamos muchos pasos en el proceso descrito antes, como habréis podido comprobar. El resto de pasos, lógicamente son los mismos.

Comentarios y agradecimientos

En el último punto hablaba de la versión inicial del reto. Algunos os estaréis preguntando por qué existieron varias versiones y me parece justo aclararlo. Los primeros días no funcionaba la página de descargas, por lo que no era posible solucionar el reto por un problema de permisos mal configurados. No obstante, esto no era motivo suficiente para modificar el código de la aplicación.

En realidad el motivo fue otro, ya que el primer día encontré otros fallos de seguridad más importantes como la posibilidad de utilizar herramientas que permitían obtener toda la estructura e incluso los datos de la base de datos, incluyendo por ejemplo la tabla de participantes y la tabla de ganadores (en la que podría estar la solución detallada).

Ese día le mandé un e-mail a Chema Alonso detallando el problema que veía, así como el tema de poder ver los comentarios de los demás. Me confirmó que no estaba previsto y que se solucionaría. Por este motivo, el reto estuvo offline durante varias horas y se modificaron todos estos puntos. Aun así, seguía existiendo un fallo que impedía dar con la solución y que no se corrigió hasta un par de días más tarde (y además sin avisar). El fichero SAM no era el correcto y el fichero SYSTEM no se podía descargar. Una vez corregido, aproveché para comentar en el blog que había un fallo.

A pesar de todos los fallos iniciales, hay que reconocer el trabajo que hay detrás del reto, ya que su diseño y su programación indudablemente han costado tiempo y su alojamiento online también tiene su coste y sus posibles riesgos. Por todo ello, quiero terminar este documento agradeciendo el trabajo de Chema Alonso y de todo el equipo de Informática64 que nos ha hecho posible participar en el mismo. Y por supuesto, esperando que te haya sido útil y didáctico, gracias a ti que estás leyendo esto.

Saludos,
Daniel Kachakil
dani@kachakil.com

martes, abril 17, 2007

Versiones de Sistemas Operativos

Por favor, orejas arriba aquellos de vosotros que cojáis dos botes de productos de limpieza y comparéis la composición de los mismos.

¿Cuántos? Vale. Entonces explicarme esto. Está corriendo como la pólvora la gama de productos de limpieza que una compañía está sacando con nombres como Linux, Micro&Soft, MÄC OXI o Apple. Esto va a hacer que miles (¡que digo miles!), cientos de miles de páginas web hablen de esto, pero … la moda se pasa, la marca se confundirá y quizá, solo quizá, el público objetivo de esta campaña no sea el más propicio para que vaya a comprarlos, ¿no?

Como coña tiene mucha, en el próximo reto hacking podré regalar una versión Premium del Micro&Soft Balsam o un Apple concentrado.

En fin, yo ya poniéndome serio sólo me gustaría haceros notar cual ha sido el Sistema Operativo elegido para “la batalla” y cual ha sido elegido como “suavizante”.

Y es que yo lo tengo claro, podré ir sucio, pero mis gallumbos tienen que ser suavitos que si no... ;)

NOTA: EL SITIO NO PERMITE LINKS DESDE FUERA ASÍ QUE HAY QUE COPIAR Y PEGAR LOS LINKS

La gama completa de los Sistemas Operativos:

Micro&Soft
- Micro&soft Fresh Premium 4l
- Micro&soft Balsam 4l
Linux
- Linux 5,13 kg
- Linux Color 4 L
- Linux 10 Kg
- Linux Oxi Power 2,025kg
- Linux Ultra Power 4l
- Linux Color 2,025kg
Mäc OXI
- Mäc Oxi 1,25L
- Mäc Oxi Quitamanchas 5 kg
- Mäc Oxi Quitamanchas 500g
- Mäc Oxi 1,25L
- Danny Apple 1l = 2l Concentrado

lunes, abril 16, 2007

¿Qué vas a hacer ahora?

Ver la carrera de Fórmula 1 es sinónimo de chuparse el mismo conjunto de anuncios; así funciona la publicidad, el de Fernando Alonso y el nuevo Mercedes Clase C, el del Nissan 350 z (¡me mola ese coche!), el de la PS3, el de Vodafone con los sueños que se cumplen, el de la mutua madrileña de taxis y desde este año también el de Michael Schumacher de:

"Michael, ¿Qué vas a hacer ahora que te has retirado?"

En el caso de la tecnología también hay que retirarse, y tras ver el anuncio me acordé de el último día de curro de Jim Allchin en Spectra, que, tras haberse encargado de dirigir el proyecto de Windows Vista se iba el mismo día que lo lanzaban, algo así como "ahí queda eso... y me piro por si acaso...". Por más que lo leía me daba pánico, parece un día de un personaje que se va a volver malo por la inactividad en una novela de Stephen King.

¡Coño!, hazte un viaje del inserso que hay buenos precios para ir a Mallorca.

Bill Gates anunció también que dejaba Spectra para dedicarse a su fundación, pero se rumorea que él en lugar de aburrirse, primero se va a hacer un viajecito. Lo que pasa es que como le reconocen en todas partes, pues se cree que va a elegir un destino poco transitado, es decir el espacio estelar.

De momento son los típicos comentarios de "pues sí, hemos pensado irnos al espacio la Meli y yo" a su colega, pero no se ha hecho público por el tema de los paparazzi que luego te sacan en una disco con tres copas de más bailando la mayonesa y el venao en la hora "retro" de la disco y no queda bien. Imaginate una foto de Bill dandose el lote detrás de un asteroide o meando en los restos de la MIR.

Bill Gates wants to go to space

En fin, si es que Bill se está marchando y ya se le va a echar de menos, con el juego que le ha dado a la WEB 2.0. Y hablando de juegos, aquí le tenemos a Bill dentro de uno.


Visto en el blog de Sauron

Yo este verano a ver si me piro también al espacio, quiero decir, al espacio que hay entre mi silla y mi portatil.

****************** UPDATE ********************


Y mientras todos pensabamos que el Padre Parada se había jubilado, resulta que ha escrito:

TECNOLOGÍA: EVOLUCIÓN O DECADENCIA

La lectura es apasionante... cuanto menos (puto viejo chiflado XD)

****************** UPDATE ********************



¡Bies Malignos!

domingo, abril 15, 2007

Resumen Vista-Técnica

Hola holita,

Como hoy es domingo, voy a dejar publicado el resumen de los artículos que se han ido publicando en el blog de Vista-Técnica. Así es más fácil seguir su lectura.

¡Saludos!

User Account Control (UAC)
Artículo en 6 partes escrito por Julián Blázquez

- User Account Control: Parte I de VI
- User Account Control: Parte II de VI
- User Account Control: Parte III de VI
- User Account Control: Parte IV de VI
- User Account Control: Parte V de VI
- User Account Control: Parte VI de VI

Bitlocker
Artículo en seis partes escrito por Juan Luís G. Rambla

- Bitlocker: Parte I de VI
- Bitlocker: Parte II de VI
- Bitlocker: Parte III de VI
- Bitlocker: Parte IV de VI
- Bitlocker: Parte V de VI
- Bitlocker: Parte VI de VI

Superfetch, ReadyBoost y ReadyDrive
Artículo en 4 partes escrito por Juan Francisco Arrabe

- SuperFetch: Parte I de IV
- SuperFetch: Parte II de IV
- SuperFetch: Parte III de IV
- SuperFetch: Parte IV de IV

Protección contra Buffer Overflow (DEP & ASLR)
Artículo en 4 partes escrito por Chema Alonso

- Protección Buffer Overflow: Parte I de IV
- Protección Buffer Overflow: Parte II de IV
- Protección Buffer Overflow: Parte III de IV
- Protección Buffer Overflow: Parte IV de IV

Business Desktop Deployment (BDD)
Despliegue masivo con Windows Vista. Artículo en 5 partes escrito por Joshua Saenz

- Business Desktop Deployment: Parte I de VI
- Business Desktop Deployment: Parte II de VI
- Business Desktop Deployment: Parte III de VI
- Business Desktop Deployment: Parte IV de VI
- Business Desktop Deployment: Parte V de V

Firewall de Windows Vista
Artículo en 2 partes escrito por Juan Garrido

- Firewall de Windows Vista: Parte I de II
- Firewall de Windows Vista: Parte II de II

Versiones de Windows Vista
Artículo en cuatro partes escrito por Juan Luís G. Rambla

- Versiones de Windows Vista: Parte I de IV
- Versiones de Windows Vista: Parte II de IV
- Versiones de Windows Vista: Parte III de IV
- Versiones de Windows Vista: Parte IV de IV

GPOs en Windows Vista
Artículo en 4 partes escrito por Juan Francisco Arrabe

- GPOs en Windows Vista: Parte I de IV
- GPOs en Windows Vista: Parte II de IV
- GPOs en Windows Vista: Parte III de IV
- GPOs en Windows Vista: Parte IV de IV

sábado, abril 14, 2007

Josemaricariño

Hoy Sábado me ha tocado ir a comer con mi mami, y de nuevo me ha vuelto a decir varias veces eso de "josemaricariño".

Al oirlo me he acordado varias veces del capullo de Christian, vamos, el Penyaskito, que le hace cachondeo esto y me lo dice muchas veces, asi que, como consecuencia me ha venido también a la mente que tenía una penitencia que pagar.

La historia está en que yo quería poner 3 columnas en el blog, así que Nita (¡mil gracias!) me la construyó, pero me daba problemillas en el Firefox, y sucedió que Penyaskito me la arregló, pero a condición de que un día pusiera el fondo del blog rosita. Pues bien, éste es el día (que como hay buena programación de TV no lo verá mucha gente).

Además, el abuelo, seleccionó una foto en Diciembre de 2006 para descojonarse de mi un poco y a sus anchas (en las conferencias saca la lupa y se detiene en todos los detalles) y fue ésta que pongo abajo para cumplir la penitencia completa.


Es la foto del día que presentamos mi compañero "maquinote" César y yo el Proyecto de Fin de Carrera (al fondo la EUI UPM) y que lo dice todo por si misma. Ésta es la imagen que mi mami siempre tiene en la cabeza y por la que seguirá diciendome, aunque tenga 40 años, "Josemaricariño".

Decoro con flores el blog, para que la imagen bucólica sea total.

He cumplido con mi deuda, ¿no?

viernes, abril 13, 2007

Una Seria

No es que normalemente haga esto, porque supongo que ya tenéis mil y un sitios donde os enteráis de este tipo de asuntos, (como hago yo con el amigo pajarraco de los santos que me informa a diario), pero este va a ser de los buenos, así que por favor, si tenéis a alguien con un DNS en un Windows Server 2000 o 2003, y, especialmente aquellos que no tienen política de parches automática avisadles, porque esta es seria.

Además, copa en mano en Zaragoza por la noche con el movil recibiendo el correo me pregunte sobre el sentido de ser tan friki. ¿Como puedes leer el correo mientras estas de copas y preocuparte por un advisory? Lo peor es que entré desde el móvil a ver el post del msrc. En fin, hay que joderse que mala vida llevamos.

Es un fallo que podría permitir remotamente ejecutar código arbitrario con los privilegios de Sytem. Es decir, el equivalente a esto es "Te van a $"·$X&$% la máquina".

Hay un workaround, para mitigarlo, así que si podéis aplicarlo, better then better.

Os dejo el link del advisory y del equipo de seguridad de MS:

Vulnerability in RPC on Windows DNS Server Could Allow Remote Code Execution.

Microsoft Security Advisory 935964 Posted

Saludos y buen finde que además este finde tiene GP2, F1, SBK, 125, 250 y MotoGP.

jueves, abril 12, 2007

VaEspaña!

La seguridad es una percepción, no una realidad. Esta es una de las frases más polémicas y quizá con más verdad en el tema de la seguridad. El equivalente a esto en el lenguaje popular de esta tierra sería algo así como que no hay más feliz que un ignorante.

Podríamos resumirlo, como apuntó hace mucho tiempo el incorrupto ojo del Santo Padre Parada, en el eslogan de las compresas: “Me siento Segura”. Así, según un informe de Visa Europa, tras realizar una encuesta, los españoles, machotes y machotas que somos nosotros, confiamos más en la seguridad en Internet, así “El 43 por ciento de los españoles está menos preocupado por la seguridad cuando compra en Internet que hace dos años”.

¿Y esto a que se debe? Pues a que ya se han creado los placebos necesarios para que un usuario se auto convenza de que no va a haber ningún problema. Entre los elementos que DAN SEGURIDAD a los españoles están:

- Que el comercio sea conocido, que tenga buena reputación o que sea también un comercio tradicional (70 %)
- Qué tenga una política clara de envíos y devoluciones (52 %)
- Qué proporcione datos de contacto claros, como la dirección y el NIF (37 %)


No me extraña que con estas barreras de protección el phising siga siendo un negocio lucrativo. Además, para ponerlo más difícil aún “el método preferido de pago son las tarjetas de crédito y débito”.

Si a esto le sumamos las recomendaciones de protección tecnológicas que da por ejemplo la web de Visa Europe:

Consejos para comprar en internet

“1.- Asegúrese de que los detalles de su tarjeta van a ser codificados antes de ser enviados por la Red. Busque una llave o candado sin romper en la parte inferior de la ventana de su navegador, o compruebe la dirección del sitio web, que puede empezar por https:// en lugar de http://

2.- Compre en tiendas conocidas, o infórmese sobre ellas antes de comprar para cerciorarse de que tienen prestigio y son de toda confianza.

3.- Tome nota de sus operaciones en Internet, incluida la dirección de Internet del establecimiento comercial (que es lo que se conoce como URL). Muchas tiendas de la Red envían a sus clientes un correo electrónico con un resumen de los detalles de la compra. Guarde esos correos.

4.- Antes de comprar, lea la política de entrega y devoluciones del establecimiento, que debe figurar en la página de inicio de la tienda. ¿Se puede devolver un artículo si no estamos satisfechos con él? Si un artículo es defectuoso, ¿le devuelven el dinero o le proporcionan un vale?

5.- La página de inicio del establecimiento también debe mostrar información sobre la forma de entrega y el coste de entrega, las divisas que aceptan y los impuestos que aplican.

6.-Busque un número de teléfono o una dirección de correo electrónico y anótelos por si necesita efectuar alguna consulta.”


¿No podrían haber recomendado no usar la tarjeta desde un ordenador que no fuera de confianza? ¿O alertar de los troyanos? ¿o de los falsos mails? ¿O de qué es el phising? ¿Y las leyes de protección de datos? ¿LOP..qué? Mi madre se puede leer esto, apuntarse los 6 pasos y decir:

- "A ver, a ver. 1,2,3,4,5 y … ya tengo el teléfono, 6, este sitio es seguro, ale a comprar como una loca.”

Esto me recuerda al chiste ese de “sigue, sigue que yo te aviso”

Bies malignos!

Los españoles confían más en Internet

miércoles, abril 11, 2007

¿Se acabará la mágia?

Dicen que los hackers son como los magos, que cuando ves una intrusión o un hackeo es como cuando ves un truco en el que cortan a alguien por la mitad, todo sorpresa y expectación, pero, de la misma forma que en la magia, todo se desvanece cuando sabes el truco. “¡Coño!, ¡que fácil!” (así me recuerdo cuando vi el USB Bomb que me enseñó Tarasco)

¿Hay que acabar con esa ilusión?

Supongo que todos estamos de acuerdo en que en la magia siga la ilusión, yo quiero seguir pensando que si alguien me parte en dos me pueden volver a juntar con una caja y listo o que Tamariz debe seguir deslumbrándonos con ese cochecito de goma espuma que se detiene en la carta elegida.

En el tema de las técnicas hacking creo justamente lo contrario. Nuestro trabajo es una profesión técnica y no de cuentos (para eso tenemos ya a los tecnicoless que hablan de pájaros y flores) y no necesitamos utilizar efectos y trucos, sino una disciplina que haga que los que programan desarrollen mejor y los que implantan y gestionan sistemas lo hagan mejor.

¿Avisar o no avisar?

Más de 20 veces me han hecho esta pregunta. La verdad es que la conciencia de cada uno debe reinar. Avisar es lo suyo, pero reconozco que suele existir poca gratitud al respecto e incluso te dicen cosas como “¿Y tú que hacías mirando mi web?” El segundo problema es que tampoco se puede hacer constantemente. Raras son las empresas que tienen una aplicación web perfecta y en muchas es flagrante. Cuando uno tiene la mirada sucia y ve un programa.php?id=34 o listado.asp?campo=nombre o cosas así tienes la necesidad de probar y en 8 de cada 10 encuentras un fallo aunque no vayas a perseguirlo porque es un sql injection facilón o un XSS o cualquier chorrada. Además, para hacer algo así, hay que romper la ley según el ¿nuevo código penal? Avisad… mientras que no sea delito.

Así que date por avisado. No publiques una aplicación web sin un test de intrusión previo.

martes, abril 10, 2007

Uno de los Desktops

Se lleva hablando de Windows vista los últimos meses, pero no ha sido el único sistema operativo de escritorio aparecido en los últimos tiempos. Si echamos un ojo al otro gran desktop aparecido este año, es decir al Red Hat Enterprise Desktop 5, lanzado el 14 de Marzo, es decir, hace menos de un mesecito, obtenemos algún dato curioso. En la web de las “erratas” del producto de RHED 5 podemos ver algunas cosas llamativas.

Erratas RHED v5

El mismo día que se lanzó había 11 actualizaciones de seguridad de los cuales había 3 Críticos y 4 importantes. Si miramos las vulnerabilidades vemos que afectan a proyectos de otros como SAMBA, Firefox, Thunderbird, el Kernel o Wireshark. Lo que me hace pensar otra vez en el modelo de mantenimiento de actualizaciones de seguridad de las distribuciones. El que los parches salgan sin planificar dificulta el trabajo a las organizaciones. Pensando que nada más instalar toda la organización hay que aplicar 11 actualizaciones es un poco jodido, pero 2 días después aparece otro importante y 5 días después aparece uno de openoffice y al día siguiente otra librería y una semana después …

Está claro que la cuenta hay que hacerla peras con peras y que no podemos contabilizar los fallos de openoffice con los de Vista sino con los de Spectra Office pero sí que podemos ver que las actualizaciones de Spectra Office se gestionan junto con las de Spectra Windows (y junto a casi todos los productos como el Spectra Explorer, el Spectra Wordpad, etc…) con lo que sí que hay cierta ventaja en el mantenimiento de la infraestructura en la planificación. Éste no creo que sea un debate a reabrir pues los clientes están muy contentitos con su WSUS, SMS, Update Services y todo planificadito y no creo que volver a un modelo de

“deprisa que han salido 3 fallos, 2 importantes y uno crítico esta noche y hay que pasarlos a pruebas para ponerlos en producción pasado mañana. ¿Cómo? ¡Si aún tenemos en pruebas los que salieron ayer!”

La siguiente reflexión es si realmente el desktop está bien perfilado o no. Decía uno que yo me sepo, que cuando se saca un producto al mercado es como cuando traes un niño al mundo, vamos, que lo vas a “sufrir” toda la vida, así que cuando salga que salga lo menos problemático posible. Una de las normas de la fortificación de sistemas es la de menor punto de exposición, lo que quiere decir es que un sistema debe ejecutar solo lo imprescindible para el cumplimiento de su rol. Esto hará que tenga menos fallos de seguridad, menos superficie de exposición y menos mantenimiento. ¿Es necesario el Wireshark para el rol? ¿Por qué es la propia RedHat la que se ocupa de gestionar las actualizaciones de seguridad de productos no controlados por ellos? ¿Es bueno esto? Cuando yo pongo Firefox en mi Windows no es Spectra la que me da soporte sino la propia Mozilla me pasa los parches. ¿Es que no se fía Redhat de Mozilla? ¿Es que no son buenas las actualizaciones de Mozilla? Sólo son reflexiones malignas…

Para terminar el día de hoy os dejo dos reflexiones distintas sobre las migraciones a desktops linux en organizaciones:

ONG se pasa a Linux! Y dejó de ser libre…
Un informático en el lado del bien... pensando en el mal

lunes, abril 09, 2007

Ser una Estrella del Rock

Excepto para las cuatro comunidades que aún gozan del descuento de la semana santa con el lunes de pascua, los demás estaréis llegando a vuestras ocupaciones. Mogollón de correos estarán llenando vuestro buzón. ¿Cómo molaría ser Bon Jovi y tener mogollón de pasta eh? Realmente ese es mi sueño, pero como no sepo tocar la guitarra y canto peor que Ortega Cano de jarana, pues me he dedicado a tocar los…, pues eso. Hoy como no tengo muchas ganas de pelea os voy a dejar un jueguecito para que practiquéis con esos deditos vuestros que ahora estarán agarrotados después de una semana sujetando y tocando otras cosas distintas a vuestro querido y paciente teclado.

Yo quería ser Bon Jovi, triunfar de joven y ganar mucha pasta, pero había que practicar un poco y estar muy buenorro. Al “chico maravillas” le pasó más o menos lo mismo con Sebastian Bach de Skid Row, pero nada, también tuvo que estudiar informática. Pero mis males se acabaron cuando en Londres descubrí que es imposible no fliparse jugando al Guitar Hero y estar tocando con la guitarra el Sweet Child of Mine. Así que os voy a recomendar un proyecto Open Source para ir ganando skills. Se llama Frets on Fire y según la wikipedia:

“Frets on Fire es un clon de Guitar Hero, de modo que el jugador emula el acto de tocar una canción con una guitarra. Las notas aparecen en la pantalla sincronizadas con la canción, y son tocadas manteniendo presionadas las teclas correctas (frets) y marcándolas pulsando Enter (pick button) en el momento preciso. El punteo en las notas correctas incrementa el coeficiente por el que se multiplican los puntos ganados al tocar (x2, x3 y hasta x4), pero una sola nota incorrecta hace que este coeficiente vuelva a x1. Si bien no hay ningún objetivo establecido para las canciones, la puntuación obtenida puede ser comparada con la del resto de jugadores en la web oficial.

El carácter más distintivo del juego es la forma de controlarlo: el teclado se coge con ambas manos como si de una guitarra se tratase, con la mano izquierda en los botones F1-F5 (frets) y la derecha en el Enter.”


¡Así que no uséis portátiles! ¡Los teclados inalámbricos dan mucho juego!


Picure from: http://blog2.design.hs-anhalt.de/

Podéis descargarlo desde SourceForge.

Ya curramos mañana, ¿no?

domingo, abril 08, 2007

Test de Intrusión (IV de VI)

****************************************************************************************
Artículo Publicado en PCWorld Abril 2007
- Test de intrusión [I de VI]
- Test de intrusión [II de VI]
- Test de intrusión [III de VI]
- Test de intrusión [IV de VI]
- Test de intrusión [V de VI]
- Test de intrusión [VI de VI]
****************************************************************************************

Expedientes de Seguridad

Cuando un bug es descubierto debe documentarse correctamente. Para ello cada fabricante de software suele mantener su propia forma de codificar los expedientes de seguridad, pero han surgido en Internet muchas empresas que se han dedicado a mantener sus propias bases de datos de expedientes de seguridad. El trabajo es arduo si pensamos en la cantidad de proyectos de software y lo rápido que se descubren nuevos bugs, con lo cual es imposible decir que una base de datos tiene todos los fallos conocidos. Lo que si está claro es que algunas se han convertido en un estándar de facto. Las dos bases de datos más utilizadas por la gente que se dedica a seguridad son Bugtraq de SecurityFocus [http://www.securityfocus.com/bid] y CVE (Common Vulnerabilities and Exposures) [http://cve.mitre.org/cve]. Ambas bases de datos codifican cada fallo con un identificador y a partir de ahí se analiza el software vulnerable, el software no vulnerable que podría ser susceptible de serlo por ser parte de la familia de productos o versiones, se discute sobre cual podría ser el alcance de dicho bug, si existe o no el exploit disponible para ese fallo y cual es la solución ofrecida por el fabricante. La ventaja de estas bases de datos, es que en cualquier momento se pueden consultar todos los expedientes de seguridad relativos a un determinado producto y versión para ver cuales son las soluciones a aplicar.

Imagen: Últimos expedientes en Bugtraqid

Imagen: Expediente de Seguridad de un Bug

Como se puede ver en la imagen, los expedientes de seguridad almacenan los exploits asociados a estos fallos, luego, si el servidor tiene un fallo sin arreglar y el exploit es público nuestro servidor está en un claro riesgo, pero, aunque el exploit no sea público se deben aplicar las medidas de solución que recomiende el fabricante ya que, muchos exploits, debido a su importancia o impacto son de pago y puede que existan y estén circulando por Internet. Hay que recordar que los rumores hablan de precios desorbitados para exploits de productos populares o de alto nivel de criticidad. En la imagen se puede apreciar como security focus, relaciona su codificación con la codificación CVE.

Scanners de Explotación

Una de las herramientas que suelen aparecer justo después de que se haya hecho público el bug y el exploit asociado son scanners que implementan motores de búsqueda de servidores vulnerables a ese fallo y un mecanismo para ejecutar dicho exploit. Están preparados para lanzarlos de forma cómoda, ya que la mayoría de las veces se requiere hacer modificaciones en las POC para que estas funcionen en diferentes entornos, es decir, se requiere cierto nivel técnico para poder utilizarlos, mientras que con estas herramientas suele ser tan fácil como aplicar botones. Algunos ejemplos de estas herramientas en las siguientes capturas:

Imagen: “RPC Jode Jode”. Antiguo scanner para un fallo RPC.

Imagen: WebDAV Scanner. Para detectar Servidores con WebDAV activado.

Imagen: WebDAV Exploit. Asociado al WebDAV Scanner

Actualizaciones de Seguridad o Parches

La mayoría de las soluciones que se aplican a los fallos de seguridad del software suelen ser Actualizaciones de Seguridad o también llamados parches que nos ofrece el propio fabricante. Estos parches deben ser aplicados lo antes posible, tras haber realizado previamente las comprobaciones de que estos no afectan al funcionamiento normal de nuestra infraestructura por supuesto. La premura en la aplicación de los parches se debe a que en el momento en que se publica un parche se está acelerando la creación de los exploit. ¿Por qué? Pues porque el contar con el software sin parchear y con el software parcheado permite a los creadores de exploits realizar ingeniería inversa localizada. La idea es sencilla, se realiza una imagen del sistema sin parchear y luego otra imagen con el sistema parcheado, se comparan y se buscan las diferencias. Cuando se tienen localizados los ficheros modificados se realizan comparaciones de esos ficheros y mediante las técnicas de debugging, similares a las utilizadas para la creación cracks, se busca el punto de fallo en el programa. Digamos que publicar un parche es marcar el sitio del problema por lo que es muy importante actualizar lo antes posible. Esto ha hecho que ahora se hable de que el segundo martes de cada mes, día que Microsoft hace públicas sus actualizaciones de seguridad sea el día del parche y que el segundo miércoles de cada mes sea el día del exploit.

Microsoft Baseline Security Analyzer

Lo primera herramienta que se debe utilizar para realizar una auditoría de caja blanca en mi organización es MBSA, que va a permitirnos comprobar si a algún equipo o servidor de nuestra organización le falta alguna actualización de seguridad. Esta herramienta es de Microsoft y por tanto solo nos va a comprobar las actualizaciones de seguridad de los productos Microsoft, por lo que si tenemos software de otras compañías, lo primero es ver como se distribuyen, se actualiza y se comprueba si nuestros productos tienen o no todas las actualizaciones de seguridad aplicadas.

Imagen: Microsoft Baseline Security Analyzer

MBSA no es solo una herramienta para buscar parches no instalados, sino que además es lo que denominamos una herramienta de Auditoría de caja blanca, porque nos va a recoger información sobre el sistema relativa a seguridad, desde la política de contraseñas, la configuración de seguridad del servidor Web o los servicios corriendo. Es de caja blanca porque exige la utilización de las credenciales de un usuario y es lo primero que se debe realizar en cualquier auditoría de seguridad de servidores Microsoft. Más información sobre MBSA en la siguiente URL: http://www.microsoft.com/technet/security/tools/mbsahome.mspx

En la misma línea que MBSA, Microsoft ofrece dos herramientas más, todas gratuitas, que son MS Exchange Best Practices Analyzer y MS SQL Server Best Practices Analyzer. Estas herramientas no se quedan solo en la configuración de seguridad sino que además ayudan a ajustar los servidores para poder aplicar medias de defensa en profundidad o ajuste del rendimiento. Si vamos a analizar la seguridad e un servidor los informes ofrecidos por estas herramientas son importantes y a tener muy en cuenta.

Y el mes que viene

Pues en el último artículo de esta serie veremos las herramientas de scaneado de vulnerabilidades y como se debe realizar un proceso completo de la auditoría.

****************************************************************************************
Artículo Publicado en PCWorld Abril 2007
- Test de intrusión [I de VI]
- Test de intrusión [II de VI]
- Test de intrusión [III de VI]
- Test de intrusión [IV de VI]
- Test de intrusión [V de VI]
- Test de intrusión [VI de VI]
****************************************************************************************