Знайомство з клавіатурними шпигунами
Огляд шпигунського ПО
Останні методи впровадження, які використовуються spyware-додатками, не вимагають жодної взаємодії з користувачем. Відомі як “drive-by downloads” (завантажені нальоту), spyware-додатки доставляються на комп'ютер користувача без його відома, або при відвідуванні певної web-сторінки, або при відкритті заархівованих файлів, або при натисканні на вікно, що спливає, що містить активний елемент типу ActiveX , Java Applet і т.п. Spyware-модулі можуть також містяться у графічних файлах, інколи ж навіть у драйверах для нового обладнання.
Типи клавіатурних шпигунів
Як уже згадувалося, клавіатурні шпигуни – це програми, що стежать за натисканнями на клавіші клавіатури і надсилають цю інформацію зловмисному користувачеві. Це може здійснюватися поштою або надсиланням прямо на сервер, розташований десь у глобальній мережі. Ця інформація може бути використана для збору поштових або інших реквізитів у користувачів, що нічого не підозрюють, а може навіть і для отримання вихідних текстів програм у виробників ПЗ.
У той час як клавіатурні шпигуни існує досить тривалий час, зростання їхньої кількості останнім часом потребує нової уваги. Зокрема, це пов'язано з легкістю, з якою комп'ютер може бути заражений – користувачеві потрібно просто відвідати певну web-сторінку.
Клавіатурні шпигуни поділяють на три типи:
Це мініатюрні вбудовані пристрої між клавіатурою та комп'ютером. Через їх маленькі розміри вони часто залишаються непоміченими тривалий час, проте вони потребують фізичного доступу до обладнання. Ці пристрої можуть записувати сотні символів, введених із клавіатури, включаючи поштові та банківські реквізити.
- Додаток з перехоплюючим механізмом.
Цей тип використовує функцію Windows API SetWindowsHookEx(), яка стежить за повідомленнями про натискання клавіш клавіатури. Зазвичай spyware-додаток складається з exe-файлу, що ініціює функцію перехоплення, і dll-файлу, що управляє функціями запису інформації. Програма, що викликає SetWindowsHookEx(), може перехопити навіть паролі, що самозаповнюються.
- Ядерні/драйверні клавіатурні шпигуни.
Цей тип клавіатурного шпигуна розташований на рівні ядра і отримує інформацію прямо від вступного пристрою (зазвичай клавіатури). Він замінює основне програмне забезпечення, яке обробляє натискання клавіш. Його можна запрограмувати бути невидимим, використовуючи перевагу виконання під час завантаження системи, до початку виконання програм рівня користувача. Так як програма запускається на рівні ядра, вона не може перехопити паролі, що самозаповнюються, тому що ця інформація передається на рівні додатків.
Аналіз клавіатурного шпигуна
Існує велика кількість клавіатурних шпигунів, включаючи The Blazing Tools Perfect Keylogger (http://www.blazingtools.com/bpk.html), Spector (http://www.spector.com), Invisible Keylogger Stealth (http://www .amecisco.com/iks2000.htm) та Keysnatch (http://www.fileheaven.com/Keysnatch/download/2975.htm). Більшість із них схожі за своєю функціональністю та можливостями. Тому в наших прикладах ми розглядатимемо клавіатурний шпигун від Blazing Tools.
Ми вирішили аналізувати The Blazing Tools Perfect Keylogger, т.к. його знаходять у безлічі троянських коней. Це хороший приклад клавіатурного шпигуна з механізмом, що перехоплює. Хоча продукція Blazing Tools спрямована на IT-адміністраторів та батьків, наявність їх продукту вбагатьох троянських конях показує можливість використання легального ПЗ у зловмисних цілях. Ось основні можливості Perfect Keylogger'a, які залучають зловмисних користувачів:
У цьому режимі в панелі завдань не є іконка Perfect Keylogger'a і фактично захований клавіатурний шпигун.
Шпигун має можливість об'єднання з іншими програмами та надсилання поштою для встановлення на віддаленому комп'ютері в прихованому режимі. Він потім посилатиме введені з клавіатури символи, знімки екрана та список відвіданих сайтів на пошту віддаленого користувача або FTP.
Ця можливість дозволяє перейменувати всі файли та записи реєстру клавіатурного шпигуна.
Ми встановили версію цього клавіатурного шпигуна на тестовому комп'ютері. За допомогою програми типу SNAPPER (http://www.users.globalnet.co.uk/
ashwobla/snapper/) можна побачити зміни у файловій системі після встановлення Perfect Keylogger'a, як показано на Мал. 1:

Мал. 1 Зміна файлової системи після встановлення Perfect Keylogger.

