Qual è la branca dell'informatica che studia come funzionano i programmi antivirus?


9

È un esercizio banale in automi finiti dimostrare che non esiste un algoritmo in grado di rilevare tutti i virus, eppure ci sono molte società di software che vendono software antivirus.

C'è qualche parte di CS che si occupa di virus e antivirus?

PS: Non sto chiedendo la giustificazione non correlata a CS di avere AV o no, ma solo quale categoria / soggetto all'interno di CS rientrano, se ce ne sono. Se AV non è un argomento all'interno di CS, allora anche questa è una risposta accettabile, ci sono riferimenti nel contesto di CS a virus e AV?


2
Benvenuti nello scambio di stack di informatica! La sicurezza del computer potrebbe essere il campo che si desidera indagare. Prova Wikipedia; dovresti ottenere informazioni comparabili o migliori lì.
Patrick87,

Risposte:


12

Esiste una sottozona di sicurezza informatica chiamata Computer Virology. Il Journal of Computer Virology è dedicato all'argomento. Studiare come funziona il software antivirus non fa che graffiare la superficie di ciò che l'area è.

Ad esempio, c'è anche qualche lavoro che applica la logica al malware: una definizione generale di malware di S. Kramer e JC Bradfield. Journal of Computer Virology (6) 2010.


9

Virus e tecnologia antivirus hanno molto a che fare con CS. La tua domanda mi ha ricordato qualcosa che ho letto di recente. Ecco un estratto dal libro di Williamson & Shmoys, The Design of Approximation Algorithms, pagina 6. Sta giustificando l'importanza (pratica) degli algoritmi di approssimazione, e usa il noto problema di copertura del set come esempio nel contesto dei virus:

Il problema relativo alla copertura del set è stato utilizzato nello sviluppo di un prodotto antivirus, che rileva virus informatici. In questo caso si desiderava trovare funzionalità salienti che si verificano nei virus progettati per il settore di avvio di un computer, in modo tale che le funzionalità non si verifichino in applicazioni informatiche tipiche. Queste funzionalità sono state quindi incorporate in un'altra euristica per rilevare questi virus del settore di avvio, una rete neurale. Gli elementi del problema relativo alla copertura del set erano i virus noti del settore di avvio (circa 150 al momento). Ogni set corrispondeva a una sequenza di tre byte che si verificava in questi virus ma non nei tipici programmi per computer; c'erano circa 21.000 di tali sequenze. Ogni set conteneva tutti i virus del settore di avvio che avevano la corrispondente sequenza a tre byte da qualche parte in esso. L'obiettivo era trovare un numero limitato di tali sequenze (molto più piccole di 150) che sarebbero state utili per la rete neurale. Utilizzando un algoritmo di approssimazione per risolvere il problema, è stata trovata una piccola serie di sequenze e la rete neurale è stata in grado di rilevare molti virus del settore di avvio precedentemente non analizzati.

Sorprendente o no, questo esempio mostra che almeno le tecniche di AI e ottimizzazione combinatoria sono utili. Dopo aver letto questo, si potrebbe facilmente credere che molte aree del CS hanno cose che possono essere applicate nel contesto dei virus e del loro rilevamento. Per rispondere alla tua domanda in modo più diretto, molte cose in CS riguardano i virus, almeno indirettamente.


7

Dovresti stare attento quando usi il risultato teorico per sostenere che qualcosa non può essere fatto in pratica. Esistono diversi pericoli in cui si può cadere:

  1. il risultato teorico ha ipotesi che non si applicano,

  2. il problema in pratica non è ben modellato dal modello teorico,

  3. in pratica una soluzione non deve essere perfetta per essere utile.

Non hai fornito una definizione formale di cosa sia un virus, quindi espandere la tua affermazione sull'esercizio banale può essere utile per capire cosa intendi veramente.

Gran parte di ciò che fa un software antivirus è rilevare virus noti (e le loro varianti), e questo viene fatto confrontando le stringhe (in file, memoria, ecc.) Con un elenco finito di stringhe (firme dei virus). Ecco perché dobbiamo aggiornare regolarmente il database del software antivirus.

Esistono ulteriori funzionalità per rilevare potenziali virus in base al loro "comportamento", ma questi metodi non sono né completi né validi (e non devono essere validi / completi per essere utili). Finora la progettazione di un software antivirus sembra rientrare più nell'ingegneria informatica che nell'informatica (sebbene l'informatica e l'ingegneria informatica siano strettamente correlate).

Generalmente questi studi rientrerebbero in una parte più applicata della sicurezza informatica (e più in generale aree di sistema: reti di computer, sistemi operativi, ecc.) Dell'informatica, ma l'utilizzo di idee provenienti da altre parti dell'informatica (apprendimento automatico, ecc.) È tipico.

Potresti voler controllare The Art of Computer Virus Research and Defense .

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.