Come funzionano gli antivirus?


54

Quindi stavo pensando ai virus di recente e mi chiedevo come stanno esattamente gli antivirus? Considerando che qualcuno che stava programmando da alcune settimane potrebbe hackerare insieme qualcosa che fa cose cattive e cattive sul PC di qualcuno, la quantità da sola renderebbe proibitivo un semplice elenco di hash, quindi come fanno gli antivirus? Monitorano l'attività di processo e hanno una regola di 3 avvertimenti per fare cose simili a virus? E se è così, cosa gli impedisce di innescare cose perfettamente innocue (come me che muovo i file in \ system32)?

Ho fatto un po 'di ricerche su google, ma i posti normali non mi hanno aiutato particolarmente, e non sono riuscito a trovare un duplicato qui, quindi ho pensato che sarebbe stato bello chiedere :)


4
@joe non è necessario aggiungere un tag windows. Un antivirus funziona praticamente allo stesso modo in qualsiasi sistema operativo. Inoltre, il modo in cui funziona un AV non è soggettivo.
alex,

Oh. Mi dispiace stavo pensando che questo potrebbe essere su Windows e soggettivo. Lo capisco
Joe,

6
Vengono preinstallati quando si acquista un laptop e si continua a gemere per 60 giorni che è necessario registrarsi / pagare per loro, fino a quando non si ottiene finalmente dal sistema. Di solito, le loro finestre di dialogo sono modali e ottimali in modo che possano effettivamente impedirti di fare qualsiasi altra cosa e non offrono mai un modo semplice per disinstallare.
Daniel Daranas,

bump il +1 per una domanda molto bella
dag729

L'euristica AV è sofisticata ma non riuscirà a rilevare nuove minacce (o varianti intelligenti delle minacce esistenti). L'euristica spesso produce falsi positivi su software / codice completamente benigni. Il software AV è utile ma spesso è una stampella, che offre agli utenti un falso senso di sicurezza. Ho testato molti virus noti su ( virustotal.com/en ) e nomi di spicco come Symantec, McAfee e AVG non rilevano nulla (anche se Kaspersky generalmente fa bene). Meglio conoscere il tuo sistema, guardare cosa fai ... e avere un backup!
AlainD

Risposte:


17

Questo articolo del 2002 parla della costruzione di un motore antivirus.

L'articolo descriverà le idee, i concetti, i componenti e gli approcci di base coinvolti nello sviluppo di un programma antivirus da zero dal punto di vista di uno sviluppatore / ingegnere del software. Si concentrerà sugli elementi principali di un motore antivirus (di seguito denominato motore AV) ed escluderà aspetti quali interfacce utente grafiche, monitor in tempo reale, driver di file system e plug-in per determinati software applicativi come Microsoft Exchange o Microsoft Office. Sebbene i motori AV in esecuzione / scansione per singole piattaforme (come Palm OS o EPOC / Symbian OS) possano essere progettati allo stesso modo, questo articolo si concentrerà sulla progettazione di motori di scansione multipiattaforma, che sono molto più complessi.

C'è anche un articolo sulle tecniche euristiche per rilevare le infezioni. È anche una lettura interessante.


+1 per quell'articolo sull'euristica - molto interessante :)
Foshi,

Questo è quello che vale davvero la pena leggere. La parte euristica è essenziale :)
alex

Ho un nuovo rispetto per gli antivirus dopo averlo letto, roba abbastanza intelligente!
Phoshi,

Sono applicazioni incredibilmente complesse. Sfortunatamente, li hanno trasformati in qualcosa che molte persone, incluso me stesso, detestano. Interfacce personalizzate, sciatte, non intuitive, funzionalità apposte solo per aggiungere un altro punto elenco all'elenco delle funzionalità, gonfio. Questa è roba che li ha trasformati in incubi. Le cose stanno cambiando, però; il miglior esempio di una buona soluzione AV è MSE.
alex,

È stata la roba euristica a dare la mancia, scusa joe: P Buona risposta a prescindere :) @alex; Ahimè, devo essere d'accordo, ma capire le complessità di seguito mi rende più simpatico. È roba complessa e non avrebbe abbastanza senso per attirare un potenziale cliente, dov'è "GUI a colori personalizzabile!"
maggio

13

