Entradas populares

domingo, 29 de mayo de 2011

Europa incumple su propia directiva sobre privacidad

Ayer entró en vigor una directiva europea de 2009 que obliga a las webs a obtener el consentimiento del internauta para instalar una cookie (galleta) en su navegador. Únicamente dos países, Estonia y Dinamarca, la han traspuesto a la legislación doméstica. Las cookies son pequeños programas que se instalan en el navegador del internauta para recordar datos de acceso y otras preferencias del mismo sobre el sitio web que la emite. Son útiles para facilitar determinados trámites del internauta que, gracias a las cookies, no debe repetirlos porque el sitio lo reconoce. También son utilizados para ajustar la publicidad en función de la navegación del internauta. Algunos usos han despertado polémica sobre la protección de la privacidad.

Gran Bretaña, Francia, Eslovenia, Luxemburgo, Letonia y Lituania han remitido notificaciones de implantación parcial de la misma. Finlandia se espera que lo haga pronto, pero no ha dado información oficial a las autoridades europeas. Del resto, Bruselas desconoce oficialmente sus intenciones y ya ha anunciado la apertura de procesos sancionadores. En el Congreso español entró este mes un proyecto de ley de modificación de la normativa vigente para cumplir con la directiva.

Este retraso demuestra la dificultad de aplicación de la misma. La directiva no precisa qué debe entenderse por "consentimiento". Hay muy distinto tipo de cookies y con diferentes niveles de intrusión. Algunas, por ejemplo, albergan la contraseña de entrada a un sitio para no tener que repetirla cada vez que se acuda al mismo. Por otra parte, la industria siempre ha defendido que los navegadores tienen herramientas para bloquear la acción de las cookies y si el internauta no las activa ya está demostrando su consentimiento. Las agencias de protección de datos discrepan de esta postura. Para ellas, el que "la configuración por defecto de tres de los cuatro navegadores más utilizados esté predeterminada para aceptar todas las cookies" no debe entenderse como consentimiento.

Ya solo faltaba que un experto en seguridad italiano asegurara ayer haber descubierto una vulnerabilidad en el navegador Internet Explorer que permitiría a un pirata acceder a la información almacenada en una cookie.

http://www.elpais.com/articulo/Pantallas/Europa/incumple/propia/directiva/privacidad/elpepurtv/20110527elpepirtv_3/Tes

sábado, 28 de mayo de 2011

¿Quién teme al virus feroz?

Un viejo chiste dice que lo peor que puedes tener instalado en el ordenador después de un virus, es un antivirus. Este tipo de programas se ha convertido en una necesidad para millones de usuarios, incluso aunque las amenazas de seguridad hayan cambiado a lo largo de los años. Hoy hay menos Confickers y Iloveyous dando vueltas por la red pero crecen los ataques de spyware y los troyanos. Los antivirus han mejorado bastante en los últimos años y ya no son los devoradores de recursos que eran hace media década pero aún así es un programa que requiere atención constante (actualizaciones) y que tiende a ser una molestia para el usuario final.

No es extraño, por tanto, que los nuevos sistemas operativos y plataformas móviles estén intentando evitar que hagan acto de presencia. Apple, por ejemplo, ha usado el argumento de la ausencia de virus en la plataforma durante años para convencer a los usuarios de PC de dar el salto hacia sus Macs. Consultores y empresas de antivirus han advertido de que la plataforma Mac sólo parece más segura porque tiene un menor número de usuarios y que, de alcanzar una masa crítica, seria el objetivo de quienes desarrollan este tipo de programas. Esto se ha escuchado
desde mediados de la década pasada y por ahora la profecía sigue sin cumplirse.

En cierto sentido es una reducción simplista. Windows 7 es mucho más seguro que las anteriores versiones de Windows y no lo usa menos gente. La forma en la que está diseñado un sistema operativo tiene mucho que ver en la vulnerabilidad del mismo. Esta semana ha habido cierto revuelo por
un programa de malware para Mac que puede considerarse el primer caso medianamente serio para la plataforma. Hay que darle permiso expreso de instalación pero algunos usuarios pueden confundirse ya que el programa se disfraza de “antivirus” y trata de convencer al usuario de que tiene una infección y debe instalar el programa. Detrás de este elemento, sorpresa, hay una empresa de “seguridad” rusa.

