Your Title - virii 2026-08-04T15:08:17+00:00 http://example.com/tag/virii.html Author Here La cultura Virii 2020-03-01T18:40:41+00:00 http://example.com/la-cultura-virii <p>Hace como diez años que quiero escribir sobre la cultura de los <code class="language-plaintext highlighter-rouge">virii</code> o <code class="language-plaintext highlighter-rouge">virus informáticos</code> en los 90s siendo que hasta el día de hoy encuentro una fascinación con esa parte de la historia de la computación. Este artículo es una especie de resumen que me gustaría leer cada tanto para recordar algunas cuestiones.</p> <p>La mayor parte de los libros que documentaban todo lo relacionado con <code class="language-plaintext highlighter-rouge">virii</code> son bases de datos analógicas explicando que hace cada <code class="language-plaintext highlighter-rouge">cepa (strain)</code> y que particularidades tiene, pero no encontré nada en la Internet-toda que explique como fue evolucionando este campo desde el punto de vista de lo que significaba pertenecer a la <code class="language-plaintext highlighter-rouge">HPAV scene (Hacking/Phreaking/Anarchy or Art/Virus)</code>. Luego también hubo bases de datos digitales como VSUM o viejas versiones del antivirus F-Prot. Más adelante explicaré un poco sobre esto también. Para saber mas sobre que es el <code class="language-plaintext highlighter-rouge">HPAV</code> ver el artículo <a href="https://weekly-geekly.github.io/articles/196022/index.html">la historia de la escena pirata</a>.</p> <p>Es un artículo largo: andá, buscate una birrita que voy a tratar de llevarte de la mano en la historia de los virus hasta el año 199x <code class="language-plaintext highlighter-rouge">desde el punto de vista de los coders de virus</code>. Los textos citados se podían conseguir en BBSs de la época. Están todos rescatados y archivados en <a href="https://vault.0x705h.com">El Vault</a>. El rango de los eventos históricos datan desde 1991 hasta 1998.</p> <p>No se olviden de hacerle click a todos los links que hay en este artículo para no perderse de lo que estoy hablando :) !</p> <h1 id="40hex">40Hex</h1> <p>"El primer virus que me gustaría poner bajo escrutinio es el virus Tiny, vamos a ver qué escribió sobre él nuestra querida amiga <code class="language-plaintext highlighter-rouge">Patti Hoffman</code> (zorra)" es como arranca el primer <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-1/40HEX-1.001/530">artículo</a> de una <code class="language-plaintext highlighter-rouge">zine</code> de <code class="language-plaintext highlighter-rouge">Virii</code> de principios de los 90s llamada <code class="language-plaintext highlighter-rouge">40Hex</code>.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>The first virus I would like to spotlight is the Tiny virus, lets see what our good friend Patti Hoffman (bitch) has written about it. 40H Vmag Issue 1 Volume 1 - File: [40HEX-1.002] https://vault.0x705h.com/en/ezine/40hex/40hex-number-1/40HEX-1.001/530 </code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">Patricia Hoffman</code> es un nombre que ha dado vueltas en el mundo de los <code class="language-plaintext highlighter-rouge">virii</code> en toda la década de los 90s. Sobre todo por un software que ella desarrollaba llamado <code class="language-plaintext highlighter-rouge">VSUM</code> que hoy se puede browsear en internet con ese <a href="http://wiw.org/~meta/vsum/">link</a>. Era una base de datos explicando el comportamiento de cada uno de los virus que ella analizaba. La gente de <code class="language-plaintext highlighter-rouge">40Hex</code> la puteaba banda, aunque por otro lado, números más tarde parecieran no tan disgustados con ella, y estas menciones se mantienen inconsistentes a lo largo de la historia de esta publicación:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>In case you haven't yet heard Patti Hoffmans VSUM, virus information summary is now a giant hyper-text database. It's really a good program, check it out. Can't wait to see a bogus version of that going around. 40Hex Issue 3 - File: [40HEX-3.007] https://vault.0x705h.com/en/ezine/40hex/40hex-number-3/40HEX-3.006/540 </code></pre></div></div> <p>Varias veces escribieron que <code class="language-plaintext highlighter-rouge">Patti Hoffman</code> es una idiota, pero siguen mencionando que su base de datos [VSUM] está muy bien. Probablemente 'putear' a Hoffman era una especie de moda que daba cierto status en esa época.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[...] - Virus Scan by McAffe Asst. (It really is a great tool) - VSUM (Patti Hoffman is a stupid bitch, but I must admit, this program is the virus underground bible) - VSAFE from Central Point Anti-Virus (Not as annoying as Flu-Shot) [...] 40Hex Issue 4 - File: [40HEX-4.012] https://vault.0x705h.com/en/ezine/40hex/40hex-number-4/40HEX-4.011/555 </code></pre></div></div> <p>Pero si nos ponemos a pensar un toque en el contexto en el que estaba esta gente, no es tan loco. En esa época Internet no existía - al menos no para el público general - y de pronto hacer un programa que tuviera potencialmente impacto mundial, un poco de chapa te daba. Además se le adjudicaba cierto misticismo a estos programas que infectaban computadoras - su denominación <code class="language-plaintext highlighter-rouge">virus</code> ayudaba mucho - forzando la analogía entre una computadora y una suerte de organismo viviente que se "enfermaba". Recuerdo haber leido publicaciones de computación argentinas refiriéndose a los antivirus (al menos al principio) como <code class="language-plaintext highlighter-rouge">vacunas</code>, y en el desconocimiento general, recomendaciones de no dejar disquettes infectados muy cerca entre sí porque los disquettes sanos podrían infectarse "por proximidad". Esto era algo que se decía bastante seguido en esa época. Existía una desinformación general, fogoneada también por los medios masivos de comunicación que decantó en un terror generalizado y basado en el desconocimiento. Igualito a la actualidad, masomeno'.</p> <p>Hoy leyendo este material que tiene 30 años y mirándolo desde una distancia donde "estuve en algunas o en la movida" en los 90s y los 2000s podría resumir este contexto de lo social/adolescente de la siguiente manera en el mundo <code class="language-plaintext highlighter-rouge">HPAV</code> y en los virus en particular, imaginate: como <code class="language-plaintext highlighter-rouge">virii coder</code>, con un rango de edad de 12 a 20 años, se conectan a un BBSs del futuro, hacen cosas que nadie entiende. Estos virus tienen impacto mundial. Sus obras se ven reflejadas en "viruspedias" de empresas o investigadores importantes sin contar que es el tema en boga en diarios y TV. Además, siendo adolescente, la validación de un grupo es importante, y este conocimiento, y los virus que desarrollaban, les otorgaban un posicionamiento superior socialmente dentro del under. En cierta manera, estaban jugando un juego muy poco claro donde estarían haciendo algo ilegal que todavía hasta el día de hoy se discute. Desarrollar virus era dejar su firma, grafitteando los discos rígidos de miles de computadoras del mundo:</p> <p>"Sus compatriotas dijeron que escribían virus mayormente por la emoción de hacerlo pero también por el reto y el status que otorga en el under de la computación. El grupo dijo que no está interesado en hacer daño, y es poco frecuente que crearan virus que hagan daño deliberadamente. 'Es una especie de Grafitti - poniendo nuestros nombres en todos lados - y en el proceso se hace daño' - dijo Hellraiser."</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>His compatriots said they write viruses mainly for the thrill but also for the challenge and the status it brings within the computer underground. The group said it is not interested in doing harm, and seldom creates viruses that are deliberately designed to cause damage. "It's sort of like graffiti - getting our name across - and damage happens in the process," he claimed.(* Hellraiser *) 40Hex Number 5 Volume 2 Issue 1 - File: [40HEX-5.005] https://vault.0x705h.com/en/ezine/40hex/40hex-number-5/40HEX-5.004/572 </code></pre></div></div> <p>Todos en mayor o menor medida se sentían de la misma manera. Y convengamos que estos muchachines alrededor de todo el mundo con suerte superaban los 17 años. Por ejemplo, este chico <code class="language-plaintext highlighter-rouge">Hellraiser</code>, uno de los autores de la revista <code class="language-plaintext highlighter-rouge">40Hex</code> <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-4/40HEX-4.014/552">dice que tiene que volver al colegio</a>.</p> <p>Obtener <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-6/40HEX-6.003/577">cierto status</a> era un componente vital dentro de esta cultura, tanto asi que lo ganaban en gran medida teniendo problemas con la ley; algunos de ellos ya estaban haciendo <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-5/40HEX-5.001/567">phreaking para poder llamar a BBSs internacionales</a> e intercambiar información sobre <code class="language-plaintext highlighter-rouge">virii</code>, en particular un BBS búlgaro que se especializaba en intercambio de virus.</p> <p>Cada vez más osados, terminan uniéndose varios grupos de desarolladores de virus para <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-5/40HEX-5.004/572">llamar por telefono a Patti Hoffman y a John McAfee</a> subiendo así la apuesta. Inclusive habiendo manifestado a lo largo de todas sus publicaciones, que el trabajo de Patti Hoffman y John McAfee apestaba!</p> <p>Tanto avanzó de esta manera a lo largo de los años la cultura virii, que hasta diseñaron un <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-5/40HEX-5.005/568">código de conducta</a> y un manual de estilo de como un desarrollador de virus debía comportarse.</p> <h1 id="evolución">Evolución</h1> <p>A lo largo de los años, esta publicación pasó de ser una revista digital de pibes <a href="https://en.wikipedia.org/wiki/Leet">l33tz</a> a algo mucho más serio y con invaluable valor histórico y técnico. Desde la evaluación de tiempos de acceso de la <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-10/40HEX-10.007/622">máquina</a> conforme al tamaño de los virus que desarrollaban hasta artículos sobre <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-6/40HEX-6.002/584">técnicas antidebug</a> o de <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-9/40HEX-9.004/617">antidebugging</a>. Años mas tarde, en el número 11 discuten sobre <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-11/40HEX-11.002/641">polimorfismo avanzado</a>. A principios de los 90s. En la pre-internet. Me vuela la mente.</p> <p>La actitud desde el principio fue evolucionando hasta cierto grado, donde no solo estaban desarrollando el estado-del-arte del malware en esa época, sino también que para hacerlo, bajaban línea explicando en varios artículos esta nueva ola de "falsos desarrolladore de virus" o <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-9/40HEX-9.001/615">scriptkiddies</a> que usaban herramientas para crear virus sin ningún conocimiento o esfuerzo. Para pertenecer a la escena <code class="language-plaintext highlighter-rouge">virii</code>, años más tarde circa 1993, los muchachos ya tenían la potestad de <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-11/40HEX-11.001/637">marcar la cancha</a>. No sin antes tambien discutir largamente sobre la libertad de distribución de la información y la <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-11/40HEX-11.004/638">censura</a> como contrapartida.</p> <p>Tan importantes se volvieron los chicos de la <code class="language-plaintext highlighter-rouge">40Hex</code> que hasta <code class="language-plaintext highlighter-rouge">Sarah Gordon</code> <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-12/40HEX-12.006/650">escribió</a> para su revista digital. ¿Quién es <a href="https://www.youtube.com/watch?v=NtJ0CQ7K6_4">Sarah Gordon</a>? Una investigadora que escribió varios <a href="https://dl.acm.org/profile/81100037228">papers</a> sobre <code class="language-plaintext highlighter-rouge">malware</code> en los 90s. Inclusive dió una charla en <code class="language-plaintext highlighter-rouge">DEFCON 8</code>. Y además logró entrevistar al desarrollador de virus "más jodido de todos los jodidos": <a href="https://en.wikipedia.org/wiki/Dark_Avenger">Dark Avenger</a>.</p> <h1 id="el-minotauro-argentino">El Minotauro argentino</h1> <p><a href="https://vault.0x705h.com/en/ezine/minotauro">Minotauro</a>. De todas las publicaciones de esa época, también crecí leyéndolos. Era una publicación argentina que discutía temas <code class="language-plaintext highlighter-rouge">HPAV</code> y especialmente <code class="language-plaintext highlighter-rouge">virii</code>. Estuve fascinado por años con esta gente. Los <code class="language-plaintext highlighter-rouge">Minotauro</code> eran muchísimo más avanzados técnicamente que los textos de la <code class="language-plaintext highlighter-rouge">40Hex</code>. Un ejemplo clarísimo de esto es esta <a href="https://vault.0x705h.com/en/ezine/minotauro/mino-number-1/TEXT_003.001/46">descripción sobre la infección de EXEs</a> donde el autor, <code class="language-plaintext highlighter-rouge">Trurl</code>, da una explicación detallada sobre el porqué de la dificultad de infectar ejecutables mayores a <code class="language-plaintext highlighter-rouge">640kb</code>. En la sección anterior mencioné sobre las técnicas anti-debugging que se estaban utilizando en esta época. Pero <code class="language-plaintext highlighter-rouge">Minotauro</code> va mucho más allá. <a href="https://vault.0x705h.com/en/ezine/minotauro/mino-number-1/TEXT_004.001/50">Analizan</a> el comportamiento de un antivirus (en este caso el Thunderbyte) y van cambiando el comportamiento de sus virus acorde a lo que ven. Me la juego que estuvieron debuggeando este antivirus por horas para saber cuales eran los criterios heurísticos que tenían que sortear. Digo esto porque no hay manera de analizar los métodos de detección <code class="language-plaintext highlighter-rouge">heurísticos</code> de un antivirus sin attachearte al proceso y debuggear. No - hay - manera.</p> <p>Una cosa interesante sobre esta publicación a diferencia de todas las otras que también trataban estos temas, es que se notaba que estos pibes sabían de lo que hablaban y que no estaban publicando cada cosa nueva que descubrian de algun comando de Linux. Cabe aclarar que en los 90s, Linux era absolutamente desconocido para todo el mundo, y usarlo no era precisamente fácil. Lo que los acercaba más a ser profesionales o desarrolladores de verdad antes que "pibitos del IRC". Aquí muestro un ejemplo:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>NOTAS SOBRE EL SOURCE: El source dado mas arriba es una correspondencia byte-a-byte del avispa en su "estado natural". Se ve que el autor uso para ensamblarlo el A86 o algun otro engendro similar, ya que algunos jumps que podrian haber sido SHORT (EB, 2 bytes) son NEAR (E9, 3 bytes). El TASM me los hacia SHORT, asi que para mantener una correspondencia byte-a-byte, tuve que "forzarlos". Ademas, en el ensamblado de este file, hay algunos bytes distintos debido a que hay algunas instrucciones que realmente tienen dos codigos maquina posibles: TASM 3.1 AVISPA ORIGINAL ADD AX, BX 03C3 01D8 ADD DX, AX 03D0 01C2 ADD SI, AX 03F0 01C6 ADD DL, CL 02D1 00CA ADD AL, BL 02C3 00D8 SUB CL, DL 2ACA 28D1 MOV SP, AX 8BE0 89C4 MOV AX, CX 8BC1 89C8 MOV BX, DX 8BDA 89D3 MOV DI, BX 8BFB 89DF MOV AH, AH 8AE4 88E4 MOV ??, ?? 8A?? 88?? MOV DL, DL 8AD2 88D2 https://vault.0x705h.com/en/ezine/minotauro/mino-number-2/TEXT_001.002/67 </code></pre></div></div> <p>También nos regalan un hermoso <a href="https://vault.0x705h.com/en/ezine/minotauro/mino-number-2/TEXT_003.002/72">glosario</a> que definía de alguna manera las palabras que se usaban en esa época. Notablemente, algunas sobrevivieron. Finalmente una de las cosas que se hablaba mucho era como "caían" BBSs porque algún usuario subía una de las llamadas <a href="https://vault.0x705h.com/en/ezine/minotauro/mino-number-2/TEXT_005.002/66">bombas ANSI</a>. En este árticulo se explica como funcionaban. Recuerdo que más de chico, estas "bombas ANSI" tenían cierto tinte místico, pero leyendo hoy como se construían, en el fondo era scriptear comandos con secuencias de escape.</p> <h1 id="mención-especial">Mención especial</h1> <p><a href="https://hackstory.net/Fernando_Bonsembiante">Fernando Bonsembiante</a> era un escritor y poeta que trabajó en la publicación <code class="language-plaintext highlighter-rouge">Virus Report</code> de MPEdiciones. Los números se pueden conseguir en el <a href="ftp://rock.pungas.space/FILES_REPOSITORY/txt/Ezines/vr/">FTP de PVM</a>. Que en paz descanses capo.</p> <h1 id="cosas-que-quedaron-afuera-en-este-artículo">Cosas que quedaron afuera en este artículo</h1> <ul> <li>DAN (Digital Anarchy) y otros grupos en Argentina tambien escribían Virus. En 1996 alguien que no sabemos quien es, mandó un monton de muestras de virus a Patricia Hoffman y la mayor parte de los virus argentinos fueron publicados en este año en el VSUM</li> <li>Aparece el virus <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-8/40HEX-8.010/598">michelangelo</a> que tiene un impacto impresionante en los medios, y muchas empresas antivirus aprovecharon la ola mediática para llenarse los bolsillos con el terror general que ellos mismos diseminaban. Las empresas antivirus ganaron tracción y mucho pero mucho dinero.</li> <li>Se crea una <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-9/40HEX-9.007/612">naming convention</a> para poder organizar las "cepas" de los virus porque cada empresa y grupo de investigación de virus los nombraba como les parecia.</li> <li>Aparece el primer virus <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-11/40HEX-11.007/634">stealth</a> interesante.</li> <li>Se descubre que se puede modificar la información del filesystem con la <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-11/40HEX-11.008/640">century technique</a></li> <li>Sarah Gordon aunque analizaba virus y no estaba de acuerdo con sus desarrolladores, <a href="https://vault.0x705h.com/en/ezine/40hex/40hex-number-12/40HEX-12.006/650">escribió</a> para la 40Hex!</li> <li>El <a href="https://en.wikipedia.org/wiki/Dark_Avenger">Dark Avenger</a> de Sofía, Bulgaria - El desarrollador de virus "Más peligroso del planeta", entrevistado inclusive por Sarah Gordon.</li> </ul> <h1 id="conclusión">Conclusión</h1> <p>Hay muchísima más tela para cortar sobre este tema. Grafiteros digitales, empresas y grupos de investigación escribieron durante poco más de una década sobre este tema, y algunas técnicas de los 90s todavía estan en boga en el submundo del desarrollo de código malicioso. Con los años, todas estas fuentes van desapareciendo. Es imposible documentar absolutamente toda la historia de la internet y las computadoras, pero hay algunas cosas que deberían seguir registrándose. ¿La razón? Por poner un ejemplo:</p> <p>El Centro de Coordinación del Equipo de Respuesta de Emergencia Informática de Japón, <code class="language-plaintext highlighter-rouge">JPCERT/CC</code> hace un tiempo publicó una herramienta llamada <a href="https://github.com/JPCERTCC/EmoCheck">EmoCheck</a> para detectar si el malware <a href="https://es.wikipedia.org/wiki/Emotet">Emotet</a> infectó máquinas con el sistema operativo Windows. El método de detección <a href="https://twitter.com/certbund/status/1225705306371563520">fue insuficiente</a>, y este es el commit <a href="https://github.com/JPCERTCC/EmoCheck/blob/d0708600a88060a311580a4458b103e6acb5b9f1/emocheck/emocheck.cpp">d0708600a88060a311580a4458b103e6acb5b9f1</a> al cual se refieren. Métodos de detección de los 90s, en la actualidad, muestran la importancia de recordar el legado de los pibes de los 90s, y salvar los documentos o los text-files para que no se reinvente una y otra vez algo que no funciona muy bien, porque ya se demostró en esta década que la escalada de medidas y anti-medidas no funciona.</p> VXHeavens - Criminalización de la documentación histórica 2020-02-07T11:32:41+00:00 http://example.com/vxheavens-virus-crimen-e-historia <h1 id="el-pasado">El pasado</h1> <p>Ya estamos en el futuro, y en cierta manera, para entender como es que llegamos hasta acá en materia tecnológica desde el punto de vista de la seguridad informática, debemos comprender que hubo una especie de camino en la escena <code class="language-plaintext highlighter-rouge">H/P/A/V</code> (Hacking/Phreak/Anarchy o Art/virus o <code class="language-plaintext highlighter-rouge">virii</code>) bien delimitado históricamente donde se puede ver como fué evolucionando hasta el día de hoy.</p> <p>Sobre todo, como los conceptos fundamentales del <code class="language-plaintext highlighter-rouge">malware</code> de los 80s y los 90s siguen sorprendentemente vigentes. Las ideas, la desinformación, y la penalización de la distribución de la información al público sigue igual, solo cambiaron las tecnologías y los sistemas operativos.</p> <p>Pongamos por caso, los <a href="https://github.com/gerasdf/InsecureProgramming">abos de gera</a>: programas con diversas vulnerabilidades escritas de manera tal que necesiten diferentes estrategias - cada vez más avanzadas conforme uno avanza en los ejercicios - para ejecutar código arbitrario y modificar el flujo del programa para finalmente ejecutar <code class="language-plaintext highlighter-rouge">una shell</code>. Estos ejercicios eran la puerta de entrada a la <code class="language-plaintext highlighter-rouge">explotación binaria</code> y la llave que la abría: un importantísimo artículo, casi fundacional de la ejecución de código arbitrario datado en 1996 llamado <a href="http://phrack.org/issues/49/14.html">Smashing The Stack For Fun And Profit</a> de Phrack.</p> <p>Digo fundacional porque aunque romper el stack ya se hacía de antes, el hecho de publicarlo y documentar la lógica detrás de la ejecución de código arbitrario explotando vulnerabilidades abrió la puerta a bocha gente para explorar también esta parte de la computación, y eventualmente - a lo largo de los últimos 24 años - fundar equipos de investigación y/o empresas que se dedican a hacer que la Internet, programas y dispositivos sean un poco más seguros.</p> <p>Lo mismo ha sucedido con otras publicaciones, como la <a href="https://vault.0x705h.com/en/ezine/40hex">40hex</a> donde unos pibes fascinados con los virus empezaron a escribir y publicar código fuente detallando y enseñando la lógica detrás del funcionamiento de los virii. <em>Tener acceso a esta información también facilita entender como combatirlos</em>.</p> <p>Sitios como <a href="http://textfiles.com/">Textfiles.com</a>, <a href="https://archive.org/web/">Archive.org / Wayback Machine</a> e inclusive <a href="https://vault.0x705h.com/es">El Vault</a> son ejemplos del esfuerzo de muchas personas para mantener la historia de sucesos, archivos y programas que existieron décadas atrás y que lentamente están sufriendo la erosión del tiempo, una suerte de <a href="https://en.wikipedia.org/wiki/Data_degradation">Bitrot</a> donde la información no se degrada por cuestiones físicas, sino por el olvido, la falta de interés en hacer permanecer online información considerada obsoleta, o las acciones de gobiernos sobre sitios que documentan información mal considerada ilegal, como lo que sucedió con el ahora desaparecido <code class="language-plaintext highlighter-rouge">VXHeavens</code>.</p> <h1 id="ucrania-cierra-vxheavens">Ucrania cierra VXHeavens</h1> <p><code class="language-plaintext highlighter-rouge">VXHeavens</code> fué un sitio donde se archivaba todo documento o código fuente relacionado con Virus una suerte de biblioteca digital que contenía el código original de infinidad de virus de la mano de sus autores reales, que en su momento distribuían estos archivos en <a href="https://es.wikipedia.org/wiki/Bulletin_Board_System">BBSs</a> especializados, y generalmente, cerrados al público.</p> <p>El Viernes 23 de Marzo del 2012, el servidor de <code class="language-plaintext highlighter-rouge">VXHeavens</code> fue <a href="https://nakedsecurity.sophos.com/2012/03/28/vx-heavens-virus-writing-website-raided/">incautado por la policía ucraniana</a> bajo el delito de “creación de programas maliciosos con la intención de distribuirlos o venderlos”. Curiosamente, aunque fueran programas maliciosos, siendo que el sitio se dedicaba ciertamente a publicar código fuente y comentarlo, todo lo que se encontraba en ese sitio no presentaba peligro alguno. No solo porque la información la llevaba más de 10 años obsoleta, sino también que toda la información hosteada en esos servidores no servía para verdaderos criminales. Eran virus mayormente de los 90s, para MS-DOS, de la era pre-internet, totalmente inofensivos para los estándares de la computación del nuevo milenio.</p> <p>El autor del sitio, <code class="language-plaintext highlighter-rouge">Andrey Baranovich</code> conocido con su handle <code class="language-plaintext highlighter-rouge">Herm1t</code> explicó reiteradas veces a diferentes medios que <a href="https://www.pcworld.com/article/253567/security_experts_push_ukraine_to_drop_vx_heavens_prosecution.html">nunca estuvo involucrado en ninguna actividad blackhat</a> y que era practicamente imposible infectarse al visitar el sitio. Todo código disponible en el sitio necesitaba conocimiento especial y la persona interesada en “activar el malware” tenía que hacerlo deliberadamente.</p> <p>El sitio web <a href="https://www.grahamcluley.com/vx-heaven/">VXHeaven volvió al siguiente año</a> para terminar desapareciendo para siempre por razones hoy desconocidas. De alguna manera se perdió una fuente invaluable de información. Por suerte todavía existen mirrors de esta piedra basal del <code class="language-plaintext highlighter-rouge">malware</code>, y no todo esta perdido, por ahora.</p> <h1 id="como-en-los-90s-emocheck">Como en los 90s, EmoCheck</h1> <p>El Centro de Coordinación del Equipo de Respuesta de Emergencia Informática de Japón, <code class="language-plaintext highlighter-rouge">JPCERT/CC</code> hace unos días publicó una herramienta llamada <a href="https://github.com/JPCERTCC/EmoCheck">EmoCheck</a> para detectar si el malware <a href="https://es.wikipedia.org/wiki/Emotet">Emotet</a> infectó máquinas con el sistema operativo Windows.</p> <p>A los días, el CERT Alemán escribe el siguiente tweet:</p> <blockquote> <p>Los autores del malware respondieron a la publicación de la herramienta EmoCheck cambiando los nombres de la generación de archivos y procesos. Por lo tanto la herramienta no puede detectar infecciones de binarios mas nuevos. JPCERT/CC está trabajando en una actualización de la herramienta. // Fuente: <a href="https://twitter.com/certbund/status/1225705306371563520">https://twitter.com/certbund/status/1225705306371563520</a></p> </blockquote> <figure class="highlight"><pre><code class="language-c--" data-lang="c++"><span class="p">[...]</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="nf">GenerateEmotetProcessName</span><span class="p">()</span> <span class="p">{</span> <span class="kt">uint32_t</span> <span class="n">q</span><span class="p">;</span> <span class="kt">uint32_t</span> <span class="n">seed</span><span class="p">;</span> <span class="kt">int</span> <span class="n">keylen</span><span class="p">;</span> <span class="kt">int</span> <span class="n">mod</span><span class="p">;</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">keywords</span><span class="p">;</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">keyword</span><span class="p">;</span> <span class="n">keywords</span> <span class="o">=</span> <span class="s">"duck,mfidl,targets,ptr,khmer,purge,metrics,acc,inet,msra,symbol,driver,"</span> <span class="s">"sidebar,restore,msg,volume,cards,shext,query,roam,etw,mexico,basic,url,"</span> <span class="s">"createa,blb,pal,cors,send,devices,radio,bid,format,thrd,taskmgr,timeout,"</span> <span class="s">"vmd,ctl,bta,shlp,avi,exce,dbt,pfx,rtp,edge,mult,clr,wmistr,ellipse,vol,"</span> <span class="s">"cyan,ses,guid,wce,wmp,dvb,elem,channel,space,digital,pdeft,violet,thunk"</span><span class="p">;</span> <span class="n">keylen</span> <span class="o">=</span> <span class="kt">int</span><span class="p">(</span><span class="n">keywords</span><span class="p">.</span><span class="n">length</span><span class="p">());</span> <span class="c1">// first round</span> <span class="n">seed</span> <span class="o">=</span> <span class="n">GetVolumeSerialNumber</span><span class="p">();</span> <span class="n">q</span> <span class="o">=</span> <span class="n">seed</span> <span class="o">/</span> <span class="n">keylen</span><span class="p">;</span> <span class="n">mod</span> <span class="o">=</span> <span class="n">seed</span> <span class="o">%</span> <span class="n">keylen</span><span class="p">;</span> <span class="n">keyword</span> <span class="o">+=</span> <span class="n">GetWord</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span> <span class="n">mod</span><span class="p">,</span> <span class="n">keylen</span><span class="p">);</span> <span class="c1">// second round</span> <span class="n">seed</span> <span class="o">=</span> <span class="mh">0xFFFFFFFF</span> <span class="o">-</span> <span class="n">q</span><span class="p">;</span> <span class="n">mod</span> <span class="o">=</span> <span class="n">seed</span> <span class="o">%</span> <span class="n">keylen</span><span class="p">;</span> <span class="n">keyword</span> <span class="o">+=</span> <span class="n">GetWord</span><span class="p">(</span><span class="n">keywords</span><span class="p">,</span> <span class="n">mod</span><span class="p">,</span> <span class="n">keylen</span><span class="p">);</span> <span class="c1">// std::cout &lt;&lt; "[debug] Emotet process name on this host is " &lt;&lt; keyword.c_str() &lt;&lt; ".exe" &lt;&lt; std::endl;</span> <span class="k">return</span> <span class="n">keyword</span><span class="p">;</span> <span class="p">}</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">EmotetProcess</span><span class="o">&gt;</span> <span class="n">ScanEmotetProcess</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">keyword</span><span class="p">)</span> <span class="p">{</span> <span class="n">PROCESSENTRY32</span> <span class="n">pe</span> <span class="o">=</span> <span class="p">{</span><span class="k">sizeof</span><span class="p">(</span><span class="n">PROCESSENTRY32</span><span class="p">)};</span> <span class="n">HANDLE</span> <span class="n">snapshot</span> <span class="o">=</span> <span class="n">CreateToolhelp32Snapshot</span><span class="p">(</span><span class="n">TH32CS_SNAPPROCESS</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> <span class="n">BOOL</span> <span class="n">result</span><span class="p">;</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">EmotetProcess</span><span class="o">&gt;</span> <span class="n">emotet_processes</span><span class="p">;</span> <span class="k">for</span> <span class="p">(</span><span class="n">result</span> <span class="o">=</span> <span class="n">Process32First</span><span class="p">(</span><span class="n">snapshot</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">pe</span><span class="p">);</span> <span class="n">result</span> <span class="o">==</span> <span class="n">TRUE</span><span class="p">;</span> <span class="n">result</span> <span class="o">=</span> <span class="n">Process32Next</span><span class="p">(</span><span class="n">snapshot</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">pe</span><span class="p">))</span> <span class="p">{</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span> <span class="n">process_name</span> <span class="o">=</span> <span class="n">WideCharToString</span><span class="p">(</span><span class="n">pe</span><span class="p">.</span><span class="n">szExeFile</span><span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="n">process_name</span><span class="p">.</span><span class="n">find</span><span class="p">(</span><span class="n">keyword</span><span class="p">)</span> <span class="o">!=</span> <span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">::</span><span class="n">npos</span><span class="p">)</span> <span class="p">{</span> <span class="n">EmotetProcess</span> <span class="n">emotet_process</span><span class="p">;</span> <span class="n">emotet_process</span><span class="p">.</span><span class="n">pid</span> <span class="o">=</span> <span class="n">pe</span><span class="p">.</span><span class="n">th32ProcessID</span><span class="p">;</span> <span class="n">emotet_process</span><span class="p">.</span><span class="n">process_name</span> <span class="o">=</span> <span class="n">process_name</span><span class="p">;</span> <span class="n">emotet_process</span><span class="p">.</span><span class="n">image_path</span> <span class="o">=</span> <span class="n">GetImageFileName</span><span class="p">(</span><span class="n">emotet_process</span><span class="p">.</span><span class="n">pid</span><span class="p">);</span> <span class="n">emotet_processes</span><span class="p">.</span><span class="n">push_back</span><span class="p">(</span><span class="n">emotet_process</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> <span class="k">return</span> <span class="n">emotet_processes</span><span class="p">;</span> <span class="p">}</span> <span class="p">[...]</span></code></pre></figure> <p>Commit en github <a href="https://github.com/JPCERTCC/EmoCheck/blob/d0708600a88060a311580a4458b103e6acb5b9f1/emocheck/emocheck.cpp">d0708600a88060a311580a4458b103e6acb5b9f1</a></p> <p>En los 90s, exactamente así arrancó el mundo de los Antivirus y la pelea constante entre los coders de virii y las actualizaciones de Antivirus.</p> <p>Estos problemas ya se han resuelto incontables veces a lo largo de las décadas. Lo preocupante es cuando una entidad que lleva el nombre <code class="language-plaintext highlighter-rouge">Equipo de Respuesta de Emergencia Informática de Japón</code> reinventa la primerísima versión de un antivirus, una vez más.</p>