¿Cómo funcionan los antivirus?

54

Entonces, estaba pensando en los virus recientemente y me preguntaba cómo se mantienen los antivirus. Teniendo en cuenta que cualquiera que haya estado codificando durante algunas semanas podría hackear algo que haga cosas desagradables a la PC de alguien, la cantidad sola haría que una simple lista de hashes sea prohibitiva, entonces, ¿cómo lo hacen los antivirus? ¿Monitorean la actividad del proceso y tienen una regla de 3 ataques para hacer cosas parecidas a virus? Y si es así, ¿qué impide que se active en cosas perfectamente inofensivas (como yo moviendo archivos en \ system32)?

Busqué en Google un poco, pero los lugares habituales no me ayudaron particularmente, y no pude encontrar un engañado aquí, así que pensé que sería bueno preguntar :)

Phoshi
fuente
44
@joe no hay necesidad de agregar una etiqueta de Windows. Un antivirus funciona de la misma manera en cualquier sistema operativo. Además, la forma en que funciona un AV no es subjetiva.
alex
Oh. Lo siento, estaba pensando que esto puede ser en Windows y subjetivo. Entiendo eso
Joe
66
Vienen preinstalados cuando compra una computadora portátil y sigue gimiendo durante 60 días para que los registre / pague, hasta que finalmente los saque de su sistema. Por lo general, sus cuadros de diálogo son modales y superiores para que puedan bloquearlo de manera efectiva de hacer cualquier otra cosa, y nunca ofrecen una manera fácil de desinstalar.
Daniel Daranas
volcar el 1 por una cuestión muy agradable
dag729
La heurística AV es sofisticada pero no detectará nuevas amenazas (o variantes inteligentes de las amenazas existentes). La heurística a menudo produce falsos positivos en software / código completamente benigno. El software AV es útil pero a menudo es una muleta, lo que brinda a los usuarios una falsa sensación de seguridad. He probado muchos virus conocidos en ( virustotal.com/en ) y los nombres principales como Symantec, McAfee y AVG no detectan nada (aunque Kaspersky generalmente lo hace bien). Mejor es conocer su sistema, ver lo que hace ... ¡y tener una copia de seguridad!
AlainD

Respuestas:

17

Este artículo de 2002 habla sobre la construcción de un motor antivirus.

El artículo describirá las ideas básicas, conceptos, componentes y enfoques involucrados en el desarrollo de un programa antivirus desde cero desde el punto de vista del desarrollador / ingeniero de software. Se centrará en los elementos principales de un motor antivirus (en adelante denominado motor AV) y excluirá aspectos como interfaces gráficas de usuario, monitores en tiempo real, controladores de sistema de archivos y complementos para cierto software de aplicación como Microsoft Exchange o Microsoft Office Aunque los motores AV que se ejecutan / escanean para plataformas individuales (como Palm OS o EPOC / Symbian OS) pueden diseñarse de la misma manera, este artículo se centrará en el diseño de motores de escaneo multiplataforma, que son mucho más complejos.

También hay un artículo sobre técnicas heurísticas para detectar infecciones. También es una lectura interesante.

