Incompetencia por sobreanálisis

He leído en ArsTechnica un interesante artículo de Jon Stokes titulado "Cómo hasta los más tontos espías rusos pueden burlar a la NSA", que comenta la historia de los espías rusos capturados por el FBI en New York, que involucró a la peruana Vicky Pelaes. Pero más alla de la larga lista de probada incompetencia tecnológica y profesional por parte de los espías que involucra errores tan tontos como usar redes wifi abiertas, dejar los password escritos en una hoja de papel cerca de la computadora o pedir ayuda a un "colega espía" que resultó ser un agente encubierto del FBI, sin haber verificado su identidad con el cuartel general. La verdadera vergüenza es que las herramientas de escucha y datamining de todas las comunicaciones digitales (la gran mayoría en nuestros días) que ha desplegado la NSA (Agencia de Seguridad Nacional) para proteger a los Estados Unidos de la "amenaza terrorista" y que ha representado un costo de miles de millones de dólares en infraestructura y salarios de las mentes más brillantes, ha sido burlado por una simple técnica de ocultar mensajes en imágenes llamada "Esteganografía". Es más los mensajes ocultos no fueron descifrados por la cara infraestrucura del NSA, sino por el programa que estaba en la misma laptop de los espías luego de que su casa fuera intervenida por el FBI.

Esta historia está en línea con las dos anteriores en donde comentaba que ni los más brillantes analistas cuantitativos o "quantas", de Wall Street había logrado siquiera igualar la exactitud de las "predicciones" de Paul (un pulpo) o Mani (un periquito). Y es que parece que a más "inteligente" es el análisis y el modelo formulado, más falsa confianza hay en dicho modelo y por lo tanto más riesgos se toman. Al parecer las mentes más brillantes de analistas han olvidado algo que aquellos que comenzamos hace ya treinta años o más a trabajar con microcomputadoras aprendimos y que es el famoso GIGO (Garbage In, Garbage Out) que en lenguaje común quiere decir si metes datos basura a un programa obtendrás datos basura.

El GIGO aplica al caso de las empresas calificadoras de riesgo como Standard & Poor’s, Moody’s o Fitch, que elaboraron complejos modelos matemáticos basados en las más avanzadas técnicas de análisis probabilísticos para hacer predicciones sobre el riesgo involucrado en el default de pagos de las hipotecas de propiedades inmobiliarias que respaldaban las famosas MBS (Mortgage-Backed Securities), sin embargo utilizaron conjuntos de datos (data sets) que se sabe hoy en el mejor de los casos sólo incluían valores de propiedades de los últimos treinta años. Simple incompetencia, negligencia o deliverado ocultamiento de información para beneficio propio es algo que la justicia tendría que determinar.

GIGO es también el caso para el gran sistema de monitoreo de comunicaciones electrónicas que entran y salen de los Estados Unidos y que ha deplegado la NSA, que se basa en un sistema de inteligencia artificial probado sólo en laboratorio con un pequeño conjunto de datos y que luego se expande para analizar un diverso y mucho más complejo conjunto de datos que es la comunicación digital de nuestros días que es inherentemente multimedia. Imaginen este escenario, esconden los mensajes no en imagenes (fotos), sino que lo hacen dentro de algunos cuadros de un video, mucho más difícil de detectar.

GIGO es cuando los quantas usan sólo las estadísticas de los resultados de partidos anteriores, incluso remontandose al primer mundial (Uruguay 1930); para calcular las probabilidades de que un determinado equipo gane, e ignoran por completo datos como estado físico o anímico de cada uno de los jugadores o entrenadores que componen las selecciones mundialistas.

GIGO es cuando los programas de High-Frequency Trading, tratan de predecir hacia donde irá el mercado basado sólo en volumén y la tendencia del mercado en los últimos milisegundos, pero no considera tendencias superiores con lo cual terminamos con inexplicables anomalías como el último "flash crash".

Como dice aquella famosa frase que escuche no hace mucho durante los días más difíciles del 2008: "Para que presumir dolo cuando la simple incompetencia puede explicarlo".

