El volcarlo a un blog público me permite compartirlas de manera que mis experiencias puedan tener utilidad para otros, e incluso para que alguien que sepa más que yo me pueda reorientar en caso de estar haciendo algo rematadamente mal, que en el campo de la ingeniería inversa es de lo más habitual.
Aunque profesionalmente no me dedico a ello, llevo ya algún tiempo, y como muchos en esto de la ingeniería inversa, me inicié haciendo cosas, digamos que, al límite de la legalidad por así decirlo... ;)
Por supuesto nada de lo que publique aquí será delito o ilegal. Que nadie espere "cracks" para juegos o aplicaciones protegidas, ni realizados ni técnicas para realizarlos.
Por supuesto nada de lo que publique aquí será delito o ilegal. Que nadie espere "cracks" para juegos o aplicaciones protegidas, ni realizados ni técnicas para realizarlos.
¿De qué va este blog?
Se podría decir que esto va de seguridad informática, y es verdad. Pero ese término define un área tan amplia que obliga a concretar algo más.
Cada vez más nuestra vida se digitaliza. Continuamente interactuamos con máquinas cada vez más complejas a las que confiamos cada vez más datos y cada vez más importantes, y con las que pasamos horas realizando actividades, tanto lúdicas como por obligación.
A su vez, las máquinas interactúan entre sí cada vez más, en ocasiones con máquinas cercanas mediante conexiones bluetooth, wifi o el cada vez más omnipresente NFC, y en otras ocasiones con máquinas geográficamente distantes mediantes conexiones a través de Internet.
Todas las interacciones de estas asombrosas máquinas están gobernadas por una serie de aplicaciones software. Para ser más precisos, la interacción se realiza directamente con estas aplicaciones, y son estas aplicaciones las que interactúan entre sí, en un escenario en el que la máquina se relega a un mero medio material que hace las veces de interfaz con el mundo físico para estas aplicaciones.
El universo de la seguridad no solo cubre aspectos relativos a las aplicaciones, si no también relativos a las máquinas con las que esas aplicaciones interactúan con el mundo físico. Por ejemplo, podemos pensar en esas populares aplicaciones denominadas keylogger, y que amenazan con registrar todas las pulsaciones que realicemos en el teclado de un ordenador. Pero para esa tarea tan válida es una aplicación como un dispositivo físico que se interponga en algún lugar entre el teclado y el ordenador. Otros ejemplos de seguridad relativa al mundo físico puede ser el campo de la seguridad en las emisiones en donde entran todo tipo de dispositivos de escucha, desde los más obvios hasta los más asombrosos, como por ejemplo los basados en la interfencia de Van Eck.
Pues bien, de todo el mundo de la seguridad relacionada con la informática y los equipos relacionados, en este blog hablaremos de la seguridad de la aplicaciones, pero considerando que las aplicaciones pueden ser modificadas por agentes externos para provocar cambios en su funcionamiento.
En ocasiones estas modificaciones pueden ser malintencionadas para provocar comportamientos no deseados originalmente en la aplicación, o bien intentan corregir errores o añadir nuevas funcionalidades a una aplicación ya existente. Lo destacable es que cuando hablamos de una aplicación nos referimos a una aplicación que ya está compilada y desplegada en el entorno de explotación, y que además no disponemos del código fuente de la misma.
¿Por qué y para quién este blog?
El hecho de que una aplicación en explotación puede ser modificada a pesar de no disponer del código fuente de la misma, no es un factor que se suela tener en cuenta a la hora de su desarrollo. No es tenido en cuenta por el cliente a la hora de especificar los requisitos que desea, cosa disculpable ya que en todo contrato de desarrollo de software el cliente suele ser la parte más inexperta. Pero lo imperdonable es que por el lado de la empresa desarrolladora del software tampoco es un factor que preocupe mucho. Y no es que no preocupe, es que es un factor completamente desconocido.
Puede que el que lea estas líneas sea un desarrollador software, y puede que con muchos años de experiencia. Y salvo casos raros, seguro que casi nadie ha tenido que desarrollar teniendo en cuenta que en un momento dado el operador de su aplicación tenga malas intenciones, o incluso que la propia máquina en la que se despliegue la aplicación sea un medio hostil.
En este blog se presentarán casos reales en los que no tener en cuenta estos factores pueden crear un serio perjuicio no solo al cliente, si no a los titulares de los derechos de explotación de la aplicación.
Y no todo va a ser causar perjuicios con la ingeniería inversa. Poco a poco se irán presentando entradas y proyectos que, basados en la ingeniería inversa, pretenden ser de utilidad desde un punto de vista lúdico y divertido.
Y no todo va a ser causar perjuicios con la ingeniería inversa. Poco a poco se irán presentando entradas y proyectos que, basados en la ingeniería inversa, pretenden ser de utilidad desde un punto de vista lúdico y divertido.
Y dicho esto, pasen y lean...