Antivirus SiliVaccine: el software contra virus de Corea del Norte

11 Ene 2019

Hace un tiempo, el equipo de investigación de Check Point recibió un mensaje de un periodista de Boomberg llamado Martyn Williams. En él afirmaba haber recibido una copia de un antivirus norcoreano supuestamente por parte de un usuario de Japón. El software norcoreano no es muy común, por lo que los expertos Mark Lechtik y Michael Kajiloti analizaron la herramienta antivirus y presentaron los resultados de su estudio en el congreso de hackers 35C3.

Un grupo de expertos encuentran aspectos muy interesantes en el código del antivirus norcoreano SiliVaccine

Pero antes de entrar en los detalles del antivirus norcoreano, conviene repasar brevemente la relación de Corea del Norte con Internet.

El papel de Corea del Norte en la evolución de la red global

La atribución (elaborar una reclamación justificada de que un grupo específico de un país específico intentó un ataque específico) es un asunto totalmente impredecible. Interpretar las pruebas es complicado, se puede seguir la pista incorrecta. Sin embargo, en algún momento, varios grupos de investigación atribuyeron conjuntamente algunos ataques online a Corea del Norte. Además, existe una idea generalizada de que Corea del Norte utiliza grupos de ciberdelincuentes financiados por el estado para beneficio económico del régimen. Evidentemente, Corea del Norte lo niega.

Dicho esto, Internet como tal no existe en Corea del Norte: solo unos pocos pueden acceder a la World Wide Web, mientras que el resto de la población tiene que conformarse con la intranet doméstica, conocida como Kwangmyong, una red en la que se filtra toda la información del “putrefacto occidente”. Por su parte, occidente tampoco puede acceder normalmente a la red de Corea del Norte, por lo que toda información sobre este asunto es bien recibida, por poco que sea.

Cómo acabó el antivirus SiliVaccine de Corea del Norte en manos de los investigadores

Cómo acabó el antivirus SiliVaccine de Corea del Norte en manos de los investigadores

Un antivirus japonés-coreano, ¿para qué?

La primera cuestión es de lógica: ¿Para qué iba a querer Corea del Norte un antivirus si no tiene Internet? En primer lugar, para la protección contra virus que se mueven por el país en memorias USB con artículos sobre occidente, series de la televisión surcoreana y demás información extraoficial en Corea del Norte. De hecho, las memorias USB de contrabando son muy populares en esta zona. Y, segundo, parece que Corea del Norte tenía pensado lanzar este antivirus al mercado internacional, o al menos una de las versiones del antivirus que incluye una interfaz en inglés.

La segunda cuestión es igual de lógica: ¿Dónde podría conseguir Corea del Norte un software antivirus por sí misma? Un producto tan sofisticado como este es muy complicado de crear desde cero, sobre todo con recursos limitados. Los expertos de Check Point se hicieron también esta pregunta y sacaron una conclusión muy interesante: la versión del 2013 del antivirus coreano (la que tenían a mano) utilizaba el motor de una famosa solución antivirus, Trend Micro, pero el de la versión del 2008.

Era evidente que los desarrolladores coreanos no querían que nadie interfiriera en el código del producto, por ello, muchos de sus componentes estaban protegidos con Themida, un programa wrapper diseñado para bloquear la ingeniería inversa. Aunque, aquellos que compusieron los componentes de SiliVaccine se negaron a utilizar gran parte del paquete de Themida, por lo que el equipo de Check Point pudo acceder al código del programa.

Aproximadamente un cuarto del código de SiliVaccine coincide con los elementos del código antivirus de Trend Micro, pero se modificaron ligeramente ciertas funciones. Antes esto, el equipo de investigación le planteó a Trend Micro la siguiente cuestión: ¿De dónde habría sacado Corea del Norte el código fuente de un producto antivirus fabricado en Japón? Trend Micro negó cualquier tipo de relación y comentó la posibilidad de que el país se hubiese hecho con este motor de forma ilegal. También mencionó que sus socios, que estaban vendiendo soluciones de protección online bajo marcas propias, podrían haber utilizado el motor. Esto podría explicar cómo el código fuente acabó en manos de los programadores norcoreanos.

Respuesta oficial de Trend Micro en respuesta al estudio que muestra las similitudes de ambos motores antivirus

Respuesta oficial de Trend Micro al estudio