Circa un anno fa ho partecipato a una conferenza di Mikko Hyyppönen, uno dei principali ricercatori di F-Secure. Ha mostrato la loro rete di test automatizzati, dove creano macchine virtuali per ogni campione inviato a loro, analizzano la sua struttura, lascialo funzionare, registra tutto ciò che fa, fa un riferimento incrociato con campioni precedenti e genera un riepilogo per un umano da controllare in seguito. Se l'essere umano conclude che si tratta di un virus, il sistema genera automaticamente la firma di rilevamento e invia un aggiornamento ai clienti. Immagino che anche altri venditori dispongano di sistemi simili per mantenere aggiornati i loro database delle firme.


4

Da Come funziona il software antivirus? (AntivirusWorld):

Un programma software antivirus è un programma per computer che può essere utilizzato per scansionare i file per identificare ed eliminare virus informatici e altri software dannosi (malware).

Il software antivirus in genere utilizza due diverse tecniche per raggiungere questo obiettivo:

  • Esame dei file per la ricerca di virus noti mediante un dizionario dei virus Identificazione di comportamenti sospetti da qualsiasi programma per computer che potrebbe indicare un'infezione
  • La maggior parte dei software antivirus commerciali utilizza entrambi questi approcci, con particolare attenzione all'approccio del dizionario dei virus.

Approccio del dizionario dei virus Nell'approccio del dizionario dei virus, quando il software antivirus esamina un file, si riferisce a un dizionario di virus noti identificati dall'autore del software antivirus. Se un pezzo di codice nel file corrisponde a qualsiasi virus identificato nel dizionario, il software antivirus può quindi eliminare il file, metterlo in quarantena in modo che il file sia inaccessibile ad altri programmi e il suo virus non sia in grado di diffondersi o tentare per riparare il file rimuovendo il virus stesso dal file.

Per avere successo a medio e lungo termine, l'approccio del dizionario dei virus richiede download periodici online delle voci aggiornate del dizionario dei virus. Man mano che vengono identificati nuovi virus "allo stato brado", gli utenti con mentalità civica e tecnicamente inclini possono inviare i loro file infetti agli autori di software antivirus, che quindi includono informazioni sui nuovi virus nei loro dizionari.

Il software antivirus basato su dizionario in genere esamina i file quando il sistema operativo del computer li crea, li apre e li chiude; e quando i file vengono inviati per e-mail. In questo modo, un virus noto può essere rilevato immediatamente dopo la ricezione. In genere, il software può essere programmato per esaminare regolarmente tutti i file sul disco rigido dell'utente.

Sebbene l'approccio del dizionario sia considerato efficace, gli autori di virus hanno cercato di stare un passo avanti rispetto a tale software scrivendo "virus polimorfici", che crittografano parti di se stessi o si modificano in altro modo come metodo di mascheramento, in modo da non corrispondere alla firma del virus nel dizionario.

Approccio al comportamento sospetto L' approccio al comportamento sospetto, al contrario, non tenta di identificare virus noti, ma monitora invece il comportamento di tutti i programmi. Se un programma tenta di scrivere dati in un programma eseguibile, ad esempio, questo viene contrassegnato come comportamento sospetto e l'utente viene avvisato di ciò e gli viene chiesto cosa fare.

Diversamente dall'approccio del dizionario, l'approccio del comportamento sospetto fornisce quindi protezione contro i virus nuovi di zecca che non esistono ancora in nessun dizionario di virus. Tuttavia, sembra anche un gran numero di falsi positivi e gli utenti probabilmente diventano desensibilizzati a tutti gli avvisi. Se l'utente fa clic su "Accetta" su ogni avviso, il software antivirus è ovviamente inutile per quell'utente. Questo problema è stato in particolare aggravato negli ultimi 7 anni, poiché molti altri progetti di programmi non dannosi hanno scelto di modificare altri .exes senza riguardo a questo falso problema positivo. Pertanto, la maggior parte dei moderni software antivirus utilizza questa tecnica sempre meno.

Altri modi per rilevare virus Alcuni software antivirus tentano di emulare l'inizio del codice di ogni nuovo eseguibile che viene eseguito prima di trasferire il controllo all'eseguibile. Se il programma sembra utilizzare un codice che si modifica da solo o appare in altro modo come un virus (tenta immediatamente di trovare altri eseguibili), si potrebbe supporre che l'eseguibile sia stato infettato da un virus. Tuttavia, questo metodo comporta molti falsi positivi.

Ancora un altro metodo di rilevamento sta usando un sandbox. Una sandbox emula il sistema operativo ed esegue l'eseguibile in questa simulazione. Al termine del programma, il sandbox viene analizzato per le modifiche che potrebbero indicare un virus. A causa di problemi di prestazioni, questo tipo di rilevamento viene normalmente eseguito solo durante le scansioni su richiesta.

Problemi di preoccupazione

