Дана стаття присвячена досить актуальною в даний момент проблемі — проблемі шкідливого програмного коду. Ще кілька років тому ситуація була досить простою — існували прикладні програми (включаючи операційну систему) і комп’ютерні віруси, тобто програми, здатні заражати інші програми шляхом впровадження в них свого машинного коду. Проте останнім часом з’явилося безліч шкідливих програм, які не можна вважати вірусами, оскільки вони не володіють здатністю до розмноження. Для таких програм існує безліч категорій: Trojanspy, Trojandownloader, Trojan-Downloader, MalWare, SpyWare, Adware, Dialer… Класифікація часто досить спірна — виробники різного антивірусного ПЗ відносять одну і ту саму програму до різних категорій. Дана стаття є спробою визначити деяку класифікацію даних шкідливих програм і сформулювати критерії, за якими програму можна віднести до категорії SpyWare і Adware.
Програмою-шпигуном (альтернативні назви — Spy, SpyWare, Spyware, Spy Trojan) прийнято називати програмне забезпечення, що збирає і передає кому-небудь інформацію про користувача без його згоди. Інформація про користувача може включати його персональні дані, його конфігурацію комп’ютера і операційної системи, статистику роботи в мережі Інтернет.

Шпигунське ПО застосовується для ряду цілей, з яких основним є маркетингові дослідження і цільова реклама. У цьому випадку інформація про конфігурацію комп’ютера, що використовується ним програмному забезпеченні, відвідуваних сайтах, статистика запитів до пошукових машин і статистика вводяться з клавіатури слів дозволяє дуже точно визначити рід діяльності та коло інтересів користувачів. Тому найчастіше можна спостерігати зв’язку SpyWare — Adware, тобто «Шпигун» — «Модуль показу реклами». Шпигунська частина збирає інформацію про користувача і передає її на сервер рекламної фірми. Там інформація аналізується і у відповідь надсилається рекламна інформація, найбільш підходяща для даного користувача. У кращому випадку реклама показується в окремих спливаючих вікнах, в гіршому — впроваджується в завантажувані сторінки та надсилається електронною поштою.

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

Шпигунське програмне забезпечення може потрапити на комп’ютер користувача двома основними шляхами:
В ході відвідування сайтів Інтернет. Найбільш часто проникнення шпигунського ПЗ відбувається про відвідування користувачем хакерських і warez сайтів, сайтів з безкоштовною музикою і порносайтів. Як правило, для встановлення шпигунського ПО застосовуються компоненти ActiveX або троянські програми категорії Trojan за класифікацією лабораторії Касперського. Багато хакерські сайти можуть видати «крек», що містить шпигунську програму або Backdoor для її завантаження;
В результаті установки безкоштовних або умовно-безкоштовних програм. Найнеприємніше полягає в тому, що таких програм існує безліч, вони поширюються через Інтернет або на піратських компакт-дисках. Класичний приклад — кодек DivX, містить утиліту для таємного завантаження і установки SpyWare.Gator. Більшість програм, що містять SpyWare-компоненти, не повідомляють про це користувача;

Точних критеріїв для занесення програми в категорію «SpyWare» не існує, і дуже часто творці антивірусних пакетів відносять програми категорій «Virus», «Викрадач» і «BHO» до категорії «SpyWare» і навпаки.

Для визначеності пропонується ряд правил та умов, при дотриманні яких програму можна класифікувати як SpyWare. В основу класифікації покладено проведені автором дослідження найбільш поширених програм SpyWare:
Програма потай встановлюється на комп’ютер користувача. Сенс цього пункту полягає в тому, що інсталятор звичайної програми повинен повідомити користувача про факт установки програми (з можливістю відмови від установки), запропонувати вибрати каталог для установки і конфігурацію. Крім того, після установки інсталятор повинен створити пункт у списку «Установка і видалення програм», виклик якого виконає процес деінсталяції. Шпигунське програмне забезпечення зазвичай встановлюється екзотичним способом (часто з використанням троянських модулів категорії) приховано від користувача, за це його деінсталяція у більшості випадків неможлива. Другий шлях інсталяції SpyWare — прихована установка в комплекті з будь-якою популярною програмою;
Програма потай завантажується в пам’ять в процесі завантаження комп’ютера. Варто відзначити, що розробники сучасних SpyWare почали застосовувати Rootkit-технології для маскування процесу в пам’яті і файлів на диску. Крім того, стає популярним створення «неубиваемых» процесів тобто запуск двох процесів, яких перезапускают один одного в разі зупинки. Така технологія зокрема застосовується в SpyWare.WinAd;
Програма виконує деякі операції без вказівки користувача — наприклад, приймає або передає яку-небудь інформацію з Інтернет;
Програма завантажує і встановлює свої оновлення, доповнення, модулі розширення або інше без відома і згоди користувача. Дана властивість притаманне багатьом шпигунським програмам і надзвичайно небезпечно, оскільки завантаження та встановлення оновлень і додаткових модулів відбувається приховано і часто веде до нестабільної роботи системи. Більше того, механізми автоматичного оновлення можуть бути використані зловмисниками для впровадження на ПК користувача троянських модулів;
Програма модифікує системні налаштування або втручається у функціонування інших програм без відома користувача. Наприклад, шпигунський модуль може змінити рівень безпеки в настройках браузера або внести зміни в налаштування мережі;
Програма модифікує інформацію або інформаційні потоки. Типовим прикладом є різні розширення для програми Outlook Express, які при відправці листа приписують до нього свою інформацію. Другий поширений приклад — модифікація завантажуються з Інтернет сторінок (сторінки включається рекламна інформація, деякі слова або фрази перетворюються на гіперпосилання)

