# Heurística en antivirus

En els productes antivirus es coneix com a heurística a les tècniques que fan servir per reconèixer codis maliciosos (virus, cucs, troians, etc.) que no es troben a la base de dades (ja sigui perquè són nous, o per no ser molt divulgats). El terme general implica funcionalitats com detecció a través de signatures genèriques, reconeixement del codi compilat, desassemblar, desempaquetar, entre d'altres.
La seva importància radica en el fet de ser l'única defensa automàtica possible davant l'aparició de nous codis maliciosos dels que no tingui firmes.

## Tècniques heurístiques
### Signatures genèriques

Hi ha molts codis maliciosos que són modificats pels seus autors per crear noves versions. Normalment, aquestes variants contenen similituds amb els originals, de manera que es cataloguen com una família de virus. Gràcies a les similituds dins del codi del virus, els antivirus poden arribar a reconèixer a tots els membres de la mateixa família a través d'una única signatura o vacuna genèrica. Això permet que al moment d'aparèixer una nova versió d'un virus ja conegut, aquells antivirus que implementen aquesta tècnica puguin detectar sense la necessitat d'una actualització.

### Reconeixement de codi compilat

Quan es compila un programa per poder convertir-lo en un fitxer executable, la codificació resultant representa instruccions que se li donaran al sistema per realitzar les operacions necessàries. Les implementacions d'heurística d'alguns antivirus utilitzen tècniques per reconèixer instruccions comunament aplicades pels codis maliciosos, i així poder identificar si un fitxer executable pot arribar a ser un codi maliciós.

### Desassemblador

Tot fitxer executable pot ser desassemblador amb l'objectiu d'obtenir el codi font del programa en llenguatge assemblador. L'heurística d'alguns antivirus és capaç d'analitzar el codi font dels programes sospitosos. D'aquesta manera pot reconèixer un possible codi maliciós si troba tècniques de desenvolupament que solen usar-se per a programar virus, sense la necessitat d'una actualització.

### Desempaquetar

Els programadors de codis maliciosos solen utilitzar empaquetadors de fitxers executables com UPX per tal de modificar la "aparença" del virus als ulls de l'anàlisi antivirus. Per evitar ser enganyats per un codi maliciós antic i després reempaquetatge, els antivirus inclouen en les seves tècniques heurístiques mètodes de desempaquetar. D'aquesta manera poden analitzar el codi real del programa, i no l'empaquetat.

## Avaluacions retrospectives

L'heurística és un aspecte molt difícil de provar en els antivirus, ja que cal realitzar les anomenades avaluacions retrospectives.

### Què són les avaluacions retrospectives?

Per poder analitzar correctament el funcionament de les capacitats heurístiques o proactives d'un antivirus, el que es fa és aturar l'actualització de signatures del producte durant un període X . En aquest lapse, s'acumulen mostres de codis maliciosos nous, perquè una vegada recollida una quantitat suficient, s'analitzi si els antivirus les reconeixen o no. En no haver estat actualitzades per detectar aquestes mostres, l'antivirus només podrà reconèixer si estan infectades o no a través de les seves capacitats heurístiques.
Gràcies a aquestes avaluacions es pot conèixer en detall el rendiment dels productes antivirus enfront de virus nous o desconeguts.

### Exemples

Hi ha diversos organismes independents que realitzen avaluacions retrospectives, com per exemple:
* AV-Comparative (anglès)
* Hispasec (en català)