La
respuesta de Apple no ha sido la de recomendar un antivirus sino explicar a los usuarios los pasos que pueden dar para eliminar el programa de forma manual y prometer una limpieza automática en la próxima actualización del sistema operativo para quienes no deseen hacerlo. Que yo sepa Apple no tiene nada en contra de los programas de antivirus (se venden en las tiendas de la compañía, de hecho) pero puestos a elegir prefiere que no se usen.
En el caso de iOS, el sistema para iPhone e iPad, Apple tiene un control más firme sobre los programas que se venden en la tienda de aplicaciones, y sí que omite la presencia de antivirus. En el resto de las plataformas móviles no hay una prohibición expresa (cada uno es libre de desarrollar y vender un antivirus, si quiere) pero es un asunto que generalmente se deja en manos de terceras compañías y al que no se le presta gran atención. Los sistemas operativos móviles modernos, como iOS o Android se han creado con mecanismos de seguridad con los que es posible borrar de forma remota aplicaciones que sean maliciosas –Google
lo ha usado hace poco- y el entorno es mucho más cerrado y fácil de controlar que un ordenador. Por supuesto las empresas de antivirus han intentado entrar en este mercado pero por ahora es un negocio muy pequeño y que no se está expandiendo como esperaban.
Conforme evolucionan los sistemas operativos en este mundo móvil el acercamiento de los desarrolladores hacia el problema de la seguridad está cambiando. Google prepara la salida al mercado de sus nuevos ordenadores Chromebook a mediados de junio y una de las ventajas del nuevo sistema operativo es que tiene un enfoque radicalmente diferente de la seguridad. Al igual que ocurre con el teléfono el sistema está centralizado y se actualiza de forma automática. No existe la posibilidad de instalar aplicaciones -al menos de momento, Google podría permitir algunas en el futuro- y eso incluye tanto a virus como a antivirus. El gigante de la red ha comentado en varias ocasiones que este tipo de enfoque es mucho mejor y más seguro. Hay quien cree que
esto es el final de las empresas de antivirus pero también quienes dudan. En la seguridad, después de todo, hay un componente de ilusión. Nada es 100% seguro. Nunca.

http://www.elmundo.es/blogs/elmundo/el-gadgetoblog/2011/05/28/quien-teme-al-virus-feroz.html

viernes, 29 de abril de 2011

'Teddy' Bautista: 'Internet salvará la cultura'


El presidente de la Sociedad General de Autores y Editores (SGAE), Eduardo Bautista, ha afirmado que "lo que va a salvar Internet es la cultura", durante su intervención en un coloquio en Madrid de la Fundación Euroamérica.


En opinión de Bautista, los nuevos fenómenos tecnológicos adquieren mayor valor gracias a las creaciones artísticas, tanto materiales como intangibles. "Su valor es de tal magnitud que no se pueden plantear nuevos modelos de negocio sin tener en cuenta este factor", ha dicho.

El presidente de la SGAE ha pedido que "trabajemos para que las redes sociales sean el mejor medio de compartir experiencias trascendentales", así como en un nuevo modelo de sociedad para el consumo de productos culturales, en el que se fijen unas reglas de juego que favorezcan el respeto y el desarrollo de la creación.

Bautista, que ha pedido que la cultura no se convierta en un arma arrojadiza entre partidos políticos, sino en una herramienta de consenso, ha destacado asimismo la "extraordinaria fuerza" del castellano como vehículo del lenguaje, "que debemos aprovechar para fortalecer la marca España en el exterior".

Al acto, organizado por la Fundación Euroamérica, también han asistido, entre otros, Enrique Cerezo, presidente de EGEDA; Juan Cruz, director adjunto a la dirección del diario El País, y el músico y productor Alejo Stivel.

La Fundación Euroamérica, con sede en Madrid, es una organización sin ánimo de lucro y financiada por empresas que tienen inversiones en América, así como la AECID y el ICEX, con el objetivo de fomentar las relaciones entre Europa y América, especialmente desde el sector privado.


miércoles, 27 de abril de 2011

Un seguro a prueba de 'tweets'


David Bisbal (1.323.200 seguidores); Alejandro Sanz (2.054.328 seguidores); Sergio Ramos (607.477 seguidores). Son tres ejemplos de personajes populares que se han visto en apuros por escribir 'tweets' comprometidos y poco afortunados. Para evitar daños en su imagen, Kiln Group estudia sacar su nueva línea de seguros contra 'tweets' polémicos.


