II Reto Hacking de El lado del Mal

Hola a todos,


hace unos minutos he hecho público el II Reto Hacking de El lado del Mal, si quieres participar date prisa, solo hay 5 maravillosos premios, a saber: una caricatura hecha por mi, una poesía, una camiseta usada de las mias, un cd de rosendo y una bolsa de chupachús. (no me digas que no son premios increibles!!!).


Tienes más información y las reglas del juego en la siguiente URL:


http://elladodelmal.blogspot.com/2007/02/retohacking-ii.html


Bies malignos!!

Bulo sobre Windows Vista y el DRM

Siento tener que poner esto en este blog, pero creo que es importante que todos estemos atentos a este tipo de bulos, o como dirían otros “FUD”.


 


 >Windows Vista, el último sistema operativo de Microsoft, está plagado
 >de sistemas de protección anticopia y de bloqueo de contenidos por
 >presiones de entidades como la MPAA, la RIAA o la SGAE, supuestamente
 >para combatir la piratería. Estos sistemas están integrados en la
 >programación básica del sistema, por lo que son muy difíciles de
 >cancelar o rodear.


 >
 >El resultado es que, si te instalas Windows Vista o compras un
 >ordenador que lo traiga preinstalado, ya no podrás ver o grabar vídeos
 >ni escuchar o grabar música descargados de Internet.


 


Esto es totalmente falso. Windows Vista ofrece a los “CONTENIDOS ORIGINALES” el famoso DRM que les permite dificultar que se puedan copiar. Sólo, aquellos “CONTENIDOS ORIGINALES” cuyo dueño legal (y no entro en filosofadas, solo el que según la ley diga) tiene derecho a activar el sistema de protección de Windows Vista.


 


Cualquier contenido que SU DUEÑO no active el sistema de protección DRM en Windows Vista podra ser reproducido y visualizado correctamente. Es más, el que haya hecho correr esto, en su vida lo ha intentado, porque es tan fácil como hacer doble clic.


 


¿SGAE? Ja, esto sí que tiene gracia.


 


 >
 >Lo más grave es que, en muchos casos, tampoco podrás hacerlo ni
 >siquiera aunque hayas comprado legalmente el contenido, porque el DRM
 >(sistema de protección de derechos de autor) integrado no permite, por
 >ejemplo, que te puedas pasar una canción de un DVD (comprado
 >legalmente) a tu MP3. Ni que te puedas tostar una selección de
 >canciones (compradas legalmente) para el CD de tu coche. Y, con
 >frecuencia, ni siquiera podrás reproducir una película (comprada
 >legalmente) en tu ordenador o en cualquier medio que no sea un
 >reproductor específico autorizado por Microsoft y los fabricantes de
 >contenidos. Si intentas hacerlo, lo reproduce con mala calidad o
 >directamente lo impide.


 


Sí se puede o no copiar el contenido es una decisión de los dueños de los contenidos. Todos los contenidos originales han tenido desde el principio sistemas Anticopy. Las películas en dvd han tenido y tienen sistemas anticopy. Windows Vista ejecuta las protecciones anticopy si LOS DUEÑOS de los contenidos lo deciden aplicar. Muchas compañías han decidido no aplicarlo. Microsoft no autoriza ni desautoriza ningún reproductor, es el DUEÑO DE LOS CONTEDIDOS.


 



 >
 >La única solución segura para evitar este abuso es no instalar Windows
 >Vista y rechazar cualquier ordenador que te intenten vender con
Windows
 >Vista preinstalado. Sigue con Windows XP o considera pasarte a algún
 >sistema operativo «libre», como Linux.
 >
 >Por favor, PÁSALO. Es posible que, si Microsoft ve que no hay forma de
 >vender el Windows Vista por culpa de esta barbaridad, se lo piensen
 >mejor la próxima vez.


 


La conclusión es. El sistema de protección de Windows Vista DRM es una herramienta que los dueños de contenidos deciden si aplican o no. Nunca es Windows Vista quien decide por los dueños de los contenidos. Como hacen los sistemas de consolas de videojuegos o los dvd.


 


Pero bueno, aquí tenéis la contestación a esto del equipo oficial de Windows Vista.


 


20 preguntas sobre el DRM.


 


Incluso Linus Torvalds en el año 2003 se planteó utilizar DRM en Linux. Aunque al final, como es sabido no se implantó y las compañías han buscado sistemas anticopy para proteger sus derechos. El debate no es de si debe existir o no la tecnología de protección sino si las compañías tienen o no derecho de proteger sus propiedades.


 


Eso, pásalo.

La protección contra Desbordamientos de Buffer en Windows Vista (III de IV)

Tercera Protección: No ejecución de Datos


—————————————————————-


