Detectando malware I: la firma

Cuando los virus informáticos empezaron a propagarse por el mundo del PC (Antes de llegar a los PC ya existían códigos maliciosos para otras plataformas), se vio que eran un gran peligro. Así, además de los virus, surgieron los antivirus. Su misión era, y es, evitar que entraran esos programas maliciosos en el ordenador.

Pero ¿cómo poder distinguir un virus de un programa legítimo? Si no queremos que entren virus, basta con evitar que entre ningún programa y listos. Pero entonces el ordenador se convierte en un trasto inútil si no puede ejecutar ningún programa.

Cada programa informático, sea un virus o sea legítimo, está formado por una serie de instrucciones que el ordenador ejecuta en orden para llevar a cabo una tarea. Y esas instrucciones son propias de cada programa. Y lo que es más, seguro que hay unas cuantas que son únicas para ese programa. Entre los procesadores de textos, por ejemplo, parece lógico pensar que “Poner en negrita una palabra” debe ser muy común, y todos lo harán de una manera muy similar. Sin embargo, habrá funciones únicas para cada programa, que lo hacen único.

ESET España - Cazadores de mitos: tengo un antivirus instalado, así que no me puedo infectar

Pues con los códigos maliciosos ocurre lo mismo, cada uno tiene unas cuantas instrucciones que lo hacen inconfundible. Pues de eso se encarga el antivirus: busca esas instrucciones propias y exclusivas del malware para decirnos que ha encontrado un peligro.

Pero claro, para poder detectar el peligro debe conocerlo antes. Y ese conocimiento se encuentra almacenado en la “base de datos de firmas de virus”, una base de datos con los conjuntos de instrucciones de cada virus que lo hacen único, la “firma”. Bueno, no todas las instrucciones, solamente unas pocas que hacen del virus un elemento único.

Cada vez que un virus nuevo se detecta, el laboratorio de ESET busca esa parte única, esa firma, y la añade a la base de datos de firmas. Cada cierto tiempo, nuestro antivirus se conecta con los servidores de ESET y se descarga la parte nueva del fichero de firmas que necesita, de manera que dispone de los datos sobre los últimos virus detectados.

Pero aquí hay un problema. Si cada día detectamos 200.000 códigos maliciosos nuevos, eso supone más de 70 millones de virus al año. Una firma puede ocupar desde unos pocos bytes hasta más de 100 en los casos más complicados, así que si es una media de 50 bytes por virus, el fichero de firmas se volvería inmanejable en poco tiempo. Para evitar este problema, ESET dispone de firmas genéricas para muchos virus.

Aunque los creadores de malware puedan parecer grandes genios de la informática, tampoco lo son tanto, y en muchos casos emplean parte de un código malicioso para hacer otro. Así, aunque sean dos virus distintos, pueden ser detectados con la misma firma, en la parte que tienen en común los dos virus. De esta manera, con una sola firma podemos detectar a toda una familia de virus, que pueden llegar a ser cientos distintos, ahorrando mucho espacio y evitando problemas al usuario.

Pero entonces, la pregunta es lógica: si no dispongo en mi antivirus de la firma de un ejemplar de malware, ¿puedo infectarme? Sí, y no. Eso lo veremos otro día, en la segunda parte de “Detectando malware”.

Fernando de la Cuadra

 

ESET España en la Defcon: Si te portas mal…¡golpe de remo!