Kiln Group, una aseguradora dependiente de la firma Lloyds, quiere proteger a las compañías de los perjuicios que causa el mal uso de las redes sociales. Cada vez son más las personas con o sin responsabilidad que rompen la política de comunicación, revelan secretos o dan mala imagen de la marca en tan solo 140 caracteres, sin tener en cuenta que todos sus mensajes en Twitter son completamente públicos.


Las grandes compañías que contraten este nuevo seguro pagarán entre 100.000 y 10 millones de dólares para acceder a la cobertura de su marca, aunque habrá tarifas más baratas para otro tipo de asegurados.


Multas de medio millón de dólares


Un ejemplo claro de este síndrome y sus consecuencias con costes monetarios tuvo lugar en 2009, cuando la cantante Courtney Love fue llevada a juicio por una diseñadora de moda a la que insultó a través de Twitter y de MySpace. Tras la denuncia, el juez condenó a Love a pagarle en torno a medio millón de dólares por ofenderle delante de más de 40.000 seguidores.


En España, David Bisbal entró en el centro de la polémica por escribir en su cuenta de Twitter un mensaje irónico sobre la situación del turismo en Egipto mientras que el país sacaba adelante una revolución política que acabó con la dictadura en el gobierno. No hubo sanción económica ni causa judicial, pero la imagen del cantante salió perjudicada.


Twitter es un medio de comunicación, y como cualquier otro, la gente puede provocar daños de imagen en la marca y en la reputación 'online' que acaben en enfrentamientos judiciales. Es el mismo mecanismo que se sigue con cualquier blog, radio o periódico.


Espacios no tan privados


Al tratarse de una red social, en la que el usuario adquiere cierta cercanía con sus seguidores y escoge libremente a quien seguir y tiene la opción de bloquear quien le sigue, la sensación de seguridad, de privacidad y de intimidad es mayor que en otros espacios. Sin embargo, la mayoría de los usuarios tienen sus canales abiertos y son públicos, por lo que cualquier insulto o declaración que se realice puede tener consecuencias negativas. Son muchos los casos de trabajadores que han insultado a sus jefes en Twitter o Facebook y que después han sido despedidos o encausados.


Según City News Toronto, este seguro contra 'tweets' polémicos tardará unos cinco años en estar disponible para particulares. Es decir, que los personajes públicos como artistas y deportistas van a seguir siendo responsables de sus comentarios a través de la red de microblogging. Pero no así las marcas, promotores o discográficas que les representan.


lunes, 18 de abril de 2011

El 25% de los niños abre su perfil en las redes sociales

Un 25 % de los menores tiene abierto el acceso a su perfil en las redes sociales a cualquier persona que desee consultarlo, según indica hoy una encuesta elaborada por la Comisión Europea. Además, uno de cada cinco de estos menores con el perfil accesible ha introducido datos como su dirección o su número de teléfono, que, de este modo, son visibles para todo el mundo. Las empresas propietarias de estas redes "deberían hacer inmediatamente que los perfiles de menores fueran accesibles solo para su lista de contactos aprobados", ha señalado en un comunicado la comisaria europea de Agenda Digital, Neelie Kroes.

Kroes considera que las cuentas de menores de edad no deberían poder encontrarse mediante buscadores en línea y urgió a todas las compañías que aún no lo hayan hecho a firmar el código de buenas prácticas para las redes sociales impulsado por la Comisión. "Un creciente número de niños están en las redes sociales pero muchos de ellos no toman las medidas necesarias para protegerse en línea. Estos niños se están exponiendo a que les hagan daño y son vulnerables a acosadores"

Según el estudio, un 38% de los menores europeos entre nueve y doce años está presente en alguna red social, una cifra que aumenta hasta el 77 % para los menores entre trece y dieciséis años. En España, un 28 % de los niños entre nueve y doce años tiene una cuenta en una red social, diez puntos menos que la media europea, aunque para el caso de los adolescentes entre trece y dieciséis el total sube por encima de la media hasta el 81 %. Francia, con un 25 %, y Holanda, con un 70 %, son, respectivamente, los países con un menor y mayor porcentaje de niños entre los nueve y los doce años presentes en las redes sociales.