Robustez y Fragilidad

Aquellos que siguen este blog habrán notado que uno de los "analistas" que sigo de cerca es Nassim Taleb, que es conocido por su libro "El Cisne Negro", del cual ha lanzado una segunda edición ‘The Black Swan: Second Edition: The Impact of the Highly Improbable: With a new section: "On Robustness and Fragility"‘. Es justo en la promoción de esta segunda edición que Taleb ha comenzado a dar entrevistas a diversos medios de comunicación como The Newyorker y CNBC.

Lamentablemente no he podido encontrar estas entrevistas subtituladas en español y realmente tengo muy poco tiempo para desarrollar dicha labor por mi mismo, este blog es mi pasatiempo yo tengo un trabajo real en un mundo que está en crisis y necesita que todos aumenten su productividad si quieren mantener sus trabajos. Pero comentaré algunos puntos de las entrevistas que ha dado Taleb que me parecen importantes.

  • Los sistemas son estables porque son redundantes, por ejemplo nuestro cuerpo tiene dos riñones, dos ojos, etc. porque en caso de que uno falle el otro asume las funciones del primero. Incluso hay organos que cumplen funciones redundantes para asumir tareas en caso de que el organo principal falle.
  • La redundancia es una señal de ineficiencia, por ejemplo nuestro cuerpo siempre demanda más energía de la que necesita y la almacena en forma de grasa, para poder usarla en un futuro si es necesario.
  • La naturaleza restringe el tamaño máximo de un ser vivo, por ejemplo un elefante que es el mamifero terrestre más grande, cuando muere no causa un impacto en el ecosistema. En el caso de las instituciones financieras al crecer estas a un tamaño de "too big to fail", cuando quiebran pueden hacer colapsar a todo el sistema, por ejemplo Lehman Brothers.
  • La busqueda de la "eficiencia" a través de la maximización de las utilidades vuelve a las empresas más frágiles o menos robustaz, como querramos verlo. Porque la eficiencia parte de eliminar las redundancias y consolidar funciones, esto puede tener efectos desastrozos si la empresa crece demasiado, por ejemplo los casos de vehículos con problemas mecánicos en diversas compañías como Toyota, Ford o GM, o el reciente desastre ecológico de British Petroleum son una muestra de que la búsqueda de la eficiencia lo único que hace es introducir riesgos ocultos y con ello deteriora la robustez del sistema.
  • Debemos de buscar que nuestro sistema financiero sea robusto no que sea eficiente, ya que jamas podremos predecir el futuro. Más importante que tratar de predecir que es lo peor que pueda pasar y diseñar en base a eso, algo que se ha demostrado ser una mala idea ya que la ocurrencia de un "cisne negro" por definición es impredecible. Deberíamos enfocarnos en poner unas reglas que garanticen la supervivencia del sistema en si mismo.
  • Nassim Taleb también cree que grandes bloques económicos no son la respuesta, la razón es que no son viables debido a que introducen demasiados riesgos ocultos y aumentan la fragilidad del conjunto.
  • Otra conclusión que se desprende de su idea de busqueda de robustez, es que tratar de salir de esta crisis a la que se hemos llegado debido a una excesiva toma de riesgos en la forma de un alto endeudamiento, tomando mucho más deuda pública es sencillamente absurda. El único camino de salida de esta crisis es la austeridad. Pone la analogía de que un adicto a la heroína, no se le cura dandole más heroina por más que diga que morirá si no le dan más droga.
  • En resumen Taleb nos recomienda mirar la naturaleza para aprender de ella, en la naturaleza no se busca la eficiencia, se busca la robustez.

Aquí los videos de las entrevistas que me parecen muy interesantes.
 
Entrevista en The Newyorker:
 

 
Entrevista en CNBC:
 

 

 

My Way

"And now the end is near
So I face the final curtain
"

 
Como la letra de la canción popularizada por Sinatra y Elvis, ahora nos encontramos cerca del final, el show se está terminando y el telón pronto caerá. Sino como explicar que el presidente de la reserva federal norteamericada, Ben Bernanke, diga que el sistema de reserva fraccional en el que estamos y que es utlizado universalmente por toda la banca, es un marco legal que según textualmente "… impone costos y distorciones en el sistema bancario." (fuente aquí punto 9).