alex
fuente
+1 para ese artículo de heurística: muy interesante :)
Phoshi el
Ese es el que realmente vale la pena leer. La parte de heurística es esencial :)
alex
Tengo un nuevo respeto por los antivirus después de leer eso, ¡cosas bastante inteligentes!
Phoshi
Son aplicaciones increíblemente complejas. Desafortunadamente, los han convertido en algo que mucha gente, incluido yo mismo, detestamos. Interfaces personalizadas, descuidadas y poco intuitivas, funciones agregadas solo para agregar otro punto a la lista de características, hinchazón. Esto es algo que los ha convertido en pesadillas. Sin embargo, las cosas están cambiando; El mejor ejemplo de una buena solución AV es MSE.
alex
Fueron las cosas de la heurística las que le dieron propina, lo siento, Joe: P Buena respuesta independientemente :) @alex; Por desgracia, tengo que estar de acuerdo, pero comprender las complejidades a continuación me hace simpatizar más. Es algo complejo, y no tendría suficiente sentido como para atraer a un cliente potencial, donde "GUI de color personalizable". might :(
Phoshi
13

Hace aproximadamente un año asistí a una conferencia de Mikko Hyyppönen, uno de los principales investigadores de F-Secure. Mostró su red de pruebas automatizadas, donde crean máquinas virtuales para cada muestra que se les envía, analizan su estructura, la dejan correr, registran todo lo que hace, hacen referencias cruzadas con muestras anteriores y generan un resumen para que un humano lo revise más tarde. Si el humano concluye que es un virus, el sistema genera automáticamente la firma de detección y envía una actualización a los clientes. Me imagino que otros proveedores también tienen sistemas similares para mantener sus bases de datos de firmas actualizadas.

Hirvox
fuente
4

De Cómo funciona el software antivirus? (AntivirusWorld):

Un programa de software antivirus es un programa informático que se puede utilizar para escanear archivos para identificar y eliminar virus informáticos y otro software malicioso (malware).

El software antivirus generalmente usa dos técnicas diferentes para lograr esto:

  • Examinar archivos para buscar virus conocidos mediante un diccionario de virus Identificar comportamientos sospechosos de cualquier programa de computadora que pueda indicar infección
  • La mayoría del software antivirus comercial utiliza ambos enfoques, con énfasis en el enfoque del diccionario de virus.

Enfoque del diccionario de virus En el enfoque del diccionario de virus, cuando el software antivirus examina un archivo, se refiere a un diccionario de virus conocidos que han sido identificados por el autor del software antivirus. Si un fragmento de código en el archivo coincide con cualquier virus identificado en el diccionario, entonces el software antivirus puede eliminar el archivo, ponerlo en cuarentena para que otros programas no puedan acceder al mismo y su virus no pueda propagarse o intentar para reparar el archivo eliminando el virus mismo del archivo.

Para tener éxito a mediano y largo plazo, el enfoque del diccionario de virus requiere descargas periódicas en línea de entradas actualizadas del diccionario de virus. A medida que se identifican nuevos virus "en la naturaleza", los usuarios con mentalidad cívica e inclinaciones técnicas pueden enviar sus archivos infectados a los autores del software antivirus, que luego incluyen información sobre los nuevos virus en sus diccionarios.

El software antivirus basado en diccionarios generalmente examina los archivos cuando el sistema operativo de la computadora los crea, abre y cierra; y cuando los archivos se envían por correo electrónico. De esta manera, un virus conocido se puede detectar inmediatamente después de la recepción. Por lo general, el software también se puede programar para examinar todos los archivos en el disco duro del usuario de forma regular.

Aunque el enfoque del diccionario se considera efectivo, los autores de virus han intentado mantenerse un paso adelante de dicho software escribiendo "virus polimórficos", que encriptan partes de sí mismos o se modifican a sí mismos como un método de disfraz, para no coincidir con la firma del virus. en el diccionario.

Enfoque de comportamiento sospechoso El enfoque de comportamiento sospechoso, por el contrario, no intenta identificar virus conocidos, sino que monitorea el comportamiento de todos los programas. Si un programa intenta escribir datos en un programa ejecutable, por ejemplo, esto se marca como comportamiento sospechoso y el usuario recibe una alerta y se le pregunta qué hacer.

A diferencia del enfoque de diccionario, el enfoque de comportamiento sospechoso por lo tanto proporciona protección contra virus nuevos que aún no existen en ningún diccionario de virus. Sin embargo, también suena una gran cantidad de falsos positivos, y los usuarios probablemente se vuelven insensibles a todas las advertencias. Si el usuario hace clic en "Aceptar" en cada advertencia, entonces el software antivirus es obviamente inútil para ese usuario. Este problema ha empeorado especialmente en los últimos 7 años, ya que muchos más diseños de programas no maliciosos optaron por modificar otros archivos .exes sin tener en cuenta este problema positivo falso. Por lo tanto, el software antivirus más moderno utiliza esta técnica cada vez menos.

Otras formas de detectar virus Algunos antivirus tratarán de emular el comienzo del código de cada nuevo ejecutable que se esté ejecutando antes de transferir el control al ejecutable. Si el programa parece estar usando un código auto modificable o aparece como un virus (inmediatamente trata de encontrar otros ejecutables), se podría suponer que el ejecutable ha sido infectado con un virus. Sin embargo, este método produce muchos falsos positivos.

Otro método de detección es usar un sandbox. Un sandbox emula el sistema operativo y ejecuta el ejecutable en esta simulación. Una vez que el programa ha finalizado, el sandbox analiza los cambios que podrían indicar un virus. Debido a problemas de rendimiento, este tipo de detección normalmente solo se realiza durante los análisis bajo demanda.

Cuestiones de interés

Los macrovirus, posiblemente los virus informáticos más destructivos y generalizados, podrían evitarse de manera mucho más económica y efectiva, y sin la necesidad de que todos los usuarios compren software antivirus, si Microsoft solucionara las fallas de seguridad en Microsoft Outlook y Microsoft Office relacionadas con el ejecución del código descargado y la capacidad de las macros de documentos para propagarse y causar estragos.

La educación del usuario es tan importante como el software antivirus; simplemente capacitar a los usuarios en prácticas informáticas seguras, como no descargar y ejecutar programas desconocidos de Internet, ralentizaría la propagación de virus, sin la necesidad de un software antivirus.

Los usuarios de computadoras no siempre deben ejecutar con acceso de administrador a su propia máquina. Si simplemente se ejecutaran en modo de usuario, algunos tipos de virus no podrían propagarse.

El enfoque del diccionario para detectar virus a menudo es insuficiente debido a la creación continua de nuevos virus, aunque el enfoque de comportamiento sospechoso es ineficaz debido al problema de falsos positivos; por lo tanto, la comprensión actual del software antivirus nunca conquistará los virus informáticos.

Existen varios métodos para encriptar y empaquetar software malicioso que harán que incluso los virus conocidos sean indetectables para el software antivirus. La detección de estos virus "camuflados" requiere un potente motor de desempaquetado, que puede descifrar los archivos antes de examinarlos. Desafortunadamente, muchos programas antivirus populares no tienen esto y, por lo tanto, a menudo no pueden detectar virus cifrados.

Las compañías que venden software antivirus parecen tener un incentivo financiero para que los virus se escriban y se propaguen, y para que el público entre en pánico por la amenaza.

(Me gusta este artículo, y solo copié y pegué de AntivirusWorld).

joe
fuente
Gracias :) Para el enfoque del diccionario, ¿eso significa que si copié un código de virus conocido y lo puse en mi aplicación, se detectaría, pero si escribiera algo similar, tendría que esperar a que ocurriera el comportamiento sospechoso? (Hipotéticamente, por supuesto)
Phoshi
Sí, será .
Joe
Eso tiene sentido, si no puede detener la creación de virus, entonces detener el código existente es bastante bueno (y dado un tiempo infinito, detendría todos los virus posibles, no está mal: P)
Phoshi
Eso es lo que es una firma. Una parte del código malicioso de la máquina que es común a más de un virus.
alex
Si el AV compara un archivo con un diccionario de, digamos, 10.000 virus conocidos, ¿por qué es tan RÁPIDO? ¿Cómo es que cada archivo tarda milisegundos en escanear?
LantisGaius
3