viernes, 1 de abril de 2011

Inyección de código para Dummies

Este post es un poco más técnico que los anteriores, pero mucho más divertido. ¿Nunca te ha pasado estar jugando al Quake en red y que algunos jugadores siempre te machaquen sin remedio de forma inmisericorde? Probablemente sea porque saben exactamente dónde estás y cuándo doblarás la esquina con tu ridícula escopeta. Estos jugadores inyectan sus propios parches al juego para, por ejemplo, hacer las paredes transparentes y recibir alertas cuando otro jugador les acecha por la retaguardia.

En este post voy a darte una orientación sobre cómo hacer ingeniería inversa de aplicaciones de terceros escritas originalmente en C/C++, de las que sólo tienes en tu poder el ejecutable. Voy a introducirte a las herramientas básicas para indagar en el binario y averiguar su flujo de ejecución, y luego vamos a escribir juntos un simple pache en ansi C para interponer algunas funciones estándar en cualquier aplicación.

Este post tiene fines didácticos, pero espero que al final se te hayan ocurrido aplicaciones mucho más interesantes.

¿Que necesitamos para empezar?

Necesitamos un ordenador con una distribución de Linux y tener instalado el compilador GCC. Pero no te preocupes...

Prometo escribir otro post lo antes posible sobre el mismo tema pero en entornos Mac. Si estás interesado sobre este tema en entorno Windows, te sugiero que te dirijas aquí.

¿Que aplicación vamos a interceptar?

En linux existe una aplicación de consola muy curiosa, llamada fortune, que imprime por pantalla una cita famosa al azar. Vamos a indagar y reemplazar tres funciones de este programita para saber la memoria que reserva y los ficheros que abre. Si no tienes fortune en tu distro, instálalo. Pero tampoco te apures mucho, el parche que vamos a desarrollar es genérico y funcionará en cualquier ejecutable desarrollado en C/C++.

arturo@firecracker $ fortune

Así como los ojos de los murciélagos se ofuscan a la luz del día, de la misma manera a la inteligencia de nuestra alma la ofuscan las cosas evidentes.

-- Aristóteles. (384-322 A.C.) Filósofo griego.

Herramientas útiles

Las siguientes herramientas son muy útiles para hacer ingeniería inversa de un ejecutable. No vamos a utilizarlas todas para nuestro ejemplo pero me gustaría presentártelas para que puedas juguetear con ellas de ahora en adelante. Si tomas el hábito de inspeccionar aplicaciones como quien se fija en chicas por la calle, aprenderás mucho y tu curiosidad crecerá cada vez más.

- strace es una utilidad de línea de comandos que permite monitorizar las llamadas al sistema que realiza un determinado proceso y que encontrarás disponible en cualquier distribución de Linux. Lo normal es arrancarlo junto al programa que queremos inspeccionar. Por ejemplo, para tracear fortune, lo ejecutaríamos de la siguiente manera:


arturo@firecracker$ strace /usr/games/fortune

- strings es una utilidad muy práctica que examina un fichero en busca de cadenas de texto, algo que es mucho más practico de lo que parece. Muy a menudo, cadenas 'secretas', nombres de funciones, constantes o literales importantes se revelarán a sí mismos como un exhibicionista delante de una colegiala. Inspeccionamos fortune de la siguiente manera:

arturo@firecracker$ strings /usr/games/fortune

- nm es una utilidad que imprime por pantalla todos los símbolos encontrados en un binario. Esto incluye nombres de funciones, compartidas o integradas, y en algunos casos las constantes de la aplicación. En este caso, fortune no tiene simbolos, pero otras muchas aplicaciones sí y es muy practico conocer esta herramienta.

- gdb el debuggeador de proyectos de GNU está muy equipado para la ingeniería inversa. Puedes lanzar una aplicación desde GDB y poner puntos de ruptura o incluso examinar estructuras de datos en tiempo de ejecución, pero no es la herramienta más fácil de usar de todas las que tenemos disponibles.

¿Que vamos a hacer?

Si has ejecutado la traza y strings para fortune, habrás visto que hace múltiples llamadas que podemos interceptar, entre ellas las siguientes:

- malloc reserva memoria operativa.

- free libera memoria operativa.

- open abre un fichero.

