David Bohm

Hay dos frases que definen mi manera de pensar:
Realmente no hemos prestado mucha atención al pensamiento como un proceso; hemos participado en pensamientos, pero sólo hemos prestado atención al contenido, no al proceso.
La capacidad de percibir o pensar de manera diferente es más importante que el conocimiento adquirido.
Ambas son de David Bohm.

viernes, 13 de noviembre de 2015

Freedom House

Es curioso como no nos damos cuenta lo bien o mal que estamos, comparados con otros países, lo cual no significa que estemos en la mejor o peor situación posible, claro está.

Todo estos datos, imágenes, gráficos e informes descargables los encontrareis en: https://freedomhouse.org/



Freedom House es una organización de vigilancia independiente dedicada a la expansión de la libertad y la democracia alrededor del mundo. Analiza los desafíos a la libertad, defensor de los derechos políticos y libertades civiles y apoya a activistas de primera línea para defender los derechos humanos y promover el cambio democrático. Fundada en 1941, Freedom House fue la primera organización estadounidense para defender el avance de la libertad a nivel mundial. Reconoce que la libertad es posible sólo en entornos políticos democráticos donde los gobiernos son responsables ante su propia gente; el estado de derecho prevalece; y las libertades de expresión, asociación y creencia, así como el respeto de los derechos de las minorías y las mujeres, están garantizadas. Más de 2,5 billones de personas viven en países que Freedom House señala población "No libre" más de un tercio del mundo.
Así es como se definen en su propia página web.



El pasado 4 de Noviembre han vuelto a sacar un informe de Tendencias de libertad de Internet en 2015, vamos a ver que es lo que han dicho este año, porque los datos son curiosos, eso si, tras leer el informe, tengo que decir que España no ha sido evaluada. Una pena, estaría bien tener el dato.

La representación es en base a 100 puntos, la cercanía a 0 significa mas libertad, la cercanía a 100 significa todo lo contrario. Fijaos:

- El país mas libre según este ranking: Islandia (6), Estonia (7), Canadá (16), Alemania (18) y Estados Unidos (19).

- El país menos libre: China (88), le siguen Iran (87), Siria (87), Etiopía (82) y Cuba (81)

Aunque lo podéis ver en la web, os pongo algunas imágenes:


Ahora miremos los datos globales:

Esto es lo que mas me ha chocado...prácticamente hay un equilibrio en la fuerza, se puede decir que hay una similitud a rasgos generales en el porcentaje de países que son libres y los que no lo son. Aunque todavía hay un 12% sin evaluar, y ahí dentro estamos nosotros.

Y miremos la distribución, porque llama la atención, aunque no es nada nuevo si estás familizarizado un poco con la política:


Veremos si poco a poco van ampliando los países en estudio. A mi personalmente me parece interesante este tipo de iniciativas y comparativas, sin entrar a valorar el como o el para que hacen el estudio.

SaluDOS

lunes, 2 de noviembre de 2015

Ofuscar el código fuente

No es la primera vez que se me pregunta por este tema, así que vamos a tratar de analizar las cosas desde el principio, como a mi me gusta, pero sin liarnos mucho con el tema, que tiene tela.

Si vamos a la RAE, podemos ver el significado de la palabra ofuscar:
Del lat. tardío offuscāre 'oscurecer'.
1. tr. Deslumbrar, turbar la vista. U. t. c. prnl.
2. tr. Oscurecer y hacer sombra.
3. tr. Trastornar, conturbar o confundir las ideas, alucinar. U. t. c. prnl.
Real Academia Española © Todos los derechos reservados

Por eso, cuando desde el lado de la programación, el desarrollo de las aplicaciones, hablamos de la ofuscación del código fuente, se trata de hacerla mas oscuro, transformar, turbar el código fuente, y veamos el porqué.

Cuando entregas una aplicación a un cliente, no será la primera vez ni la última que tras cobrar el producto que has desarrollado, no te vuelven a llamar, ni para realizar una modificación, ni te contratan el mantenimiento, ni nada de nada. Pero a veces, ese cliente comete un error, su responsable de almacén, la secretaria de la asesoría que tiene uno de los módulos, etc. te llama para un mantenimiento. Es entonces cuando ves que tu aplicación, tiene un formulario mas, un punto de menú añadido, o que aquello que tu habías programado, ahora no se parece mas que en el nombre de la aplicación.

Esto es muy frecuente, y hay que atarlo bien atado por contrato firmado con el cliente. Porque aunque la gente no lo sabe, puede constituir un delito, y de los gordos. Lo que han hecho con tu ejecutable o ejecutables, es simplemente aplicar ingeniería inversa, o lo que hoy en día se llama "googlear", es decir, buscar una aplicación que te lo haga. Hay muchas, unas funcionan mejor que otras, por eso es conveniente ofuscar tu código, sobretodo si trabajas en .NET como yo lo hago habitualmente y lo que mas de cerca conozco, porque sino cualquier día verás tus algoritmos y formularios por ahí ejecutándose sin que tu hayas distribuido tu software.



Para ofuscar tu código, pasa lo mismo, existen un montón de aplicaciones, os puedo decir que he probado bastantes, y también tengo que advertir que el hecho de ofuscar el código no asegura que no puedan realizar ingeniería inversa con tus ejecutables.

Existen ofuscadores para los diferentes lenguajes de programación, C, php, java, etc. Además los hay de pago y gratuitos, y en general se integran con el compilador para que al compilar la aplicación automáticamente ya se está ofuscando el código.

Una vez que ofuscas tu código, estás impidiendo que el acceso al código fuente del ejecutable no sea tan "sencillo" como buscar un programa en internet y ejecutarlo. Si que es verdad que se puede llegar a localizar ciertos parámetros del programa como las variables públicas si las utiliza por ejemplo, pero poco mas. Hay que tener mas conocimientos para llegar mas adentro del ejecutable.

Como podéis ver, depende del lenguaje de programación utilizado, el ofuscador que vayamos a utilizar, incluso como os voy a mostrar ahora, existen ofuscadores online...cosa que yo nunca utilizaría, pero para gustos colores.

- Java, por ejemplo el proguard
- php, por ejemplo uno gracioso online: www.ofuscarphp.com
- c++, por ejemplo el C++ Source Code Obfuscator
- .NET, por ejemplo el Preemptive Dotfuscator

Y podríamos seguir la lista hasta el infinito y mas allá, fijaos si nos centramos en .NET la lista no es precisamente corta:

- Eazfuscator.Net (Free hasta la versión 3.3)
- ConfuserEx (Open Source),
- Obfuscar (Open Source),
- DotRefiner (Free),
- Orange Heap (Free),
- NCloak (Open Source),
- Phoenix Protector (Free),
- SharpObfuscator (Free),
- .NET Obfusasm (Free),
- Codefort (Free),
- Skater .Net (Free).
- ...

SharpObfuscator.png

Yo por ejemplo a nivel personal, para mis utilidades, he utilizado el Visual Studio Express 2012 con el Eazfuscator.Net hasta que dejó de ser Freeware. Funcionaba muy bien la verdad.

Espero haber aclarado un poco el concepto de ofuscar. Eso si, la polémica de si hay que ofuscar o no el código fuente para proteger la propiedad intelectual lo dejamos para otra entrada...

SaluDOS.