Con bancos pequeños y medianos quebrando a un ritmo de unos 4 por semana, revisen la lista de bancos intervenidos por el FDIC que es información pública, es comprensible por qué Bernanke quiere eliminar una legislación vigente, que si se aplicara realmente haría que casi todos los bancos americanos deban ser intervenidos por no cumplir las reglas de Basilea. La única razón por la cual los seis mayores bancos de los Estados Unidos no están quebrados es porque pueden ir a la FED y prestar ilimitadamente dinero a 0% de interés.

Pero al parecer el inminente reset de las ARM (hipotecas de interés variable) a partir de julio del presente año, dispararía una nueva ola de embargos similar a la que generó la crisis que llevó a la quiebra a Bear Stearns y Lehman Brothers. He tomado este gráfico del portal financiero de SeekingAlpha:

 
Como pueden ver estos datos son conocidos desde mucho tiempo atras. Si hacemos memoria, deberíamos recordar que la idea del TARP fue justamente ayudar a los bancos con todas las  pérdidas generadas por las hipotecas subprimes, y apenas pudieron sobrevivir. Ahora se necesitaría un TARP-2 para poder ayudar a sobrevivir a los bancos una vez más, el problema está en que se ha agotado la capacidad de endeudamiento del gobierno federal para poder arrojar un salvavidas nuevamente al sistema financiero.

Por si eso fuera poco, el destino del mundo está amarrado al destino de los PIIGS (Portulgal, Italy, Ireland, Greece and Spain), lamentablemente todo apunta a que España será el siguiente en la lista y debido a las ramificaciones financieras, podría arrastrar en su caída a varias otras economías, un interesante artículo que está acompañado de una entrevista a Mauro Guillen, puede ser encontrado aquí.

Sumele a todo lo anterior el hecho de que los dos grandes exportadores netos del planeta Alemania y China (Chermany), están mejorando su productividad a pasos acelerados, con lo que garantizan una deflación para los próximos meses. Todo apunta a que el problema del desempleo y el encarecimiento del crédito en los países desarrollados nos condenarán a reditar la gran depresión de los treinta. Para luego como consecuencia de las acciones de los bancos centrales del mundo de monetizar sus déficits nacionales, conducirnos a una espiral inflacionaria de destino final incierto.

Es por ello que Marc Faber ha dicho que de hecho hemos vuelto al patrón de oro, aunque a través de instrumentos financieros, creados por el propio mercado y su desesperación por querer preservar el valor de los ahorros de aquellos que pueden ahorar. En parte estoy de acuerdo con Faber de que todo el fiat money está condenado por su estructura, pero por otro lado creo que el oro está un poco sobrevalorado, además con un precio por encima de $1000 la onza (31.1gr), está muy lejos del alcance de la gran mayoría. Mi punto de vista es que la plata a $17.50 la onza es una forma de ahorro en activos mucho más viable para la gran mayoría.

Pero porque invertir en metales preciosos y no en acciones de empresas, la respuesta es simple. Las empresas afrontaran grandes pérdidas en un escenario estanflacionario, con lo cual el valor de dichos activos caería más comparativamente que el precio de los metales preciosos. Es por ello que Marc Faber, Jim Rogers, Gerald Celente y muchos otros profetas del día del juicio recomiendan comprar oro y tierra de cultivo. Ya que todo lo demás perdería su valor, es decir recomiendan volver a lo fundamental.

En lo personal no creo que el colapso total de las sociedades occidentales sea posible, me resisto a creer que luego de haber luchado tanto como sociedades para salir de las tinieblas, ahora alegremente querramos volver a ellas porque no estamos dispuestos a sacrificarnos tanto individual como colectivamente.

Facebook presenta XHP (un PHP con esteriodes)

