Донецкий техникум промышленной автоматики

Що таке Keylogger (кейлоггер) і як перехоплюють дані введення

  1. Вступна
  2. Подивимося на концепцію keylogger 'ов глужбе
  3. Варіація 1. Стандартна клавіатурна пастка
  4. Варіація 2. Періодичний опитування стану клавіатури
  5. Варіація 3. Клавіатурний шпигун на базі драйвера
  6. Варіація 4. Шпигун-руткит
  7. Апаратні клавіатурні пристрої
  8. Способи поширення кейлогерів
  9. Методики пошуку клавіатурних шпигунів
  10. Узагальнені способи захисту від keylogger
  11. Детальніше про методологію безпеки
  12. апаратна захист
  13. Найбільш розумне і сучасне рішення
  14. Трохи про проактивний захист
  15. Віртуальна клавіатура як рішення
  16. Програми для поиска и відалення кейлогерів
  17. Маленькі такі підсумки
  18. Післямова

Доброго времени суток, всім тим, хто зайшов до нас на "вогник". Сьогодні мова піде про те, що є keylogger і як воно взагалі працює.

Сьогодні мова піде не про всіх відомих звичайних «зловредів» ( віруси , трояни, руткіти і т.п.), а про малознайомій (широкому колу користувачів), але не менш небезпечною зарази, ніж всякі інші.

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

Що ж, роботи непочатий край, засучівать рукава і вперед.
Читаємо.

Вступна

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

Відноситься ця «нечисть» до класу spyware - програм-шпигунів, тобто потрапляючи на комп'ютер (ноутбук / нетбук / планшет і т.п.) користувача, вона виконує свої брудні справи шпигунські функції без Вашого на те відома, згоди і участі.

Виглядає це приблизно так:

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

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

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

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

до змісту ↑

Подивимося на концепцію keylogger 'ов глужбе

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

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

Записувана інформація зберігається на диску, і більшість сучасних клавіатурних шпигунів можуть формувати різні звіти (записуючи їх в спеціалізований журнал реєстрації, тобто Log-файл), можуть передавати їх по електронній пошті або http / ftp протоколом .

Крім того, ряд сучасних keylogger 'ов користуються RootKit- технологіями для маскування слідів своєї присутності в системі.

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

Примітка:
Варто сказати, що кейлоггери досить древній тип прокляття з'явилися ще за часів MS-DOS - тоді вони представляли собою обробники переривання клавіатури розміром близько 1 кб.

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

Ви скажіть, що зараз на ринку купа антивірусних пакетів, як платних, так і безкоштовних (про які ми писали в своїх оглядах, це і [ "Безкоштовний антивирусник" або "Непогане економне рішення в області безпеки" [avira] ] І [ Як швидко видалити віруси. Частина 1 [AVZ] ] І т.п.), невже так складно відловити якийсь «непоказний» клавіатурний шпигун?

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

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

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

до змісту ↑

Варіація 1. Стандартна клавіатурна пастка

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

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

У Windows хуком називається механізм перехоплення повідомлень системи, що використовує особливу функцію:

  • Для цієї функції використовують механізм Win32API. Більшість клавіатурних шпигунів даного виду використовують хук WH_Keyboard;
  • Крім хука WH_KEYBOARD використовують також хук WH_JOURNALRECORD;
  • Відмінність між ними полягає в тому, що WH_JOURNALRECORD не потрібно наявності окремої динамічної бібліотеки (DLL), що спрощує поширення цього гидоти по мережі.

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

Також для створення такого шпигуна не потрібно особливих знань, крім знання Visual C ++ або Delphi і Win32API. Однак використання даного способу змушує програміста-хакера створювати окрему динамічну бібліотеку DLL.

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

до змісту ↑

Варіація 2. Періодичний опитування стану клавіатури

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

Недоліком клавіатурних шпигунів такого типу є необхідність періодичного опитування стану клавіатури з досить високою швидкістю, не менше 10-20 опитувань в секунду.