В даної класифікації слід особливо відзначити той факт, що програма категорії SpyWare не дозволяє віддалено керувати комп’ютером і не передає паролі та аналогічну інформацію своїм творцям, — такі дії специфічні іншої категорії програм — «Virus» і «Virus». Проте за багатьма параметрами програми категорії SpyWare є родичами троянських програм.

Розповівши про програми категорії SpyWare варто акцентувати увагу на неявному стеженні за користувачем. Припустимо, що у користувача встановлена мирна програма, загружающая рекламні банери один раз на годину. Аналізуючи протоколи рекламного сервера можна з’ясувати, як часто і як довго користувач працює в Інтернет, в який час, через якого провайдера. Ця інформація буде доступна навіть за умови, що програма буде тільки завантажувати дані, не передаючи ніякої інформації. Більш того, кожна версія програми може завантажувати рекламу по унікальному адресою, що дозволить дізнатися, яка саме програма завантажує рекламу.
Практично всі програми для пошуку Adware/Spyware програм знаходять та видаляють так звані «SpyWare cookies» (в деяких випадках їх називають tracking cookie). В якості тесту я перевірив свій комп’ютер за допомогою відомої програми Ad-Aware SE Personal і вона виявила і запропонувала видалити 164 «tracking cookie», причому більшість знайдених cookies були створені відомими сайтами, зокрема: rambler.ru, list.ru, hotlog.ru, downloads.ru. У результаті часто в різних конференціях можна читати повідомлення приблизно такого змісту «я лікував комп’ютер і знайшов кілька сотень шпигунів, які пропустив мій антивірус » — а потім аналіз показує, то мова йшла про cookies. З приводу cookies можна однозначно сказати, що це звичайні текстові файли, які не є програмами і не можуть виконувати ніяких шпигунських і троянських дій на комп’ютері користувача. Єдина «шпигунська» операція, здійсненна за допомогою cookies полягає в можливості сайту зберегти на комп’ютері користувача деякі текстові дані, які буде передано при подальшому відвідуванні сайту, який зберіг cookie. Рейтинги, лічильники та банерні рулетки можуть використовувати cookie своєрідною «позначки» користувача.
Припустимо, що користувач відвідує два сайти, що містять на своїх сторінках лічильник однієї і тієї ж рейтингової системи. При відвідуванні сайту A станеться мінімум дві операції завантаження сторінки з сайту A (крок 1) і звернення до сайту рейтингової системи (крок 2). В заголовку HTTP відповіді рейтингової системи міститься поле, наказує браузеру зберегти cookie для сайту рейтингової системи в результаті браузер зберігає cookie у своїй базі даних. Потім користувач відвідує сайт B (крок 3) і відбувається повторне звернення до сайту рейтингової системи (крок 4), в ході якого передається cookie, збережений на кроці 2. Отримавши і проаналізувавши cookie рейтингова система «дізнається» користувача. Для цього, як правило, в cookie зберігається присвоєний користувачеві унікальний номер. В результаті рейтингова система може не просто фіксувати факт відвідування сайту, але і відстежувати «траєкторію» переходів користувача по сайтах (природно тільки по сайтах, сторінки якої містять лічильники цієї рейтингової системи). Крім того, рейтингова система може вирішити ряд цікавих статистичних задач наприклад, визначити кількість унікальних відвідувачів за певний період, кількість постійних користувачів, періодичність відвідування. Крім статистичних досліджень ідентифікація користувача за допомогою cookie дозволяє боротися з «накруткою» відвідувань або банерних показів. Важливо відзначити, що за допомогою cookie будь-який сайт може реєструвати факт повторного відвідування, але не може визначити ніяких персональних даних користувача (за винятком того випадку, коли користувач сам передав які-небудь дані, заповнюючи форми реєстрації на сайті але навіть у цьому випадку такі дані дуже рідко зберігаються у cookie зазвичай подібні дані заносяться до бази даних на стороні WEB-сервера).