El día de ayer, mientras todo el mundo estaba discutiendo las aplicaciones presentes y futuras de Google Buzz, Facebook presentó XHP. Una de las razones por las que me dí cuenta de la existencia de XHP, fue gracias a que Google no ha habilitado aún Buzz en mi cuenta de Gmail. Lo cual en el fondo agradezco ya que de otro modo hubiera pasado por alto XHP.

¿Qué es XHP?, pues bien XHP es una extensión de PHP que valga la redundancia extiende la sintaxis del lenguaje para hacer la elaboración de front-end más fácil de leer y además incrementar la seguridad. Para conseguir dicho fin hace que PHP pueda entender XML de manera nativa.

La aplicación que Facebook le está dando a XHP es Facebook Lite, una versión mucho más ligera de la web de Facebook. Aunque su autor Marcel Laverdet, dice que es usado además para renderizar varias partes de la web de Facebook, ya que permite combinar porciones de código HTML en un simple nuevo objeto, con todas las ventajas que ello representa.

Pero veamos un ejemplo de cómo la sintaxis de PHP ha cambiado con XHP, usaremos el ejemplo que Facebook da:

<?php
if ($_POST[‘name’]) {
?>
    <span>Hello, <?=$_POST[‘name’]?>.</span>
<?php
} else {
?>
    <form method="post">
    What is your name?<br>
    <input type="text" name="name">
    <input type="submit">
    </form>
<?php
}

En el código anterior pueden presentarse dos problemas, el primero y más obvio es que seremos víctimas de XSS; el segundo problema es que si olvidamos abrir o cerrar los tag PHP, nustra página generaría un error. Con XHP ambos problemas se resuelven, aquí el mismo código anterior pero implementado con XHP:

<?php
// note: includes omitted
if ($_POST[‘name’]) {
  echo <span>Hello, {$_POST[‘name’]}</span>;
} else {
  echo
    <form method="post">
      What is your name?<br />
      <input type="text" name="name" />
      <input type="submit" />
    </form>;
}

Note que ahora todo es un simple block de código PHP, no hay que estar abriendo y cerrando tags PHP. Este cambio en la sintaxis del lenguaje trae consigo algunas ventajas:

  •  Debido a PHP es ahora context-specific, sabe que cuando la variable $_POST es invocada la entrada de datos será HTML y por lo tanto debe escapar los caracteres.
  •  Incorporar XML dentro de la sintaxis PHP permite detectar errores de con los marcadores (markup) en tiempo de parseo y no en tiempo de ejecución. Con lo que no podría existir una página web generada con scripts de XHP malformada.
  • Ya que XML ahora forma parte del lenguaje, en adición a su uso con "echo", también es posible asignarlos a una variable y manipularlos como un objeto cualquiera.
  • Adicionalmente XHP permite definir nuevos tags, con lo que complejas secciones de código HTML, pueden ser ahora definidas como un nuevo marcador, desempleñando de hecho el XHP el papel de un sistema de templates.

Debido a que todas estas ventajas me han interesado decidí probarlo y les dejo un pequeño tutorial de cómo intalar XHP en su server. Lo he probado con CodeIgniter y al parecer XHP no añade ninguna incompatiblidad que impida usarlo en un server donde ya tengamos código PHP. Aquí les dejo como instalar XHP en un server Debian Lenny (esto puede ser usado también para Ubuntu pero recordando usar el  "sudo").

Primero hay que asegurarnos que tenemos instaladas todas las herramientas para compilar XHP:

# apt-get install build-essential flex bisson php5-dev

Ahora descargamos las fuentes y descomprimimos el archivo:

# cd /tmp
# wget http://github.com/facebook/xhp/tarball/1.3.7
# cd /usr/src
# tar -zxvf facebook-xhp-290b185.tar.gz
# cd /usr/src/facebook-xhp-290b185

Ahora comenzamos el proceso de compilación:

# phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

# ./configure
(…)
appending configuration tag "F77" to libtool
configure: creating ./config.status
config.status: creating config.h

