Respuesta corta: no.
Esto, como puede imaginar, es un área de investigación muy candente: todos están tratando de descubrir cómo detectar intrusiones de malware lo antes posible. Obviamente, si hubiera una característica particular, entonces lo sabríamos y bloquearíamos … y luego los diseñadores de malware simplemente escribirían una nueva forma de malware que evitara activar esa característica.
Existen cientos de diferentes tipos de malware y una amplia variedad de modos de operación. Esto se complica por el hecho de que el malware de una mujer es el software legítimo de otra mujer; por ejemplo, el software de mi empresa generalmente marca un producto específico que puede espiar las pulsaciones de teclas de un usuario como malware, pero tenemos clientes de atención médica que incluyen ese software en la lista blanca porque utilícelo para asegurarse de que sus enfermeras y asistentes no filtren información privada sobre los pacientes que visitan su clínica (espionaje “legítimo”, básicamente).
- ¿Cuál es el antivirus mejor pagado para Windows 8 64 bit?
- ¿Cómo difieren la suplantación de identidad y el phishing?
- ¿Qué es un ataque físico en seguridad?
- ¿Existe una opción que sea más segura que los administradores de contraseñas?
- ¿Qué es Xprotect que Apple usa como antivirus?
Existe una gran superposición entre lo que podría considerarse malware y lo que se considera legítimo, e incluso las acciones que parecen ser maliciosas, como inyectar código en otro proceso, son utilizadas ocasionalmente por software legítimo.
Entonces, el proceso que utiliza el software antivirus moderno para detectar malware es un poco más sutil. Por supuesto, una vez que hayamos identificado positivamente una pieza específica de malware y algún tipo de “firma” única, ya sea un patrón de cadena en el archivo o algún comportamiento, lo que haremos será agregarlo a una lista de definiciones erróneas conocidas . Esa es la forma más rápida de atrapar malware: rápido y eficiente. Los diseñadores de malware, por supuesto, saben esto y diseñan su malware para que sea polimórfico, para cambiar automáticamente un poco aquí y allá para ocultar su identidad.
Entonces, para malware desconocido, de día cero, nunca antes visto, tenemos que ser más sofisticados. Aquí tomamos su concepto básico de una “característica común” o característica, pero en lugar de buscar solo una de esas características, observamos combinaciones de características, generalmente docenas, si no cientos de características que van desde el tipo de archivo, cómo se compiló, cadenas dentro del archivo o bloque de código, comandos específicos que intenta ejecutar y su comportamiento. No podemos elegir una característica específica que identifique positivamente el malware, pero sí sabemos que el código ejecutable que “se parece” a otro malware conocido en muchas características es más probable que también sea malware. Esto es básicamente estadísticas: estamos analizando la prevalencia relativa de características específicas en millones de muestras de malware en lugar de esas mismas características en millones de muestras benignas conocidas. Una muestra que tiene un conjunto de características “cercanas” al malware conocido es probablemente malware.
Como puede imaginar, saber cuál de las cientos de características es importante es un gran desafío. Cada característica tiene que ser “ponderada” en cuanto a su contribución a la probabilidad de ser malware. Algo como “el archivo tiene 12345 bytes” probablemente no sea significativo, pero algo así como “las comprobaciones ejecutables para un desensamblador en ejecución” es una característica bastante común para una gran cantidad de malware (pero, de nuevo, ALGUNOS softwares benignos también lo hacen). Utilizamos técnicas de aprendizaje automático para entrenar un motor para “reconocer” el malware al pasar millones y millones de muestras a través de ese motor, y luego podemos usar el modelo derivado en tiempo real para detectar malware.
¿Claro como el barro? 😉