• Главная
  • Карта сайта
Не найдено

Что такое Keylogger (кейлоггер) и как перехватывают данные ввода

Опубликовано: 06.09.2018

Доброго времени суток, всем тем, кто зашел к нам на "огонек". Сегодня речь пойдет о том, что есть 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 сети; С помощью скрипта на веб-страницах, который использует особенности интернет-браузеров, позволяющие программам запускаться автоматически при заходе пользователя на данные страницы; С помощью ранее установленной вредоносной программы, которая умеет скачивать и устанавливать в систему себе подобные аналоги.

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

к содержанию ↑

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

Несмотря на всю изощренность клавиатурных шпионов для их «отлова» (поиска) существуют свои, довольно успешные методики. Приведем самые распространенные из них:

Поиск по сигнатурам.

Данный метод не отличается от типовых методик поиска вирусов. Сигнатурный поиск позволяет однозначно идентифицировать  клавиатурные шпионы, при правильном выборе сигнатур вероятность ошибки практически равна нулю. Однако сигнатурный сканер сможет обнаруживать заранее известные и описанные в его базе данных объекты, так что эта база должна быть большой и ее нужно постоянно обновлять; Эвристические алгоритмы.

Это методики поиска клавиатурного шпиона по его характерным особенностям. Эвристический поиск носит вероятностный характер, и он наиболее эффективен для поиска клавиатурных шпионов самого распространенного типа – основанного на ловушках, однако подобные методики дают много ложных срабатываний. Некоторые исследования показали, что существуют сотни безопасных программ, не являющихся клавиатурными шпионами, но устанавливающих ловушки для слежения за клавиатурным вводом и мышью. Наиболее распространенные примеры – программа Punto Switcher , программное обеспечение от мультимедийных клавиатур и мышей; Мониторинг API-функций, используемых клавиатурными шпионами.

Данная методика основана на перехвате ряда функций, применяемых клавиатурным шпионом, в частности, функций SetWindowsHookEx , UnhookWindowsHookEx, GetAsyncKeyState, GetKeyboardState . Вызов данных функций каким-либо приложением позволяет вовремя поднять тревогу, однако проблемы многочисленных ложных срабатываний  будут аналогичны методу 2 ; Отслеживание используемых системой драйверов, процессов и сервисов.

Это универсальная методика, применимая не только против клавиатурных шпионов. В простейшем случае можно применять программы типа Kaspersky Inspector , которые отслеживают появление в системе новых файлов.

Чаще всего, - это всё то, что касается методик поиска, теперь пройдемся по способам защиты как от программных, так и от аппаратных кейлоггеров.

к содержанию ↑

Обобщенные способы защиты от keylogger

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

Устанавливается антивирусный продукт; Поддерживается актуальное состояние баз.

Что, впрочем, помогает не всегда, ибо, т.к. большинство антивирусных продуктов относит кейлоггеры к классу потенциально опасного программного обеспечения, то следует удостовериться, что при настройках по умолчанию используемый антивирусный продукт детектирует наличие программ данного класса. Если это не так, то для их детектирования необходимо выставить подобную настройку вручную. Это позволит защититься от большинства широко распространенных кейлоггеров.

Рассмотрим подробнее методы защиты с неизвестными кейлоггерами или кейлоггерами, изготовленными специально для атаки конкретной системы.

к содержанию ↑

Подробнее про методологию безопасности

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

Использование одноразовых паролей/двухфакторная аутентификация; Использование систем проактивной защиты; Использование виртуальных клавиатур; Использование No-script расширений для браузеров.

Одноразовый пароль действует только один раз, при этом часто ограничивается и период времени, в течение которого им можно воспользоваться.

Поэтому даже если такой пароль будет перехвачен, злоумышленник уже не сможет воспользоваться им для получения доступа к конфиденциальной информации.

к содержанию ↑

Аппаратная защита

Для получения одноразовых паролей могут использоваться специальные аппаратные устройства:

В виде "брелка"-токена (например, Blizzard eToken ):

В виде «калькулятора»:

В случае использования устройства генерации пароля в виде "брелка", алгоритм получения доступа к защищенной информационной системе таков:

Пользователь подключается к интернету и открывает диалоговое окно для ввода персональных данных; Далее пользователь нажимает на кнопку ключа для генерации одноразового пароля, после этого пароль на 15 секунд появляется на ЖК -дисплее брелка; Пользователь вводит в диалоговом окне свой логин, персональный PIN -код и сгенерированное значение одноразового пароля (обычно PIN -код и ключ вводятся последовательно в одно поле passcode); Введённые значения проверяются на стороне сервера, после чего принимается решение о том, имеет ли право их владелец на работу с закрытыми данными.

При использовании устройства в виде калькулятора для генерации пароля пользователь набирает свой PIN -код на клавиатуре устройства и нажимает кнопку.

к содержанию ↑

Наиболее разумное и современное решение

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

Но вообще говоря самым надежным вариантом сейчас являются системы двухфакторной авторизации основанной на генерации временных кодов.

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

 

к содержанию ↑

Немного про проактивную защиту

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

Главный недостаток этого способа — необходимость активного участия пользователя для определения дальнейших действий с подозрительным кодом.

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

Вот такая палка о двух концах. И чуть чуть выделим еще кое-что.

к содержанию ↑

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

Последний из рассматриваемых способов защиты как от программных, так и от аппаратных кейлоггеров — использование виртуальной клавиатуры.

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

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

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

Впрочем.. Идем далее.

к содержанию ↑

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

Конечно, было бы невежливо с нашей стороны, если бы мы не рассмотрели более подробно и обстоятельно программные способы борьбы с этими «недовирусами» и «недотроянами».

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

Собственно, вот весь арсенал, который может нам оказаться полезным:

Почти любой антивирусный продукт.

Большая часть антивирусов, в той или иной мере, может находить клавиатурные шпионы, но полагаться только на них нет смысла, ибо, как уже говорилось выше, это таки не совсем вирус. Утилиты, реализующие механизмы сигнатурного и эвристического поиска.

Примером может служить утилита AVZ , сочетающая сигнатурный сканер и  систему обнаружения  клавиатурных шпионов на базе ловушек; Специализированные утилиты и программы, предназначенные для обнаружения клавиатурных шпионов и блокирования их работы.

Подобные программы наиболее эффективны для обнаружения и блокирования кейлоггеров поскольку, как правило, могут блокировать практически все их разновидности.

Из бесплатных условно-специализированных решений стоит присмотреться к:

Есть конечно еще, но этого набора должна хватить. В крайнем случае, как уже говорилось, пригодится любой разумный антивирус, благо бесплатный 30 -ти дневный период сейчасть практически у всех. Можно еще конечно установить какой-нибудь такой Avast .. В общем, дело техники.

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

к содержанию ↑

Маленькие такие итоги

Теперь давайте еще раз подытожим все, что было сказано. Итак, по пунктам:

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

Вот как-то так. Теперь к послесловию.

к содержанию ↑

Послесловие

Что хочется сказать в заключение.

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

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

Новости
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью

rss