# make
(…)
———————————————————————-
Libraries have been installed in:
   /usr/src/facebook-xhp-290b185/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
   – add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
     during execution
   – add LIBDIR to the `LD_RUN_PATH’ environment variable
     during linking
   – use the `-Wl,–rpath -Wl,LIBDIR’ linker flag
   – have your system administrator add LIBDIR to `/etc/ld.so.conf’

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-

Build complete.
Don’t forget to run ‘make test’.

# make test
(…)

# make install
(…)

Los parentesis (…) indican que verán algunos mensajes, donde he sido específico es en donde muestro algún resultado útil para saber si vamos bien o no. Las líneas en azul son las que Ud. debe tipear (claro omitiendo el prompt ‘#’).

Luego debemos de agregar al archivo de configuración php.ini la línea "extension=xhp.so", en Debian hay dos archivos que modificar:

/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

El primero es para agregar la extensión dentro del PHP incorporado como módulo de Apache y el segundo para hacer el cambio en PHP cuando se usa como CGI.

Más información sobre el proyecto, la nueva sitaxis que se ha agregado y como resolver algunos errores comunes, pueden encontrarse en la wiki de XHP.

Microsoft jamás podrá salir de la trampa que ellos mismos han creado

El hacking de algunas cuentas gmail de disidentes chinos que motivó a Google a amenazar con retirarse de China, y la consiguiente tensión entre el gobierno chino y Google ha dejado al descubierto nuevamente lo frágil y propenso a ataques que resulta Windows. Al parecer luego de que se hiciera público de que el ataque se realizó aprovechando un exploit 0 day de Internet Explorer, Microsoft respondió con el Boletín de Seguridad 979352, como siempre una respuesta insuficiente y demasiado tardía.

En el mismo camino de la vulnerabilidad aneterior Tavis Ormandy (@taviso), un especialista suizo en seguridad informática nos da un link en su Twitter sobre un error en el kernel de Windows que permite escalar privilegios en todo Windows basado en la tecnología NT, es decir todos los Windows desde NT hasta Windows 7 son vulnerables a éste exploit que en la práctica es otro 0 day exploit, con todas las consecuencias que esto implica.

La mécanica de la vulnerabildad es la siguiente:

"El fallo reside en el soporte heredado de aplicaciones de 16 bits. No se valida correctamente el cambio de contexto y pila que se efectúa al llamar al manejador GP trap. Windows comete algunos errores y asume incorrectamente que:

  • Se requiere el privilegio SeTcbPrivilege para configurar un contexto VDM (Virtual DOS Machine) .
  • Código en ring3 no puede instalar selectores de segmento de código arbitrarios. Usando el modo Virtual-8086, es posible.
  • Código alojado en el ring3 (espacio de usuario) no puede falsificar un "trap frame".

Ormandy consigue eludir estas cuestiones, y el resultado es que un usuario puede realizar un cambio de contexto en el núcleo y ejecutar código como SYSTEM, el máximo privilegio en el sistema." (tomado de Hispasec)

Lo más inquitante es que el mismo Ormandy asegura haber reportado el error a Microsoft el pasado 12 de junio de 2009, y Microsoft confirmó haber recibido el reporte el 22 de junio de 2009. La pregunta es entonces, como es posible que tras haber transcurrido más de seis meses Microsoft no haya hecho nada al respecto. Si bien es cierto el error ha estado alli desde la primera versión del kernel NT, es decir desde 1993, pensar que nadie más se daría cuenta de él es sencillamente una posición infantil. Ya que en Microsoft hay gerentes de proyectos de software y expertos en seguridad que ganan una pequeña fortuna y poseen amplia experiencia en la meteria, no voy a asumir que Microsoft negligentemente no hizo nada, sino que por el contrario la misma estructura de Windows y su tan publicitada compatibilidad a nivel de binario le impide corregir este tipo de errores sin que eso genere crear otros nuevos. Recordemos que este tipo de problemas no es nuevo en Windows y ya un par de analistas de Gartner Michael A. Silver y Neil MacDonald en un reporte titulado "Windows está colapsando" nos informaban en abril del 2008 que debido a la política de Microsoft de mantener una compatibilidad abosoluta hacia atras a nivel de código fuente, esta en un punto en el cuál cualquier innovación es casi imposible.