Evidentemente, los norcoreanos intentaron ocultar que el motor de SiliVaccine estaba basado en el de Trend Micro, por lo que intentaron añadir complementos adicionales a este antivirus. De esta forma, a simple vista parecía que ambos antivirus utilizaban diferentes procesos para las firmas de virus: Trend Micro utiliza una única firma y SiliVaccine, 20. No obstante, cuando se enciende el motor, todos estos archivos se agrupan en uno. En cuanto a las firmas, se parecen sospechosamente a las utilizadas por Trend Micro. Por ejemplo, si Trend Micro utiliza una firma TROJ_STEAL-1 para cierto malware, SiliVaccine pondrá Trj.Steal.B. Cambian de mayúscula a minúscula, remplazan los guiones y guiones bajos por puntos y añaden otro par de cambios mínimos.

Durante la investigación del antivirus norcoreano, el equipo reportó muchos errores y curiosidades. Por ejemplo, el programa incluye un componente para, supuestamente, escanear un archivo en busca de virus; el usuario tiene que hacer clic en el botón derecho sobre él en el Explorador de archivos y seleccionar la opción apropiada del menú. Sí, la opción aparece, pero cuando haces clic no te lleva a ningún lado.

Otra curiosidad: el antivirus viene con un driver que recopila información sobre las conexiones red, pero no hace nada con ella. En teoría, otros archivos deberían poder acceder al driver, pero el resto de los archivos de SiliVaccine no lo utilizan nunca.

Para cifrar componentes se utilizó BopCrypt, una herramienta de empaquetado popular hace unos 15 años en la comunidad cibernética de habla rusa, y algunos de ellos parecían código basura. Parecía que la función principal de algunos de los archivos era perder el tiempo sin hacer nada. Además, los investigadores llegaron a la conclusión de que los autores de al menos algunos componentes del antivirus SiliVaccine habían intentado probar suerte con la ingeniería inversa, pero no consiguieron dar con el funcionamiento del código.

Tiene pinta de que a los desarrolladores del código no se les daba muy bien el trabajo en equipo. Por ejemplo, se supone que un archivo tiene que desencadenar una función de otro con un parámetro que esté establecido a cierto valor, mientras que, por otro lado, el segundo archivo está específicamente preparado para no reaccionar si aparece ese valor.

En resumen, el SiliVaccine norcoreano resultó ser una versión reformulada y defectuosa del antivirus Trend Micro.

¿Podría ser un malware?

Aquellos que conozcan la política externa de Internet de Corea del Norte puede que se pregunten: ¿Y si es un troyano? ¿Y si el motivo del producto es implantar malware o algo similar? Y Check Point también tiene una respuesta.

Al analizar esta cuestión, descubrieron algo muy interesante. En primer lugar, el antivirus SiliVaccine parece ser limpio, no encontraron contenido con malware. No obstante, los archivos EXE mencionan una firma que el motor ignora, por tanto, si un archivo escaneado está infectado con malware de esta firma, SiliVaccine simplemente lo ignorará.

SiliVaccine ignora los archivos malware con una firma específica

SiliVaccine ignora los archivos malware con una firma específica

Los investigadores sentían curiosidad por el malware, por lo que intentaron comparar esta firma de la base del virus de SiliVaccine con la correspondiente a la base de Trend Micro. Pero resultó ser una firma heurística, una para todos los archivos que demuestran un comportamiento específico, por lo que fueron incapaces de descubrir exactamente cuál era el archivo malware que debía ignorar el antivirus norcoreano según su programación. Al parecer, los desarrolladores de SiliVaccine habían cometido una errata en cierto momento y habían añadido a la lista blanca una firma no válida.

Aunque el instalador de SiliVaccine no era malicioso por sí mismo, el archivo que recibió el periodista de Bloomberg de, supuestamente, un ingeniero anónimo de Japón también contenía otro archivo. Su nombre daba a pensar que se trataba de un parche para SiliVaccine, pero sus metadatos mostraban que estaba relacionado con las actualizaciones automáticas de Microsoft.

El archivo que recibió el periodista de Bloomberg también contenía malware conectado a la APT DarkHotel

El archivo que recibió el periodista de Bloomberg también contenía malware conectado a la APT DarkHotel

Los investigadores de Check Point analizaron este archivo y descubrieron que se trataba de un malware llamado Jaku, descrito por primera vez por Forcepoint en el 2016. Según las aclaraciones de Forcepoint en este estudio, Jaku se utilizó contra personas vinculadas, de una forma u otra, a Corea del Norte y estaba conectado con DarkHotel, un grupo de habla coreana cuyas actividades se recogen en un estudio que publicamos en el 2014.

Martyn Williams, el periodista de Bloomberg que recibió el correo con SiliVaccine, escribe mucho sobre Corea del Norte, por lo que los investigadores dieron por hecho que se trataba de un ataque online dirigido contra él, ya que los líderes norcoreanos no valoraban mucho su trabajo. En cuanto a SiliVaccine, parece que se trata de un software antivirus real, seguramente muy utilizado en Corea del Norte, pues carecen de opciones mejores.