Цей метод застосовується деякими комерційними продуктами.

до змісту ↑

Варіація 3. Клавіатурний шпигун на базі драйвера

Даний метод найбільш ефективний у порівнянні з описаними вище. Можливі як мінімум два варіанти реалізації цього методу - написання і установка в систему свого драйвера клавіатури замість штатного або установка драйвера-фільтра. Цей метод (так само як і пастка) є документованим методом спостереження за клавіатурним введенням.

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

до змісту ↑

Варіація 4. Шпигун-руткит

Може реалізовуватися як в UserMode, так і в режимі ядра (KernelMode). У UserMode стеження за клавіатурним введенням може бути побудовано за рахунок перехоплення обміну процесу csrss.exe драйвером клавіатури або за допомогою стеження за викликами API -функцій типу GetMessage і PeekMessage.

У багатьох випадках від руткита-кейлоггера не рятує навіть екранна клавіатура, яка часто подається як панацея від кейлоггера будь-якого типу.

до змісту ↑

Апаратні клавіатурні пристрої

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

У старому варіанті виглядало це якось так:

У старому варіанті виглядало це якось так:

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

Варіанти реалізації апаратних кейлоггеров:

  • Установка пристрою стеження в "розрив" кабелю клавіатури;
  • Вбудовування пристрої стеження в клавіатуру;
  • Установка USB-пристрої, на зразок "флешки", карти пам'яті і тп;
  • Візуальне "спостереження" за клавіатурою / екраном;
  • Інше.

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

Що ж. Тепер рушимо далі.

до змісту ↑

Способи поширення кейлогерів

Не варто чекати від клавіатурних шпигунів ексцентричних способів поширення, вони в цілому такі ж, як і у інших шкідливих програм.

Можна виділити наступні методи поширення кейлогерів (без урахування випадків покупки і установки їхнім дбайливим чоловіком / дружиною і використання кейлогерів службами безпеки організацій):

  • При відкритті файлу, приєднаного до електронного листа;
  • При запуску файлу з каталогу, що знаходиться в загальному доступі в peer-to-peer мережі;
  • За допомогою скрипта на веб-сторінках, який використовує особливості інтернет-браузерів, що дозволяють програмам запускатися автоматично при заході користувача на дані сторінки;
  • За допомогою раніше встановленої шкідливої ​​програми, яка вміє завантажувати і встановлювати в систему собі подібні аналоги.

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

до змісту ↑

Методики пошуку клавіатурних шпигунів

Незважаючи на всю витонченість клавіатурних шпигунів для їх «вилову» (пошуку) існують свої, досить успішні методики. Наведемо найпоширеніші з них:

  1. Пошук по сигнатурам.
    Даний метод не відрізняється від типових методик пошуку вірусів. Сигнатурний пошук дозволяє однозначно ідентифікувати клавіатурні шпигуни, при правильному виборі сигнатур ймовірність помилки практично дорівнює нулю. Однак сигнатурний сканер зможе виявляти заздалегідь відомі і описані в його базі даних об'єкти, так що ця база повинна бути великою і її потрібно постійно оновлювати;
  2. Евристичні алгоритми.
    Це методики пошуку клавіатурного шпигуна по його характерним особливостям. Евристичний пошук носить імовірнісний характер, і він найбільш ефективний для пошуку клавіатурних шпигунів найпоширенішого типу - заснованого на пастках, проте подібні методики дають багато помилкових спрацьовувань. Деякі дослідження показали, що існують сотні безпечних програм, які не є клавіатурними шпигунами, але встановлюють пастки для стеження за клавіатурним введенням і мишею. Найбільш поширені приклади - програма Punto Switcher , Програмне забезпечення від мультимедійних клавіатур і мишей;
  3. Моніторинг API-функцій, використовуваних клавіатурними шпигунами.
    Дана методика заснована на перехопленні ряду функцій, що застосовуються клавіатурним шпигуном, зокрема, функцій SetWindowsHookEx, UnhookWindowsHookEx, GetAsyncKeyState, GetKeyboardState. Виклик цих функцій будь-яким додатком дозволяє вчасно підняти тривогу, однак проблеми численних помилкових спрацьовувань будуть аналогічні методу 2;
  4. Відстеження використовуваних системою драйверів, процесів і сервісів.
    Це універсальна методика, застосовна не тільки проти клавіатурних шпигунів. У найпростішому випадку можна застосовувати програми типу Kaspersky Inspector, які відстежують появу в системі нових файлів.

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