Pues bien, vamos a programar un módulo en C y a lanzar este mismo proceso con nuestro parche adherido, de forma que podamos imprimir por pantalla qué direcciones de memoria utiliza o liberay con qué ficheros trabaja a lo largo de su ejecución. Para ello, vamos a utilizar una librería de enlazado dinámico de memoria, conocida como dlsym.

¿Qué es dlsym y qué vamos a hacer con él?

El código fuente de un programa debe compilarse para generar un ejecutable y el proceso de compilación lo que hace es asignar a cada una de tus constantes y funciones -entre otras cosas- una dirección de memoria única con la que luego trabaja dentro de un espacio de ejecución delimitado. En un ejecutable, tus constantes y funciones dejan de llamarse como tal y pasan a llamarse símbolos: asociaciones de direcciones de memoria que podemos averiguar y tratar con dlsym.

Con dlsym podemos saber la dirección de memoria de un determinado símbolo, por ejemplo la función malloc(), y también podemos modificar esa dirección de memoria para que llame a nuestra propia versión de la función malloc(), que además, si queremos, puede llamar a la función malloc() original porque hemos almacenado su dirección de memoria previamente. A este proceso se le denomina interposición de funciones, y es lo que vamos a hacer a continuación.

Dicho de forma más coloquial, vamos a secuestrar la llamada de una función original del ejecutable y a espíar que parámetros recibe antes de que se ejecute. Nuestra función hará de puente entre la llamada original y la función que debería procesar esa llamada, reservándonos nosotros el derecho de conocer información que como usuarios no deberíamos saber y a tomar decisiones en función de esa información para alterar la ejecución del programa, normalmente hacia derroteros que harían al arquitecto original tirarse de los pelos.

¿Que aplicaciones tiene esto?

Tiene muchísimas utilidades además de la benévola depuración. Tantas como te puedas imaginar si te mojas un poco. Por ejemplo, si la aplicación destino fuese de mensajería, a lo mejor podríamos espíar los mensajes que están intercambiando dos personas, evitar que cierta persona reciba mensajes o incluso envíar mensajes fraudulentos haciéndonos pasar por alguien sin que ningún inocente usuario sospechase nada (en concreto, interceptar mensajes de texto suele ser muy sencillo porque es costumbre común utilizar la librería de cadenas de C para tratarlas).

Si estuviéramos jugando a un videojuego en red como Quake o Counter Strike, podríamos inyectar un parche que nos permitiese ver a través de las paredes y destrozar a nuestros oponentes. O que lanzase una alarma sonora cuando alguien se nos acerque por la espalda e incluso, para los más imaginativos, podríamos manipular qué mensajes envía nuestro cliente al servidor del juego.

Evidentemente, hay aplicaciones mucho más lucrativas e interesantes, como por ejemplo programar un motor para jugar de forma óptima al póker e inyectárselo a un cliente de juego de póker 'online'. El límite está en la imaginación de cada uno: por regla general, puedes atacar a cualquier aplicación que se ejecute en tu máquina.

Programación e inyección de nuestro parche

1.- Escribimos el código fuente de módulo

A continuación está el código fuente del módulo, es corto y lo único que hace es interponerse entre las funciones malloc(), free() y open(). De forma que abre tu editor de código favorito y escribe o pega el siguiente código. Como verás, para interponer una función tan solo debemos conocer su prototipo. Y recuerda que los programadores que no utilizan Vim van al infierno.

Esta funcionalidad se puede implementar de muchas maneras, pero la más sencilla es la siguiente.

Fichero: pi.c

#define _GNU_SOURCE
#include stdint.h
#include stdio.h
#include stdarg.h
#include dlfcn.h

/**
* Interponemos nuestra funcion open
*
* @param char* filename
* @param int flags
*/
int open(char* filename, int flags)
{
// Cojo la direccion de memoria de la funcion original y le asigno un nombre
static int (*real_open)(char*, int) = NULL;
if (!real_open)
real_open = dlsym(RTLD_NEXT, "open");

// Ejecuto el original, imprimo resultado por pantalla y devuelvo el resultado
int p = real_open(filename, flags);
fprintf(stderr, "Abrimos %s) = %i\n", filename, flags);
return p;
}

