¿Por qué no hay un antivirus universal?

(Para Alessandro Rugolo)
17/02/20

Desde que existen los virus informáticos, también ha habido antivirus. Ésta es una realidad obvia. Pero, ¿por qué los antivirus no son eficaces contra todos los virus?

Responder esta pregunta es intuitivamente simple: porque siempre hay nuevos virus que se comportan de manera diferente a los anteriores y los antivirus solo funcionan con lo que saben. Si vas y ves qué hay detrás de la respuesta intuitiva, entonces las cosas se complican, porque si intentas investigar el problema, entras en un campo de estudio que no es nada fácil.

Para comprender de qué estamos hablando es necesario introducir algunos conceptos o el significado de "heurístico"y de"Máquina de Turing".

El término "heurístico", en matemáticas, se refiere a un procedimiento utilizado para predecir un resultado que debe ser validado por la experiencia, ya que no es riguroso.

En lugar de "máquina universal de Turing" queremos decir uno La máquina ideal que programó le permite realizar cualquier operación o calcular cualquier función computable en un número finito de pasos elementales.

Bueno, hace varios años, Leonard Max Adleman, además de ser uno de los tres inventores del algoritmo de cifrado RSA (Rivest-Shamir, Adleman) y el primero en utilizar el término "virus" en informática para identificar agentes maliciosos, también demostró que si hubiera un algoritmo capaz de detectar la presencia de un virus en un caso general, este algoritmo podría resolver el problema conocido con el nombre de "problema de detención". Este problema teóricamente abordado por Alan Turing consiste en diga si, dado cualquier programa y cualquier entrada, es posible determinar si el programa tarde o temprano se detendrá o continuará ejecutándose indefinidamente. Alan Turing demostró que este problema es "indecidible".

Bueno, para volver a nuestro problema, es decir, si puede haber un programa capaz de detectar cualquier virus, Leonard Max Adleman ha demostrado que este problema es equivalente al "problema de detención" más conocido y, por lo tanto, también indecidible.

Si suponemos, y no veo ninguna razón para no hacerlo, que tanto Turing como Adleman tienen razón, entonces debemos concluir que no es posible crear un programa antivirus, al menos no es posible crear un programa antivirus generalista.
Y aquí es donde el término vuelve a entrar en juego. heurístico. Si efectivamente es cierto que no existe un antivirus general que sea bueno para todos los virus, nadie nos impide trabajar por aproximaciones de la realidad conocida y también intentar predecir el comportamiento futuro de los virus, su posible evolución. En este sentido, los fabricantes de antivirus trabajan, tratando de crear antivirus que puedan usarse contra virus conocidos y contra las evoluciones más probables de los mismos..

Editorial: Fuerza aérea de los EEUU