Таким чином виходить, що на мій погляд небезпека, яка приписується «шпигунським» cookies істотно завищена. Internet Explorer всіх версій дозволяє відключити прийом cookie, у версії 6.0 є можливість більш тонкої настройки все cookie поділяються на основні (які зберігаються переглядається сторінкою) і сторонні (зберігаються ресурсами, завантажені з інших сайтів) і користувачеві дається можливість провести тонке налаштування.
Adware (синоніми AdvWare, Ad-Ware тощо) — це додаток, призначений для завантаження на ПК користувача інформації рекламного характеру для подальшої демонстрації цій інформації користувачеві. Можна виділити дві категорії AdWare програм:

· Програми, що розповсюджуються за Adware-ліцензії. Дані програми відтворюють рекламу як неявній оплати за їх використання, при цьому реклама повинна відтворюється тільки під час використання програми в контексті її вікон;

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

Можна сформулювати ряд правил, яких має дотримуватися коректна програма, що розповсюджується по Adware-ліцензії:
При інсталяції на ПК програма повинна попередити користувача про те, що є Adware додатком з роз’ясненням того, що конкретно розуміється під терміном «Virus». При цьому інсталятор повинен передбачати можливість відмови від установки програми (а ще краще — пропонувати варіанти установки — безкоштовний Adware варіант або платний ShareWare варіант). Типовим прикладом «правильного» інсталяції є менеджер закачок FlashGet, який чесно пропонує два варіанти установки — Adware або ShareWare (FlashGet наведено в якості прикладу не випадково — ряд анти-SpyWare програм з невідомої причини вважають його шпигунським ПЗ і видаляють);
Adware модуль повинен бути або бібліотекою, завантажуваної Adware програмою під час роботи, або нерозривною частиною Adware-програми. При цьому завантаження Adware-модуля повинна відбуватися природно при запуску програми, вивантаження та припинення роботи — під час вивантаження програми з пам’яті. Неприпустимо впровадження Adware-модулів в інші додатки або їх установка на автозапуск;
Adware-модуль повинен відтворювати рекламну інформацію тільки в контексті викликав його застосування. Неприпустиме створення додаткових вікон, запуск сторонніх додатків, відкриття якихось web сторінок;
Adware-модуль не повинен виконувати дій, властивих програмами категорії SpyWare;
Adware-модуль повинен деинсталлироваться разом з встановив його додатком;

Як легко помітити, до Adware додатком до даної класифікації пред’являються серйозні вимоги і практично ні один Adware-модуль не задовольняє всім перерахованим вимогам.
Програми з категорії Trojan-Downloader (поняття Trojan-Downloader введено лабораторією Касперського) неодноразово згадувалися, тому слід дати визначення для даної категорії програм. Trojan-Downloader — це програма (модуль, ActiveX, бібліотека ), основним призначенням якої є скритна несанкціонована завантаження програмного забезпечення з Інтернет. Найбільш відомим джерелом Trojan-Downloader є хакерські сайти. Сам по собі Trojan-Downloader як правило не несе прямої загрози для комп’ютера — він небезпечний саме тим, що виробляє неконтрольовану завантаження програмного забезпечення. Trojan-Downloader застосовуються в основному для завантаження вірусів, троянських і шпигунських програм. Найбільш відомими за моєю статистикою є Trojan-Downloader.IstBar, Trojan-Downloader.Win32.Dyfuca, Trojan-Downloader.Win32.Agent і ряд інших. Trojan-Downloader.Win32.IstBar і Trojan-Downloader.Win32.Agent поставили своєрідний рекорд за кількістю різних модифікацій і своїй шкідливості — їх поява на комп’ютері призводить до різкого зростання трафіка і появи на ПК безлічі сторонніх програм.

Всі програми категорії Trojan можна умовно підрозділити на дві категорії:
Універсальні Trojan-Downloader — можуть завантажувати будь-який програмний код з будь-якого сервера. Налаштування можуть зберігатися локально (в окремому файлі, реєстрі) або завантажуватися з певного сайту;
Спеціалізовані — призначені для завантаження строго певних типів троянських або шпигунських програм. Адреси та імена файлів в такому випадку жорстко фіксовані і зберігаються в тілі програми.
Програми категорії Dialer (він-же часто називається «порнозвонилка» від назви Porn-Dialer, присвоєного їм до класифікації лабораторії Касперського) досить широко поширені і призначені для вирішення ряду завдань, пов’язаних з дозвонкой до заданого сервера і встановлення з ним модемного зв’язку. Застосовуються дані програми в основному творцями порносайтів, але страждають від них багато програми категорії Dialer використовують вельми витончені способи установки (з використанням ActiveX, Trojan-Downloader), причому установка може бути ініційована при відвідуванні практично будь-якого сайту.

