28 abril 2010

Concurso Mayo: CoreWar by hendrix

Dado que Abril Negro a fracasado estrepitosamente, propongo un nuevo concurso, del tipo CoreWar.

¿Que es un CoreWar?

Si nos atenemos a la definición de la Wikipedia, el CoreWar era una especie de juego informático en el que varios programas se disputaban el espacio de memoria o de disco de un computador. Logrando la victoria el programa que consiguiera abarcar más espacio, desbancando así a sus contrincantes.

Les dejo una definición que incluye algo de historia:

Citar
En 1939, el famoso científico matemático John Louis Von Neumann, de origen húngaro, escribió un artículo, publicado en una revista científica de New York, exponiendo su "Teoría y organización de autómatas complejos", donde presentaba la posibilidad de desarrollar pequeños programas que pudiesen tomar el control de otros, de similar estructura.

En 1949, en los laboratorios de la Bell Computer, subsidiaria de la AT&T, 3 jóvenes programadores: Robert Thomas Morris, Douglas McIlroy y Victor Vysottsky, a manera de entretenimiento crearon un juego al que denominaron CoreWar, inspirados en la teoría de John Von Neumann.

El juego CoreWar fue desarrollado en Assembler Pnemónico, conocido como Red Code (código rojo) y hoy día es posible ejecutar dicho antiguo juego, por medio de un programa llamado MARS (Memory Array Redcode Simulator).

Puesto en la práctica, los contendores del CoreWar ejecutaban programas que iban paulatinamente disminuyendo la memoria del computador y el ganador era el que finalmente conseguía eliminarla totalmente. Este juego fue motivo de concursos en importantes centros de investigación como el de la Xerox en California y el Massachussets Technology Institute (MIT), entre otros.

Sin embargo durante muchos años el CoreWar fue mantenido en el anonimato, debido a que por aquellos años la computación era manejada por una pequeña élite de intelectuales.

Robert Thomas Morris, Douglas McIlroy y Victor Vysottsky, fueron los autores del precursor de los virus informáticos.
Fuente: http://www.persystems.net/sosvirus/hackers/corewar.htm


CoreWar by elhacker.net

Ya que actualmente disponemos de maquinas mucho más potentes que las que vieron nacer CoreWar, propongo cambiar drásticamente las reglas del juego, adaptándolas a los virus y tecnologías actuales. Paso a explicar las reglas en los siguientes puntos:

  • Objetivos del Concurso:

    El objetivo principal del concurso es la de hacer un "mini-torneo" en el que los participantes, tendrán que diseñar códigos los cuales tendrán como único objetivo la eliminación total de su contrincante.


  • Posibilidades de infección:

    Como los virus actuales, los programadores podrán programar subrutinas de infección de discos (archivos, sistema de ficheros, etc.) y memoria (inyección de código en procesos externos, escritura/lectura de procesos del contrincante, etc.). Se permitirá tanto la programación en modo usuario y en modo Kernel.


  • Condiciones de victoria:

    Para que un programador obtenga la victoria tendrá que conseguir terminar completamente el proceso en modo usuario de su contrincante. Además de eso, tendrá que eliminar y/o desinfectar totalmente el sistema comprometido por el virus de su contrincante (descargar completamente el código del virus del contrincante de la memoria, desinfectar ficheros, etc.).

    El enfrentamiento será dividido en 2 rondas, para que cada virus pueda iniciarse primero que el otro (factor importante a la hora de atacar o defenderse).

    Obligatoriamente, el primer virus que se ejecute tiene que dejar ejecutar el otro.

    Si un enfrentamiento termina sin que los 2 virus consigan terminar el otro en ambas rondas o de lo contrario los 2 virus perezcan en cada ronda, se dará el enfrentamiento como nulo, tuviendose que reprogramar los virus y volverse a enfrentar.


  • Escenario de Batalla:

    El sistema operativo que se usará será una instalación limpia (sin ningún programa instalado, exceptuando programas como Filemon, ProcessExplorer y demás que servirán para seguir el enfrentamiento) de un Windows XP SP3 con las últimas actualizaciones.


  • Analizando el código:


    El virus constará básicamente de dos partes fundamentales, el modulo de defensa y el modulo de ataque. El modulo de defensa es el que se tiene que desarrollar primero y, 3 días antes del enfrentamiento, se entregará el ejecutable del virus con la parte de la defensa terminada al contrincante y viceversa. Los programadores podrán analizar el ejecutable en sus máquinas virtuales. Una vez analizado el virus, tendrán que programar el modulo de ataque, que será el que intentará desinfectar completamente el virus del contrincante. Se puede programar una defensa para cada enfrentamiento, una vez entregada al contrincante no se podrá modificar dicho módulo. Si alguno sospecha de que su contrincante ha modificado el modulo de defensa, se podrá requerir el código y se compilará, para ver que coincida con el ejecutable que se entregó la primera vez.

    Los programadores tienen que publicar en este post el nombre en disco de su virus (en proceso puede ser diferente, incluso aleatorio), el nombre del virus y para más información, el lenguaje en que fue creado. Ejemplo:

    Nombre en disco: Cryptovirus.exe
    Nombre del Virus: CryptoHendrix.A
    Lenguaje de programación usado: C + ASM.


    Al finalizar el concurso, y para que todo el mundo pueda aprender, se publicaran todos los códigos usados por cada programador en sus virus. Los recopilaré dentro de un único archivo comprimido.


  • Limitaciones:

    Los virus no podrán en ningún caso desestabilizar el sistema. Si se produce BSOD o reinicio/apagado forzoso del sistema o relentización excesiva de este, se dará el enfrentamiento como perdido para el virus que lo ocasione. El enfrentamiento tendrá lugar en una maquina virtual, se pueden infectar los archivos que les de la gana siempre y cuando no se desestabilice el sistema.

    Los virus no se podrán conectar a Internet, ya que no tiene mucha utilizad dentro de lo que es el concurso.




    Creo que no me dejo nada, si se hace algún cambio en las reglas se avisará. El inicio del torneo podría ser a mediados de Mayo, por ejemplo el Viernes 14 de Mayo. Del 1 de Mayo al 14 de Mayo se organizará el organigrama del torneo. El torneo será por eliminatorias (tipo Octavos de final, cuartos de final, semifinal y final). Los emparejamientos serán totalmente al azar. Si el numero de participantes es impar, uno de ellos automáticamente avanzará de ronda.

    Para apuntarse, déjenlo comentado en este post. En este primer post colocaré la lista de participantes y la iré actualizando según se anoten los concursantes. Cualquier duda, mejora o inclusión de alguna regla o lo que sea, comentenlo.

    PD: Me voy a anotar en este concurso, hace ya tiempo que no programo nada referente a malware y ya es hora :D aunque estaré condicionado del tiempo que tenga libre, ya que con la uni no tengo mucho :-\

    link:http://foro.elhacker.net/analisis_y_diseno_de_malware/concurso_mayo_corewar_apuntate-t291931.0.html;msg1445573
    Lista de participantes:

    • Hendrix

0 comentarios:

Publicar un comentario