Firma de código: cómo el malware obtiene un pase gratuito

En un mundo ideal, algo que está firmado no se puede alterar. Una firma implica que el artículo firmado es confiable y está inalterado. Cuando se trata de archivos firmados, las cosas se ven un poco diferentes: una firma no siempre significa que todo está en orden.

Conceptos básicos de firma de código

La firma digital de un software, también conocida como «firma de código», tiene como objetivo certificar la autenticidad de un software. Es un método que proporciona a los usuarios una sensación de seguridad de que el software que están utilizando no está alterado y es fiel a su diseño original. Cada firma digital está avalada por una entidad denominada «firmantes». Al igual que nuestra firma personal manuscrita, cada firma digital es única para cada firmante. También es deber del firmante mantener la firma segura para que nadie más pueda usarla sin su consentimiento.

Un ejemplo de visualización de una firma digital a través de la propiedad de Windows

Además de las aplicaciones de software, la firma digital también se aplica a varios tipos de archivos, como documentos de MS Office (.doc / x, .ppt / x, .xls / x), imágenes (.bmp, .gif, .jpg, .png) y otros documentos digitales como PDF y correos electrónicos.

Por diseño, modificar un archivo firmado digitalmente hará que la firma deje de ser válida. Incluso el más mínimo cambio debería invalidar su firma digital. Windows también ha colocado características como Microsoft Defender SmartScreen y User Access Control (UAC) para advertir a los usuarios cuando ejecutan una aplicación de un editor desconocido.

Un ejemplo de una firma digital no válida en una aplicación
Un ejemplo de Windows que publica una advertencia al ejecutar una aplicación con un editor desconocido

Manipulado, pero no roto

En enero de 2019, Virustotal [1], junto con Microsoft, reveló una vulnerabilidad que involucraba archivos Microsoft Installer firmados digitalmente (.MSI). Los investigadores habían descubierto que la validez de un archivo MSI firmado digitalmente permanecerá intacta incluso después de agregar contenido adicional al final del archivo. Esto representa un riesgo porque frustra el propósito de firmar aplicaciones digitalmente. Dado que su firma sigue siendo válida incluso después de la manipulación, los agentes de amenazas pueden aprovecharla. Al utilizar un archivo MSI firmado como vector, se puede plantar código malicioso en un sistema con poco esfuerzo.

Con «.msi» como extensión, el archivo MSI parcheado seguirá funcionando como se esperaba, ignorando el código adjunto. Pero puede suceder un caso de uso peligroso apropiado si se agrega un archivo Java Archive (JAR) al archivo MSI firmado digitalmente y se le cambia el nombre como «.jar». De forma predeterminada, los archivos con la extensión «.jar» serán ejecutados directamente por Java, lo que permitirá que se ejecute el código adjunto a pesar de que sea un archivo MSI de forma nativa. Esto se debe a que Java está diseñado para ejecutarse de «abajo hacia arriba», lo que permite que se ejecute el código basado en Java adjunto al final del archivo MSI.

Aprovechando que el instalador de Microsoft Silverlight es un archivo MSI

Este ha sido el caso de varios instaladores de Silverlight modificados que hemos visto en la naturaleza. Alojado en varios sitios web comprometidos, hemos visto archivos MSI parcheados que se distribuyen con «.jar» como extensión. Estos instaladores parcheados no se distribuyeron ni etiquetaron como un instalador de Silverlight real, sino como un componente de phishing.

Icono asociado con la extensión JAR.Un correo electrónico con un archivo MSI firmado con adjunto de malware de Java

Cada uno lleva una variante de malware basado en JAVA que en su mayoría están encriptados con ofuscadores JAVA como Allatori [2]. Según nuestra telemetría, la mayoría de las amenazas que utilizan este exploit son los RAT (troyanos de acceso remoto). Los RAT son programas maliciosos notorios que pueden otorgar a los actores de amenazas acceso a la computadora de la víctima, lo que puede resultar en el robo de datos y una puerta de entrada para que otras amenazas ingresen a un sistema infectado.

Distribución del archivo MSI firmado con Java malicioso visto en el primer trimestre de 2020

RATs en todas partes

Ratty , que cubre el 40% del MSI manipulado con Java malicioso que hemos encontrado, es un RAT de código abierto basado en Java que estaba ampliamente disponible a través de GitHub antes de que el autor lo eliminara en 2016.

jRAT también se subió al carro, utilizando esta técnica como vehículo para su campaña. También conocido como Jacksbot, jRAT es un conocido RAT basado en Java que se puede portar para ejecutarse en múltiples plataformas como Windows, Mac y Linux. Puede aumentar sus probabilidades de una evasión exitosa a través del cifrado y es capaz de vigilar mediante el monitoreo de cámaras web y el registro de teclas.

Un malware adherido a un archivo MSI

Estas campañas de malware no son nuevas, algunas existen desde 2013. Y la adición de este exploit podría aumentar sus posibilidades de evasión. También hemos observado que existe coherencia en el lenguaje utilizado para el nombre de archivo de la muestra maliciosa con el TLD (dominio de nivel superior) del sitio comprometido. Como ejemplo, se utilizó un nombre de archivo francés “ Portail e-Impots FACTURE.zip” (Invoice e-Tax Portal.zip) en el sitio web francés comprometido ( “.fr” ). Una gran atención a estos detalles hace que el componente de ingeniería social de esta campaña maliciosa sea más eficaz.

Muestras de archivo MSI firmado con Java malicioso visto en el primer trimestre de 2020

Conclusión

La vulnerabilidad aún no está actualizada, lo que representa un riesgo para todos nosotros. Dado que el malware basado en Java actualmente explota esta falla, es solo cuestión de tiempo antes de que otra campaña intente capitalizar esta técnica utilizando un archivo MSI legítimamente firmado como su «pase libre» para ingresar a nuestros sistemas.

Esto nos muestra que no podemos confiar plenamente en una única técnica de prevención y esperar que sea un sistema infalible para prevenir infecciones. Debemos tener mucho cuidado al abrir correo electrónico de remitentes desconocidos o que no son de confianza, especialmente cuando nos pide que abramos un archivo adjunto, hagamos clic en un enlace o divulguemos información personal. Además, siempre elija la fuente de sus necesidades de software y aplicaciones directamente de canales legítimos y oficiales.

Los actores de amenazas intentarán cualquier medio posible para infiltrarse en nuestro sistema y extraer información valiosa de nuestras organizaciones. Por eso es fundamental contar con una solución de seguridad que proteja desde diferentes miradores. Protección contra correo electrónico, archivos descargados e incluso software en ejecución a través del monitoreo y detección del comportamiento.

Detecciones de G DATA

Referencias:

1.- https://blog.virustotal.com/2019/01/distribution-of-malicious-jar-appended.html2.-http://www.allatori.com/3.-https://www.gdatasoftware.com/blog/how-malware-gets-a-free-passBlog G DATA