I macro virus, probabilmente i virus informatici più distruttivi e diffusi, potrebbero essere prevenuti in modo molto più economico ed efficace e senza la necessità di tutti gli utenti di acquistare software antivirus, se Microsoft risolvesse i difetti di sicurezza in Microsoft Outlook e Microsoft Office relativi al esecuzione del codice scaricato e capacità dei documenti macro di diffondersi e provocare il caos.

La formazione degli utenti è importante quanto il software antivirus; semplicemente addestrare gli utenti a pratiche informatiche sicure, come non scaricare ed eseguire programmi sconosciuti da Internet, rallenterebbe la diffusione dei virus, senza la necessità di software antivirus.

Gli utenti di computer non devono sempre eseguire l'accesso come amministratore al proprio computer. Se semplicemente funzionassero in modalità utente, alcuni tipi di virus non sarebbero in grado di diffondersi.

L'approccio del dizionario alla rilevazione dei virus è spesso insufficiente a causa della continua creazione di nuovi virus, tuttavia l'approccio del comportamento sospetto è inefficace a causa del problema dei falsi positivi; pertanto, l'attuale comprensione del software antivirus non conquisterà mai i virus informatici.

Esistono vari metodi per crittografare e impacchettare software dannoso che renderà anche i virus noti non rilevabili dal software antivirus. Rilevare questi virus "mimetizzati" richiede un potente motore di decompressione, che può decrittografare i file prima di esaminarli. Sfortunatamente, molti popolari programmi antivirus non hanno questo e quindi spesso non sono in grado di rilevare virus crittografati.

Le aziende che vendono software anti-virus sembrano avere un incentivo finanziario per la scrittura e la diffusione dei virus e per il pubblico nel panico della minaccia.

(Mi piace questo articolo e ho appena copiato e incollato da AntivirusWorld.)


Grazie :) Per l'approccio del dizionario, ciò significa che se copiassi un codice di virus noto e lo inserissi nella mia applicazione, verrebbe rilevato, ma se scrissi qualcosa di simile dovrebbe aspettare la cosa sospetta del comportamento? (Ipoteticamente, ovviamente)
Foshi,

Si lo sarà .
Joe,

Questo ha senso, se non riesci a fermare la produzione di virus, quindi fermare il codice esistente è abbastanza buono (e dato un infinito lasso di tempo, fermerebbe ogni possibile virus - non male: P)
Phoshi

Ecco cos'è una firma. Una parte del codice macchina dannoso comune a più di un virus.
alex,

Se l'AV confronta un file con un dizionario di, diciamo 10.000 virus noti, allora perché è VELOCE? Come mai ogni file richiede millisecondi per la scansione ..
LantisGaius

3

Phoshi, la tua domanda è molto interessante, ma ti suggerisco di iniziare la tua ricerca con un'altra. Sto suggerendo questo perché le risposte alla domanda che hai posto possono indurti in errore.

Ti suggerisco di iniziare a pensare a cosa consideri un virus, qual è la sua definizione.

Gli autori di virus Elite sono ricercatori di sicurezza, non script kiddie. La loro definizione di virus è: "un virus è un pezzo di codice che può moltiplicarsi". Questo è tutto. Come puoi vedere, non ci sono caratteristiche distruttive menzionate qui. Tutti i virus obbligatori sono malvagi - questo è FUD che ottieni dai produttori di antivirus proprietari in modo che possano vendere il loro software.

IMHO è saggio trattare i virus come parte dell'intero ecosistema software, non come "alieni" esterni al male.


Bene, ho chiesto come funzionano gli AV, quindi penso alle risposte ... rispondi abbastanza bene, ma fai un ottimo punto, è qualcosa a cui pensare :)
Phoshi,

Anche guardare due antivirus sullo stesso computer che prova a uccidersi è divertente. Sentiti libero di chiederti perché lo fanno :-)
geek

1

Un modo molto importante di guardare viruss è il contrario. In che modo i virus compromettono i sistemi. Questo di solito avviene attraverso le vulnerabilità del software. Il software antivirus è a conoscenza di queste vulnerabilità e cerca il software che influenza queste vulnerabilità. Ad ogni modo, i viruss fanno sempre qualcosa. Quindi hanno bisogno di un processo lavorativo per fare tutto ciò che fanno meglio. A volte questo è in uno esistente, a volte creano uno stesso.

Tuttavia, la maggior parte dei virus funziona in modo simile, consentendo a uno scanner antivirus di distinguerli facilmente. Esistono molti virus diversi che utilizzano la stessa vulnerabilità!

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.