Чому помиляються антивіруси

Чому на зовсім нешкідливі програми сваряться антивіруси? Чи варто довіряти на 100% антивірусним програмам? Як знаходяться нові вірусні програми? Що робити, якщо антивірус спрацьовує помилково? На ці та інші питання ви знайдете відповідь у статті.

  1. Раніше дерева були вищі й пиво смачніше ...
  2. Наші дні
  3. Святе місце порожнім не буває
  4. Комунізм чомусь все одно не настав
  5. Евристичні технології
  6. Питання довіри до розробника
  7. Довіряй, але перевіряй
  8. А що кажуть інші антивіруси?
  9. Антивіруси проти систем захисту програм
  10. Як сказати розробнику антивірусного забезпечення, що файл не заражений вірусом?
  11. Підсумок?

1. Раніше дерева були вище і пиво смачніше…


Антивирус AidsTestПерш за все, варто запитати, що ж це таке — комп'ютерний вірус? Це звичайна комп'ютерна програма, здатна до самовідтворення. Тобто, вона вміє поширювати й запускати свої копії. Ніякої магії. Взагалі, вірус необов'язково повинен приносити якусь шкоду комп`ютеру. Він може просто поширюватися й не видаляти чи красти важливі дані, або блокувати роботу комп'ютера.

У часи, коли наймасовішою операційною системою була DOS, комп'ютерні мережі існували, але не були так поширені, як зараз. Проблема комп'ютерних вірусів існувала та вирішувалася досить просто.

Потрібно було завантажити операційну систему з "чистої" дискети (це означало, що дискета не містить BOOT-вірусів) й запустити будь-який антивірусний сканер: AidsTest або Dr.WEB. І тільки після цього запускати сканування або лікування.

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

У той час різноманітних вірусів було не так багато, як зараз, та й технології зараження були, хоч і досить витонченими, але їх було не дуже багато. До того ж, кваліфікація авторів вірусів була набагато вища, що давало більш-менш якісний код без грубих помилок. Відповідно, й автори антивірусів могли написати якісні алгоритми "лікування" інфікованих EXE і COM-програм, котрі могли коректно видалити код з зараженого файлу (вилікувати його).

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

Бурхливий розвиток IT-технологій дав потужний поштовх технологіям комп'ютерних вірусів. Отже, що ж відбувається зараз?


2. Наші дні


Вирус бежит за компьютеромВзагалі, основне джерело вірусів — це Інтернет. Важко уявити собі комп'ютер без підключення до світової павутини. Звичайно, способів проникнення до комп`ютеру у вірусів стало набагато більше. Раніше це була звичайна дискета, з якої досить було запустити будь-яку інфіковану програму, щоб заразити свій комп'ютер. У наш час джерел побільшало: електронна пошта, лінки в програмах для обміну миттєвими повідомленнями, посилання на інтернет-сайтах, офісні документи, самозавантажувальні віруси на флеш-накопичувачах і таке інше...

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

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

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

