Яка галузь інформатики вивчає, як працюють антивірусні програми?


9

Це тривіальна вправа в кінцевих автоматиках, щоб показати, що не існує алгоритму, який би міг виявити всі віруси, але є багато програмних компаній, що продають антивірусне програмне забезпечення.

Чи є частина CS, яка займається вірусами та антивірусами?

PS: Я не прошу виправдання, пов’язане з тим, що не стосується CS, мати AV чи ні, а лише про те, до якої категорії / предмету в CS вони потрапляють, якщо такі є. Якщо AV не є предметом в CS, то це також є прийнятною відповіддю, чи є відповідність у контексті CS до вірусів та AV?


2
Ласкаво просимо до обміну стека інформатики! Комп'ютерна безпека може бути полем, яке ви хочете дослідити. Спробуйте Вікіпедію; ви повинні отримати там порівнянну чи кращу інформацію.
Patrick87

Відповіді:


12

Існує підрайон комп'ютерної безпеки під назвою Computer Virology. Журнал комп'ютерної вірусології присвячений темі. Вивчення того, як працює антивірусне програмне забезпечення, лише дряпає поверхню, про яку йдеться.

Наприклад, існує навіть деяка робота із застосуванням логіки до зловмисного програмного забезпечення: Загальне визначення зловмисного програмного забезпечення від S. Kramer та JC Bradfield. Журнал комп'ютерної вірусології (6) 2010.


9

Віруси та антивірусна технологія мають багато спільного з CS. Ваше запитання нагадало мені те, що я нещодавно прочитав. Ось уривок із книги Вільямсона та Шмоїса, Проект алгоритмів наближення, стор. 6. Це виправдовує (практичну) важливість алгоритмів наближення та використовує відому проблему набору прикладів як приклад у контексті вірусів:

Проблема з набором обкладинки була використана при розробці антивірусного продукту, який виявляє комп'ютерні віруси. У цьому випадку хотілося знайти яскраві функції, які зустрічаються у вірусів, призначених для завантажувального сектора комп’ютера, таким чином, щоб функції не виникали в типових комп'ютерних програмах. Ці функції потім були включені до іншого евристичного для виявлення цих вірусних завантажувальних секторів, нейронної мережі. Елементами набору проблем покриття були відомі віруси завантажувального сектору (близько 150 на той час). Кожен набір відповідав деякій трибайтовій послідовності, що зустрічається в цих вірусах, але не в типових комп'ютерних програмах; було близько 21 000 таких послідовностей. Кожен набір містив усі віруси завантажувального сектору, які десь у ньому мали відповідну трибайтову послідовність. Метою було знайти невелику кількість таких послідовностей (набагато менше 150), які були б корисні для нейронної мережі. Використовуючи алгоритм наближення для вирішення проблеми, було знайдено невеликий набір послідовностей, і нейронна мережа змогла виявити багато раніше неаналізованих вірусних завантажувальних секторів.

Дивовижний чи ні, цей приклад показує, що принаймні методи в ІІ та комбінаторній оптимізації корисні. Прочитавши це, можна було легко повірити, що у багатьох областях CS є речі, які можна застосувати в контексті вірусів та їх виявлення. Щоб відповісти на ваше запитання більш прямо, багато речей у CS мають справу з вірусами, принаймні побічно.


7

Ви повинні бути обережними, використовуючи теоретичний результат, щоб стверджувати, що щось неможливо зробити на практиці. Є кілька небезпек, в які можна потрапити:

  1. теоретичний результат має припущення, які не застосовуються,

  2. проблема на практиці не моделюється добре теоретичною моделлю,

  3. на практиці рішення не повинно бути ідеальним, щоб бути корисним.

Ви не дали офіційного визначення того, що таке вірус, так що розширення вашої заяви про тривіальну вправу може бути корисним для розуміння того, що ви насправді маєте на увазі.

Значна частина антивірусного програмного забезпечення - це виявлення відомих вірусів (та їх варіантів), і це робиться шляхом порівняння рядків (у файлах, пам'яті тощо) з кінцевим списком рядків (підписи вірусів). Тому нам потрібно регулярно оновлювати базу даних антивірусного програмного забезпечення.

Існують додаткові можливості виявлення потенційних вірусів на основі їх "поведінки", але ці методи не є ні повноцінними, ні звуковими (і для їх корисності їх не потрібно бути здоровими / повноцінними). Проектування антивірусного програмного забезпечення, здається, в даний час більше впадає в обчислювальну техніку, ніж інформатика (хоча інформатика та комп'ютерна інженерія тісно пов'язані).

Як правило, ці дослідження підпадають під більш застосовану частину комп'ютерної безпеки (і загалом системних областей: комп'ютерних мереж, операційних систем тощо) інформатики, але використання ідей з інших частин інформатики (машинне навчання тощо) є типовий.

Ви можете перевірити мистецтво дослідження та захисту комп'ютерних вірусів .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.