Introducción
Este documento describe cómo crear Detecciones Personalizadas - Avanzadas usando ClamAV sigtool.exe en Windows.
Acerca de las detecciones personalizadas avanzadas
Las detecciones personalizadas avanzadas son como las firmas antivirus tradicionales, pero el usuario las escribe. Para detectar el malware y otras amenazas basadas en archivos, ClamAV se basa en firmas para diferenciar los archivos limpios y maliciosos/no deseados. Las firmas ClamAV se basan principalmente en texto y cumplen con uno de los formatos de firma específicos de ClamAV asociados con un método de detección dado. Estas firmas pueden inspeccionar varios aspectos de un archivo y tienen diferentes formatos de firma. Algunos de los formatos de firma disponibles son:
· Firmas MD5
· Firmas basadas en secciones MD5 y PE
· Firmas basadas en el cuerpo del archivo
· Formato de firma extendido (desvíos, comodines, expresiones regulares)
· Firmas lógicas
· Firmas de iconos
El proyecto ClamAV distribuye una colección de firmas en forma de archivos CVD (ClamAV Virus Database). El formato de archivo CVD proporciona un contenedor firmado digitalmente que encapsula las firmas y garantiza que no puedan ser modificadas por un tercero malintencionado. Este conjunto de firmas es mantenido activamente por Cisco Talos y se puede descargar usando la aplicación freshclam que se envía con ClamAV
Por qué ClamAV
Utilizamos ACD para hacer coincidir detecciones complejas/atributos de archivo que no se pueden detectar mediante Hashes SHA256 como los de los siguientes ejemplos:
Formato de contenido de firma basado en cuerpo
ClamAV almacena todas las firmas basadas en cuerpo (basadas en contenido) en un formato hexadecimal, con excepción de la compatibilidad con la regla ClamAV YARA. Por "firma hexadecimal" nos referimos a un fragmento del cuerpo del malware convertido en una cadena hexadecimal que se puede ampliar adicionalmente utilizando varios comodines.
Las firmas lógicas permiten combinar varias firmas en formato extendido mediante operadores lógicos. Pueden proporcionar una coincidencia de patrones más detallada y flexible.
- Formato de firma extendido
El formato de firma extendido es el tipo más básico de ClamAV de firma basada en cuerpo desde la deprecación del formato de base de datos .db original.
Las firmas extendidas permiten la especificación de información adicional más allá del contenido hexadecimal, como el "tipo de destino" de un archivo, el desplazamiento de virus o el nivel de funcionalidad del motor (FLEVEL), lo que hace que la detección sea más fiable
Firmas de phishing
ClamAV puede detectar enlaces HTML que parecen sospechosos cuando el texto mostrado es una URL que es un dominio diferente que el de la URL real. Desafortunadamente, es bastante común para una compañía contratar fuera de los servicios web y utilizar el texto de la exhibición del acoplamiento del HTML para hacer que parezca que es un acoplamiento al Web site de la compañía. Debido a que esta práctica es habitual, ClamAV solo realiza comprobaciones de suplantación de identidad para sitios web específicos que son objeto de campañas de suplantación de identidad
Firmas Bytecode
Las firmas de código de bytes son el medio por el cual se puede realizar una coincidencia más compleja escribiendo código C para analizar el contenido de ejemplo en varias etapas de la extracción de archivos.
Firmas basadas en metadatos del contenedor
ClamAV 0.96 permite crear firmas genéricas que coinciden con archivos almacenados dentro de diferentes tipos de contenedores que cumplen condiciones específicas. El formato de la firma es:
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]
donde los campos correspondientes son:
VirusName: nombre de virus que se mostrará cuando la firma coincida.
ContainerType: tipo de archivo que contiene el archivo de destino. Por ejemplo:
CL_TYPE_ZIP,
CL_TYPE_RAR,
CL_TYPE_ARJ,
CL_TYPE_MSCAB,
CL_TYPE_7Z,
CL_TYPE_MAIL,
CL_TYPE_POSIX_TAR,
CL_TYPE_OLD_TAR,
CL_TYPE_CPIO_OLD,
CL_TYPE_CPIO_ODC,
CL_TYPE_CPIO_NEWC,
CL_TYPE_CPIO_CRC
y más.
Este documento se centra en las firmas hash.
Nota: La forma más fácil de crear firmas para ClamAV es utilizar sumas de comprobación de hash de archivo, sin embargo, este método solo se puede utilizar contra malware estático.
Precaución: Tenga en cuenta que la información de este documento está sujeta a cambios con las nuevas versiones de ClamAV. Siempre correlacionar y verificar con la guía oficial para ClamAV.
Puede encontrar más información sobre los formatos de firma en: ClamAV Website
Estas firmas se compilan en un archivo que se descarga al extremo. Para crear detecciones personalizadas avanzadas, vaya a Control de brotes > Avanzado. Haga clic en Create Signature Set para crear un nuevo conjunto Advanced Custom Detection, asígnele un nombre y haga clic en Create.
Después de crear el conjunto de detección personalizada avanzada, haga clic en Editar y podrá ver el enlace Agregar firma. Introduzca el nombre de la firma y haga clic en Crear.
Una vez que aparezcan todas las firmas, seleccione Generar una base de datos a partir del conjunto de firmas. Si agrega accidentalmente una firma que no desea, puede eliminarla haciendo clic en Quitar.
Advertencia: Cada vez que agregue o quite una firma, DEBE hacer clic en Build a Database from Signature Set (Crear una base de datos a partir de un conjunto de firmas)
Nota: Cuando se crea una detección personalizada avanzada para un archivo, está sujeta a almacenamiento en caché durante una hora. Si se agrega un archivo a un conjunto de detección personalizada avanzada, el tiempo de caché debe caducar antes de que la detección surta efecto. Por ejemplo, si agrega una detección personalizada avanzada para un archivo desconocido 5 minutos después de que se almacenara en caché, la detección no surtirá efecto durante otros 55 minutos.
Advertencia: las detecciones personalizadas avanzadas sólo funcionan en archivos de disposición desconocida.
Cómo crear detecciones personalizadas - Avanzado con sigtool.exe
Paso 1: En primer lugar tenemos que obtener la sigtool mediante la navegación a las descargas del sitio web ClamAV
En mi caso, descargo el paquete ZIP clamav-1.1.0.win.x64.zip
Paso 2: Descomprima el archivo en la ubicación preferida. En mi caso he utilizado C:/ClamAV
Tenga en cuenta las carpetas y archivos resaltados.
clamscan.exe - es una herramienta de línea de comandos que se utiliza para analizar archivos y/o directorios en busca de virus. A diferencia de clamdscan, clamscan no requiere una instancia de clamd en ejecución para funcionar. En su lugar, las clavijas pueden crear un nuevo motor y cargar en la base de datos de virus cada vez que se ejecuta. Analizará los archivos o directorios especificados en la línea de comandos, creará un informe de análisis y saldrá.
sigtool.exe - Herramienta que crea y da formato a la firma y escribe en el archivo *.hdb. La extensión hdb hace referencia a Firmas basadas en Hash. sigtool extrae libclamav y proporciona accesos directos a tareas que clamscan realiza en segundo plano. Estos pueden ser muy útiles cuando se escribe una firma o se intenta obtener información sobre una firma que puede estar causando FPs o problemas de rendimiento.
VirusVault: es mi propia carpeta creada para borrar archivos para los que quería crear una firma personalizada.
VirusRV.hdb: este archivo contiene firmas con formato. He llamado a este archivo VirusRV, pero puede utilizar cualquier nombre significativo.
Paso 3a: Inicie la línea CMD y navegue hasta la ubicación donde previamente descomprimió su ClamAV.
Paso 3b Ejecute esta línea.
C:\ClamAV>sigtool —md5 location-of-the-custom-file > name-of-the-output-file.hdb
Puede cambiar el nombre (de forma predeterminada sigtool utiliza el nombre del archivo) y colocarlo dentro de un archivo *.hdb. Un único archivo de base de datos puede incluir cualquier número de firmas. Para que se carguen automáticamente cada vez que se inicie clamscan/clamd, copie los archivos de la base de datos en el directorio local de la base de datos de virus (por ejemplo, /usr/local/share/clamav).
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRV.hdb
Esto crea la firma en este caso para el archivo denominado TestVirusRV.exe y, a continuación, escribe la firma en el archivo denominado VirusRV.hdb
Nota: Si desea crear una firma basada en un valor SHA, el archivo correspondiente se guarda como *.hsb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRVsha256.hsb
Precaución: las firmas basadas en hash no se utilizarán para archivos de texto, HTML y cualquier otro dato que se preprocese internamente antes de la coincidencia de patrones. Si realmente desea utilizar una firma hash en tal caso, ejecute clamscan con —debug y —leave-temps y cree una firma para un archivo preprocesado que quede en /tmp. Tenga en cuenta que una firma hash dejará de coincidir tan pronto como cambie un solo byte en el archivo de destino. Puede encontrar más información aquí
Estos indicadores de sigtool pueden ser especialmente útiles para la escritura de firmas:
—md5 / —sha1 / —sha256: Generar el hash MD5/SHA1/SHA256 y calcular el tamaño del archivo, generando ambos como una firma .hdb/.hsb con formato correcto
Nombres de firma
Las firmas ClamAV sólo deben utilizar caracteres alfanuméricos, guiones (-), puntos (.) y guiones bajos (_) para delimitar palabras. Nunca utilice un espacio, apóstrofo, punto y coma, punto y coma o comillas.
Los nombres de firmas ClamAV encontrados en las bases de datos de firmas oficiales generalmente utilizan este formato:
{platform}.{category}.{name}-{signature id}-{revision}
Las convenciones de nomenclatura de las bases de datos de terceros varían. Puede encontrar las pautas de Cisco-Talos para nombrar las firmas para la base de datos oficial aquí.
Sugerencia: Si desea crear varias firmas en archivos ubicados en el directorio que creó anteriormente en mi caso llamado mine VirusVault, puede ejecutar el comando mediante un comodín. En este caso yo dirigí el mío como:
C:\ClamAV>sigtool —md5 C:\ClamAV\VirusVault\wildcard\ > VirusRV.hdb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\*\ > VirusRV.hdb
Que creó la firma para cada archivo ubicado en el directorio VirusVault
Paso 4: Ejecute este comando para verificar la firma.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\TestVirusRV.exe
Para verificar todas las firmas, puede volver a utilizar la máscara comodín.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\*\
Paso 5: Abra el archivo *.hdb recién creado, copie la firma creada y navegue hasta su consola de terminal segura en Control de brotes > Avanzado haga clic en Editar y podrá ver el enlace Agregar firma.
Paso 6: Asegúrese de hacer clic en Build a Database from Signature Set y, a continuación, aplique las nuevas detecciones personalizadas a la directiva.
Paso 7: Sincronice su política en su terminal y pruebe su nueva firma con análisis manual. Puede ver resultados como los que se enumeran a continuación.
Análisis manual
Detecciones en Secure Endpoint Console
Evento expandido
Requisitos para guardar la firma en Secure Endpoint Console
Si sólo tiene hash MD5 y no conoce el tamaño del archivo, aún puede crear un conjunto de firmas, pero debe utilizar estas reglas:
R: MD5 no puede contener todas las letras mayúsculas
Hash MD5 correcto:
5b852928a129d63dc5c895bd62cf2ab7
Hash MD5 incorrecto:
5B852928A129D63DC5C895BD62CF2AB7
Error en Secure Endpoint Console con TODAS las letras mayúsculas
B: Debe utilizar una letra mayúscula para el nombre y podría ser su propio nombre.
Nombre correcto:
Dm-launcher.msi
Nombre incorrecto:
dm-launcher.msi
C: Puedes usar comodín para el tamaño pero debes usar :73 para FLEVEL mínimo
Comodín correcto:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi:73
Comodín incorrecto:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi
Error en Secure Endpoint Console para todos los nombres en minúsculas y no se ha especificado FLEVEL
Nota: Firmas de hash con tamaño desconocido - ClamAV 0.98 también ha agregado soporte para firmas de hash donde el tamaño no se conoce pero el hash sí. El uso de firmas con tamaños específicos es mucho más eficaz en términos de rendimiento, por lo que debe tener cuidado a la hora de utilizar esta función. En estos casos, se puede utilizar el carácter "*" en el campo de tamaño. Para garantizar una compatibilidad adecuada con versiones anteriores de ClamAV, estas firmas deben tener un nivel funcional mínimo de 73 o superior. Las firmas que utilizan el tamaño de comodín sin este conjunto de niveles se rechazan por estar mal formadas.