З одного боку, чим зручніше й простіше працювати за комп`ютером — тим більше шансів проникнення в комп'ютер шкідливого ПЗ. З іншого боку, перетворюючи комп'ютер у броньований танк, ми робимо роботу звичайного користувача нестерпною. Йому постійно треба буде вводити паролі, натискати на різні кнопки у віконцях системи захисту, що вистрибують на екран, тощо.

Апологети Linux можуть тут зловісно посміхнутися, мовляв, це в ваших Windows таке коїться, а у нас вірусів взагалі немає. Не хочу влаштовувати холівари (Holy Wars), але можу заперечити:

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

  2. Популярність системи Windows в десятки, або навіть в сотні разів вища, ніж Linux. Звичайно, що й шкідливого ПЗ для неї створюється набагато більше. Тому що це наймасовіша операційна система. Писати комп'ютерний вірус, який уражає 2% комп'ютерів, сенсу немає.

3. Святе місце порожнім не буває


Набор антивирусовСитуація з доступністю й незахищеністю наймасовішої операційної системи дала дуже потужний поштовх виробникам антивірусного програмного забезпечення.

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

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

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

Кількість вірусних сигнатур, що визначає хороший антивірус, обчислюється десятками й сотнями тисяч. Тепер антивірус — це не просто програма, що запускається за вимогою користувача. Зараз це цілий комплекс: антивірусний монітор, що працює постійно та знаходиться в пам'яті комп'ютера, сканер, мережевий брандмауер тощо.


4. Комунізм чомусь все одно не настав


Дорожный знак ограничение 60Як же так? Адже розробкою антивірусів займаються величезні компанії з великим штатом співробітників. Витрачається купа грошей на нові технології. Оновлення виходять мало не кожну годину .. СТОП!

Що таке оновлення антивірусних баз?

Коротше кажучи — це нові засоби визначення невідомих комп'ютерних вірусів. Тобто, злий та недобрий програміст Василь Пупкін взяв та й написав новий вірус. І знайшов спосіб запустити його в Інтернет, заражаючи комп'ютери інших користувачів. Найцікавіше те, що цей вірус не знайде жоден, навіть самий крутий і дорогий антивірус!

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

Програми-антивіруси не визначать або дуже погано визначають нові віруси, які з'являються в мережі.

Тобто, ми отримуємо ситуацію: поширюється новий вірус, заражається деяка кількість комп'ютерів. Потім цей вірус через якийсь час попадає до рук вірусологів-дослідників. І тільки потім додається чергова "латка" до антивірусних баз. Бази оновлюються на комп'ютерах користувачів і результат — антивірус "вже" ловить новий вірус. Але шкоду вірус "вже" заподіяв.

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

Але нові віруси — це інше. Вони спочатку поширюються, й тільки потім їх ловлять. Жоден антивірус не дасть 100% гарантії захисту.

Таких гарантій просто не існує.

Ситуація патова, втім, розробники антивірусів її намагаються поліпшувати.


5. Евристичні технології


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

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

M&Ms держит слово ошибкаЗвучить чудово. Антивірус може піймати абсолютно новий вірус, нічого не знаючи про його сигнатуру. В реальності все набагато гірше. Ключове слово в цій технології "ймовірність". Тобто, абсолютно точно сказати, що ця невідома програма — вірус, ніхто не може.

Більш того, часто на цілком звичайні програми антивіруси різних розробників сваряться, кажучи: "у вас завелася гидота". "Ймовірно".

Користувачам же, завдяки природним лінощам, бракує комп'ютерної грамотності, плюс погані знання основ англійської й результат — бачать тільки червону табличку антивірусу, в якій він сумнівається, що йому робити, й просить користувача прийняти (за нього!) "соломонове" рішення.

Відповідальність антивірус на себе брати не хоче. А якщо раптом — промах? (ймовірність все ж є). І користувачі, не читаючи, відправляють програму "на смерть". Антивірус же сказав, що це вірус! (а діалогових вікон ми не читаємо, ми тиснути "Ок" тільки навчені).

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

У найгіршому випадку — софт просто видаляють, наївно довіряючи антивірусу.

Доходить до курйозів. Ми розробляємо корпоративний чат MyChat для безпечного спілкування співробітників різних компаній. Поширюємо його безкоштовну версію. Беремо нову версію й пакуємо головний файл mcclient.exe відомим пакувальником UPX. Для економії розміру, звичайно ж. Антивіруси відразу "божеволіють", сигналізуючи про потенційно шкідливий програмний код. Розпаковуємо назад — все чудово, всі антивіруси мовчать, як риби.


6. Питання довіри до розробника


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

Але програмісти, які писали цю програму, могли вкласти в неї не тільки корисні функції, але й шкідливі. Будь-які. Функції для викрадання особистих даних, знищення важливих документів, отримання паролів і таке інше — фантазія у людей безмежна.

Формально — так. Насправді — звичайно ні. Чому? Тому що, якщо буде зафіксований факт деструктивних дій або викрадання особистих даних — довіра до розробника програми у людей назавжди пропаде. Його програму видалять і про даний інцидент дізнається весь світ. На щастя, Інтернет дуже сильно поширений.

Підсумок — зіпсована репутація, судові обвинувачення, відсутність продажів, банкрутство. Такий розвиток подій не потрібен жодному розробнику ПЗ.

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


7. Довіряй, але перевіряй


Знаки вопросаОтже, ми віримо розробнику, що в його програму не вбудовано шкідливий код. Качаємо інсталятор з сайту й встановлюємо у себе на комп`ютері. Як перевірити, що у нас саме цей дистрибутив, який поширює розробник? Що в процесі закачування не відбулося підміни, що у нас на комп'ютері після закачування активний вірус не укорінився в дистрибутив?

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