DEP (Data Execution Prevention) Bit NX (Non Execute)


—————————————————————-


 


La tecnología DEP está disponible en Windows XP SP2, Windows Server SP1, Windows Server 2003 R2 y además viene incluida también en Windows Vista y puede aplicarse tanto por Software como por Hardware. ¿Qué quiere decir que puede aplicarse por Hardware o por Software? ¿Funcionan igual?


 


DEP por Hardware


 


Para activar DEP por hardware es necesario que el microprocesador que estemos utilizando venga con esta característica, ya que éste es un avance tecnológico de la industria de microprocesadores que es aprovechada por los sistemas operativos. El objetivo es evitar que un programa pueda ser inyectado en un sistema por medio de un desbordamiento de buffer. Para ello se dividen, en tiempo de ejecución, las páginas de la memoria en dos clases: Paginas de ejecución en las que se cargarán los procesos o páginas de NO ejecución donde se van a almacenar datos y/o parámetros de llamada a procedimientos. Para realizar esto las páginas de memoria llevan asociadas un NX (Non eXecute) que indica si se puede ejecutar lo que esté allí o sí por el contrario, nada que esté almacenado en esa zona de memoria puede ser ejecutado.


 


El realizar esta división y marcado de las páginas permite, que, aunque se produzca un desbordamiento de buffer, este nunca podrá ser utilizado para inyectar un código a través de un parámetro, con lo cual estamos garantizando que el sistema no ejecuta nada que no esté ya introducido previamente.


 



Imagen 1: Desbordamiento de Buffer


 


Aplicar DEP por hardware previene que se pueda introducir código inyectado, si el contador de programa se quedara apuntando a una zona de memoria marcada como NX el sistema intentaría recuperarse y si no pudiera se produciría una parada. Debido a esto, es posible que ciertas aplicaciones, que utilicen la inyección de código como forma normal de trabajar dejen de funcionar correctamente No es una práctica correcta de desarrollo pero en algunos casos se utiliza. Para intentar garantizar la compatibilidad de aplicaciones de este tipo se pueden crear listas blancas en Windows Vista.


 


DEP por Software


 


Como protección adicional, DEP en Windows Vista, tiene una versión basada solo en software que vino ya en XP SP2 y cuyo objetivo es garantizar la integridad de las funciones que son invocadas en el tratamiento de los mensajes de excepciones que deben ser gestionados por el sistema operativo. Para ello se comprueba la integridad de los binarios del sistema que se encargan del tratamiento de los mensajes de error.


 


—————————————————————-


/SafeSEH (Safe Exception Handler)


—————————————————————-


 


Esta es una opción del linkador que se puede usar en Visual C++ para poder comprobar, de forma segura, que las funciones de tratamiento de excepciones de un determinado programa son las correctas. Para ello el ejecutable lleva almacenada la tabla de las funciones con las referencias a las funciones que deben procesar cada uno de los mensajes de excepción. El sistema operativo comprobará si el manejador de esa excepción corresponde con el que marca el programa en la tabla de manejadores y si no es así, matará el proceso. Estas opciones son utilizadas en conjunción de la protección DEP por software.


 


 


Configuración en Vista


 


Para configurar las opciones de DEP en Windows Vista deberemos acceder a la opción de configuración en:



  1. Panel de Control

  2. Sistema y Mantenimiento

  3. Sistema

  4. Configuración Avanzada

  5. Avanzadas

  6. Opciones de Rendimiento

  7. Data Execution Prevention

Tras una petición de Microsoft y en concreto de Michael Howard, todos los equipos que vendrán con Windows Vista en versión OEM vendrán por defecto con DEP Activado.


 



Imagen 2: Prevención de Ejecución de Datos


 


 


Referencias Externas



 —————————————————————-


 


La protección contra Desbordamientos de Buffer en Windows Vista (I de IV)


La protección contra Desbordamientos de Buffer en Windows Vista (II de IV) 


DEP en Windows XP SP2 en Technet


Data Excution Prevention en la Wikipedia


Bit NX en la Wikipedia


 



Bueno, ya sólo queda un post más para terminar esta serie en el que veremos las técnicas de Ofuscación de  Punteros a Funciones y la tecnología ASLR (Address Space Layout Randomization).



 

La protección contra Desbordamientos de Buffer en Windows Vista (II de IV)

¿Como podemos proteger Windows Vista contra los desbordamiento de buffers? Esto es algo que se lleva estudiando largo tiempo, por ello existen diferentes aproximaciones. La primera de ellas es una respuesta bastante sencilla. Utilizar técnicas de prevención.


 


Primera protección: Prevención


——————————————————————————————-


Herramientas de Análisis Estático de Código. FxCod


——————————————————————————————-


 


