Un software antivirus es en general un conjunto de herramientas que permiten analizar un sistema informatico y detectar o presumir la presencia de algun tipo de actividad viral.
Existe en el mercado una amplia gama de productos, pero se los puede clasificar en dos grandes categorias: Sistemas de Prevencion y Sistemas de Deteccion.
Estos sistemas intentan detener el avance del software viral en tiempo real, esto es, estan constantemente sensando los posibles puntos de entrada de virus al sistema e intentan detectar algun tipo de funcionamiento anormal del mismo.
Este tipo de programas, para poder actuar, se instalan como residentes en el sistema e interceptan todas las llamadas especiales del mismo como por ejemplo: cargar programa, escribir en el disco, borrar archivo, etc.
Ante un pedido de algun programa en ejecucion de, por ejemplo, escribir en el sector de boot del disco, el residente actua e informa al usuario sobre la accion bloqueada. Por lo general se le pide al usuario que confirme dicha accion ya que puede tratarse de algun programa que realiza esta operacion bajo conocimiento del usuario (fdisk, sys en DOS).
Pese a que este metodo es, en teoria, bueno; en la practica adolece de algunas falencias. En primer lugar consume dos recursos importantes del sistema: memoria y tiempo de procesador, ya que los algoritmos de prevencion pueden ocupar varios Kbytes de memoria principal y debido a su mecanica de funcionamiento estan constantemente analizando cualquier pedido de acceso al sistema de archivos de todos los discos del computador.
Por otro lado entorpecen las tareas habituales del usuario con advertencias (en pantalla) sobre algun tipo de actividad sospechosa, pidiendo la confirmacion para proseguir con las acciones detectadas.
Por ultimo, son obsoletos ante algunos tipos de virus que programan directamente los controladores de dispositivos sin recurrir a las llamadas del sistema operativo (esto ultimo es factible en sistemas tipo DOS que no restringen en modo alguno los accesos directos a dispositivos).
Los programas de deteccion, a diferencia de los de prevencion, analizan los archivos ejecutables antes de que se ejecuten, buscando en ellos indicios especificos que hagan suponer la presencia de algun tipo de infeccion viral. Para realizar esta tarea utilizan complicados algoritmos que permiten aislar "trazas caracteristicas" de varios virus conocidos que forman la lista de los virus que puede detectar el antivirus.
Los antivirus mas especializados buscan tambien la presencia de indicios tales como mensajes caracteristicos (muy propios de los caballos de troya y de las bombas de software) o instrucciones de borrado masivo que hagan suponer la presencia de algun tipo de virus no conocido por la version actual del programa antivirus.
En todo caso, al detectar una posible infeccion, avisan al usuario y es este quien decide los pasos a seguir: usar igualmente el programa contaminado, descartarlo, analizarlo mas profundamente, etc.