Якщо в дистрибутиві змінився хоча б один байт — контрольна сума буде іншою.

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


8. А що кажуть інші антивіруси?


Вирусы на пьедесталеЗазвичай, якщо на комп'ютері встановлений антивірус, то тільки один. Самі ж інсталятори антивірусів чесно попереджують про неможливість "співпрацювання" з іншими антивірусами одночасно.

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

На щастя, встановлювати й купувати всі відомі антивіруси немає потреби. Будь-який файл можна перевірити через Інтернет, використовуючи безкоштовний сервіс www.virustotal.com. Сайт перевіряє будь-які файли великою кількістю антивірусів, використовуючи найсвіжіші оновлення сигнатурних баз.

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

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

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


9. Антивіруси проти систем захисту програм


Борьба с вирусамиЗ хаками програм склалася дуже складна ситуація. З одного боку, якщо програму не захищати — її просто не будуть купувати. Зламають та викладуть на величезній кількості сайтів для вільного скачування. Розробник не отримає з цього ні копійки. Відповідно, велика кількість часу, зусиль та коштів буде витрачена даремно. Програма не принесе прибутку. До того ж, питання ціни тут зовсім не стоїть. Не важливо, скільки коштує програма — хакера це, зазвичай, не дуже цікавить. Йому важливий факт злому. Питання нанесення збитку безпосередньо розробнику цю людину також не хвилює.

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

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

оповещение ESET Smart SecurityСистеми захисту програм від хакерів завжди розвиваються пліч-о-пліч з антивірусами та вірусами. Так вже історично склалося, що для аналізу програм використовуються дебагери. Вірусам не хочуть виявляти свою присутність, тому вони намагаються всіляко ховатися й користуються великим арсеналом антідебагерських прийомів. Займаються шифруванням свого коду, щоб максимально ускладнити життя вірусологам тощо. Тими ж методами користуються й системи захисту — тільки вони вже захищаються не від вірусологів, а від хакерів.

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

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

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

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

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


10. Як сказати розробнику антивірусного забезпечення, що файл не заражений вірусом?


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

Якщо у вас ще є адреси виробників антивірусного ПЗ або якісь з перерахованих вище адрес недійсні — будь ласка, напишіть на Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript , ми прикладемо максимум зусиль, для вирішення вашої проблеми.


11. Підсумок


Отже, узагальнивши вищесказане у світлі комерційного програмного забезпечення, варто сказати, що:

  1. Використовуйте тільки останні версії програмного забезпечення.

  2. Не слід видаляти потрібну програму тільки через те, що евристик антивірусу вирішив, що там може бути вірус. Увімкніть голову й проаналізуйте ситуацію.

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

  4. Ну й нарешті, напишіть компанії-розробнику антивірусу про факт помилкового спрацьовування. Вкажіть всі подробиці, прикладіть копії екранів. Цим ви не тільки допоможете собі особисто, але й, можливо, іншим людям, у яких той же антивірус, який так само помилково сприйняв потрібну програму за шкідливу.
Служба поддержки