Кейлоггер
Кейлоггер (от англ. keylogger, key — клавиша и logger — регистратор) — это программное обеспечение или аппаратное устройство, предназначенное для скрытой регистрации нажатий клавиш на клавиатуре компьютера, ноутбука или мобильного устройства. Кейлоггеры относятся к классу шпионского программного обеспечения (шпионского ПО, spyware) и могут использоваться как в легитимных целях (например, родительский контроль, мониторинг сотрудников, отладка программного обеспечения), так и для незаконного сбора конфиденциальной информации (паролей, номеров банковских карт, личной переписки).
История
Первые упоминания о программных кейлоггерах относятся к началу 1980-х годов, когда с развитием персональных компьютеров возникла потребность в средствах мониторинга и отладки. Одним из ранних примеров является программа, созданная для операционной системы MS-DOS, которая записывала последовательности нажатий клавиш в текстовый файл для последующего анализа разработчиками.
В 1990-е годы, с распространением интернета и электронной почты, кейлоггеры начали активно использоваться злоумышленниками. В 1996 году был зафиксирован первый случай массового распространения кейлоггера через вредоносное вложение в электронном письме (троян Win32/Keylogger). В 2000-е годы кейлоггеры стали неотъемлемой частью многих банковских троянов (например, Zeus, SpyEye), которые перехватывали данные для входа в системы дистанционного банковского обслуживания.
Аппаратные кейлоггеры появились несколько позже, в конце 1990-х — начале 2000-х годов, и представляли собой компактные устройства, подключаемые между клавиатурой и компьютером (PS/2 или USB-переходники). С развитием мобильных технологий появились кейлоггеры для смартфонов, работающие на уровне операционной системы (Android, iOS) или встраиваемые в сторонние клавиатуры.
Классификация
Кейлоггеры делятся на два основных типа по способу реализации: программные и аппаратные.
Программные кейлоггеры
Программные кейлоггеры — это приложения, устанавливаемые на устройство пользователя. Они работают на уровне операционной системы или прикладного программного обеспечения. Основные подтипы:
- Системные кейлоггеры — перехватывают системные вызовы, связанные с обработкой клавиатурного ввода (например, функции
GetAsyncKeyStateв Windows,read()в Linux). Они могут быть реализованы в виде драйверов устройств или динамических библиотек (DLL). - Кейлоггеры на основе перехвата API — внедряются в процессы приложений (например, браузеров, текстовых редакторов) и перехватывают сообщения Windows (WM_KEYDOWN, WM_CHAR) или аналогичные события в других ОС.
- Кейлоггеры на уровне ядра — наиболее скрытые, работают на уровне ядра операционной системы, перехватывая прерывания от клавиатуры до того, как они будут обработаны пользовательскими приложениями. Обнаружение таких кейлоггеров требует специальных средств.
- Формграбберы (form grabbers) — специализированные кейлоггеры, которые перехватывают данные, вводимые в веб-формы, до их отправки на сервер. Часто используются в банковских троянах.
- Кейлоггеры для мобильных устройств — работают на Android (через Accessibility Service или как сторонние клавиатуры) или iOS (ограниченно, в основном через джейлбрейк или вредоносные профили).
Аппаратные кейлоггеры
Аппаратные кейлоггеры — это физические устройства, подключаемые к компьютеру или встраиваемые в его периферию. Они не требуют установки программного обеспечения и не оставляют следов в операционной системе.
- Клавиатурные снифферы — устройства, подключаемые между клавиатурой и компьютером (через разъем PS/2 или USB). Они записывают нажатия клавиш во внутреннюю память, которая может быть считана злоумышленником при физическом доступе.
- Встраиваемые кейлоггеры — устанавливаются непосредственно внутрь корпуса клавиатуры или компьютера (например, на системную плату). Могут быть реализованы на основе микроконтроллеров.
- Беспроводные кейлоггеры — перехватывают радиосигнал от беспроводных клавиатур (Bluetooth, Wi-Fi, RF). Для этого используются специальные приемники (снифферы), настроенные на частоту работы клавиатуры.
- Кейлоггеры на основе оптических камер — не являются устройствами в традиционном смысле, но могут использоваться для визуального наблюдения за клавиатурой (например, скрытая камера, направленная на клавиатуру).
Принцип работы
Программные кейлоггеры
Принцип работы программного кейлоггера зависит от его типа, но в общем виде включает следующие этапы:
- Установка — кейлоггер внедряется в систему (например, через вредоносное ПО, драйвер или расширение браузера).
- Перехват — программа регистрирует события нажатия и отпускания клавиш. В Windows это может быть реализовано через глобальные хуки (SetWindowsHookEx), в Linux — через перехват системных вызовов (ptrace, /dev/input/eventX).
- Логирование — перехваченные данные (код клавиши, время нажатия, контекст — активное окно, приложение) записываются в файл (обычно в зашифрованном виде) или отправляются на удаленный сервер.
- Сокрытие — многие кейлоггеры маскируются под легитимные процессы (например, svchost.exe, explorer.exe), используют руткиты для скрытия своих файлов и процессов от антивирусных программ.
Аппаратные кейлоггеры
Аппаратные кейлоггеры работают на физическом уровне. Например, USB-кейлоггер подключается между клавиатурой и USB-портом компьютера. Он эмулирует клавиатуру для компьютера (принимает сигналы от клавиатуры и передает их дальше) и одновременно записывает все нажатия в свою энергонезависимую память. Для считывания данных злоумышленнику необходимо физически извлечь устройство и подключить его к своему компьютеру.
Применение
Легитимное применение
- Родительский контроль — программы для мониторинга активности детей в интернете (например, KidLogger, MSpy).
- Корпоративный мониторинг — контроль действий сотрудников на рабочих компьютерах (в соответствии с локальными нормативными актами и трудовым законодательством).
- Аудит безопасности — тестирование систем на устойчивость к перехвату ввода (пентест).
- Отладка программного обеспечения — запись последовательности действий пользователя для воспроизведения ошибок.
- Судебная экспертиза — сбор доказательств в ходе расследования компьютерных преступлений (с санкции суда).
Нелегитимное применение
- Кража паролей и учетных данных — перехват логинов и паролей от банковских систем, социальных сетей, электронной почты.
- Фишинг и социальная инженерия — сбор данных для последующего использования в атаках.
- Промышленный шпионаж — перехват коммерческой информации, вводимой с клавиатуры.
- Нарушение приватности — слежка за личной перепиской, дневниками, поисковыми запросами.
Методы обнаружения и защиты
Обнаружение
- Антивирусное ПО — современные антивирусы (Kaspersky, Dr.Web, ESET) обнаруживают большинство известных программных кейлоггеров по сигнатурам и эвристическому анализу.
- Анализ процессов — в Windows можно использовать диспетчер задач или сторонние утилиты (Process Explorer) для выявления подозрительных процессов, загружающих DLL-библиотеки для перехвата клавиш.
- Проверка хуков — утилиты (например, RootkitRevealer, GMER) позволяют обнаружить глобальные хуки клавиатуры, установленные кейлоггером.
- Физический осмотр — для выявления аппаратных кейлоггеров необходимо проверить разъемы клавиатуры, USB-порты и внутренние компоненты компьютера.
- Анализ сетевого трафика — подозрительная активность (отправка данных на неизвестные серверы) может указывать на наличие кейлоггера.
Защита
- Использование антивирусов и брандмауэров — регулярное обновление баз и сканирование системы.
- Двухфакторная аутентификация (2FA) — даже при перехвате пароля злоумышленник не сможет войти в систему без второго фактора (одноразовый код, биометрия).
- Виртуальные клавиатуры — экранные клавиатуры (например, в Windows, мобильных ОС) не генерируют аппаратных нажатий, что затрудняет перехват для аппаратных кейлоггеров.
- Менеджеры паролей — автоматический ввод паролей (через буфер обмена или API) снижает риск перехвата с клавиатуры.
- Шифрование трафика — использование HTTPS, VPN, SSH защищает передаваемые данные от перехвата на уровне сети.
- Физическая защита — проверка целостности устройств, использование клавиатур с защитой от аппаратных кейлоггеров (например, с оптическим интерфейсом).
Правовой статус
В большинстве стран мира, включая Российскую Федерацию, использование кейлоггеров без согласия пользователя является незаконным. В России ответственность за незаконный сбор информации (в том числе с помощью кейлоггеров) наступает по нескольким статьям Уголовного кодекса РФ:
- Статья 138 УК РФ — «Нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений».
- Статья 272 УК РФ — «Неправомерный доступ к компьютерной информации».
- Статья 273 УК РФ — «Создание, использование и распространение вредоносных компьютерных программ».
Легитимное применение кейлоггеров (например, в рамках родительского контроля или корпоративного мониторинга) должно соответствовать законодательству о защите персональных данных (ФЗ-152 «О персональных данных») и трудовому кодексу, в частности, требовать уведомления и согласия пользователя.
См. также
- Шпионское программное обеспечение
- Троянская программа
- Руткит
- Клавиатурный шпион
- Антивирусная программа
Источники
- Кейлоггеры: виды, принципы работы и методы защиты // Журнал «Хакер», 2021.
- Титов А. В. «Методы обнаружения программных кейлоггеров в операционных системах семейства Windows» // Вестник МГТУ им. Н. Э. Баумана, 2019.
- Петров С. И. «Компьютерная безопасность: защита от шпионского ПО» // Издательство «БХВ-Петербург», 2020.
- Уголовный кодекс Российской Федерации, статьи 138, 272, 273.
- Федеральный закон «О персональных данных» от 27.07.2006 № 152-ФЗ.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →