Як працюють антивіруси?


54

Тож я недавно думав про віруси, і цікавився, як саме тримаються антивіруси? Враховуючи те, що хтось, який кодував протягом декількох тижнів, міг би зламати разом щось робити неприємні, неприємні речі для чийогось ПК, одна лише кількість зробить простий перелік хешів забороняючим, так як антивіруси роблять це? Чи вони контролюють активність процесів і чи мають правило 3 удару для здійснення вірусоподібних речей? І якщо так, то що заважає йому спрацьовувати на абсолютно нешкідливих речах (як, наприклад, я переміщую файли в \ system32)?

Я трохи погукав, але регулярні місця не особливо допомагали, і я не зміг знайти тут дупу, тому подумав, що було б добре запитати :)


4
@joe немає необхідності додавати тег Windows. Антивірус працює майже однаково в будь-якій ОС. Також спосіб AV не є суб'єктивним.
alex

ой. Вибачте, я думав, що це може бути на Windows і суб'єктивно. Я це розумію
Джо

6
Вони заздалегідь встановлюються, коли ви купуєте ноутбук, і стогнете протягом 60 днів, що вам слід зареєструватись / оплатити їх, поки нарешті не вийдете з системи. Зазвичай їх діалоги є модальними та найвищими, тому вони можуть ефективно перешкоджати вам робити що-небудь інше, і вони ніколи не пропонують простий спосіб видалення.
Даніель Даранас


AV-евристика є складною, але не зможе виявити нові загрози (або розумні варіанти існуючих загроз). Евристика часто дає помилкові позитиви щодо абсолютно доброякісного програмного забезпечення / коду. Програмне забезпечення для AV корисне, але часто є кокеткою, що дає користувачам помилкове почуття безпеки. Я перевірив багато відомих вірусів на ( virustotal.com/en ) та найпопулярніших імен, таких як Symantec, McAfee та AVG, нічого не виявляє (хоча Касперський, як правило, добре). Краще - знати свою систему, дивитися, що ти робиш ... і мати резервну копію!
AlainD

Відповіді:


17

У цій статті від 2002 року йдеться про створення антивірусного механізму.

У статті будуть описані основні ідеї, концепції, компоненти та підходи, що беруть участь у розробці антивірусної програми з нуля з точки зору розробника / інженера-програмного забезпечення. Він зосередить увагу на основних елементах антивірусного механізму (далі - AV-движок) і виключить такі аспекти, як графічний інтерфейс користувача, монітори в режимі реального часу, драйвери файлової системи та додатки для певного прикладного програмного забезпечення, наприклад Microsoft Exchange або Microsoft Office. Хоча AV-двигуни, що працюють / сканують для одиночних платформ (наприклад, Palm OS або EPOC / Symbian OS), можуть бути розроблені таким же чином, ця стаття буде присвячена розробці багатоплатформних скануючих двигунів, які є набагато складнішими.

Також є стаття про евристичні методи виявлення інфекцій. Це також цікаве читання.


+1 для цієї евристичної статті - дуже цікаво :)
Phoshi

Це той, який насправді варто прочитати. Евристики частина має важливе значення :)
Алекс

У мене з’явилася нова повага до антивірусів, прочитавши це, досить розумні речі!
Фоші

Вони неймовірно складні програми. На жаль, вони перетворили їх на те, що дуже багато людей, в тому числі і я, спробують. Спеціальні, неохайні, неінтуїтивні інтерфейси, функції, застосовані лише для того, щоб додати ще одну точку кулі до списку функцій, bloat. Це речі, які перетворили їх у кошмари. Хоча все обертається; найкращим прикладом хорошого AV-рішення є MSE.
alex