Організацію модемного з’єднання з сервером власника Dialer може здійснювати декількома способами:
Dialer може виробляти набір номера і встановлення з’єднання своїми засобами;
Dialer може створити нове з’єднання віддаленого доступу;
Dialer може змінити існуючі з’єднання віддаленого доступу;

У перших двох випадках Dialer, як правило, всіляко привертає увагу користувача до себе і створеним ним з’єднанням — копіює себе в усі доступні місця (в папку Program Files, Windows, WindowsSystem, папку «Пуск» тощо), створює ярлики, реєструє себе в автозапуску.

Часто крім вирішення основного завдання програми типу Dialer виконують завдання, властиві програмами інших категорій (Adware, SpyWare, Trojan-Downloader). Деякі Dialer встановлюють себе на автозапуск, впроваджуються в інші додатки, наприклад, мені відомий Dialer, що реєструє себе як розширення мови Basic і запускається при відкритті будь-якого додатка Microsoft Office, використовує скрипти.

Деякі програми типу Dialer можна сміливо відносити до троянських програм (а багато виробників антивірусів вважають Dialer троянською програмою — на сайті виробників Norton Antivirus про Dialer йдеться «троянська програма, призначена для „), в класифікації лабораторії Касперського є спеціальна категорія Trojan.Dialer.

Крім утиліт дозвонки до категорії Dialer часто відносять спеціалізовані утиліти для перегляду порносайтів. Ведуть вони себе аналогічно Dialer, тільки замість модемного з’єднання з’єднуються з закрытими сайтами Інтернет.
Буквальний переклад цього терміна звучить як “грабіжник», «грабіжник», «повітряний пірат». Це програма, яка виконує на комп’ютері користувача небажані для нього дії, переслідуючи цілі своїх розробників. Виробник багатьох антивірусних засобів відносять програми категорії Hijacker до троянських програм. Завданням програм класу Hijacker є перенастроювання параметрів браузера, електронної пошти або інших програм без дозволу і відома користувача. У зарубіжних джерелах мені зустрічалося визначення Викрадач — «утиліта, яка змінює настройки браузера без відома користувача».

Найбільш часто Hijacker застосовується для зміни:
Стартової сторінки браузера — стартова сторінка замінюється на адреси сайту творців Викрадач;
Налаштування системи пошуку браузера (ці налаштування зберігаються в реєстрі). В результаті при натисканні кнопки «Пошук» відкривається адресу, встановлений програмою Викрадач;
Префіксів протоколів;
Рівнів та параметрів безпеки браузера;
Реакції браузера на помилки — мені зустрічався Викрадач, замінює стандартні сторінки IE, описують помилки типу 404 на власні;
Модифікації списку адрес («Вибране») браузера

У чистому вигляді Hijacker зустрічається порівняно рідко, тому що частіше всього по виконуваних дій програма може бути крім категорії «Викрадач» віднесена до категорій «Virus»,«Dialer» або AdWare/SpyWare.
Backdoor — це програма, основним призначенням якої є потайне управління комп’ютером. Trojan можна умовно підрозділити на наступні категорії:
Backdoor, побудовані за технологією Client — Server. Такий Virus складається як мінімум з двох програм — невеликий програми, потай встановлюється на ураженний комп’ютер і програми управління, що встановлюється на комп’ютер зловмисника. Іноді в комплекті йде ще й програма установки;
Backdoor, використовують для віддаленого управління вбудований telnet, web або IRC сервер. Для управління таким Trojan не потрібне спеціальне програмне забезпечення. Приміром, відомі Backdoor, які підключався до заданого IRC сервера і використовують його для обміну зі зловмисником.

Основне призначення Trojan — потайне управління комп’ютером. Як правило, Backdoor дозволяє копіювати файли з ураженого комп’ютера і навпаки, передавати на уражений комп’ютер, файли та програми. Крім того, зазвичай Virus дозволяє отримати віддалений доступ до реєстру, проводити системні операції (перезавантаження ПК, створення нових мережевих ресурсів, модифікацію паролів тощо). Trojan по суті відкриває атакуючому «чорний хід» на комп’ютер користувача. Небезпека Virus збільшилася останнім часом у зв’язку з тим, що багато сучасні мережеві і поштові черв’яки або містять у собі Trojan-компоненту, або встановлюють її після зараження ПК.