Кейлоггеры: что нам о них известно?
Слово «кейлоггер» в русском языке (иногда встречается написание «кейлогер») образовано из двух слов, заимствованных из английского языка: «key» («ки», в данном случае — «клавиша») и «logger» («логгер», в данном случае — «регистратор») и правильно произносится
Назначение предмета обычно становится понятным по его названию: кейлоггером называется устройство или специализированная программа (драйвер, служба, «демон» или приложение), которые предназначены для регистрации различных действий пользователя на рабочей станции или консоли сервера. Регистрируются (в зависимости от настроек и функционала кейлоггера) нажатия клавиш физической или виртуальной (экранной) клавиатуры, клавиш мыши, перемещение указателя мыши
Все кейлоггеры можно разделить на три группы:
1. Аппаратные (представляющие собой дополнительные физические устройства);
2. Программные (входящие в состав комплексов программного обеспечения или отдельные приложения).
3. Третья группа представляет собой шпионскую аппаратуру, предназначенную для скрытного получения информации из защищённых систем и объектов: это акустические кейлоггеры.
получения информации из защищённых систем и объектов. Акустический кейлоггер является частью скрытой системы подслушивания. Это миниатюрное устройство со встроенным мощным микрофоном, системой хранения информации большой ёмкости (или оборудование, передающее информацию по кабелю либо через эфирное соединение — радиоканал/
Акустические кейлоггеры в РФ признаны действующим Законодательством специальной техникой. Свободный оборот запрещён Уголовным Кодексом Российской Федерации (ст. 138.1 УК РФ, введена Федеральным законом N
Аппаратные кейлоггеры подключаются в «разрыв» соединения клавиатуры (с разъёмом PS/2 или USB) и представляют собой небольшие устройства с собственной памятью или со сменной картой памяти (обычно используются
Администратор безопасности или системный администратор, имеющий доступ к кейлоггеру, всегда может заменить
Преимущества аппаратного кейлоггера:
— легкая установка и подключение, это может выполнить даже обычный пользователь;
— кейлоггер не требует дополнительного питания (питанием обеспечивает сам порт PS/2 или USB);
— если кейлоггер записывает информацию на карту памяти, то небольшая карта памяти (объёмом 2 гигабайта) сможет сохранить информацию о более 2 миллиардах
— проверка наличия и работоспособности кейлоггера не представляет сложности;
— невысокая цена.
Наряду с преимуществами, аппаратные кейлоггеры обладают недостатками:
— кейлоггер установлен «открыто»,
— пользователь может удалить кейлоггер или вынуть карту памяти, что сделает контроль ввода невозможным. Этот недостаток можно обойти, опломбировав разъёмы и проверяя поступление информации через беспроводной модуль;
— аппаратные кейлоггеры обладают небольшими возможностями. Перехват нажатий клавиш мыши и перемещения её курсора и выполнение скриншотов невозможны.
Применение аппаратных кейлоггеров рекомендуется, когда стоит задача разового непродолжительного контроля в небольших организациях: централизованное управление аппаратными кейлоггерами, при наличии в них модулей беспроводной связи, невозможно.
Особым случаем использования аппаратных кейлоггеров является применение в защищённых устройствах (ноутбуках и клавиатурах). В этом случае модуль аппаратного кейлоггера является частью устройства и находится внутри, а изъять кейлоггер можно путём разрушения устройства. Чтение информации с аппаратных кейлоггеров допустимо в особых условиях, обычно с использованием самого устройства; удалённое чтение информации невозможно. Аппаратные кейлоггеры широко используются государственными и частными силовыми структурами, на производствах, как часть технологических комплексов. Производство их налажено за рубежом и в Российской Федерации, эти устройства присутствуют на рынке, стоимость их сравнительно выше, чем с устройствами бытового класса сравните.
Нами была рассмотрена группа аппаратных кейлоггеров. Следует заметить, что их применение в обычных условиях ограничено небольшими возможностями и узкой областью применения. Считать аппаратные кейлоггеры широко распространённым оборудованием — ошибочно.
Говоря о кейлоггерах, обычно имеют в виду вторую группу кейлоггеров — программную. Программные кейлоггеры получили наиболее широкое распространение в информационной среде.
В разных статьях авторами предлагаются различные классификации программных кейлоггеров, что неудивительно — единой схемы классификации специалистами до сих пор не выработано.
Мы предлагаем классифицировать программные кейлоггеры по следующим критериям:
— опознавание системами обнаружения угроз (антивирусы, детекторы уязвимостей): опознаваемое или неопознаваемое (
— наличие дополнительного функционала: является кейлоггер «классическим»,
— тип клавиатурного кейлоггера: высокоуровневый (перехватывающий только введённый в приложение текст) или низкоуровневый (перехватывающий нажатия управляющих и модифицирующих — Ctrl, Alt, Shift — клавиш);
— тип программы: модуль приложения (библиотека), драйвер, служба, «демон» (для операционных систем типа *NIX), часть операционной системы, независимое самостоятельное приложение;
— постоянное место хранения перехваченной информации: локально или удалённое хранилище (сервер
Для каждого типа программы используются разные методы перехвата клавиатурного потока. Важно: распознаётся кейлоггер системами обнаружения угроз или нет: если нет — пользователь НИКОГДА не сможет узнать, что он вводит с клавиатуры или посредством мыши становится известным
Программный кейлоггер является «шпионским» модулем, многие пользователи и системные администраторы считают, что все без исключения детекторы уязвимостей и антивирусные программы обязаны определять наличие таких модулей в составе операционных систем и приложений, а в идеале — удалять их.
Это не так. Скрытно присутствующие в системах кейлоггеры не будут определяться в следующих случаях:
— кейлоггеры, разрабатываемые программистами в подразделениях государственных специальных служб для особых целей. Тут возникает интересная коллизия — в «дружественных» разработчикам такого кейлоггера антивирусах и детекторах антишпионского программного обеспечения сигнатуры этого кейлоггера скорее всего не будет, а в антивирусах «недружественных» будет, поэтому одни антивирусы и детекторы вредоносных программ будут определять наличие этого кейлоггера, а другие — нет;
— кейлоггеры, входящие в состав специализированных операционных систем, используемых в особо защищаемых
— кейлоггеры, разработанные для решения одной, частной задачи хищения конфиденциальной информации с конкретного компьютера. Такой кейлоггер просто не успевает попасть в базу данных антивируса или детектора шпионских программ, потому что быстро и скрытно выполняет поставленную задачу, после чего самоуничтожается. Это самый опасный случай использования кейлоггера, учитывая, что он может быть создан путём модификации исходных кодов, которые в огромном количестве выложены в интернете, иногда даже в качестве учебного примера;
— кейлоггеры, встроенные в корпоративные программные продукты в области информационной безопасности. К сожалению, из этого правила есть исключения — кейлоггер, входящий в состав программного комплекса контроля работы пользователей StaffCop Enterprise, определяется как шпионская угроза большинством имеющихся антивирусов. К счастью, есть способы обхода этого ограничения — можно добавить угрозу StaffCop по её имени или по имени процесса/файла программ StaffCop.
Во всех остальных случаях на основе алгоритмов эвристического анализа или на основе анализа поведения приложений (например, увеличению интервала времени между нажатием клавиши и реакцией приложения на это нажатие) наличие кейлоггера должно определяться антивирусом или детектором шпионского программного обеспечения.
Классификации кейлоггеров:
Классификация кейлоггеров по выполняемым функциям. «Классические» кейлоггеры по функционалу фактически повторяют аппаратные кейлоггеры, устанавливаемые между
Классификация клавиатурных кейлоггеров по уровню (высокоуровневый или низкоуровневый) проста. Высокоуровневый кейлоггер фиксирует введённый пользователем в приложение текст, т.е сохраняется только результат работы пользователя. Низкоуровневый — позволяет сохранять ещё и последовательность создания этого результата,
Классификация кейлоггеров по месту хранения перехваченной информации: кейлоггер может хранить перехваченную информацию либо локально (на том же самом компьютере, обычно местом хранения является файл на диске) или передавать её на сервер. Следует отметить, что самым разумным будет сочетать оба метода: если сервер, на который кейлоггер отправляет информацию, доступен, то перехваченная информация отправляется периодически, через некоторый интервал времени, если нет — сохраняется локально.
Для того чтобы понять классификацию кейлоггеров в зависимости от типа программы, необходим экскурс по структуре операционной системы. Сделаем это на основе архитектуры
На рисунке показана структура
Для понимания типов программ кейлоггеров из этой схемы нам надо уяснить следующее:
— операционная система имеет два глобальных режима работы: режим пользователя (по умолчанию приложения в этом слое работают с правами пользователя, если не указано иное) и режим ядра операционной системы (в этом слое все программы работают с наивысшими правами);
— службы (служебные сервисы) относятся к пользовательскому слою операционной системы;
— драйверы устройств работают на одном уровне с ядром операционной системы и могут встраиваться в него.
На дальнейших иллюстрациях расположение кейлоггера в операционной системе будет отмечаться
Первая разновидность кейлоггеров по типу программы — это кейлоггер, являющийся либо отдельным приложением (
Такие кейлоггеры являются аналогами аппаратных кейлоггеров, только с более расширенными функциями. Они практически безопасны:
— если кейлоггер — отдельное приложение, оно легко обнаруживается пользователем, так как запускается из автозагрузки и не может быть выгружено только в том случае, если запущено с правами администратора;
— если кейлоггер — часть приложения более высокого уровня (например,
К явным преимуществам таких кейлоггеров является лёгкость их разработки. Исходные коды кейлоггеров — отдельных приложений и модулей приложений более высокого уровня в большом количестве выложены в сети Интернет, иногда просто как учебные примеры по программированию на языках высокого уровня, например,
Недостатки таких кейлоггеров — если он является отдельным приложением, может быть легко обнаружен и удалён из системы. А кейлоггер — модуль приложения более высокого уровня — за пределами этого приложения не активен, соответственно, деятельность пользователя оказывается вне контроля. Опасным
Вторая разновидность кейлоггеров по типу программы — это кейлоггер, устанавливаемый как служба в операционной системе Windows. К этому типу относятся кейлоггеры-«демоны» в ОС семейства *NIX.
Это «хитрая» разновидность кейлоггеров, так как она не привязывается к
Такой кейлоггер гораздо опаснее, если его присутствие в системе не обнаружено. Кейлоггер взаимодействует со всеми приложениями и службами, собирая с них информацию о действиях пользователя. Обнаружить его можно, проверяя вручную список служб ОС Windows, так как набор используемых служб известен, такую проверку из системных администраторов и администраторов безопасности мало кто делает. Антивирусы и детекторы шпионского программного обеспечения могут обнаружить кейлоггер либо в случае, когда сигнатура кейлоггера находится в базе данных антивируса, либо путём эвристического анализа работы компьютера, что достаточно сложно. Но разработать такой кейлоггер, нежели кейлоггеры первой разновидности — «на коленке» создать не получится, нужно обладать знаниями на уровне администратора ОС или системного программиста.
Наиболее часто кейлоггеры этого типа появляются на компьютерах после установки нелицензионного ПО, популярных игровых программ. Не случайно почти все утилиты «взлома» лицензионного ПО требуют отключения антивируса в момент запуска утилиты, осуществляющей снятие лицензионных ограничений. И если пользователь делает это — то кто, кроме разработчика системы «взлома», знает, что делает эта утилита на компьютере пользователя, какие процессы запускает, какие службы устанавливает, какая информация будет этими службами собираться и куда отправляться?
Опасной опасна установка нелицензионного ПО в корпоративных сетях. Системным администраторам и администраторам информационной безопасности следует строго следить за программным обеспечением, которое устанавливают пользователи: лучше вообще запретить пользователям установку программного обеспечения. «Особо продвинутые» пользователи применяют портируемое (portable) ПО, распространяемое на съёмных носителях — оно не требует установки и является нелицензионным. Для отслеживания таких инцидентов применяйте специализированное ПО, которое контролирует запуск приложений на рабочей станции пользователя. Хорошей практикой является применение программного комплекса контроля работы пользователей StaffCop Enterprise, который позволяет запрещать запуск пользователем программы по имени исполняемого файла и позволяет блокировать применение на рабочих станциях съёмных
«Системные» варианты кейлоггеров по типу программ — это
— он устанавливается как драйвер физической клавиатуры: в этом случае
— он устанавливается как драйвер виртуальной клавиатуры, встраиваясь в цепочку драйверов как дополнение основного драйвера клавиатуры: в этом случае при нажатии клавиши сначала отрабатывает имеющийся драйвер клавиатуры (стандартный или нестандартный), а потом результат нажатия передаётся
Обнаружение и, если необходимо, удаление установленных
— как правило, системное имя
—
Кейлоггеры, интегрированные в ядро операционной системы, применяются только с двумя целями:
— когда разрабатывается специализированная версия операционной системы, предназначенная для работы в условиях необходимости особой защиты информации. Это специализированные защищённые информационные системы и базы данных, а также защищённые системы управления технологическими системами и производствами (оборонные производства, системы управления атомными электростанциями
— в том случае, когда запланирована закладка «чёрных ходов» («бэкдоров») в выпускаемые на рынок или собираемые ограниченным тиражом выпуски операционных систем, которые предполагается использовать в будущем для противозаконного хищения информации.
Внедрение и удаление кейлоггера из системы возможно одним способом — пересборкой ядра операционной системы из исходных кодов, эта операция не всегда возможна — например, исходный код ядра операционной системы Windows является закрытым. В системах, основанных на Linux, пересборка ядра из исходных кодов возможна, но следует в этом случае чётко представлять себе, с какими модулями кейлоггер может взаимодействовать, в какие программные цепочки он встроен и как корректно его внедрить/удалить: задача может быть весьма нетрививальной, со сложным и неочевидным решением.
Можно предложить единственный выход случае, если системный администратор или администратор по безопасности убедился в наличии кейлоггера такого типа в осматриваемой им операционной системе (если ранее о наличии кейлоггера ему было неизвестно): полная замена операционной системы, установленной на оборудовании (сервер, рабочая станция, технологическое оборудование) на другую версию.
Говорить о допустимости и законности акустических кейлоггеров не имеет никакого смысла: как было сказано изначально, Уголовным кодексом Российской Федерации вообще запрещён свободный оборот таких устройств, и их использование частным лицом или негосударственной организацией является уголовным преступлением.
Допустимым является установка кейлоггера в качестве самостоятельного приложения либо части программного комплекса (включая аппаратные продукты, в состав которых входит модуль кейлоггера) с ведома владельца (администратора информационной безопасности, системного администратора) информационной системы или владельца компьютера. Желательно, согласие обладателей прав на контролируемое оборудование или программное обеспечение подтверждалось письменно (договор, акт об установке
Недопустимым и противоречащим законодательству Российской Федерации является установка кейлоггера без согласия владельца (администратора информационной безопасности, системного администратора) информационной системы или владельца компьютера. Такое использование кейлоггеров (без разницы, программных модулей или аппаратных устройств) квалифицируется как использование специальной техники, предназначенной для несанкционированного получения информации, и является серьёзным инцидентом информационной безопасности.
Фраза «Кто владеет информацией — тот владеет миром» в современных условиях актуальна как никогда, поэтому информацию следует защищать всеми усилиями. И кейлоггер может стать в этом деле одним из первых помощников, но не стоит и забывать о том, что он может стать и мощнейшим оружием хищения информации. И только от системных администраторов и администраторов информационной безопасности зависит, кем будет для них кейлоггер — другом и союзником или врагом.