/**
* Interponemos nuestra funcion malloc
*
* @param size_t size
*/
void* malloc(size_t size)
{
// Cojo la direccion de memoria de la funcion original y le asigno un nombre
static void* (*real_malloc)(size_t) = NULL;
if (!real_malloc)
real_malloc = dlsym(RTLD_NEXT, "malloc");

// Ejecuto el original, imprimo resultado por pantalla y devuelvo el resultado
void *p = real_malloc(size);
fprintf(stderr, "Reserva de memoria (%d) = %p\n", size, p);
return p;
}

/**
* Interponemos nuestra funcion free
*
* @param size_t size
*/
void* free(void* ptr)
{
// Cojo la direccion de memoria de la funcion original y le asigno un nombre
static void* (*real_free)(void*) = NULL;
if (!real_free)
real_free = dlsym(RTLD_NEXT, "free");

// Ejecuto el original, imprimo resultado por pantalla y devuelvo el resultado
int *p = real_free(ptr);
fprintf(stderr, "Libero memoria (%p)\n", ptr);
return p;
}

2.- Compilamos el modulo

Compilamos el módulo con la siguiente instrucción. Verás que escupe un 'warning' porque reescribimos el nombre de una función estándar, pero eso no nos importa.

arturo@firecracker $ gcc -Wall -O2 -fpic -shared -ldl -o pi.so pi.c

Si todo ha ido bien, la compilación nos ha creado un objeto compartido llamado pi.so que vamos a inyectar a un programa a continuación.

3. Ejecución de una aplicación con nuestro parche

En entornos Linux, la directiva LD_PRELOAD permite lanzar un proceso obligando al sistema operativo a cargar un objeto compartido antes de la ejecución. Esto nos permite adherir nuestro parche a cualquier aplicación que queramos interceptar. Hay que tener cuidado y facilitar la ruta completa del objeto compartido, de lo contrario no funcionará. A continuación ejecuto nuestro ejemplo y de paso echamos un ojo a la salida que produce.

Verás que la salida en realidad es mucho más larga, he seleccionado solo el último segmento de la salida, que tiene todos los elementos que hemos interceptado.

arturo@firecracker $ LD_PRELOAD=/home/arturo/pi.so /usr/games/fortune
Reserva de memoria (39) = 0x8911c70
Libero memoria (0x8911c70)
Reserva de memoria (392) = 0x8911d48
Reserva de memoria (11) = 0x8911ed8
Reserva de memoria (11) = 0x8911ee8
Reserva de memoria (11) = 0x8911ef8
Libero memoria ((nil))
Reserva de memoria (19) = 0x8911f08
Reserva de memoria (19) = 0x8911f20
Reserva de memoria (6) = 0x8911f38
Libero memoria (0x8911f38)
Reserva de memoria (12) = 0x8911f38
Libero memoria (0x8911f38)
Reserva de memoria (2248) = 0x8911f38
Libero memoria (0x8911f38)
Libero memoria (0x8911f20)
Libero memoria (0x8911f08)
Abrimos /usr/share/games/fortunes/familia.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/proverbios.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/varios.fortunes-pre.dat) = 0
Abrimos /usr/share/games/fortunes/famosos.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/vida.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/refranes.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/sabiduria.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/informatica.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/humanos.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/asimov.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/leydemurphy.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/lao-tse.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/ciencia.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/poder.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/nietzsche.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/varios.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/amistad.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/arte.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/deprimente.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/sentimientos.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/pintadas.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/verdad.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/filosofia.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/libertad.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/schopenhauer.fortunes.dat) = 0
Abrimos /usr/share/games/fortunes/refranes.fortunes.dat) = 0
Reserva de memoria (352) = 0x8911f38
Reserva de memoria (52) = 0x8911d10
Reserva de memoria (44) = 0x8911c70
Reserva de memoria (44) = 0x89120a0
Libero memoria (0x8911c70)
Libero memoria (0x89120a0)
Libero memoria (0x8911d10)
Cuando el español canta, o tiene mala leche o poco le falta.
Libero memoria (0x89120d0)
Libero memoria (0x8912808)
Libero memoria (0x890e8f8)

Como verás, la ejecución normal va acompañada de nuestros mensajes de traza que nos indican todo lo que queremos saber:

Qué direcciones de memoria reserva y en qué orden. Qué direcciones de memoria libera y en qué orden. Qué ficheros abre a lo largo de la ejecución del proceso.

