Еволюція антивірусних систем

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

редактор

Лабораторія Касперського. Огляд вірусної активності - июль 2011

Протягом місяця на комп'ютерах користувачів продуктів «Лабораторії Касперського»:

  • відображено 182 045 667 мережевих атак; заблоковано 75 604 730 спроб зараження через Web;
  • виявлено та знешкоджено 221 278 929 шкідливих програм (спроби локального зараження);
  • відзначено 94 004 507 спрацьовувань евристичних вердиктів.

У порівнянні з попереднім місяцем ситуація виглядає наступним чином:


Кількість детектів різних категорій. дані KSN

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

редактор

ZeuS для Android

У липні був виявлено четвертий представник троянця-шпигуна ZitMo - мобільний варіант гучного троянця ZeuS. Якщо раніше ми стикалися з варіаціями ZitMo, що працюють під плафторми Symbian, Windows Mobile і BlackBerry, то на цей раз ZitMo був модифікований для атак на Android-пристрої.

ZitMo (за класифікацією «Лабораторії Касперського» - Trojan-Spy.AndroidOS.Zbot) націлений на крадіжку коду mTAN - одноразового пароля для здійснення віддаленої транзакції, який клієнт банку отримує в повідомленні SMS. Цей код забезпечує другий рівень захисту при використанні послуг онлайн-банкінгу.

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

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

Крадіжка «миль»

У минулому місяці експерти «Лабораторії Касперського» відзначили цікавий факт: бразильські фішери, крім даних банківських рахунків, почали викрадати і «льотні милі». Більш того, шахраї використовують «милі» не тільки за прямим призначенням, але і в якості валюти. Так, в одному з IRC-повідомлень кіберзлочинці пропонують купити доступ до ботнету, здатному розсилати спам, за 60 000 «миль», а також змінюють «милі» на вкрадені кредитні картки. Це відповідає нашим прогнозами на 2011 рік: ми говорили про те, що зловмисники не стануть нехтувати жодною інформацією і будуть красти буквально все.

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

Зустрітися з оглядової статтею по еволюції атівірусних програм, написаної Олександром Прохоровим. Стаття дається в скороченні.

редактор

Олександр Прохоров

Антивіруси - санітари комп'ютерних систем

КомпьютерПресс

Відчуття повної безпеки найбільш небезпечно.
І.Шевельов

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

Типи шкідливих програм

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

Комп'ютерні віруси - це програми, здатні розмножуватися самостійно, дописуючи свій код до інших файлів або до службових області диска. Існує безліч різновидів вірусів. Найпершими на світ з'явилися файлові віруси, які розмножуються, використовуючи файлову систему. Майже ровесники їм - завантажувальні віруси, які заражають завантажувальний сектор (boot sector) жорсткого диска і заміщають код програми, яка отримує управління при запуску системи. З середини 90-х років набули поширення макровіруси, що використовують для свого розмноження вбудовані можливості, наприклад текстового або табличного редактора, і таким способом переносять себе з одного зараженого файлу в інший.

