Un antivirus è un software programmato per funzionare su un computer atto a prevenire, rilevare ed eventualmente rendere inoffensivi codici dannosi, noti anche come malware. Un antivirus non ha solo la funzione di eliminazione dei programmi malevoli ma ha anche una funzione preventiva, impedendo che un virus possa entrare in un sistema ed infettarlo.
Un antivirus da solo, per quanto affidabile ed efficiente, non è una protezione totale contro la totalità dei virus informatici esistenti al mondo. Inoltre, un antivirus si basa su determinate regole e algoritmi scritti da esseri umani, e pertanto queste possono portare a errori (“falsi positivi”, ossia file riconosciuti come infetti quando non lo sono, e “falsi negativi”, il caso opposto) e/o a decisioni sbagliate. Dal punto di vista tecnico ci sono svariati metodi che si possono utilizzare per prevenire e individuare malware. Un’ulteriore limitazione è dovuta al fatto che un virus potrebbe essere ancora non abbastanza diffuso, e quindi non essere ancora stato studiato da tutti i produttori di antivirus.
In generale, questi metodi possono essere suddivisi in tecniche di analisi statica, che si basano esclusivamente sull’analisi di codice e dati dei file binari (quali: signatures, analisi telemetriche e data mining), e analisi dinamica (quali: sandbox e honeypot), che si basano sull’esecuzione dinamica di un file per capire se è maligno o benigno. Tuttavia, queste ultime tecniche sono raramente utilizzate nei prodotti antivirus destinati agli utenti finali, ma sono generalmente utilizzate solamente all’interno dei laboratori delle aziende produttrici di software antivirus, al fine di aiutare i ricercatori a studiare i campioni malware. Questo è per via dei forti limiti dell’analisi dinamica, quali un alto overhead e il fatto che non può “vedere” tutto ciò che riguarda il programma. Tuttavia, esistono alcuni prodotti antivirus che effettivamente implementano queste tecniche.