Phoshi, tu pregunta es muy interesante, pero te sugiero que comiences tu búsqueda con otra. Estoy advirtiendo esto porque las respuestas a la pregunta que has hecho pueden confundirte.

Le sugiero que comience pensando en qué considera un virus, cuál es su definición.

Los escritores de virus Elite son investigadores de seguridad, no niños de script. Su definición de virus es: "un virus es un código que puede multiplicarse". Eso es. Como puede ver, no hay características destructivas mencionadas aquí. Todos los virus son obligatorios como malignos: eso es FUD que obtienes de los fabricantes de antivirus propietarios para que puedan vender su software.

En mi humilde opinión, es aconsejable tratar los virus como parte de todo el ecosistema de software, no como "extraterrestres" malvados.

friki
fuente
Bueno, me he preguntado cómo AV trabajo, así que creo que las respuestas ... respuesta que bastante bien, pero hacen un muy buen punto, es algo en que pensar :)
Phoshi
Ver dos antivirus en la misma computadora tratando de matarse entre sí también es divertido. Siéntase libre de preguntarse por qué hacen eso :-)
geek
1

Una forma muy importante de ver a los virusses es al revés. ¿Cómo comprometen los virus los sistemas? Esto suele ser a través de vulnerabilidades de software. El software antivirus es consciente de estas vulnerabilidades y busca software que influya en estas vulnerabilidades. De cualquier manera, los viruss siempre HACEN algo. Por lo tanto, necesitan un proceso de trabajo para hacer lo que mejor saben hacer. A veces esto está en uno existente, a veces se crean uno mismo.

Sin embargo, la mayoría de los virus funcionan de manera similar, lo que facilita que un detector de virus distinga entre ellos. ¡Hay muchos virus diferentes que hacen uso de la misma vulnerabilidad!

http://en.wikipedia.org/wiki/List_of_computer_viruses

Pozo
fuente