Bichos et al. (II): ¿Malware indetectable?

(Después de algún tiempo de ausencia, y aprovechando que está de vacaciones, José Selvi nos trae la segunda parte de «Bichos et al» que tuvo su primera parte en una fecha tan lejana como el 13 de junio.)

En la anterior entrega de esta serie de artículos relacionados con el software malicioso hablabamos de las dificultades que tenían los sistemas antivirus para detectar software malicioso desconocido, es decir, aquel sobre el cual no han podido trabajar y por tanto extraer las firmas adecuadas para su detección. Para solventar estas deficiencias, comentábamos que los desarrolladores de sistemas antivirus dotaban a sus producto de capacidades heurísticas de detección, con el fin de identificar virus desconocidos a partir de partes de su código o de su comportamiento.

Etimológicamente, la palabra «Heurística» es derivada de la palabra Eureka (¡Lo encontré!), por lo que la palabra Heurística significa, ni más ni menos, encontrar una solución a algo. Con un significado tan amplio como este, como se pueden imaginar, es lógico pensar que cada fabricante de sistemas antivirus puede haber optado por soluciones muy diferentes a la hora de implementar sus sistema heurístico, de ahí los diferentes resultados que muestran cada uno de ellos a la hora de realizar pruebas sobre dicho sistema.

bichos2.jpgEn general, podemos aproximar la problemática de detección heurística de software malicioso a un sistema de reconocimiento automático de patrones, similar al empleado por los sistemas antispam. De esta manera, dado un elemento a analizar, se extraerían N características a considerar, con sus valores correspondientes, definiendo por tanto para este elemento un punto en un espacio N-dimensional de elementos analizados. Si la heurística seleccionada fuera lo suficientemente adecuada, observariamos agrupaciones de elementos en este espacio, tal y como se puede apreciar en la gráfica.

Por lo tanto, una heurística que nos ofreciera un resultado como el aquí mostrado, nos permitiría una detección heurística de software malicioso de una alta efectividad. La efectividad viene determinada, por tanto, por la adecuidad o no de las características seleccionadas y los pesos otorgadas a cada una de ellas, siendo fundamentalmente éste el punto diferencial en las diferentes opciones de implementación de los métodos heurísticos.

¿Es sencilla la selección de características? La respuesta es no, y de hecho en la mayoría de los casos, la gráfica muestra un solapamiento importante entre muestras de software malicioso y muestras de software legítimo, lo que dificulta su detección.

Como contramedida a esta deficiencia, algunos fabricantes ofrecen información al usuario para que sea él mismo quien valore la categorización que darle a un software que se encuentre en una zona de incertidumbre heurística, pero no suele resultar muy efectivo, dado que los usuarios tienden a aceptar sistemáticamente, sin apenas leer la información que se les proporciona, todos los mensajes que se les muestran por pantalla, y aunque decidieran leerlos, la gran mayoría de ellos no dispondrían de los conocimientos técnicos necesarios para valorar el tratamiento que se le debe dar al software.

Ahora, tras toda esta introducción teórica sobre reconocimiento de patrones, tomemos un ejemplo: ¿Qué efectividad tendría un sistema antispam para discriminar el correo electrónico no deseado de un directivo de una empresa de productos farmaceuticos que comercializa fármacos que potencian el apetito sexual (sin citar una marca concreta)? ¿Serían realmente lo suficientemente diferentes los correos legítimos de cierto tipo de correos no deseados como para que estos fueran distinguidos de forma automática?

Ahora traslademos esto a la detección de software malicioso: ¿Qué efectividad tendrá un sistema antivirus para detectar un software malicioso no documentado y que está especialmente diseñado para camuflarse como software legítimo? ¿Sería posible diseñar un software malicioso que resultase indetectable de forma automática?.

Para la última de las entregas de esta serie de artículos se planteará un escenario de ataque en el cual podría utilizarse una prueba de concepto de software maliciso especialmente diseñado para no ser detectado por los sistemas antivirus. Mediante el uso de esta prueba de concepto descubriremos que tal responden diversos productos antivirus a un ataque dirigido como el que aquí se plantea. Mientras tanto, que nadie desinstale todavía sus antivirus, esperen a ver la conclusión final…