до змісту ↑

Узагальнені способи захисту від keylogger

Більшість антивірусних компаній додають відомі кейлоггери в свої бази, і метод захисту від них не відрізняється від методу захисту від будь-якого іншого шкідливого програмного забезпечення:

  • Встановлюється антивірусний продукт;
  • Підтримується актуальний стан баз.

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

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

до змісту ↑

Детальніше про методологію безпеки

Оскільки основною метою використання клавіатурних шпигунів є отримання конфіденційної інформації (номери банківських карт, паролів і т.п.), то розумними методами захисту від них є наступні:

  • Використання одноразових паролів / двухфакторная аутентифікація;
  • Використання систем проактивного захисту;
  • Використання віртуальних клавіатур;
  • Використання No-script розширень для браузерів.

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

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

до змісту ↑

апаратна захист

Для отримання одноразових паролів можуть використовуватися спеціальні апаратні пристрої:

  • У вигляді "брелка" -Ток (наприклад, Blizzard eToken):

У вигляді брелка -Ток (наприклад, Blizzard eToken):

  • У вигляді «калькулятора»:

У вигляді «калькулятора»:

У разі використання пристрою генерації пароля у вигляді "брелка", алгоритм отримання доступу до захищеної інформаційної системи такий:

  1. Користувач підключається до інтернету і відкриває діалогове вікно для введення персональних даних;
  2. Далі користувач натискає на кнопку ключа для генерації одноразового пароля, після цього пароль на 15 секунд з'являється на РК-дисплей брелка;
  3. Користувач вводить в діалоговому вікні свій логін, персональний PIN -код і сгенерированное значення одноразового пароля (зазвичай PIN -код і ключ вводяться послідовно в одне поле passcode);
  4. Введені значення перевіряються на стороні сервера, після чого приймається рішення про те, чи має право їх власник на роботу з закритими даними.

При використанні пристрою у вигляді калькулятора для генерації пароля користувач набирає свій PIN -код на клавіатурі пристрою і натискає кнопку.

до змісту ↑

Найбільш розумне і сучасне рішення

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

Але взагалі кажучи найнадійнішим варіантом зараз є системи двухфакторной авторизації заснованої на генерації тимчасових кодів.

По суті вони є апаратними, т.к для генерації використовується окремий пристрій (телефон, планшет і тп) з встановленим на нього ПО, на кшталт Google Authenticator .

до змісту ↑

Трохи про проактивний захист

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

Головний недолік цього способу - необхідність активної участі користувача для визначення подальших дій з підозрілим кодом.

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

Ось така палка з двома кінцями. І чуть чуть виділимо ще дещо.

до змісту ↑

Віртуальна клавіатура як рішення

Останній з розглянутих способів захисту як від програмних, так і від апаратних кейлоггеров - використання віртуальної клавіатури.

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

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

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

Втім .. Йдемо далі.

до змісту ↑

Програми для поиска и відалення кейлогерів

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

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

Власне, ось весь арсенал, який може нам стати у пригоді:

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

З безкоштовних умовно-спеціалізованих рішень варто придивитися до:

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

Давайте легенько закруглятися.

до змісту ↑

Маленькі такі підсумки

Тепер давайте ще раз підсумуємо все, що було сказано. Отже, по пунктах:

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

От якось так. Тепер до післямові.

до змісту ↑

Післямова

Що хочеться сказати на закінчення.

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

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

Ми в соц.сетях: ВК Facebook Twitter Telegram

Мило, чи не так?