stringtranslate.com

Concurso de C deshonesta

El concurso Underhanded C fue un concurso de programación para producir código malicioso, pero que pasa una inspección rigurosa y parece un error honesto incluso si se descubre . Las reglas del concurso definen una tarea y un componente malicioso. Los participantes deben realizar la tarea de manera maliciosa según lo definido por el concurso y ocultar la malicia. Los participantes pueden usar lenguajes compilados similares a C para crear sus programas. [1]

El concurso fue organizado por el Dr. Scott Craver [2] del Departamento de Ingeniería Eléctrica de la Universidad de Binghamton . El concurso se inspiró inicialmente en el concurso Obfuscated V de Daniel Horn en el otoño de 2004. [3] Para los concursos de 2005 a 2008, el premio fue un certificado de regalo de $100 para ThinkGeek . El premio del concurso de 2009 aumentó a $200 debido al anuncio muy tardío de los ganadores, y el premio para el concurso de 2013 también es un certificado de regalo de $200.

Concursos

2005

El concurso de 2005 tenía como tarea el procesamiento básico de imágenes , como el remuestreo o el suavizado, pero insertando de forma encubierta datos de " huella digital " únicos y útiles en la imagen. Los trabajos ganadores de 2005 utilizaron estructuras de datos no inicializadas, reutilización de punteros y una incrustación de código de máquina en constantes .

2006

El concurso de 2006 exigía que los participantes contaran las ocurrencias de palabras, pero los tiempos de ejecución son muy diferentes en las distintas plataformas. Para lograrlo, los participantes utilizaron errores de implementación de bifurcaciones, problemas de optimización, diferencias de endian y varias diferencias de implementación de API. El ganador invocó strlen() en un bucle, lo que generó una complejidad cuadrática que fue optimizada por un compilador de Linux, pero no por Windows.

2007

El concurso de 2007 exigía que los participantes encriptaran y desencriptaran archivos con un algoritmo de encriptación fuerte y fácilmente disponible, de modo que un bajo porcentaje (entre el 1% y el 0,01%) de los archivos encriptados pudiera descifrarse en un tiempo razonablemente corto. El concurso comenzó el 16 de abril y finalizó el 4 de julio. Los participantes utilizaban implementaciones incorrectas de RC4, llamadas a API mal utilizadas y prototipos de funciones incorrectos.

2008

El concurso de 2008 requería que los participantes redactaran una porción rectangular de una imagen PPM de manera que la porción pudiera ser reconstruida. Se permitía cualquier método de "bloqueo" del rectángulo, siempre que se eliminaran los píxeles originales y la reconstrucción de píxeles no tuviera que ser perfecta [4] (aunque la fidelidad de la reconstrucción al archivo original sería un factor a tener en cuenta a la hora de juzgar). El concurso comenzó el 12 de junio y finalizó el 30 de septiembre. Los participantes tendían a aplicar una máscara pseudoaleatoria recuperable a la región o a añadir los datos enmascarados al final del formato del archivo. Los programas que obtuvieron el segundo puesto utilizaron macros mal definidas, mientras que el ganador, que eligió trabajar con un formato basado en texto poco común, puso a cero los valores de los píxeles manteniendo intacta la cantidad de dígitos.

2009

El concurso de 2009 requería que los participantes escribieran un programa que filtrara directivas de enrutamiento pero redirigiera una pieza de equipaje en función de algún comentario de apariencia inofensiva en el archivo de datos de entrada delimitado por espacios. El concurso comenzó el 29 de diciembre de 2009 y debía finalizar el 1 de marzo de 2010. [5] Sin embargo, no hubo actividad durante tres años. Los ganadores recién se anunciaron el 1 de abril de 2013, con un ganador general y seis finalistas. [6] [7]

2013

El concurso de 2013 se anunció el 1 de abril de 2013 y debía presentarse el 4 de julio de 2013; los resultados se anunciaron el 29 de septiembre de 2014. [8] Se trataba de un sitio web social ficticio llamado "ObsessBook". El desafío consistía en escribir una función para calcular el DERPCON (grados de conexión personal alcanzable por el borde ) entre dos usuarios que "accidentalmente" calcula una distancia demasiado baja para un usuario especial.

2014

El concurso de 2014 se anunció el 2 de noviembre de 2014 y debía presentarse el 1 de enero de 2015. Los resultados se anunciaron el 1 de junio de 2015. [9] El objetivo era escribir un código de vigilancia para un servicio de red social similar a Twitter , para cumplir con una solicitud secreta de vigilancia del gobierno; pero por razones no obvias, el código debe filtrar sutilmente el acto de vigilancia a un usuario. El enfoque general es ofuscar las escrituras en los datos del usuario como escrituras en datos de vigilancia, y la propuesta ganadora lo hizo implementando una función de verificación de tiempo con errores que sobrescribe la entrada.

2015

El concurso de 2015 se anunció el 15 de agosto de 2015 y debía entregarse el 15 de noviembre de 2015. Los resultados se anunciaron el 15 de enero de 2016. El escenario era un proceso de desarme nuclear entre la Gloriosa República Democrática Popular de Alice y la Gloriosa República Democrática Popular de Bob ( Alice y Bob ), y la misión era escribir una función de prueba para comparar material potencialmente fisible con una muestra de referencia, que bajo ciertas circunstancias etiquetaría una ojiva como que contiene material fisible cuando no es así. Alrededor de un tercio de las presentaciones utilizaron envenenamiento de NaN por operaciones de punto flotante erróneas, lo que genera más NaN en el cálculo posterior y siempre se evalúa como falso para una comparación. La entrada ganadora utilizó una confusión de tipos de datos entre double y float para distorsionar los valores.

Véase también

Referencias

  1. ^ "Reviven el concurso de C clandestino". I Programmer. 6 de abril de 2013. Consultado el 4 de octubre de 2014 .
  2. ^ Página de profesores y personal del Departamento de Ingeniería Eléctrica de la Universidad de Binghamton Archivado el 29 de mayo de 2010 en Wayback Machine .
  3. ^ "Preguntas frecuentes sobre el concurso Underhanded C". Concurso Underhanded C. Consultado el 28 de febrero de 2015 .
  4. ^ Reglas del concurso 2008 Archivado el 22 de marzo de 2015 en Wayback Machine.
  5. ^ El concurso The Underhanded C », xcott.com (archivado del original Archivado el 6 de octubre de 2014 en Wayback Machine el 18 de julio de 2011)
  6. ^ "El concurso C de los deshonestos » Además, buscamos buenos estudiantes de doctorado". 8 de enero de 2010. Archivado desde el original el 8 de enero de 2010 . Consultado el 12 de marzo de 2019 .
  7. ^ "El concurso de la C deshonesta". Archivado desde el original el 9 de abril de 2013 . Consultado el 3 de abril de 2013 .
  8. ^ Scott Craver (29 de septiembre de 2014). «Ganadores de 2013» . Consultado el 22 de junio de 2017 .
  9. ^ Scott Craver (2 de noviembre de 2014). "El séptimo concurso Underhanded C ya está abierto" . Consultado el 18 de diciembre de 2014 .

Enlaces externos