Los ciberdelincuentes desarrollan periódicamente algo nuevo. A veces se trata de una versión actualizada de un malware ya conocido., y a veces es algo nuevo y no obvio, como el malware Beep. De este modo, este malware tiene una característica distintiva: una nueva táctica para evadir la detección. Aunque el malware Beep todavía está en desarrollo, ya cuenta con una funcionalidad existente que evita ser analizada y detectada por el software de seguridad.
¿Qué tipo de malware es Beep??
No hace tanto tiempo, Investigadores de ciberseguridad de Minerva descubrió un malware muy interesante con un nombre igualmente interesante, «Bip». Beep Malware es un nuevo virus sigiloso con varias funciones diseñadas para robar información confidencial y crear una cadena de infecciones. Esto último implica descargar/instalar malware o componentes adicionales. Como consecuencia, puede infectar dispositivos con troyanos, Secuestro de datos, mineros de criptomonedas, u otro malware.
Se especula que Beep se entrega a través de un archivo adjunto de correo electrónico no deseado., Discordia, o URL de OneDrive. También se menciona que es un «malware como servicio» es decir,. Ofrece a otros delincuentes distribuir sus cargas dentro de la botnet infectada por Beep. . Consta de tres componentes: un gotero, un inyector, y una carga útil.
Cuentagotas
El dropper comienza a funcionar después de algunas comprobaciones anti-depuración y anti-VM. Luego crea una nueva sección de registro con el valor «AfroniaHaimavati» y un script de PowerShell codificado en base64. Luego agrega una tarea programada cada 13 minutos y ejecuta el script de PowerShell almacenado en el registro. Antes de correr, el script carga los datos y los almacena en un inyector llamado AphroniaHaimavati.dll.
Inyector
El inyector es un componente que utiliza varias técnicas de depuración y protección de máquinas virtuales. inyectar una carga útil en un proceso legítimo del sistema, por ejemplo, «WWAHost.exe». Esto se logra limpiando el proceso y se hace para evitar la detección por parte de herramientas antivirus..
Carga útil
La carga útil principal intenta recopilar los datos necesarios de la máquina comprometida.. Luego los cifra e intenta enviarlos a C2, que ha sido codificado. Aunque la dirección codificada de C2 se deshabilitó durante el análisis, el malware intentó conectarse incluso después 120 intentos fallidos.
A pesar de las limitaciones del análisis de malware, Los expertos aún pudieron detectar las siguientes funciones en la muestra., que son activados por comandos C2:
- dll (ejecuta un archivo dll)
- exe (ejecuta un archivo.exe)
- código shell (ejecuta más código shell)
- captura de pantalla (una tarea que parece recopilar la lista de procesos)
- adicional (recopila más datos)
- tiempo de espera (modifica «Mantener viva» intervalos para C&C)
Además, Tiene al menos cuatro funciones que no se utilizaron durante la prueba.: destruir, en eso, tarea, y equilibrador. Éste, sin embargo, no lo hace menos peligroso.
Evadir métodos de detección
Veamos qué destaca el malware Beep: las técnicas de evasión de detección que utiliza durante todo el proceso de ejecución. Una vez que los analistas profundizaron en esta muestra, notaron el uso de muchas técnicas de evasión. Esto dio la impresión de que los autores del malware Beep intentaban implementar tantos programas antidepuración como anti-VM (anti-caja de arena) técnicas como sea posible. Por ejemplo, Un método era retrasar la ejecución utilizando la API de pitido, de ahí el nombre del malware.
Funciones antianálisis en el malware Beep:
- Función API de pitido anti-sandbox. Es la misma función que da nombre al malware.. Una alternativa a la Función de API de suspensión, que genera un pitido en el altavoz de la PC, retrasar la ejecución de malware (advertencia espera) para evitar la detección de zona de pruebas.
- Desofuscación dinámica de cadenas. Este método significa que las cadenas de código se mantienen ofuscadas durante todo el tiempo., y la capa de confusión se elimina solo para aquellas cadenas que se van a utilizar en ese momento. La desofuscación se realiza mediante xor/sub/añadir/no funciones de montaje.
- Comprobación del idioma del sistema. Una verificación de ubicación de IP bastante típica que a menudo se encuentra en el malware desarrollado en países de la ex URSS, particularmente Rusia y Ucrania. Se realiza para evitar infectar máquinas desde estos lugares: una ética tan distorsionada. Si es ruso, ucranio, bielorruso, tayiko, esloveno, georgiano, kazajo, o uzbeko (Alfabeto cirílico) son detectados en el sistema, Beep detendrá cualquier ejecución posterior..
- Comprobación del campo NtGlobalFlag para antidepuración. En este caso, el malware busca la compensación de NtGlobalFlag. Si coincide con el típico del sistema con el depurador habilitado, el pitido cesa la ejecución..
- Implementación propia de la función API IsDebuggerPresent. Los desarrolladores de malware Beep implementaron el Variante ASM de la llamada C++, que comprueba si el proceso que llama a esta función es depurado por un depurador en modo de usuario.
- Comprobación del registro de segmentos de pila. El hecho de que el Beep esté escrito en ensamblador le permite comunicarse directamente con el procesador.. Utiliza información del registro del segmento de pila de la CPU para ver si hay alguna llamada que normalmente se usa con fines de depuración..
- Leer contador de marca de tiempo (RDTSC) verificación de instrucciones. malware comprueba el número de ticks de la CPU desde el último reinicio para determinar si se ejecuta en una máquina virtual. Sin embargo, las máquinas con sistema operativo recién instalado pueden ser la fuente de falsos positivos..
- CPUID anti-máquina virtual. Usando la función CPUID, el malware A obtiene la cadena de marca del hipervisor, que contiene información sobre proveedores de software de virtualización. Nombres como VMWare, Oráculo, Paralelas, Citrix u otros activarán procedimientos de autodestrucción.
- Clave de registro VBOX anti-vm. Es una de las comprobaciones menos complicadas que tiene como objetivo mostrar si hay claves de registro específicas de VM presentes en el sistema.. Detectar cuál hace que el malware se autodestruya.
El componente del inyector implementa los siguientes métodos de evasión.:
- EN T 3 y anti-depuración INT 2D. Genera una excepción que hará que los depuradores dejen de funcionar. El primero literalmente establece un punto de interrupción en la ejecución del depurador.; La instrucción INT 2D permite que el malware cambie el flujo de ejecución cuando detecta la presencia de un depurador.
- CheckRemoteDebuggerPresente() API antidepuración. Es un función kernel32.dll que establece (-1)0xffffffffff en el parámetro DebuggerPresent si hay un depurador presente. Internamente también utiliza NtQueryInformationProcess con ProcessDebugPort como parámetro ProcessInformationClass.
- IsDebuggerPresente() API antidepuración. El método más sencillo para protegerse contra la depuración es determinar si los depuradores de modos personalizados, como OllyDbg o x64dbg, depurar el proceso actual. Típicamente, la función sólo comprueba el “siendo depurado” bandera del Bloque de Entorno de Proceso (PEB).
- Antidepuración de ProcessDebugPort. Permite que el malware recupere el número de puerto del depurador para un proceso usando ntdll!NtQueryInformaciónProceso(). Hay una clase ProcessDebugPort documentada que recupera un Valor DWORD de 0xFFFFFFFFFF (número decimal -1 ) si el proceso está depurando.
- Asignación virtual()/ObtenerEscribirVer() anti-depuración. Es una API de Windows de bajo nivel que ofrece muchas opciones.. Por ejemplo, GetWriteWatch le permite obtener las direcciones de las páginas en las que se han escrito desde que se asignó la región o se restableció el estado de seguimiento de escritura.. Además, esta función puede rastrear depuradores que pueden modificar páginas de memoria fuera del patrón esperado.
- Cadena de depuración de salida() anti-depuración. Método de detección del depurador basado en el resultado de una devolución de llamada. Un método obsoleto porque sólo funciona para versiones de Windows anteriores a Vista. Si no hay ningún depurador presente y kernel32!Cadena de depuración de salida se llama, y ocurre un error.
- Contador de rendimiento de consultas() y GetTickCount64() anti-depuración. Este método recupera el valor actual del contador de rendimiento., que es una marca de tiempo de alta resolución (<1µs) that can be used to measure time intervals. Thus measures the delay between instructions and execution to determine if the system is running a debugger.
¿Qué tan peligroso es el malware Beep??
Los autores del malware Beep se centran principalmente en evadir la detección., lo que dificulta que el software de seguridad y los investigadores detecten y analicen. Por otro lado, ha mostrado una funcionalidad mínima e incompleta para su propósito directo, es decir., robar datos y ejecutar comandos. Aún, nada impide que los piratas informáticos amplíen la funcionalidad maliciosa. E incluso si este malware en particular tiene más que ver con ser una muestra de demostración de tecnología, Se espera ver estas técnicas de evasión en otros, muestras de malware más comunes.