5.12.11

Hacking orientado a eventos en Standford AI Class

La inteligencia artifical siempre ha sido una de las área de la informática que más interés ha despertado en mí. Y no sólo la IA que se aplica en los juegos, desde los clásicos de ajedrez hasta los Fifas y los Calls of Duties... me gusta la IA al estilo Skynet (aunque por lo que se, aún estamos muy lejos).

Resulta que Peter Norvig y Sebastian Thrun empezaron a impartir online las clases de introducción a la inteligencia artificial que imparten en Standford, y por supuesto, me apunté a ver qué tal resultaba el tema. El curso está muy bien, y aunque es una introducción y no profundiza mucho, picotea en muchos aspectos de la inteligencia artificial, muy interesantes, y sobre los que podemos investigar en mayor profundidad (personalmente me gusta mucho más el curso de Machine Learning del profesor Andrew N.G.).

Tengo en mente algunos proyectos de aplicación de la inteligencia artificial al mundo de la seguridad informática, que ya os contaré más adelante. Hoy vamos a cambiar el orden de los factores, y aplicar la seguridad informática al mundo de la inteligencia artifical, concretamente a este curso.

El curso lo imparten a través de unos vídeos, en los que te van explicando conceptos de IA, y de vez en cuando, intercalan alguna pregunta para verificar que sigues vivo  :-) y que puedas ver la evolución de tu aprendizaje.

Yo pensaba que algunas preguntas me resultaban ambiguas por mi nivel de inglés (que no es malo, aunque no es nativo), pero otros colegas que hablan inglés a nivel nativo también han encontrado muy ambiguas muchas preguntas... y esa ambigüedad termina muchas veces en frustración.

Al más puro estilo KickAss me he puesto el traje de Ciberninja, dispuesto a hacer justicia, y tras hacer alguna pruebecilla de fuzzing manual, me percaté de el vídeo con la explicación de las preguntas y sus respuestas se mostraban justo después de pulsar el botón de grabar tu respuesta, y en paralelo se ejecutaba la evaluación de tu respuesta.

¿Habrán sincronizado las acciones, o habrán confiado en su infalible código para evaluar las respuestas?  Intentemos algo que voy a bautizar como hacking orientado a eventos (si es que no existe aún).

¿Cómo aprovechar el paralelismo en la ejecución para conocer la respuesta, y que no me guarde mi intento fallido? Podemos recurrir a nuestras amigas las matemáticas, y lo mal que se llevan los ordenadores con determinadas operaciones:
  1. ¿Qué pasa si quiero guardar un valor infinito como respuesta numérica? Bien, si guardamos el literal "inf" nos lo guarda, y nos da la respuesta como no válida.
  2. ¿Qué pasa si quiero guardar una expresión cuya evaluación numérica sea infinito? Touché. Si pones cualquier fracción cuyo denominador sea 0, se produce un fallo al guardar, y te revela la respuesta, permitiéndote reintentar el ejercicio y poner la respuesta correcta. Mira el vídeo.


Podríamos decir que es un hack artificialmente inteligente, jejeje :-) No les vendría mal pasarse por la clase de Standford de Seguridad Informática.

Pd.- No olvides que la gracia del curso está en aprender, así que no uses este truco a lo loco: úsalo para vengarte cuando las preguntas sean estúpidamente ambiguas. Recuerda, ¡un gran poder conlleva una gran responsabilidad!

Mata ne, ciberestudiante.