Це був евристичний матеріал, який підказав це, вибачте Джо: P Гарна відповідь незалежно :) @alex; На жаль, я повинен погодитись, але розуміння складності нижче змушує мене більше співчувати. Це складний матеріал, і не було б достатньо сенсу, щоб закликати потенційного клієнта, оскільки "Настроюваний кольоровий інтерфейс!" можливо :(
Phoshi

13

Близько року тому я відвідав лекцію Мікко Хайппёнена, одного з головних дослідників F-Secure. Він показав їх автоматизовану мережу тестування, де вони створюють віртуальні машини для кожного надісланого їм зразка, аналізують його структуру, дозволяють їй працювати, записують все, що вона робить, перехресне посилання на попередні зразки та генерують резюме для людини, щоб перевірити пізніше. Якщо людина робить висновок, що це вірус, система автоматично генерує підпис виявлення та надсилає оновлення клієнтам. Я думаю, що інші постачальники мають подібні системи, щоб вони постійно оновлювали свої бази підписів.


4

З Як працює антивірусне програмне забезпечення? (Антивірусний світ):

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

Для цього антивірусне програмне забезпечення зазвичай використовує дві різні методики:

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

Підхід до вірусного словника У підході до словника вірусів, коли антивірусне програмне забезпечення вивчає файл, він посилається на словник відомих вірусів, який був визначений автором антивірусного програмного забезпечення. Якщо фрагмент коду у файлі відповідає будь-якому вірусу, визначеному у словнику, то антивірусне програмне забезпечення може потім видалити файл, поставити його на карантин, щоб файл був недоступний для інших програм і його вірус не міг поширюватися або намагатися відновити файл, видаливши сам вірус з файлу.

Щоб досягти успіху в середньо- та довгостроковій перспективі, підхід до словника вірусів вимагає періодичних онлайн-завантажень оновлених записів у словнику вірусів. Оскільки нові віруси ідентифікуються «в дикій природі», громадянські та технічно схильні користувачі можуть надсилати свої заражені файли авторам антивірусного програмного забезпечення, які потім включають інформацію про нові віруси у свої словники.

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

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

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

На відміну від словникового підходу, підозрілий поведінковий підхід, таким чином, забезпечує захист від абсолютно нових вірусів, яких ще немає в жодних вірусних словниках. Однак також звучить велика кількість помилкових позитивних результатів, і, ймовірно, користувачі стають десенсибілізованими на всі попередження. Якщо користувач натискає "Прийняти" на кожне таке попередження, антивірусне програмне забезпечення, очевидно, марно для цього користувача. Ця проблема особливо загострилася за останні 7 років, оскільки багато інших не шкідливих програм програм вирішили модифікувати інші .exe, не враховуючи цього помилкового позитивного питання. Таким чином, більшість сучасних антивірусних програм все менше і менше використовують цю техніку.

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

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

Питання, що хвилюють

Макровіруси, мабуть, найбільш руйнівні та найпоширеніші комп'ютерні віруси, можна було б запобігти набагато дешевше та ефективніше та без потреби всіх користувачів купувати антивірусне програмне забезпечення, якщо Microsoft виправить недоліки безпеки у Microsoft Outlook та Microsoft Office, пов’язані з виконання завантаженого коду та здатність макросів документів поширюватись і спричиняти хаос.

Освіта користувачів так само важлива, як і антивірусне програмне забезпечення; просто навчання користувачів безпечній обчислювальній практиці, наприклад, не завантажуванню та виконанню невідомих програм з Інтернету, уповільнить поширення вірусів без необхідності антивірусного програмного забезпечення.

Користувачі комп'ютерів не завжди повинні працювати з доступом адміністратора до власної машини. Якщо вони просто запускаються в режимі користувача, то деякі види вірусів не зможуть поширюватися.

Словниковий підхід до виявлення вірусів часто недостатній через постійне створення нових вірусів, однак підозрілий поведінковий підхід є неефективним через помилково позитивну проблему; отже, сучасне розуміння антивірусного програмного забезпечення ніколи не переможе комп'ютерні віруси.

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

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

(Мені подобається ця стаття, і я просто копіюю та вставляю з AntivirusWorld.)


Дякую :) Що стосується словникового підходу, чи це означає, що якщо я скопіював відомий вірусний код і помістив його у свою програму, він буде виявлений, але якби я написав щось подібне, доведеться чекати на предмет підозрілої поведінки? (Гіпотетично, звичайно)
Phoshi

ТАК .. це буде.
Джо

Це має сенс, якщо ви не можете зупинити створення вірусів, то зупинка існуючого коду є досить хорошою (і, враховуючи нескінченну кількість часу, зупинить усі можливі віруси - непогано: P)
Phoshi

Ось що таке підпис. Частина шкідливого машинного коду, спільного для декількох вірусів.
alex

Якщо AV порівнює файл зі словником, скажімо, 10 000 відомих вірусів, то чому це так Швидко? Наскільки сканування кожного файлу займає мілісекунди ..
LantisGaius

3

Фосі, ваше запитання дуже цікаве, але я пропоную вам почати пошуки з іншого. Я рекомендую це, оскільки відповіді на поставлене вами питання можуть вас ввести в оману.

Я пропоную вам почати з роздумів про те, що ви вважаєте вірусом, яке його визначення.

Письменники елітних вірусів - це дослідники безпеки, а не діти. Визначення їх вірусу: "вірус - це фрагмент коду, який може розмножуватися". Це воно. Як бачите, тут немає згубних рис. Усі віруси обов'язково є злими - це FUD, який ви отримуєте від фірмових антивірусних виробників, щоб вони могли продати своє програмне забезпечення.

ІМХО розумно ставитися до вірусів як до частини цілої екосистеми програмного забезпечення, а не як до злих «прибульців».


Ну, я запитав, як працюють АР, тому я думаю, що відповіді ... відповідаю на це добре, але ви дуже добре подумаєте, це над чим подумати :)
Phoshi

Дивитись два антивіруси на одному комп’ютері, які намагаються вбити інше, також цікаво. Не соромтесь замислюватися, чому вони так роблять :-)
виклик

1

Один дуже важливий спосіб поглянути на віруси - це навпаки. Як віруси компрометують системи. Зазвичай це через вразливості програмного забезпечення. Противірусне програмне забезпечення знає про ці вразливості і шукає програмне забезпечення, яке впливає на ці вразливості. Так чи інакше, віруси завжди роблять щось. Тому їм потрібен робочий процес, щоб робити все, що їм найкраще. Іноді це в існуючому, іноді вони створюють себе.

Однак MOST-віруси працюють аналогічно, полегшуючи сканерам вірусів їхнє розрізнення. Існує багато різних вірусів, які використовують одну і ту ж вразливість!

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

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