Introducción a Antivirus
Última actualización
Última actualización
El software antivirus ( AV ) es una capa adicional de seguridad que tiene como objetivo detectar y prevenir la ejecución y propagación de archivos maliciosos en un sistema operativo de destino.
Es una aplicación basada en host que se ejecuta en tiempo real (en segundo plano) para monitorear y verificar los archivos actuales y recién descargados. El software antivirus inspecciona y decide si los archivos son maliciosos utilizando diferentes técnicas, que se tratarán más adelante en esta sala
Curiosamente, el primer software antivirus fue diseñado únicamente para detectar y eliminar . Hoy en día eso ha cambiado; Las aplicaciones antivirus modernas pueden detectar y eliminar virus informáticos, así como otros archivos y amenazas dañinos.
El software antivirus tradicional busca malware con patrones o firmas maliciosos predefinidos. El malware es software dañino cuyo objetivo principal es causar daños a una máquina de destino, que incluye, entre otros:
Obtenga acceso completo a una máquina de destino.
Robar información confidencial como contraseñas.
Cifre archivos y cause daños a los archivos.
Inyecte otro software malicioso o anuncios no deseados.
Usó la máquina comprometida para realizar más ataques, como ataques de botnet.
Además del software AV , otras soluciones de seguridad basadas en host brindan protección en tiempo real a los dispositivos terminales. EndpointDetection and Response (EDR) es una solución de seguridad que brinda protección en tiempo real basada en análisis de comportamiento. Una aplicación antivirus realiza escaneo, detección y eliminación de archivos maliciosos. Por otro lado, EDR monitorea varios controles de seguridad en la máquina de destino, incluidas actividades de archivos, memoria, conexiones de red, registro de Windows, procesos, etc.
McAfee Associates, Inc. inició la primera implementación de software antivirus en 1987. Se llamó "VirusScan" y su objetivo principal en ese momento era eliminar un virus llamado "Brain" que infectaba la computadora de John McAfee. Posteriormente, otras empresas se sumaron a la batalla contra los virus. El software antivirus se llamaba escáneres y era un software de línea de comandos que buscaba patrones maliciosos en los archivos.
Desde entonces, las cosas han cambiado. Hoy en día, el software antivirus utiliza una interfaz gráfica de usuario (GUI) para realizar análisis en busca de archivos maliciosos y otras tareas. Los programas maliciosos también han ampliado su alcance y ahora apuntan a víctimas en Windows y otros sistemas operativos. El software AV moderno es compatible con la mayoría de los dispositivos y plataformas, incluidos Windows, Linux, macOS, Android e iOS. El software AV moderno ha mejorado y se ha vuelto más inteligente y sofisticado, ya que incluye un conjunto de funciones versátiles , que incluyen antivirus, antiexploits, firewall , herramienta de cifrado, etc.
Un motor antivirus es responsable de buscar y eliminar códigos y archivos maliciosos. Un buen software AV implementa un núcleo AV eficaz y sólido que analiza con precisión y rapidez archivos maliciosos . Además, debe manejar y admitir varios tipos de archivos, incluidos archivos de almacenamiento, donde puede autoextraerse e inspeccionar todos los archivos comprimidos.
La mayoría de los productos AV comparten las mismas características comunes pero se implementan de manera diferente, que incluyen, entre otras:
Escáner
Técnicas de detección
Compresores y Archivos
Desempaquetadores
Emuladores
La función de escáner está incluida en la mayoría de los productos AV : el software AV se ejecuta y escanea en tiempo real o bajo demanda. Esta función está disponible en la GUI o mediante el símbolo del sistema. El usuario puede utilizarlo siempre que sea necesario para comprobar archivos o directorios. La función de escaneo debe admitir los tipos de archivos maliciosos más conocidos para detectar y eliminar la amenaza. Además, también puede admitir otros tipos de escaneo según el software antivirus, incluidas vulnerabilidades, correos electrónicos, memoria de Windows y Registro de Windows.
Una técnica de detección AV busca y detecta archivos maliciosos; Se pueden utilizar diferentes técnicas de detección dentro del motor AV, que incluyen:
La detección basada en firmas es la técnica antivirus tradicional que busca firmas y patrones maliciosos predefinidos dentro de los archivos.
La detección heurística es una técnica más avanzada que incluye varios métodos de comportamiento para analizar archivos sospechosos.
La detección dinámica es una técnica que incluye monitorear las llamadas del sistema y las API y probar y analizar en un entorno aislado.
Cubriremos estas técnicas en la siguiente tarea. Un buen motor antivirus es preciso y detecta rápidamente archivos maliciosos con menos resultados falsos positivos. Mostraremos varios productos AV que proporcionan resultados inexactos y clasifican erróneamente un archivo.
La función "Compresores y archivos" debe incluirse en cualquier software AV . Debe admitir y ser capaz de manejar varios tipos de archivos del sistema, incluidos archivos comprimidos o archivados: ZIP, TGZ, 7z, XAR, RAR, etc. El código malicioso a menudo intenta evadir las soluciones de seguridad basadas en host ocultándose en archivos comprimidos. Por este motivo, el software antivirus debe descomprimir y escanear todos los archivos antes de que un usuario abra un archivo dentro del archivo .
El malware oculta y empaqueta su código malicioso comprimiéndolo y cifrándolo dentro de una carga útil. Se descomprime y descifra a sí mismo durante el tiempo de ejecución para dificultar la realización de análisis estáticos. Por lo tanto, el software AV debe poder detectar y descomprimir la mayoría de los empaquetadores conocidos (UPX, Armadillo, ASPack, etc.) antes del tiempo de ejecución para el análisis estático.
Los desarrolladores de malware utilizan varias técnicas, como el empaquetado, para reducir el tamaño y cambiar la estructura del archivo malicioso. Packing comprime el archivo ejecutable original para que sea más difícil de analizar. Por lo tanto, el software AV debe tener una función de descompresión para descomprimir archivos ejecutables protegidos o comprimidos en el código original.
Otra característica que debe tener el software AV es el analizador de encabezados ejecutable portátil (PE) de Windows. El análisis del PE de archivos ejecutables ayuda a distinguir software malicioso y legítimo (archivos .exe). El formato de archivo PE en Windows (32 y 64 bits) contiene información y recursos diversos, como código objeto, archivos DLL, archivos de iconos, archivos de fuentes y volcados de núcleo.
Un emulador es una función antivirus que realiza análisis adicionales de archivos sospechosos. Una vez que un emulador recibe una solicitud, ejecuta los archivos sospechosos (exe, DLL , PDF, etc.) en un entorno virtualizado y controlado. Supervisa el comportamiento de los archivos ejecutables durante la ejecución, incluidas las llamadas a las API de Windows, el Registro y otros archivos de Windows. Los siguientes son ejemplos de los artefactos que puede recopilar el emulador:
llamadas API
Volcados de memoria
Modificaciones del sistema de archivos
Registrar eventos
Procesos corriendo
Solicitudes web
Un emulador detiene la ejecución de un archivo cuando se recopilan suficientes artefactos para detectar malware.
Las siguientes son algunas características comunes que se encuentran en los productos AV :
Un controlador de autoprotección para protegerse contra el malware que ataca el AV real .
Funcionalidad de inspección de red y firewall .
Herramientas de línea de comandos e interfaz gráfica.
Un demonio o servicio.
Una consola de gestión.
En términos generales, la detección AV se puede clasificar en tres enfoques principales:
Detección estática
Detección dinámica
Detección heurística y conductual
Una técnica de detección estática es el tipo más simple de detección de antivirus, que se basa en firmas predefinidas de archivos maliciosos. Simplemente, utiliza técnicas de coincidencia de patrones en la detección, como encontrar una cadena única, CRC (sumas de verificación), secuencia de códigos de bytes/valores hexadecimales y hashes criptográficos ( MD5 , SHA1, etc.).
Luego realiza una serie de comparaciones entre archivos existentes dentro del sistema operativo y una base de datos de firmas. Si la firma existe en la base de datos, se considera maliciosa. Este método es eficaz contra el malware estático.
En esta tarea, utilizaremos un método de detección basado en firmas para ver cómo los productos antivirus detectan archivos maliciosos. Es importante señalar que esta técnica funciona contra archivos maliciosos conocidos sólo con firmas generadas previamente en una base de datos. Por tanto, la base de datos debe actualizarse periódicamente.
Usaremos el software antivirus ClamAV para demostrar cómo la detección basada en firmas identifica archivos maliciosos . El software ClamAV está preinstalado en la máquina virtual proporcionada y podemos acceder a él en la siguiente ruta: c:\Program Files\ClamAV\clamscan.exe . También escanearemos un par de muestras de malware, que se pueden encontrar en el escritorio. La carpeta de muestras de malware contiene los siguientes archivos:
Backdoor 1 es un programa C# que utiliza una técnica bien conocida para establecer una conexión inversa, incluida la creación de un proceso y la ejecución de un código shell de Metasploit Framework.
Backdoor 2 es un programa C# que utiliza inyección de procesos y cifrado para establecer una conexión inversa, incluida la inyección de un código shell Metasploit en un proceso existente y en ejecución.
AV-Check es un programa C# que enumera el software AV en una máquina de destino. Tenga en cuenta que este archivo no es malicioso. Analizaremos esta herramienta con más detalle en la tarea 6.
notes.txt es un archivo de texto que contiene una línea de comando. Tenga en cuenta que este archivo no es malicioso.
ClamAV viene con su base de datos y durante la instalación necesitamos descargar la versión recientemente actualizada. Intentemos escanear la carpeta de muestra de Malware usando el binario clamscan.exe y verifiquemos cómo funciona ClamAV con estas muestras.
El resultado anterior muestra que el software ClamAV analizó y marcó correctamente dos de nuestros archivos probados (EICAR, backdoor1, AV-Check y notes.txt) como maliciosos. Sin embargo, identificó incorrectamente la puerta trasera2 como no maliciosa mientras lo hace.
Puede ejecutar clamscan.exe --debug <file_to_scan> y verá todos los módulos cargados y utilizados durante el escaneo. Por ejemplo, utiliza el método de desempaquetado para dividir los archivos y buscar una secuencia maliciosa predefinida de valores de código de bytes, y así es como pudo detectar la puerta trasera 1 de C#. El valor de código de bytes del shellcode de Metasploit usado en la puerta trasera 1 era previamente identificados y añadidos a la base de datos de ClamAV.
Sin embargo, la puerta trasera 2 utiliza una técnica de cifrado ( XOR ) para el código shell de Metasploit, lo que da como resultado diferentes secuencias de valores de código de bytes que no encuentra en la base de datos de ClamAV.
Mientras que ClamAV pudo detectar el archivo de prueba EICAR.COM como malicioso utilizando la técnica basada en firmas md5. Para confirmar esto, podemos volver a escanear el archivo de prueba EICAR.COM nuevamente en modo de depuración (--debug). En algún momento del resultado, verá el siguiente mensaje:
Ahora generemos el valor md5 de EICAR.COM si coincide con lo que vemos en el mensaje anterior de la salida. Usaremos el sigtool para eso:
Si verifica de cerca el valor MD5 generado , 44d88612fea8a8f36de82e1278abb02f
, coincide.
Una de las características de ClamAV es la creación de su propia base de datos, lo que le permite incluir elementos que no se encuentran en la base de datos oficial de ClamAV. Intentemos crear una firma para Backdoor 2, que ClamAV ya pasó por alto, y agregarla a una base de datos. Los siguientes son los pasos requeridos:
Genere una firma MD5 para el archivo.
Agregue la firma generada a una base de datos con la extensión ".hdb".
Vuelva a escanear el ClamAV con el archivo utilizando nuestra nueva base de datos.
Primero, usaremos la herramienta sigtool , que se incluye en la suite ClamAV, para generar un hash MD5 de backdoor2.exe usando el argumento --md5 .
Generar un hash MD5
Como se muestra en el resultado, la cadena hash generada contiene la siguiente estructura: Hash:Size-in-byte:FileName . Tenga en cuenta que ClamAV utiliza el valor generado en la comparación durante el escaneo.
Ahora que tenemos el hash MD5 , creemos nuestra propia base de datos. Usaremos la herramienta sigtool y guardaremos el resultado en un archivo usando > thm.hdb de la siguiente manera:
Genera nuestra nueva base de datos
Como resultado, se creará un archivo thm.hdb en el directorio actual que ejecuta el comando.
¡Ya sabemos que ClamAV no detectó el backdoor2.exe usando la base de datos oficial! Ahora, volvamos a escanearlo usando la base de datos que creamos, thm.hdb , ¡y veamos el resultado!
¡Volviendo a escanear backdoor2.exe usando la nueva base de datos!
Como esperábamos, la herramienta ClamAV marcó el binario backdoor2.exe como malicioso según la base de datos que proporcionamos. Como práctica, agregue la firma MD5 de AV-Check.exe a la misma base de datos que ya creamos, luego verifique si ClamAV puede marcar AV-Check.exe como malicioso.
Para crear una regla, necesitamos examinar y analizar el malware; Con base en los hallazgos, escribimos una regla. Tomemos AV-Check.exe como ejemplo y escribamos una regla para él.
Primero, analicemos el archivo y enumeremos todas las cadenas legibles por humanos en el binario usando la herramienta de cadenas. Como resultado, veremos todas las funciones, variables y cadenas sin sentido. Pero, si miras de cerca, podemos usar algunas de las cadenas únicas en nuestras reglas para detectar este archivo en el futuro. AV-Check utiliza una base de datos del programa (.pdb), que contiene un tipo e información simbólica de depuración del programa durante la compilación.
Expliquemos un poco más esta regla de Yara.
La regla comienza con la regla thm_demo_rule , que es el nombre de nuestra regla. ClamAV utiliza este nombre si una regla coincide.
La sección de metadatos, que es información general, contiene el autor y la descripción, que el usuario puede completar.
La sección de cadenas contiene las cadenas o código de bytes que estamos buscando. En este caso, estamos utilizando la ruta de la base de datos del programa C#. Observe que agregamos un \ adicional en esa ruta para escapar del carácter especial, de modo que no infrinja la regla.
En la sección de condición, especificamos si la cadena definida se encuentra en la sección de cadena y luego marcamos el archivo.
Tenga en cuenta que las reglas de Yara deben almacenarse en un archivo de extensión .yara para que ClamAV las maneje. Volvamos a escanear la carpeta c:\Users\thm\Desktop\Samples usando la regla Yara que creamos. Puede encontrar una copia de la regla Yara en el escritorio en c:\Users\thm\Desktop\Files\thm-demo-1.yara .
Escaneo usando la regla de Yara
Como resultado, ClamAV puede detectar el binario AV-Check.exe como malicioso según la regla de Yara que proporcionamos. Sin embargo, ClamAV dio un resultado falso positivo al marcar el archivo notes.txt como malicioso. Si abrimos el archivo notes.txt , podemos ver que el texto contiene la misma ruta que especificamos en la regla.
Sabiendo que esto ayudará a mejorar la detección, incluyamos esto en nuestra regla de Yara para marcar solo los archivos .exe que contienen nuestra cadena de firma como maliciosos. La siguiente es la regla Yara mejorada:
En la nueva regla de Yara, definimos una cadena única ($b) igual a MZ como identificador para el tipo de archivo .exe. También actualizamos la sección de condiciones, que ahora incluye las siguientes condiciones:
Si la cadena "MZ" se encuentra en la ubicación 0, el comienzo del archivo.
Si la cadena única (la ruta) aparece dentro del binario.
En la sección de condiciones, utilizamos el operador AND para encontrar ambas definiciones en 1 y 2, entonces tenemos una coincidencia.
Puede encontrar la regla actualizada en Desktop\Files\thm-demo-2.yara
. Ahora que tenemos nuestra regla Yara actualizada, intentémosla nuevamente.
Escaneo usando la regla de Yara
El resultado muestra que mejoramos nuestra regla de Yara para reducir los resultados falsos positivos. Ese fue un ejemplo simple de cómo funciona el software AV . Por lo tanto, los proveedores de software antivirus trabajan arduamente para luchar contra el malware y mejorar sus productos y bases de datos para mejorar el rendimiento y la precisión de los resultados.
El inconveniente de la detección basada en firmas es que los archivos tendrán un valor hash diferente si se modifica el binario. Por lo tanto, es fácil para alguien eludir las técnicas de detección basadas en firmas si sabe qué busca el software AV y cómo analizar archivos binarios, como se muestra en salas posteriores.
El enfoque de detección dinámica es avanzado y más complicado que la detección estática. La detección dinámica se centra más en comprobar archivos en tiempo de ejecución utilizando diferentes métodos. El siguiente diagrama muestra el flujo de escaneo de detección dinámica:
Otro método de detección dinámica es Sandboxing. Un sandbox es un entorno virtualizado que se utiliza para ejecutar archivos maliciosos separados de la computadora host. Esto suele realizarse en un entorno aislado y el objetivo principal es analizar cómo actúa el software malicioso en el sistema. Una vez que se confirma el software malicioso, se creará una firma y una regla únicas basadas en las características del binario. Finalmente, se enviará una nueva actualización a la base de datos de la nube para uso futuro.
Este tipo de detección también tiene inconvenientes porque requiere ejecutar el software malicioso durante un tiempo limitado en el entorno virtual para proteger los recursos del sistema. Al igual que con otras técnicas de detección, se puede omitir la detección dinámica. Los desarrolladores de malware implementan su software para que no funcione dentro del entorno virtual o simulado para evitar el análisis dinámico. Por ejemplo, verifican si el sistema genera un proceso real de ejecución del software antes de ejecutar actividades maliciosas o dejan que el software espere un tiempo antes de ejecutarse.
La detección heurística y conductual se ha vuelto esencial en los productos AV modernos de hoy . El software antivirus moderno se basa en este tipo de detección para detectar software malicioso. El análisis heurístico utiliza diversas técnicas, incluidos métodos heurísticos estáticos y dinámicos:
El análisis heurístico estático es un proceso de descompilación (si es posible) y extracción del código fuente del software malicioso. Luego, el código fuente extraído se compara con otros códigos fuente de virus conocidos. Estos códigos fuente son previamente conocidos y predefinidos en una base de datos heurística. Si una coincidencia alcanza o supera un porcentaje umbral, el código se marca como malicioso.
El análisis heurístico dinámico se basa en reglas de comportamiento predefinidas. Los investigadores de seguridad analizaron software sospechoso en entornos aislados y seguros. Según sus hallazgos, marcaron el software como malicioso. Luego, se crean reglas de comportamiento para que coincidan con las actividades maliciosas del software dentro de una máquina de destino.
Los siguientes son ejemplos de reglas de comportamiento:
Si un proceso intenta interactuar con el proceso LSASS.exe que contiene hashes NTLM, tickets Kerberos y más de los usuarios
Si un proceso abre un puerto de escucha y espera recibir comandos de un servidor de comando y control (C2)
El siguiente diagrama muestra el flujo de escaneo de detección heurística y de comportamiento:
Resumamos cómo el software AV moderno funciona como una sola unidad, incluidos todos los componentes, y combina varias características y técnicas de detección para implementar su motor AV. El siguiente es un ejemplo de los componentes de un motor antivirus:
En el diagrama, puede ver que un archivo Foobar.zip sospechoso se pasa al software AV para escanearlo. El software AV reconoce que es un archivo comprimido (.zip). Dado que el software admite archivos .zip, aplica una función de desarchivador para extraer los archivos ( Foobar.exe ). A continuación, identifica el tipo de archivo para saber con qué módulo trabajar y luego realiza una operación de análisis PE para extraer la información del binario y otras características. A continuación, comprueba si el archivo está empaquetado; si es así, descomprime el código. Finalmente, pasa la información recopilada y el binario al motor AV , donde intenta detectar si es malicioso y nos da el resultado.
Muchos proveedores de AV en el mercado se centran principalmente en implementar un producto de seguridad para usuarios domésticos o empresariales. El software antivirus moderno ha mejorado y ahora combina capacidades antivirus con otras funciones de seguridad como firewall, cifrado, antispam, EDR, escaneo de vulnerabilidades, VPN, etc.
Los entornos de prueba antivirus son un excelente lugar para comprobar archivos sospechosos o maliciosos. Puede cargar archivos para escanearlos con varios proveedores de software AV. Además, plataformas como VirusTotal utilizan diversas técnicas y proporcionan resultados en segundos. Como red teamer o pentester, debemos probar una carga útil con las aplicaciones AV más conocidas para comprobar la eficacia de la técnica de derivación.
Nota importante: VirusTotal es una práctica plataforma de escaneo con excelentes funciones, pero tiene una política de uso compartido. Todos los resultados escaneados se transmitirán y compartirán con proveedores de antivirus para mejorar sus productos y actualizar sus bases de datos en busca de malware conocido. Como miembro del equipo rojo, esto quemará un cuentagotas o una carga útil que utilices en los enfrentamientos. Por lo tanto, hay soluciones alternativas disponibles para probar con varios proveedores de productos de seguridad y la ventaja más importante es que no tienen una política de uso compartido. Sin embargo, existen otras limitaciones. Tendrá una cantidad limitada de archivos para escanear por día; de lo contrario, se necesita una suscripción para realizar pruebas ilimitadas. Por esos motivos, le recomendamos que solo pruebe su malware en sitios que no comparten información, como por ejemplo:
Como miembro del equipo rojo, no sabemos qué software AV está implementado una vez que obtenemos acceso inicial a una máquina de destino. Por lo tanto, es importante encontrar e identificar qué productos de seguridad basados en host están instalados, incluido el software antivirus. La toma de huellas digitales AV es un proceso esencial para determinar qué proveedor de AV está presente. Saber qué software AV está instalado también es muy útil para crear el mismo entorno para probar técnicas de derivación.
Esta sección presenta diferentes formas de ver e identificar software antivirus en función de artefactos estáticos, incluidos nombres de servicios, nombres de procesos, nombres de dominio, claves de registro y sistemas de archivos.
La siguiente tabla contiene software AV conocido y comúnmente utilizado .
Nombre del antivirus
Nombre del Servicio
Nombre del proceso
Microsoft defensor
ganar defensa
MSMPEng.exe
Tendencia Micro
TMBMSRV
TMBMSRV.exe
Avira
AntivirService, Avira.ServiceHost
avguard.exe, Avira.ServiceHost.exe
Bitdefender
VSSERV
bdagent.exe, vsserv.exe
Kaspersky
AVP<Versión #>
avp.exe, ksde.exe
AVG
Antivirus AVG
AVGSvc.exe
norton
Seguridad Norton
NortonSecurity.exe
McAfee
McAPExe, Mfemms
MCAPExe.exe, mfemms.exe
Panda
PavPrSvr
PavPrSvr.exe
avast
Antivirus Avast
afwServ.exe, AvastSvc.exe
SharpEDRChecker
Una vez compilado, podemos encontrar la ruta de la versión compilada en la sección de salida, como se resalta en el paso 3. También agregamos una copia de la versión compilada en el directorio C:\Users\thm\Desktop\Files . Ahora intentemos ejecutarlo y veamos el resultado de la siguiente manera:
Símbolo del sistema!
c<br>C:\> SharpEDRChecker.exe<br><br><br><br><br><br><br><br><br><br><br>
➜
Resumen de SharpEDRChecker
c<br>[!] Directory Summary:<br> [-] C:\Program Files\Windows Defender : defender<br> [-] C:\Program Files\Windows Defender Advanced Threat Protection : defender, threat<br> [-] C:\Program Files (x86)\Windows Defender : defender<br><br>[!] Service Summary:<br> [-] PsShutdownSvc : sysinternal<br> [-] Sense : defender, threat<br> [-] WdNisSvc : defender, nissrv<br> [-] WinDefend : antimalware, defender, malware, msmpeng<br> [-] wscsvc : antivirus<br>
Como resultado, Windows Defender se encuentra en función de carpetas y servicios. Tenga en cuenta que el software antivirus puede marcar este programa como malicioso, ya que realiza varias comprobaciones y llamadas a API.
C# comprobaciones de huellas dactilares
Otra forma de enumerar el software AV es codificando nuestro propio programa. Hemos preparado un programa C# en la máquina virtual Windows 10 Pro proporcionada , para que podamos realizar algunos experimentos prácticos. Puede encontrar el ícono del proyecto en el escritorio (AV-Check) y hacer doble clic en él para abrirlo usando Microsoft Visual Studio 2022.
El siguiente código C# es sencillo y su objetivo principal es determinar si el software AV está instalado en función de una lista predefinida de aplicaciones AV conocidas.
Expliquemos el código un poco más. Hemos predefinido una lista de aplicaciones AV conocidas en la matriz AV_Check dentro de nuestro código, que se tomó de la sección anterior, donde analizamos el software AV de toma de huellas digitales (tabla anterior). Luego, utilizamos la consulta de línea de comandos del Instrumental de administración de Windows (WMIC) ( seleccione * de win32_process ) para enumerar todos los procesos actualmente en ejecución en la máquina de destino y almacenarlos en la variable ProcessList . A continuación, revisamos los procesos actualmente en ejecución y comparamos si existen en la matriz predefinida . Si se encuentra una coincidencia, entonces tenemos instalado el software AV .
El programa C# utiliza un objeto WMIC para enumerar los procesos en ejecución actuales, que pueden ser monitoreados por software AV . Si el software AV está mal implementado para monitorear las consultas WMIC o las API de Windows, puede causar resultados falsos positivos al escanear nuestro programa C#.
Compilemos una versión x86 del programa C#, subámosla al sitio web de VirusTotal y verifiquemos los resultados. Para compilar el programa C# en Microsoft Visual Studio 2022, seleccione Construir en el menú de la barra y elija la opción Construir solución . Luego, si cumplió correctamente, puede encontrar la ruta de la versión compilada en la sección de salida, como se resalta en el paso 3 en la captura de pantalla a continuación.
Nota: si intenta enviar un archivo al sitio web de VirusTotal, es posible que obtenga un resultado diferente. Tenga en cuenta que VirusTotal comparte informes de envío con los proveedores de antivirus para mejorar sus motores de detección de AV , incluidos los resultados falsos positivos.
Los productos antivirus modernos se implementan para integrar las funciones antivirus tradicionales y otras funcionalidades avanzadas (similares a las funcionalidades EDR ) en un solo producto para brindar una protección integral contra amenazas digitales. Para obtener más información sobre las soluciones de seguridad basadas en Host, sugerimos visitar la sala THM : .
EICAR es un archivo de prueba que contiene cadenas ASCII que se utilizan para probar la efectividad del software AV en lugar de malware real que podría dañar su máquina. Para obtener más información, puede visitar el sitio web oficial de EICAR, .
Una de las herramientas que ayuda en la detección de estática es . Yara es una herramienta que permite a los ingenieros de malware clasificar y detectar malware. Yara utiliza detección basada en reglas, por lo que para detectar nuevo malware, debemos crear una nueva regla. ClamAV también puede utilizar las reglas de Yara para detectar archivos maliciosos. La regla será la misma que en nuestra base de datos en el apartado anterior.
Usaremos la ruta en la salida del comando anterior como nuestro ejemplo de cadena único en la regla de Yara que crearemos. La firma podría ser otra cosa del mundo real, como claves de registro, comandos, etc. Si no está familiarizado con Yara, le sugerimos que consulte la . La siguiente es la regla de Yara que usaremos en nuestra detección :
Mejoremos nuestra regla de Yara para reducir el resultado falso positivo. Especificaremos el tipo de archivo en nuestra regla. A menudo, los tipos de un archivo se pueden identificar mediante números mágicos, que son los dos primeros bytes del binario. Por ejemplo, (.exe) siempre comienzan con el valor ASCII "MZ" o "4D 5A" en hexadecimal.
Para confirmar esto, usemos la aplicación , que es un editor hexadecimal gratuito, para examinar el binario AV-Check.exe y ver los dos primeros bytes. Tenga en cuenta que HxD ya está disponible en la VM proporcionada .
El primer método consiste en monitorear las API de Windows . El motor de detección inspecciona las llamadas a aplicaciones de Windows y monitorea las llamadas a la API de Windows mediante Windows .
Para obtener más información sobre la evasión del sandbox, sugerimos consultar la sala THM .
Es importante tener en cuenta que es difícil recomendar qué software AV es el mejor. Todo se reduce a las preferencias y la experiencia del usuario. Hoy en día, los proveedores de AV se centran en la seguridad empresarial además de la seguridad del usuario final. Le sugerimos consultar el para obtener más detalles sobre los proveedores de AV empresariales .
VirusTotal es una conocida plataforma de escaneo basada en web para verificar archivos sospechosos. Permite a los usuarios cargar archivos para escanearlos con más de 70 motores de detección de antivirus. VirusTotal pasa los archivos cargados a los motores antivirus para que los revisen, devuelve el resultado e informa si es malicioso o no. Se aplican muchos puntos de control, incluida la verificación de URL o servicios en la lista negra, firmas, análisis binario, análisis de comportamiento y verificación de llamadas API . Además, el binario se ejecutará y comprobará en un entorno simulado y aislado para obtener mejores resultados. Para obtener más información y comprobar otras funciones, puede visitar el sitio web .
(6 escaneos gratuitos al día)
Una forma de tomar huellas dactilares de AV es mediante el uso de herramientas públicas como . Está escrito en C# y realiza varias comprobaciones en una máquina de destino, incluidas comprobaciones de software antivirus , como procesos en ejecución, metadatos de archivos, archivos DLL cargados, claves de registro, servicios, directorios y archivos.
Hemos descargado previamente SharpEDRChecker del para poder usarlo en la máquina virtual adjunta . Ahora necesitamos compilar el proyecto y ya hemos creado un acceso directo al proyecto en el escritorio (SharpEDRChecker). Para hacerlo, haga doble clic en él para abrirlo en Microsoft Visual Studio 2022. Ahora que tenemos nuestro proyecto listo, debemos compilarlo, como se muestra en la siguiente captura de pantalla:
Si subimos el programa AV-Check al y comprobamos el resultado, sorprendentemente, VirusTotal mostró que dos proveedores de AV (MaxSecure y SecureAge APEX) marcaron nuestro programa como malicioso. Por lo tanto, se trata de un resultado falso positivo que identifica incorrectamente un archivo como malicioso cuando no lo es. Una de las posibles razones es que el software de estos proveedores de antivirus utiliza un clasificador de aprendizaje automático o un método de detección basado en reglas que está mal implementado. Para obtener más detalles sobre el informe de envío real, consulte . Hay cuatro secciones principales: Detección, Detalles, Comportamiento y Comunidad. Si marcamos la sección Comportamiento, podemos ver todas las llamadas de las API de Windows, claves de Registro, módulos y la consulta WMIC.
En la sección Detección, hay reglas de Sigma que, si un evento del sistema durante la ejecución coincide (en el entorno sandbox), consideran el archivo malicioso. Es probable que este resultado se base en las reglas; VirusTotal marcó nuestro programa debido a la , como se muestra en la siguiente captura de pantalla.
Ahora volvamos a compilar el programa C# usando una CPU x64 y verifiquemos si los motores de verificación actúan de manera diferente. En nuestro intento de envío esta vez, el software de tres proveedores de AV (Cyren AV se agrega a la lista) marcaron el archivo como malicioso. Para obtener más detalles sobre el informe de envío real, consulte .