Sólo hemos interceptado esas tres funciones, pero podríamos haber interceptado varios cientos con la misma facilidad. Tan sólo necesitamos saber el prototipo o cabecera de la función para poder escribir nuestra propia versión y que la llamada sea transparente. Para más información sobre funciones estándar, te recomiendo que visites la referencia de C++.

Enlaces de interés:

- Inyección de código en la Wikipedia

- Documentación de Dlsym

- Como construí un bot de poker - Muy inspiracional

- Hacks de Counter StrikeReferencia C++ - Todas las funciones compartidas son interceptables facilmente


http://www.elmundo.es/blogs/elmundo/totalsiessoloapretarunboton/2011/04/01/inyeccion-de-codigo-para-dummies.html

jueves, 31 de marzo de 2011

El móvil reta a la cartera

Primero retó a las cámaras de fotos, luego a los ordenadores y ahora, el teléfono móvil ha lanzado un órdago a la cartera. Pagar un menú del día con el celular como si fuera una tarjeta Visa ya es posible en España, aunque sólo un grupo de usuarios va a poder probar este nuevo servicio. Telefónica ha puesto en marcha la primera experiencia de móvil multiusos con tecnología Near Frequency Communication (NFC) utilizando a sus empleados como testadores de un nuevo servicio que todos los operadores de telecomunicaciones esperan ofrecer de forma masiva a sus clientes en un plazo inferior a dos años.

Además de servir para llamar, consultar el mail o hacer fotos, el móvil se está transformando en un importante medio de pago y de identificación personal, que las telecos quieren aprovechar para buscar nuevos mercados y adelantarse a las grandes tecnológicas -como Google o Apple- en el lanzamiento de nuevos servicios de cartera electrónica.

Telefónica, Vodafone y Orange firmaron un acuerdo recientemente para imponer juntas la tecnología NFC y facilitar así los acuerdos con el sector financiero simplificando, además, el uso de este servicio para el usuario.

Ahora la empresa española de telecomunicaciones ha tomado la iniciativa y ha lanzado el primer proyecto de móvil multiusos en el Distrito C, donde tiene su sede con 12.000 trabajadores. Para ello, la multinacional ha firmado acuerdos con socios financieros (La Caixa, BBVA, Bankinter, Sermepa y Visa) y tecnológicos (Samsung, Oberthur, Gyd Ibérica), que espera ampliar próximamente.

Apple se desmarca

Según las previsiones del presidente de Telefónica España, Guillermo Ansaldo, la mayor parte de fabricantes de terminales van a incorporar a los smartphones la tecnología NFC en los próximos meses con lo que en 2012 habrá masa crítica suficiente en el mercado para que el móvil pueda sustituir a la Visa o a las tarjetas de identificación personal.

No obstante, Ansaldo ha dejado entrever que Apple podría no apostar por la tecnología NFC, ya que el gigante de Cupertino tiene una estrategia diferenciada a la del resto de fabricantes de dispositivos.

Mientras los fabricantes renuevan el parque de teléfonos móviles para incluir la cartera electrónica a los terminales, la multinacional española ha decidido probar el servicio con 150 empleados, que pronto ampliará a 1.000 empleados y los establecimientos de comida o tiendas que hay en el Distrito C, donde la compañía tiene su sede. No obstante, desde Telefónica han querido dejar claro que el lanzamiento de hoy "no es un piloto porque los pilotos en NFC ya están acabados".

"Hoy comienza una experiencia distinta que nos va a cambiar la forma de hacer las cosas", ha afirmado el responsable de servicios financieros de Telefónica, Joaquín Mata, en una rueda de prensa.

Sin modelo de negocio

La compañía reconoce que todavía tiene que desarrollar el modelo de negocio de este servicio, pero asegura que pagar con el móvil no tendrá un coste adicional para los usuarios.

NFC también permite abrir nuevos negocios en el campo de la publicidad, ya que el sistema podría simplificar el uso de las tarjetas de afiliación a establecimientos de consumo, así como leer cupones con promociones o descuentos especiales a través del móvil. Además, la tecnología sustituye a otras tarjetas, como las de acceso a edificios empresariales.

Para que los usuarios puedan utilizar esta tecnología solo tienen que acercar el teléfono al lector TPV de los comercios o los sistemas de control de acceso a los edificios, por lo que las grandes distribuidoras también tendrán que renovar sus terminales cuando se extienda el uso del móvil cartera.