Мережеві черв'яки, на відміну від вірусів, не змінюють файли на дисках, а поширюються в комп'ютерній мережі, проникають в операційну систему комп'ютера, знаходять адреси інших комп'ютерів або користувачів і розсилають за цими адресами свої копії. Мережеві черв'яки можуть взагалі не звертатися до ресурсів комп'ютера (за винятком оперативної пам'яті). За середовищі поширення ці програми діляться на: Інтернет-черви (поширюються по Інтернету), LAN-черви (поширюються по локальній мережі), IRC-черв'яки (поширюються через чати Internet Relay Chat), поштові черв'яки (для свого поширення вони використовують електронну пошту) .

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

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

До числа троянських програм відносяться: утиліти несанкціонованого віддаленого адміністрування (Backdoors); утиліти для проведення DDoS-атак (Distributed Denial of Service - розподілені атаки типу «відмова в обслуговуванні»); шпигунські і рекламні програми, а також програми дозвону; сервери розсилки спаму (проксі-сервери); багатокомпонентні троянці-завантажувачі, які переписують з Інтернету і впроваджують в систему інші шкідливі коди або шкідливі додаткові компоненти. До того ж часто зустрічаються і такі програми, які можна віднести відразу до декількох видів.

Троянські програми віддаленого адміністрування часто являють собою цілком легальні утиліти віддаленого управління, пристосовані для злочинних цілей. Якщо зловмисникові вдасться впровадити таку програму в чиюсь систему, він зможе таємно керувати чужим комп'ютером. Управління зараженим комп'ютером зазвичай здійснюється через Інтернет. Використовуючи інфікований ПК, зловмисник може викрасти інформацію з комп'ютера (файли, паролі, реквізити і т.д.), провести будь-яку файлову операцію (відформатувати жорсткий диск, стерти або перейменувати якісь файли і т.д.), перезавантажити комп'ютер, підключитися до мережевих ресурсів, використовувати заражений ПК для атаки на якийсь третій комп'ютер або на сервер в Інтернеті. Найвідомішими утилітами несанкціонованого віддаленого адміністрування є троянці Back Orifice і NetBus.

Еволюція антивірусних програм

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

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

З появою операційної системи Microsoft Windows 95 і офісного пакету Microsoft Office значно розширилася функціональність програм і зріс обсяг даних, зокрема мультимедійних. Користувачі стали поширювати інформацію на компакт-дисках. До цього часу зросла і кількість комп'ютерів, об'єднаних в локальну мережу або мають доступ в Інтернет. Перша серйозна епідемія, яка привернула до проблеми вірусів загальну увагу, сталася в 1996 році - це був макровірус Cap, що поширювався в документах Microsoft Word і паралізував роботу десятків компаній по всьому світу.

А у 2000 році почалося нашестя мережевих черв'яків, швидко поширювалися в поштових повідомленнях. Число домашніх користувачів і компаній, підключених до Інтернету, було вже величезним, і все люди обмінювалися електронними поштовими повідомленнями, ще не підозрюючи, яку це таїть небезпеку. Перший сучасний мережевий черв'як Happy99 був створений на самому початку 1999 року, а першу епідемію викликав черв'як I love you (LoveLetter) в травні 2000-го.

«Любовні листи» за один тільки травня заразили понад 40 млн. Комп'ютерів по всьому світу. Дослідницький центр Computer Economics оцінив збитки світової економіки за перші п'ять днів епідемії цього паразита в розмірі 6,7 млрд. Дол. Черв'як розсилав свої копії відразу ж після зараження системи за всіма адресами електронної пошти, знайденим в адресній книзі поштової програми Microsoft Outlook. В якості адреси відправника черв'як вставляв адреса електронної пошти власника зараженого комп'ютера та адресної книги Outlook, а до кожного повідомлення прикріплював шкідливий файл з подвійним розширенням «txt.vbs» ( «txt» відповідає текстових файлів, а «vbs» - скриптовою програмами на мові Visual Basic Script).

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

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

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

Як працюють антивірусні програми

Антивірусні програми розвивалися паралельно з шкідливими кодами: чим складніше і витонченішими ставали комп'ютерні шкідники, тим вишуканішим і швидше ставали антивіруси.

Перші антивірусні алгоритми будувалися на основі порівняння з еталоном - часто такі алгоритми називають сигнатурними. Кожному вірусу ставилася у відповідність деяка сигнатура, або маска. З одного боку, маска повинна була бути невеликого розміру, щоб база даних всіх таких масок не прийняла загрозливих обсягів. З іншого боку, чим більше розмір сигнатури, тим нижча ймовірність помилкового спрацьовування (коли достовірно не заражений файл визначається антивірусом як інфікований). На практиці розробники антивірусних програм використовували маску довжиною 10-30 байт. Перші антивіруси знали якусь кількість сигнатур, могли знаходити і лікувати певну кількість вірусів. Отримавши новий вірус, розробники аналізували його код і становили унікальну маску, яка додавалася до бази даних антивірусних сигнатур, а саме оновлення поширювалося на дискеті. Якщо при скануванні підозрілого файлу антивірус знаходив код, відповідний масці, то досліджуваний файл зізнавався інфікованим. Описаний алгоритм застосовується в більшості антивірусних програм і до сих пір. Все сигнатури розміщені в антивірусній базі - спеціальному сховищі, в якому антивірус зберігає маски шкідливих програм. Ефективність сигнатурного пошуку безпосередньо залежить від обсягу антивірусної бази і від частоти її поповнення. Саме тому сьогодні розробники антивірусних програм випускають оновлення для своїх баз мінімум раз на добу. Щоб підвищити швидкість доставки цих оновлень на захищаються комп'ютери користувачів, використовується Інтернет.

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

Коли кількість вірусів перевищила кілька сотень, антивірусні експерти задумалися над ідеєю детектування шкідливих програм, про існування яких антивірусна програма ще не знає (немає відповідних сигнатур). В результаті були створені так звані евристичні аналізатори.

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

Існують два основні методи роботи аналізатора.

Статичний метод, який полягає в пошуку загальних коротких сигнатур, присутніх в більшості вірусів (так звані підозрілі команди). Наприклад, велике число вірусів здійснює пошук по масці * .exe, відкриває знайдений файл, робить запис у відкритий файл. Завдання евристик в цьому випадку - знайти сигнатури, що відображають ці дії. Потім відбувається аналіз знайдених сигнатур, і якщо знайдено кілька необхідних і достатніх підозрілих команд, то приймається рішення про те, що файл інфікований. Великий плюс цього методу - простота реалізації і висока швидкість роботи, але рівень виявлення нових шкідливих програм при цьому досить низький.

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

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

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

Хороший і поганий «Пошуку»

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

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

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

Рівень помилкових спрацьовувань. Якщо на 100% незаражених файлах антивірус рапортує про виявлення можливо зараженого файлу, то це помилкове спрацьовування. Чи варто довіряти такому евристичному аналізатору, який постійно турбує користувача помилковими тривогами? Адже за величезною кількістю помилкових спрацьовувань користувач може пропустити дійсно новий вірус.

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

Частота і розмір оновлень антивірусної бази. Ці параметри є непрямими ознаками якості «движка», так як частий випуск оновлень гарантує, що користувач завжди буде захищений від щойно з'явилися вірусів. Розмір оновлення (і кількість детектіруемих вірусів в цьому оновленні) говорить про якість проектування антивірусної бази і частково «движка».

Можливість оновлення «движка» без оновлення самої антивірусної програми. Іноді для виявлення вірусу потрібно оновити не лише антивірусну базу даних, але і сам «движок». Якщо антивірус не підтримує таку можливість, то користувач може виявитися без захисту перед лицем нового вірусу. Крім того, подібна можливість дозволяє оперативно покращувати «движок» і виправляти в ньому помилки.

...

Автор вдячний співробітникам компаній «Лабораторія Касперського» і «ДиалогНаука» за надані матеріали і консультації.

Чи варто довіряти такому евристичному аналізатору, який постійно турбує користувача помилковими тривогами?
IRC (Internet Relay Chat)