El objetivo es que si todos los parámetros están bien controlados y no se pasan a la pila de memoria sin haber comprobado correctamente su longitud no tendríamos desbordamientos de buffer, luego intentemos que no salga ningún programa sin haber sido correctamente evaluado. Para ello se utilizan desde hace tiempo las herramientas de Análisis Estático de Código realizan un chequeo del código del programa mientras este no se está ejecutando, buscando patrones de fallos de seguridad (incluidos los desbordamientos de buffer) en códigos en ensamblador, código fuente o código manejado.  FxCod es una herramienta de análisis de estático de código manejado que se puede utilizar en todos los desarrollos que se realizan con Visual Studio 2005. Es una herramienta que permite detectar, no solo desbordamientos de buffer, si no un amplio abanico de fallos de seguridad en las aplicaciones. Todo programa debe estar comprobado para evitar desbordamiento de buffers. Una de las características importantes es que estas herramientas se pueden usar para validar la fiabilidad y seguridad de un software. Microsoft, para las versiones de Windows Vista de 64 bits ya para Longhorn obliga a que los drivers que se instalen en el sistema operativo vayan firmados por Microsoft o una compañía autorizada. Para conseguir la firma del driver es necesario pasar unos test de seguridad que evalúan con herramientas de análisis estático el código del driver.


 



Imagen: Opciones de Análisis de Código en Visual Studio.


 


Segunda Protección: Detección


 ——————————————————————————————-


Los Canarios y la opción /GS


——————————————————————————————- 


Una de las ideas, propuesta por uno de los grandes expertos de la seguridad, Crispin Cowan, fue utilizar lo que el denomina canarios. Los canarios son utilizados en las minas y en las cocinas de gas, para detectar gases nocivos, si el canario muere, algo malo sucede. En el caso de los desbordamientos de Buffer esta es una idea similar. Consiste en apilar unos determinados valores en la pila de llamada al procedimiento justo después de apilar la dirección de retorno. Cuando se va a pasar el control a esa dirección de retorno, se comprueba previamente si los valores en los canarios son los correctos. Si no lo son, hemos de asumir que se ha producido una violación de la zona de memoria. Se llama Stack-Smashing Protecction. El uso de estas tecnologías no garantiza que los parámetros no sufran de desbordamiento de buffer, pues se pueden sobrescribir, no la dirección de retorno, pero sí, el resto de estructuras y, si el atacante puede descubrir el valor de la dirección de memoria o del canario, puede intentar simular un canario correcto. Para ello, se usan canarios no predecibles.


 


En Visual Studio la opción del compilador de comprobación de seguridad del búfer de Visual C++ se llama /GS. El funcionamiento de la opción /GS consiste en establecer un valor cifrado (a veces denominado «chivato») al final de un búfer. Este valor se comprueba durante la ejecución del código y si ha cambiado, se detiene la ejecución del programa y se genera una excepción de seguridad. La opción /GS no evita la saturación del búfer, pero protege contra el posible secuestro del código al detener la ejecución del programa.


 


Bueno, continuaremos la semana que viene, con DEP.


 


Referencias


——————————————————————————————-


 


La protección contra Desbordamientos de Buffer en Windows Vista (I de IV)


La protección contra Desbordamientos de Buffer en Windows Vista (III de IV)


Stack-Smashing Protection


Herramientas de Análisis de Código Estático


Mejoras de Seguridad en Visual Studio 2005


 


 


 


 

La protección contra Desbordamientos de Buffer en Windows Vista (I de IV)

El problema de los desbordamientos de Buffer en las aplicaciones que corren sobre un sistema operativo ha sido un tema recurrente. Desde hace tiempo se intenta encontrar una forma eficiente de realizar comprobaciones en el código fuente que se programa para evitarlos. Muchos de los lenguajes de alto nivel que se utilizan hoy en día tienen este tipo de protecciones, pero cuando se desarrollan módulos en lenguajes de bajo nivel siguen apareciendo estas debilidades.


 


Desbordamiento de Buffer


——————————————————————————————-


 


El objetivo de una explotación de desbordamiento de buffer es sobrepasar la longitud de memoria reservada para los parámetros de una llamada a un procedimiento con el fin de sobrescribir la dirección de retorno del contador de programa. Es decir, se buscan parámetros en procedimientos que no son correctamente comprobados antes de ser utilizados.


 


Imaginemos este entorno de memoria:


 


Imagen 1: Memoria


 


En esta sección de memoria vemos como se ha apilado una dirección de retorno para cuando se acabe de ejecutar el procedimiento que tiene actualmente el control del programa y encima se ha reservado espacio para que se apilen los parámetros locales de dicho procedimiento. A la hora de cargar los parámetros en ese espacio reservado, estos deberían ser comprobados, si no se produjera esta comprobación tendríamos un problema de buffer overflow.


 


