c-maligno

Aparte de los retos de la programación lúdica, hay concursos en donde se pide a los programadores generen código para tareas poco amables. Por ejemplo, ahora hay un concurso para escribir “código diabólico” en C, cuya idea es producir un programa que parezca que es benigno pero que cause problemas.

El reto, llamado “Underhanded C Contest”, es una competencia que requiere que los que participen escriban código que sea legible, claro, inocente y lo más directo posible, pero que en el fondo haga algo sutilmente maligno. Este es el séptimo año de este concurso y cada año los jueces llegan a un ganador considerando una combinación de un problema de procesamiento de datos que en el fondo tiene un comportamiento maligno, tal como contar inadecuadamente los votos de una urna electrónica, lavar dinero de transacciones electrónicas o filtrar información privilegiada.

Este año el reto se titula: “PiuPiu and the National Security Letter”. Los jueces dicen que en el sitio de PiuPiu se pueden crear cuentas y escribir mensajes de 140 caracteres. El gobierno federal quiere monitorear la actividad del sitio archivando cualquier texto escrito que contenga cierto patrón considerado en la carta de seguridad nacional. Nadie es informado sobre la petición de ser vigilado.

Las entradas a la competencia necesitan escanear los mensajes que llegan antes de que estos aparezcan en el sitio, para así ver si checan con un patrón determinado en la carta mencionada. Si esto ocurre, hacen una copia del mensaje ofensor y lo escriben a un archivo. Está prohibido alterar la entrada o al usuario.

La parte compleja de la competencia es que se necesita escribir la función de vigilancia de manera que el acto de vigilar se filtre sutilmente al usuario o al mundo exterior. PiuPiu no puede revelar el acto de vigilancia, pero la función escrita debe ser capaz de editar el mensaje Piu o usar la estructura del usuario cuando se escanea. Encontrar una manera de alterar los datos (esto es lo complicado, porque no se supone que se pueden alterar los datos, sólo escanearlos), de manera tal que sea informado hacia afuera y se archivo. La filtración debe ser lo suficientemente sutil para que no se note fácilmente.

Se darán puntos extras si se escribe código que sea fácil de leer y corto, porque es más impresionante esconder un error en codigo corto y leíble. También se dan puntos por errores que pueden pasar como inocentes bugs de los programadores. Si estos errores se mantienen escondidos en los editores que colorean la sintaxis, recibirá además más puntos por ello. La manera final de ganar más puntos es que se escriba código humorístico, o irónico, como un comportamiento maligno en la rutina de verificación de errores.

¿El premio?  200 dólares en un certificado para la divertida tienda ThinkGeek. El concurso empezó el 2 de noviembre y termina aproximadamente al iniciar el 2015, aunque no hay una fecha exacta de terminación.

Referencias:

Underhanded C Contest
i-programmer

Enlaces Patrocinados
Comentarios