Мал. 2 Ключі реєстру, exe та dll-файли клавіатурного шпигуна.
Клавіатурний шпигун виконується як фоновий процес, який можна побачити за допомогою інструмента типу SysInternals Process Explorer (http://www.sysinternals.com/ntw2k/freeware/procexp.shtml), як показано на Мал. 3:

Мал. 3 Шпигунський фоновий процес.
Цей же клавіатурний шпигун ми встановили на іншому тестовому комп'ютері, об'єднавши його з іншою програмою, і налаштували його відсилати введені з клавіатури символи поштою на тестову поштову скриньку. Іронічно, але шпигун був поєднаний з безкоштовною та ефективною програмою Spybot Search & Destroy (http://security.kolla.de/), призначеноїдля вилову шпигунського ПЗ. Це вкотре доводить можливість використання легального ПЗ для поширення spyware-додатків.
Інформація, надіслана поштою, була перехоплена аналізатором мережного трафіку. Для простоти прикладу ми використовували Ethereal (Рис. 4 та Рис. 5):

Мал. 4 Ethereal перехоплює вихідну пошту від клавіатурного шпигуна.

Мал. 5 Перехоплений TCP-поток.
Так як вміст пошти закодовано за допомогою base64, кінцевий результат виходить після розшифрування повідомлення base64 декодером. Після розшифрування виділяємо важливу інформацію:
Виразно видно, що ім'я користувача (sachin.shetty) та пароль (sachin123) були перехоплені та записані. Подібним чином клавіатурний шпигун здатний перехопити будь-які види паролів, включаючи паролі для проксі-серверів, електронної пошти та фінансових систем. Він також може перехопити вихідний код програми, набраний розробником програмного забезпечення, текст поштового повідомлення та назви сайтів, введених користувачем у браузер.
Виявлення та видалення
Spyware-додаток істотно відрізняється від вірусу або черв'яка своєю поведінкою та роботою, тому багато антивірусів розцінюють його як звичайну програму. Факт, що вірусні підписи відрізняються від spyware-підписів. Брандмауери також безсилі перед spyware-додатками, т.к. вони або пов'язані з іншими програмами, або заховані в графічному файлі, або здійснюють стандартний web-трафік на 80 порту.
Тому, перш за все слід переконатися в тому, що операційна система має всі необхідні оновлення. Найкращим способом запобігти зараженню, крім зміни операційної системи на безпечнішу (наприклад, Mac OS X), буде навчання користувачів не натискати на все, що їмтрапиться в мережі, і встановлювати лише найнеобхідніше програмне забезпечення. Навчити їх уникати безкоштовні програми та спливаючі вікна. Також слід переконатися в правильному, безпечному налаштуванні браузера і мати хоча б один інструмент виявлення та видалення spyware. Microsoft Antispyware, Ad-Aware (http://www.lavasoftusa.com/software/), Pest Patrol (http://www.pestpatrol.com/Products/PestPatrolHE/) та Spy Sweeper (http://www.webroot .com/) – ось приклади інструментів, які допоможуть вам виявити та видалити spyware-додатки.
Слід зазначити, що в основному проблема spyware пов'язана з браузером Microsoft Internet Explorer. Використання більш сучасних та функціональних браузерів, таких як Mozilla Firefox, фактично може позбавити вас цієї проблеми. Однак залишається факт того, що деякі веб-сайти були написані для використання браузером Internet Explorer і зміна браузера може не задовольнити потреби користувача.
Запобігання запису натиснутих клавіш

Мал. 6 Віртуальна клавіатура.
Ще одним способом уникнути перехоплення є запит програми, щоб ввести символи пароля випадковим чином. Наприклад, програма може попросити користувача ввести 1, 3 і 5 символи, а потім парні символи. Однак послідовність введення повинна змінюватися щоразу, інакше той, хто постійно стежить за інформацією, що вводиться, може відтворити вихідний пароль, до того ж не всі програми підтримують цей метод. Недолік цього в тому, що клавіатурний шпигун записує всі символи, і зловмисний користувач може отримати пароль, підбираючи комбінації символів.
Протидія клавіатурним шпигунам
Існують два типи додатків, що протидіють клавіатурним шпигунам:
- Протидія наоснові підписів.
Це програми, що визначають клавіатурний шпигун за файлами, які він встановлює, та записи, які він вносить до реєстру. У той час як вони добре борються проти відомих шпигунів, вони безсилі проти програм, не внесених до їх баз даних.
- Протидія на основі перехоплення.
Процес перехоплення (фільтрації) повідомлень у Windows використовує функцію SetWindowsHookEx(), ту саму, що використовують клавіатурні шпигуни. Цей процес використовується для спостереження за певними подіями, але програми, що протидіють перехопленню, забороняють передачу управління від однієї функції іншій. Результатом стає відсутність інформації у логах клавіатурного шпигуна. Хоча цей метод протидії ефективніший за перший, відзначимо, що він не здатний боротися проти ядерних/драйверних клавіатурних шпигунів.
У зв'язку зі збільшеним останніми роками числом spyware-додатків, спостерігалося зростання кількості web-сайтів і зловмисних користувачів, які отримують вигоду встановленням клавіатурних шпигунів і крадіжок особистої інформації.
Потрібно знати про таку небезпеку та вміти визначати її. Першим кроком у боротьбі з spyware-додатками буде використання альтернативного браузера, наприклад FireFox, Safari, Opera та ін. Якщо це з яких-небудь причин не можна здійснити, слід вжити заходів щодо постійної профілактики вашої системи, виявлення та видалення клавіатурних шпигунів.