Explotación de un Desbordamiento de Buffer


——————————————————————————————-


 


El atacante introduce como parámetro el código que quiere que se ejecute y luego escribe información nula hasta que sobrepasa el espacio que tiene reservado. Una vez que ha llegado a la dirección de retorno escribe la dirección de memoria donde ha introducido su programa.


 




Imagen 2: Desbordamiento de Buffer


 


Con esto consigue haber introducido un programa que se va a ejecutar. Este es un ejemplo típico para los programas que devuelven una shell o crean un interfaz de comandos.


 


Tecnologías de protección


——————————————————————————————-


 


Las tecnologías para evitar que se produzca una explotación de una vulnerabilidad de buffer overflow son varias, pero hay dos que son especialmente significativas: DEP (Data Execution Prevention) y ASLR (Address Space Layout Randomization). Ambas incluidas en Windows Vista y …¡lo vemos en el próximo post!.


 


Referencias


——————————————————————————————-


 


La protección contra Desbordamientos de Buffer en Windows Vista (II de IV)


La protección contra Desbordamientos de Buffer en Windows Vista (III de IV)


Buffer Overflow en Wikipedia.org


 

¡Se acabó el amor

…Pero no la pasión!. Durante estos últimos meses se ha estado realizando la gira LOVE (Lanzamiento de Office, Vista y Exchange por toda España) y ya se ha terminado. ¿Toda España? no, ya lo sabéis, hay sitios a donde no se va, porque no se llega con las horas de un día y los días de un año a hacer todo lo que se querría. Sin embargo, como sabéis, nosotros nos apuntamos al reparto de una aspirina, así que vamos a ir llendo a distintas actividades en distintos sitios.


El próximo 8 de Febrero, en Almería, hay un evento en el que voy a hablar y realizar algunas demos, de MIC, UIPI, Virtualización de Aplicaciones, UAC, Modo Protegido de IE7, Antispyware, etc… El evento es gratuito y te puedes registrar según las instrucciones de la siguiente URL (si te pilla vien el sitio, el día y la hora 😉 También se va a hablar de otras tecnologías, así que echadle un ojito a la agenda.


Y el día 8 de Marzo en Alcolea del Rio, a 50 kilómetros de Sevilla en una party solidaria en la que también se viene el abuelo y gente de elhacker.net y el señor Gospel, y … todo el que se quiera apuntar. Link.


 Estamos de finde, así que relax.

Presentación

¿De qué va este blog?


La verdad es que es un proyecto común, que varios enganchados a esto de la informática vamos a ir creando. La idea es escribir sobre las tecnologías que acompañana a Windows Vista e Ir hablando de cada una de ellas. UAC, UIPI, MIC, TPM, Bitlocker, ASLR, DEP, ….


¿Quiénes van a escribir? 


 Pues en principio el equipo somos los siguientes


Chema Alonso, osea yo, soy MVP de Windows Security y escribo diariamente el blog de «Un Informático en el lado del mal» dónde aprovecho para tener mi petas y discusiones varias, así que si quieres pegarte conmigo, directametne vete a ese blog y allí nos damos cera.


Juan Luís Rambla, MVP De Windows Security. No, el MVP de Windows Security no lo regalan, somos 2 en España en esa disciplina y trabajamos juntos. Es especialista en Seguridad, sistemas y como no, en Windows Vista y Longhorn. Es el que impartió los primeros Hans On Lab de Windows Vista aquí en España. Al igual que yo, ha escrito varios artículos en Windows TI Magazine y varios de ellos se entregan reimpresos en las conferencias de Microsoft Technet.


Joshua Saenz, especilizado en Windows Server y Exchange. Le habréis podido ver en alguna conferencia sobre Windows SharePoint Services o Exchange y es el friki de los cacharines del equipo. Se acuesta viendo la tele por Internet transmitida via Wifi al movil tumbado en la cama. ¿Es o no un friki? Habréis podido leer artículos suyos en Windows TI Magazine.


Julian Blázquez, MCSA. Está recorriendose toda España impartiendo los seminarios de Windows Vista y Longhorn en Torrelavega, Galicia, Canarias, Sevilla, Madrid, Barcelona, etc…. amos, que tiene los dedos negros. En sus ratos libres también escribe algún artículo pero tengo la seguridad de que últimamente tiene poco tiempo libre.


Juanfran Arrabe, es el último únido al equipo y está impartiendo con nosotros también los Hands On Lab. MCSA y amante de la seguridad informática. Le estamos curtiendo las costillas para que coja cariño a trabajar con nosotros.


 Todos trabajamos en Informática 64 y puedes vernos los caretos en la siguietne aquí.


 Bueno, pos eso, que empezamos desde ya!