Слово «кейлоггер» в русском языке (иногда встречается написание «кейлогер») образовано из двух слов, заимствованных из английского языка: «key» («ки», в данном случае – «клавиша») и «logger» («логгер», в данном случае – «регистратор») и правильно произносится «ки-логгер», но в качестве нормы де-факто принят названный первым вариант произношения.
Назначение предмета обычно становится понятным по его названию: кейлоггером называется устройство или специализированная программа (драйвер, служба, «демон» или приложение), которые предназначены для регистрации различных действий пользователя на рабочей станции или консоли сервера. Регистрируются (в зависимости от настроек и функционала кейлоггера) нажатия клавиш физической или виртуальной (экранной) клавиатуры, клавиш мыши, перемещение указателя мыши и т.д. Это справедливо для «классического» кейлоггера, но многие кейлоггеры, как аппаратные, так и особенно программные, имеют дополнительные функции, вроде снятия скриншотов (фотографий экрана) монитора пользователя, сохранения содержимого буфера обмена и даже снятия видео экрана пользователя в течение некоторого времени.
Все кейлоггеры можно разделить на три группы: две из них могут использоваться совершенно законно. Это аппаратные (представляющие собой дополнительные физические устройства) и программные (входящие в состав комплексов программного обеспечения или отдельные приложения). Третья группа представляет собой чисто шпионскую аппаратуру, предназначенную для скрытного получения информации из особо защищённых систем и объектов: это акустические кейлоггеры.
Акустические кейлоггеры являются чисто шпионским оборудованием, предназначенным для скрытного получения информации из особо защищённых систем и объектов. Акустический кейлоггер обычно является частью скрытой системы подслушивания. Фактически это миниатюрное устройство, содержащее внутри себя мощный микрофон, систему хранения информации большой ёмкости (или оборудование, передающее информацию по кабелю либо через эфирное соединение – радиоканал/Wi-Fi/Bluetooth), а также программное обеспечение, которое умеет определять характер звука – разговор это, музыка или нажатие клавиш клавиатуры. Акустические кейлоггеры имеют очень узкую специализацию: они различают тональные DTMF-коды нажатия кнопок телефона или экранных клавиш смартфона, восстанавливая последовательность их нажатия. Таким образом, акустические кейлоггеры восстанавливают текст, набранный на телефоне или смартфоне, и передают его за пределы охраняемого периметра. Пример шпионского устройства, содержащего внутри себя акустический кейлоггер, приведён на илл.1.
Акустические кейлоггеры в Российской Федерации признаны действующим Законодательством специальной техникой. Свободный оборот их (ввоз, вывоз, продажа, приобретение и использование) запрещён Уголовным Кодексом Российской Федерации (ст. 138.1 УК РФ, введена Федеральным законом N 420-ФЗ от 07.12.2011 г.). Использование подобной специальной техники разрешается исключительно сотрудникам государственных специальных служб Российской Федерации, а также сотрудникам полиции в определённых условиях и только по решению суда, что регламентируется федеральным законодательством. На этом рассмотрение третьей группы кейлоггеров в рамках данной статьи завершено.
Аппаратные кейлоггеры (первая группа) подключаются обычно в "разрыв" соединения клавиатуры (с разъёмом PS/2 или USB) и представляют собой небольшие устройства либо с собственной памятью, либо со сменной картой памяти (обычно используются microSD-карты). Более «продвинутые» устройства оснащены модулями беспроводной связи (Bluetooth или Wi-Fi) и позволяют не только сохранять результаты перехвата нажатий клавиш, но и передавать их по сети на файловые хранилища или на рабочие станции администраторов систем безопасности. На илл.2.1 показаны примеры таких устройств, на илл.2.2 – подключённое устройство для клавиатур типа USB.
Администратор безопасности или системный администратор, имеющий доступ к такому кейлоггеру, всегда имеет возможность заменить microSD-карту, чтобы сохранить информацию, которую успел собрать кейлоггер, и оперативно её исследовать. Если же аппаратный кейлоггер оснащён модулем беспроводной связи, то информация с него может поступать в режиме онлайн.
К числу преимуществ кейлоггеров такого типа можно отнести следующие:
установка и подключение аппаратного кейлоггера подобного типа не представляет трудностей, это может выполнить даже обычный пользователь;
кейлоггер, хоть и является аппаратным устройством, не требует дополнительного питания (питанием обеспечивает сам порт PS/2 или USB);
если кейлоггер записывает информацию на карту памяти, то даже очень небольшая карта памяти (например, объёмом 2 гигабайта) сможет сохранить информацию о более чем 2 миллиардах байт-кодов нажатий клавиш, что даже в случае использования кодировки Unicode более чем достаточно для записи работы пользователя в течение всей его жизни;
проверка наличия и работоспособности кейлоггера также не представляет сложности;
невысокая цена таких устройств.
Но наряду с преимуществами, кейлоггеры этого типа обладают и существенными недостатками:
кейлоггер установлен «открыто», т.е. пользователь знает, что на его рабочей станции или сервере установлен кейлоггер, соответственно, пользователь будет более скрытен в электронном общении по сравнению с работой без кейлоггера;
пользователь может удалить кейлоггер или вынуть карту памяти, что сделает контроль ввода невозможным. Этот недостаток можно обойти, опломбировав разъёмы и периодически проверяя поступление информации через беспроводной модуль;
такие кейлоггеры обладают очень небольшими возможностями. Так, перехват нажатий клавиш мыши и перемещения её курсора, а тем более выполнение скриншотов вряд ли возможно.
Исходя из вышесказанного, применение таких кейлоггеров можно рекомендовать только тогда, когда стоит задача разового непродолжительного контроля в небольших организациях: очевидно, что централизованное управление такими кейлоггерами, даже при наличии в них модулей беспроводной связи, невозможно в принципе.
Совершенно особым случаем использования аппаратных кейлоггеров является их применение в особо защищённых устройствах (ноутбуках и клавиатурах). В этом случае модуль аппаратного кейлоггера является неотъемлемой частью самого устройства и находится внутри, а изъять такой кейлоггер можно только путём разрушения устройства (что, кстати, не всегда возможно, учитывая прочность материалов, из которых делается устройство). Чтение информации с таких кейлоггеров допустимо только в особых условиях, причём обычно – только с использованием самого устройства; удалённое чтение информации невозможно в принципе. Такие устройства широко используются различными государственными и частными силовыми структурами (в основном для работы вне помещений), или на производствах, как часть технологических комплексов. Производство их налажено как за рубежом, так и в Российской Федерации, эти устройства присутствуют на рынке, правда, стоимость их по сравнению с обычными устройствами бытового класса довольно велика. Примеры таких устройств приведены на илл.3-1 (особо защищённый ноутбук в металлическом корпусе) и илл.3-2 (особо защищённая клавиатура, материал клавиш и корпуса – также металл).
Илл.3-1. Особо защищённый ноутбук в металлическом корпусе,
оснащённый встроенным аппаратным кейлоггером
Илл.3-2. Особо защищённая клавиатура в металлическом корпусе с трек-болом (шариком-манипулятором, аналогом устройства типа «мышь»), оснащённая встроенным аппаратным кейлоггером
Учитывая крайне небольшую распространённость подобных устройств среди обычных пользователей, системных администраторов и специалистов по информационной безопасности, а также очень узкую область их применения – обсуждать в данной статье преимущества и недостатки таких систем не имеет смысла. Скажем лишь, что такие кейлоггеры полностью удовлетворяют тем задачам, которые перед ними ставятся, а их недостатки обращены в их достоинства.
Итак, нами была рассмотрена группа аппаратных кейлоггеров. Следует заметить, что применение аппаратных кейлоггеров в обычных условиях довольно ограничено: в первом случае – их небольшими возможностями, во втором – крайне узкой областью их применения. Поэтому считать аппаратные кейлоггеры широко распространённым оборудованием – ошибочно.
Говоря о кейлоггерах, обычно имеют в виду вторую группу кейлоггеров – программную. Что неудивительно: программные кейлоггеры получили наиболее широкое распространение в информационной среде.
В разных статьях, обсуждающих кейлоггеры, авторами предлагаются различные классификации программных кейлоггеров, что неудивительно – единой схемы классификации специалистами до сих пор не выработано. Не будет исключением и настоящая статья – автор, не сумев среди изученных им материалов в сети Интернет и статей в специализированных журналах выбрать классификацию, которая бы его удовлетворяла полностью, принял решение предложить свою классификацию. Итак, все программные кейлоггеры автор предлагает классифицировать по следующим критериям:
опознавание системами обнаружения угроз (антивирусы, детекторы уязвимостей): опознаваемое или неопознаваемое (т.е. включена сигнатура кейлоггера в базу данных производителя антишпионских программных продуктов или нет);
наличие дополнительного функционала: является ли кейлоггер «классическим», т.е. перехватывает только нажатия клавиш клавиатуры и мыши, или имеет дополнительные функции, такие, например, как снятие скриншотов;
тип клавиатурного кейлоггера: высокоуровневый (перехватывающий только введённый в приложение текст) или низкоуровневый (перехватывающий нажатия в том числе и управляющих, в том числе и модифицирующих – Ctrl, Alt, Shift – клавиш);
тип программы: модуль приложения (библиотека), драйвер, служба, «демон» (для операционных систем типа *NIX), часть операционной системы, независимое самостоятельное приложение;
постоянное место хранения перехваченной информации: локально или удалённое хранилище (сервер и т.д.).
Тип программы кейлоггера важен, потому что для каждого типа программы используются свои методы перехвата клавиатурного потока (они будут рассмотрены позднее). Тем более важно самое главное – распознаётся кейлоггер системами обнаружения угроз или нет: если нет – пользователь никогда не сможет узнать, что всё, что он вводит с клавиатуры или посредством мыши (а иногда и больше – скриншоты, например) становится известным кому-либо ещё. Остальные критерии можно считать вспомогательными.
Перейдём непосредственно к рассмотрению свойств программных кейлоггеров согласно выбранной классификации.
Поскольку программный кейлоггер является по сути дела «шпионским» модулем, многие пользователи и системные администраторы считают, что все без исключения детекторы уязвимостей и антивирусные программы просто обязаны определять наличие таких модулей в составе операционных систем и приложений, а в идеале – и удалять их.
Однако это далеко не так. Очевидно, что, скорее всего, скрытно присутствующие в системах кейлоггеры никогда не будут определяться в следующих случаях:
кейлоггеры, разрабатываемые программистами в подразделениях государственных специальных служб для особых целей. Тут возникает интересная коллизия – в «дружественных» разработчикам такого кейлоггера антивирусах и детекторах антишпионского программного обеспечения сигнатуры этого кейлоггера скорее всего не будет, а в антивирусах «недружественных» - скорее всего будет, поэтому одни антивирусы и детекторы вредоносных программ будут определять наличие этого кейлоггера, а другие - нет;
кейлоггеры, входящие в состав специализированных операционных систем, используемых в особо защищаемых ИТ-инфраструктурах компаний, государственных организаций и технологических производств, а также в оборонных системах. Здесь всё должно быть понятно без комментариев – в таких системах кейлоггер есть часть комплексной системы информационной безопасности объекта, а не шпионская вредоносная программа. Более того, как правило, такие кейлоггеры являются частью ядра операционной системы и не могут быть из неё удалены без разрушения структуры операционной системы и, соответственно, нарушения её работоспособности;
кейлоггеры, разработанные для решения одной, частной задачи хищения конфиденциальной информации с конкретного компьютера. Такой кейлоггер не успевает попасть в базу данных антивируса или детектора шпионских программ, потому что быстро и скрытно выполняет поставленную перед ним задачу, после чего самоуничтожается. Это, пожалуй, самый опасный случай использования кейлоггера, учитывая, что он может быть создан очень просто путём модификации исходных кодов, которые в огромном количестве выложены в сети Интернет, иногда даже в качестве учебного примера;
кейлоггеры, встроенные в корпоративные программные продукты в области информационной безопасности. К сожалению, из этого правила есть неприятные исключения – так, кейлоггер, входящий в состав программного комплекса контроля работы пользователей StaffCop Enterprise, определяется как шпионская угроза большинством имеющихся антивирусов. К счастью, есть способы обхода этого ограничения – можно добавить угрозу StaffCop по её имени или по имени процесса/файла программ StaffCop.
Во всех остальных случаях на основе алгоритмов эвристического анализа или на основе анализа поведения приложений (например, увеличению интервала времени между нажатием клавиши и реакцией приложения на это нажатие) наличие кейлоггера должно определяться антивирусом или детектором шпионского программного обеспечения.
Классификация кейлоггеров по выполняемым функциям достаточно проста. «Классические» кейлоггеры по функционалу фактически повторяют аппаратные кейлоггеры, устанавливаемые между USB-портом системного блока и внешней клавиатурой. Их задача – собрать нажатия клавиш, выполненные пользователем и сохранить их. Кейлоггеры с расширенным функционалом имеют дополнительные возможности: позволяют, например, сохранять журнал работы пользователя в виде скриншотов, по которому администратор безопасности или системный администратор может определить, чем был занят пользователь в течение определённого времени – в какие приложения выполнялся ввод текста. Однако не следует забывать, что в случае использования злоумышленником кейлоггера расширенного функционала причинённый ущерб значительно увеличивается.
Классификация клавиатурных кейлоггеров по уровню (высокоуровневый или низкоуровневый) также достаточно проста и очевидна. Высокоуровневый кейлоггер фиксирует только введённый пользователем в приложение текст, т.е сохраняется только результат работы пользователя. Низкоуровневый – позволяет сохранять ещё и последовательность создания этого результата, т.е. распознаются нажатия функциональных, управляющих и модифицирующих клавиш – таких, как Ctrl, Alt, Shift.
Классификация кейлоггеров по месту хранения перехваченной информации также очевидна: кейлоггер может хранить перехваченную информацию либо локально (на том же самом компьютере, обычно местом хранения является файл на диске) или передавать её на сервер. Следует отметить, что самым разумным будет сочетать оба метода: если сервер, на который кейлоггер отправляет информацию, доступен, то перехваченная информация отправляется периодически, через некоторый интервал времени, если нет – сохраняется локально.
Для того чтобы понять классификацию кейлоггеров в зависимости от типа программы, необходим сначала небольшой экскурс по структуре операционной системы. Сделаем это на основе архитектуры 32-битной системы Microsoft Windows, так как именно эта архитектура стала основой архитектуры современных операционных систем, как 64-битных, так и 32-битных. К сожалению, очень широко распространено заблуждение, что 32-битные системы уже ушли в прошлое: на самом деле, 32-битные системы широко используются в качестве систем управления технологическими объектами (станками, системами управления сигнализациями и т.д.): всё дело в том, что в условиях ограниченных ресурсов 32-битные системы работают гораздо быстрее, нежели 64-битные. Это хорошо понимают в Microsoft: даже самая последняя пользовательская ОС Windows от Microsoft – Windows 10 – сохраняет 32-битную версию, а версия Windows 10 для «Интернета вещей» - Windows 10 IoT – изначально разрабатывалась как 32-битная, и только «по многочисленным просьбам пользователей» была выпущена 64-битная версия, причём 32-битная версия Windows 10 IoT не была снята с поставки.
Илл.4. Структура 32-битной операционной системы Microsoft Windows
На илл.4 показана структура 32-битной версии операционной системы Microsoft Windows в упрощённом виде.
Для понимания будущего обсуждения типов программ кейлоггеров из этой схемы нам надо уяснить следующее:
операционная система имеет два глобальных слоя работы приложений, называемых режимами: режим пользователя (по умолчанию приложения в этом слое работают с правами пользователя, если не указано иное) и режим ядра операционной системы (в этом слое все программы работают с наивысшими правами);
службы (служебные сервисы) относятся к пользовательскому слою операционной системы;
драйверы устройств работают на одном уровне с ядром операционной системы и могут встраиваться в него.
Итак, после того, как мы получили базовые представления о структуре операционной системы и её слоях (режимах), можно приступать к обсуждению кейлоггеров по типам программ. На дальнейших иллюстрациях расположение кейлоггера в операционной системе будет отмечаться ярко-красным прямоугольным элементом с белым текстом.
Первая разновидность кейлоггеров по типу программы – это кейлоггер, являющийся либо отдельным приложением (т.е. приложением, выполняющим исключительно функцию кейлоггера), либо модуль (библиотека) приложения более высокого уровня. Расположение такого кейлоггера в пространстве операционной системы Windows показано на илл.5-1.
Такие кейлоггеры являются фактически аналогом аппаратных кейлоггеров, только (вероятно) с более расширенными функциями. Они практически безопасны, так как:
если кейлоггер – отдельное приложение, то оно легко обнаруживается пользователем (тем более, системным администратором или администратором информационной безопасности), так как запускается скорее всего из автозагрузки и не может быть выгружено только в том случае, если запущено с правами администратора;
если кейлоггер – часть приложения более высокого уровня (например, ERP-системы) – внутренний модуль или библиотека, то информация о нажатиях клавиш, скриншотах и т.д. собирается только во время работы пользователя в этой системе. Достаточно свернуть окно программного комплекса, в состав которого входит кейлоггер (а тем более выйти из приложения) – и кейлоггер деактивируется, соответственно, информация перестаёт собираться.
Илл.5-1. Кейлоггер – отдельное приложение или модуль (библиотека) приложения более высокого уровня
К явным преимуществам таких кейлоггеров является лёгкость их разработки. Исходные коды кейлоггеров – отдельных приложений и модулей приложений более высокого уровня в большом количестве выложены в сети Интернет, иногда просто как учебные примеры по программированию на языках высокого уровня, например С++. Второе преимущество – если используется кейлоггер второго типа (часть приложения более высокого уровня), то такой кейлоггер фактически становится элементом системы информационной безопасности компании: становится возможным проверить действия пользователя в ERP- или бухгалтерской системе.
Недостатки таких кейлоггеров – прямое следствие их преимуществ: такой кейлоггер, если он является отдельным приложением, может быть легко обнаружен и удалён из системы. А кейлоггер – модуль приложения более высокого уровня – за пределами этого приложения не активен, соответственно, деятельность пользователя оказывается вне контроля. Опасным кейлогггер-модуль может быть только в том случае, если пользователям приложения более высокого уровня, а также системным администраторам и администраторам безопасности не известно, что кейлоггер присутствует в приложении, поскольку становится неясным, какую информацию такой кейлоггер собирает и куда её отправляет. Открытые кейлоггеры (о наличии которых официально заявлено в документации по системе, и возможности по сбору информации ими описаны) существуют и являются частью системы журналирования действий пользователей, при этом «кейлоггерами» соответствующие модули разработчики этих ERP-систем не называют.
Вторая разновидность кейлоггеров по типу программы – это кейлоггер, устанавливаемый как служба в операционной системе Windows. К этому же типу относятся кейлоггеры-«демоны» в ОС семейства *NIX.u try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.
Илл.5-2. Кейлоггер – служба в ОС Windows
Это уже более «хитрая» разновидность кейлоггеров, так как она не привязывается к какому-либо приложению, устанавливается в систему, фактически становясь её частью, пусть и в пользовательском пространстве (режиме) ОС, и может быть не видна пользователю, так как пользовательского интерфейса, по сути, не имеет. Расположение этой разновидности кейлоггеров в операционной системе Windows показано на илл.5-2.
Такой кейлоггер гораздо опаснее, если его присутствие в системе не обнаружено. Кейлоггер потенциально взаимодействует со всеми приложениями и службами, собирая с них информацию о действиях пользователя. Обнаружить его можно, проверяя вручную список служб ОС Windows, так как набор используемых служб известен, но такую проверку, из системных администраторов и администраторов безопасности, мало кто делает. Антивирусы и детекторы шпионского программного обеспечения могут обнаружить такой кейлоггер могут либо в том случае, когда сигнатура кейлоггера находится в базе данных антивируса, либо путём эвристического анализа работы компьютера, что достаточно сложно. Но и разработать такой кейлоггер сложнее (а тем более – скрытно установить в систему), нежели кейлоггеры первой разновидности – «на коленке» создать такой уже не получится, нужно обладать знаниями на уровне администратора ОС или системного программиста.
Наиболее часто кейлоггеры этого типа появляются на компьютерах после установки нелицензионного программного обеспечения, особенно популярных игровых программ. Не случайно почти все утилиты «взлома» лицензионного программного обеспечения требуют отключения антивируса в момент запуска утилиты, осуществляющей снятие лицензионных ограничений. И если пользователь делает это – то кто, кроме разработчика системы «взлома», знает, что делает эта утилита на компьютере пользователя, какие процессы запускает, какие службы устанавливает, какая информация будет этими службами собираться и куда отправляться?
Исходя из вышесказанного, особо опасной можно признать установку нелицензионного программного обеспечения в корпоративных сетях. Системным администраторам и администраторам информационной безопасности следует строго следить за программным обеспечением, которое устанавливают пользователи: лучше вообще запретить пользователям установку программного обеспечения (это можно сделать, управляя правами пользователя в домене). Правда, «особо продвинутые» пользователи применяют так называемое портируемое (portable) программное обеспечение, распространяемое на съёмных носителях – оно не требует установки и, как правило, является нелицензионным. Для отслеживания таких инцидентов информационной безопасности следует применять специализированное программное обеспечение, которое контролирует запуск приложений на рабочей станции пользователя. Хорошей практикой является применение программного комплекса контроля работы пользователей StaffCop Enterprise, который позволяет запрещать запуск пользователем программы по имени исполняемого файла и, кроме этого, позволяет блокировать применение на рабочих станциях съёмных USB-носителей и компакт-дисков – что не позволит пользователю вообще перенести на свою рабочую станцию портируемое программное обеспечение.
Нами были рассмотрены две разновидности кейлоггеров по типу программы, которые могут быть названы «пользовательскими», так как работают в режиме пользователя («пользовательском слое» операционной системы). Перейдём к двум следующим разновидностям, которые могут быть названы «системными», так как работают в режиме ядра операционной системы.
«Системные» варианты кейлоггеров по типу программ – это кейлоггер-драйвер и кейлоггер, интегрированный в ядро ОС. Следует заметить, что, как правило, эти две разновидности кейлоггеров являются либо компонентами сложных систем защиты, контроля и анализа информации, либо компонентами действительно серьёзного шпионского программного обеспечения, либо (в случае интеграции кейлоггера в ядро ОС) – неудаляемой частью особо защищённой операционной системы. Начнём с рассмотрения кейлоггер-драйвера. Размещение его в операционной системе показано на илл.5-3.
Кейлоггер-драйвер изначально разрабатывается как драйвер устройства (виртуального или физической клавиатуры), и устанавливается специальным приложением – установщиком драйверов, становясь частью системы драйверов ОС. Существует два варианта установки (и, соответственно, разработки) кейлоггер-драйвера в операционную систему:
Илл.5-3. Кейлоггер-драйвер
он устанавливается как драйвер физической клавиатуры: в этом случае кейлоггер-драйвер подменяет собой стандартный драйвер клавиатуры. Данный способ разработки драйвера-кейлоггера и его установки хорош тем, что он достаточно простой: методика разработки и установки драйверов физических устройств, как правило, очень хорошо описана в системной технической документации на операционную систему. Но серьёзным недостатком такого типа кейлоггер-драйвера является то, что иногда различные модели физических клавиатур требуют установки специализированных драйверов, и возможен вариант, когда при установке такого кейлоггер-драйвера устройства – физической клавиатуры – пропадают определённые функции клавиатуры (например, подсветка, использование нестандартных специальных клавиш и т.д.);
он устанавливается как драйвер виртуальной клавиатуры, встраиваясь в цепочку драйверов как дополнение основного драйвера клавиатуры: в этом случае при нажатии клавиши сначала отрабатывает имеющийся драйвер клавиатуры (стандартный или нестандартный), а потом результат нажатия передаётся кейлоггер-драйверу. Иногда бывает и наоборот: сначала отрабатывает кейлоггер-драйвер виртуальной клавиатуры, а потом последовательность нажатий уже передаётся драйверу физической клавиатуры (стандартному или нестандартному). Такой способ гораздо сложнее, так как надо учитывать совместную работу всей цепочки драйверов. К тому же разработка и последующая установка драйверов виртуальных устройств редко бывает описана в системной технической документации: разработчикам как кейлоггер-драйвера, так и приложения его установки приходится основываться только на собственном опыте и проводимых экспериментах.
Обнаружение и, если необходимо, удаление установленных кейлоггер-драйверов затруднено двумя факторами:
как правило, системное имя кейлоггер-драйвера – нестандартное, понять по имени, что это кейлоггер-драйвер, практически невозможно. Поэтому для его обнаружения требуется, чтобы сигнатура кейлоггер-драйвера содержалась в базе данных антивируса или антишпионского программного обеспечения;
кейлоггер-драйвер достаточно «прочно» укоренён в системе драйверов операционной системы, является нестандартным драйвером, поэтому при его удалении следует «бережно» относиться к цепочке драйверов, в которую он встроен. Разрыв цепочки драйверов может привести к краху операционной системы – BSOD в Windows или «Kernel Panic» в *NIX-системах.
Нерассмотренной осталась последняя разновидность кейлоггеров по типу программ – кейлоггеры, интегрированные в ядро операционной системы.
Кейлоггеры, интегрированные в ядро операционной системы, применяются только с двумя целями:
Илл.5-4. Кейлоггер, интегрированный в ядро операционной системы
в том случае, когда разрабатывается специализированная версия операционной системы, предназначенная для работы в условиях необходимости особой защиты информации. Это могут быть специализированные особо защищённые информационные системы и базы данных, а также особо защищённые системы управления технологическими системами и производствами (оборонные производства, системы управления атомными электростанциями и т.д.);
в том случае, когда запланирована закладка «чёрных ходов» («бэкдоров») в выпускаемые на рынок или собираемые ограниченным тиражом выпуски операционных систем, которые предполагается использовать в будущем для противозаконного хищения информации.
Очевидно, что как внедрение, так и удаление кейлоггера из системы в таком случае возможно только одним способом – пересборкой ядра операционной системы из исходных кодов, да и эта операция не всегда возможна – например, исходный код ядра операционной системы Windows является закрытым. В системах, основанных на Linux, пересборка ядра из исходных кодов – операция возможная, но следует в этом случае очень чётко представлять себе, с какими модулями кейлоггер может взаимодействовать, в какие программные цепочки он встроен и как корректно его внедрить/удалить: задача может быть весьма и весьма нетривиальной, со сложным и неочевидным решением.
Исходя из вышесказанного, можно предложить единственный выход в том случае, если системный администратор или администратор по безопасности убедился в наличии кейлоггера такого типа в осматриваемой им операционной системе (если ранее о наличии кейлоггера ему было неизвестно): полная замена операционной системы, установленной на оборудовании (сервер, рабочая станция, технологическое оборудование) на другую версию, а лучше всего – даже на принципиально другую операционную систему.
Нами была проведена техническая классификация кейлоггеров по нескольким критериям, были рассмотрены преимущества, недостатки и особенности каждого типа кейлоггеров. В рамках настоящей статьи осталось затронуть только одну тему – когда применение кейлоггеров является допустимым и даже обязательным, а когда – недопустимым и незаконным. Только такая методика позволяет увидеть тонкую грань между управлением информационной безопасностью и грубым нарушением режима информационной безопасности (инцидентом).
Говорить о допустимости и законности использования третьей группы кейлоггеров (акустических кейлоггеров) вообще не имеет никакого смысла: как было сказано изначально, Уголовным кодексом Российской Федерации вообще запрещён свободный оборот таких устройств, и их использование частным лицом или негосударственной организацией является уголовным преступлением.
Допустимым является установка кейлоггера в качестве самостоятельного приложения либо части программного комплекса (включая аппаратные продукты, в состав которых входит модуль кейлоггера) с ведома владельца (администратора информационной безопасности, системного администратора) информационной системы или владельца компьютера. Желательно, чтобы при этом согласие обладателей прав на контролируемое оборудование или программное обеспечение подтверждалось письменно (договор, акт об установке и т.д.) Обязательным является применение кейлоггеров в особо защищаемых информационных системах, где они могут являться частью приложений. Нет сомнения в правомерности и даже обязательности применения кейлоггеров как драйверов или как части ядра операционной системы в особо защищённых системах управления технологическими системами и производствами.
Недопустимым и противоречащим законодательству Российской Федерации является установка кейлоггера без согласия владельца (администратора информационной безопасности, системного администратора) информационной системы или владельца компьютера. Такое использование кейлоггеров (без разницы, программных модулей или аппаратных устройств) квалифицируется как использование специальной техники, предназначенной для несанкционированного получения информации, и является серьёзным инцидентом информационной безопасности.
В заключение следует сказать, что древняя как Вселенная фраза «Кто владеет информацией – тот владеет миром» в современных условиях актуальна как никогда, поэтому информацию следует защищать всеми усилиями. И кейлоггер может стать в этом деле одним из первых помощников, но не стоит и забывать о том, что он может стать и мощнейшим оружием хищения информации
Кейлоггеры
Что нам о них известно?