СОВРЕМЕННЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ/4.Информационная безопасность.

 

ЕЛИЗАРОВ А.Б., РЯБЫЙ М.А., ШКАРУПА Д.В., ГОРИНШТЕЙН М.Л.

Национальный авиационный университет, Украина

 

ОБЗОР КЛАВИАТУРНЫХ ШПИОНОВ И МЕТОДЫ БОРЬБЫ С НИМИ.

 

Введение.

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

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

Клавиатурные шпионы — это программы для скрытной записи информации о нажимаемых пользователем клавишах. У термина «клавиатурный шпион» существует ряд синонимов: Keyboard Logger, KeyLogger, кейлоггер; реже встречаются термины «снупер», «snoop», «snooper» (от англ. snoop — буквально «человек, вечно сующий нос в чужие дела»).

Как правило, современные клавиатурные шпионы не просто записывают коды вводимых клавиш — они как бы привязывают клавиатурный ввод к текущему окну и элементу ввода. Кроме того, многие клавиатурные шпионы отслеживают список запущенных приложений, умеют делать снимки экрана по заданному расписанию или событию, шпионить за содержимым буфера обмена и решать ряд задач, нацеленных на скрытное слежение за пользователем. Записываемая информация сохраняется на диске, и большинство современных клавиатурных шпионов могут формировать различные отчеты, передавать их по электронной почте или по протоколам FTP и HTTP. Кроме того, ряд современных клавиатурных шпионов пользуется технологиями RootKit для маскировки следов своего присутствия в операционной системе.

Постановка проблемы.

Применение несанкционированно устанавливаемых мониторинговых программ и аппаратных средств позволяет злоумышленнику:

• перехватывать чужую информацию;

• осуществлять экономический или политический шпионаж;

• получать несанкционированный доступ к системам «банк-клиент»;

• получать несанкционированный доступ к системам криптографии пользователя персонального компьютера - открытым и закрытым ключам, парольным фразам;

• получать несанкционированный доступ к авторизационным данным кредитных карточек и т.д.

 

Целью статьи является обзор клавиатурных шпионов, а также рассмотре­ние основных методов борьбы с ними.

 

Аппаратные клавиатурные шпионы.

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

Аппаратные кейлоггеры (keystroke recording device, hardware keylogger и пр.) представляют собой миниатюрные приспособления, которые могут быть прикреплены между клавиатурой и компьютером или встроены в саму клавиатуру. Они регистрируют все нажатия клавиш. Процесс этот абсолютно незаметен для пользователя. Аппаратные кейлоггеры не требуют установки какой-либо программы на компьютере интересующего объекта, чтобы успешно перехватывать все нажатия клавиш. Такое устройство может быть тайно прикреплено к ПК кем угодно - коллегой, уборщицей, посетителем и т.д. Когда аппаратный кейлоггер прикрепляется, абсолютно не имеет значения, в каком состоянии находится компьютер - включенном или выключенном.

Затем атакующий может снять устройство в любой удобный момент, а его содержимое (записанные нажатия клавиш) скачать, когда ему это будет удобно. Объемы внутренней энергонезависимой памяти данных устройств позволяют записывать до 10 миллионов нажатий клавиш. Прикрепить данное устройство к компьютеру пользователя очень легко. Внешний вид этих устройств настолько многообразен, что даже специалист не в состоянии иногда определить их наличие при проведении информационного аудита.

Особо известны на рынке аппаратные кейлоггеры KeyKatcher, KeyGhost, MicroGuard, Hardware KeyLogger, производителями которых являются компании Alien Concepts, Inc., Amecisco, KeyGhost, Ltd., MicroSpy, Ltd.

Аппаратные кейлоггеры подразделяются на внешние и внутренние, их особенности описаны ниже.

Внешние аппаратные кейлоггеры.

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

Внутренние аппаратные кейлоггеры.

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

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

 

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

Рис. 3. Возможные места аппаратного перехвата вводимой информации

1. Аппаратная закладка внутри клавиатуры

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

Методика противодействия: вскрытие клавиатуры и ее проверка на предмет наличия посторонних электронных узлов с последующим пломбированием корпуса клавиатуры при помощи пломбира или стикера.

2. Считывание данных с кабеля клавиатуры бесконтактным методом

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

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

3. Включение устройства в разрыв кабеля

Клавиатурные шпионы данного типа являются самыми распространенными и их легко как установить, так и обнаружить. Аппаратный кейлоггер выполняется в виде небольшого устройства, которое включается в PS/2- или USB-разъем компьютера, а клавиатура включается в разъем на корпусе кейлоггера. Для выполнения подобной операции не требуется никакой квалификации, причем подключение кейлоггера к USB-клавиатуре может производиться без выключения компьютера. Известен ряд серийно выпускаемых устройств, например KEYKatcher Hardware Keyloggers (http://www.keykatcher.com), который выпускается в двух видах — для PS/2- и USB-клавиатур.

Рис.4. Компьютер с установленным аппаратным кейлоггером KeyGhost

Аппаратный кейлоггер может выглядеть как фильтр помех или переходник. Устройство состоит из входных цепей, предназначенных для фильтрации помех и защиты устройства от перенапряжения, микроконтроллера с малым потреблением электроэнергии и Flash-памяти, предназначенной для хранения собираемой информации. Объем Flash-памяти варьируется от 32 Кбайт до десятков мегабайт; типичный объем — от 128 Кбайт до 2 Мбайт.

 

Рис. 5 Функциональная схема аппаратного кейлоггера

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

4. Аппаратная закладка внутри системного блока

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

Методика противодействия: пломбирование системного корпуса при помощи стикеров. Перед пломбировкой необходимо исследовать содержимое системного блока и убедиться в отсутствии посторонних устройств (типовое место подключения — материнская плата; подключение производится параллельно разъему клавиатуры).

5. Съем информации на основании анализа акустических и электромагнитных излучений

Уловить электромагнитное излучение клавиатуры на расстоянии весьма сложно (хотя теоретически и возможно), но уловить акустические шумы — на порядок проще. Даже при разговоре по телефону иногда можно отчетливо услышать, как собеседник вводит информацию на клавиатуре. Исследования специалистов в области безопасности показывают, что каждая клавиша при нажатии производит специфический звук, позволяющий идентифицировать нажимаемые клавиши. Наиболее известная работа в этом направлении проведена учеными Калифорнийского университета в Беркли, которые пришли к выводу, что по обычной звукозаписи можно распознавать от 60 до 96% вводимых символов. Без применения специализированных программ для анализа можно достаточно просто установить количество символов в набираемом пароле и наличие повторяющихся символов.

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

 

Клавиатурный шпион на базе драйвера

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

Драйвер-фильтр

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

Клавиатурный шпион этого типа может быть построен по одной из двух схем:

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

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

В момент загрузки драйвер должен подключиться к стеку клавиатурного драйвера посредством функций IoCreateDevice и IoAttachDevice. В большинстве известных реализаций фильтр подключается к стеку устройства «\\Device\\KeyboardClass0», являющегося драйвером класса и реализующего общую функциональность для клавиатур различных типов (рис. 6).

Рис. 6. Общая функциональность для клавиатур различных типов.

Для клавиатурного шпиона будут представлять интерес только прерывания типа IRP_MJ_READ, поскольку на основе их анализа можно получить коды клавиш. Источником этих IRP-запросов является процесс csrss.exe, а точнее — принадлежащий этому процессу поток необработанного ввода RawInputThread. Посылаемое этим потоком прерывание сначала попадает к драйверу-фильтру шпиона (шаг 1), который устанавливает свой обработчик завершения при помощи функции IoSetCompletionRoutine и передает IRP драйверу Kbdclass (шаг 2). Тот, в свою очередь, помечает IRP как ожидающий завершения и ставит в очередь. При возникновении клавиатурных событий Kbdclass извлекает из очереди ожидающий завершения IRP, вносит в его буфер информацию о нажатых клавишах и завершает IRP. А поскольку в IRP установлен адрес обработчика завершения, то будет произведен вызов этого обработчика (шаг 3). Обработчик может проанализировать содержимое буфера и передать содержащуюся там информацию системе протоколирования (шаг 4). Далее IRP возвращается в поток RawInputThread, а затем весь процесс повторяется. Естественно, что наличие корректно написанного драйвера-фильтра никак не сказывается на работе приложений и обеспечивает глобальный перехват клавиатурного ввода.

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

Подмена драйвера клавиатуры

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

 

Методы противодействия программам-шпионам.

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

Что же может противопоставить пользователь персонального компьютера программам-шпионам? Решение данной проблемы возможно только в использовании комплекса программных продуктов.

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

Программный продукт №2 - антивирусный программный продукт, использующий постоянно обновляемые сигнатурные базы.

Программный продукт №3 - персональный firewall, контролирующий выход в Интернет с персонального компьютера на основании установок самого пользователя.

Такая последовательность выбрана неспроста.

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

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

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

Антивирусных программных продуктов, использующих постоянно обновляемые сигнатурные базы, в мире создано великое множество (AVP, Dr.Web, Panda Antivirus, Norton Antivirus и многие другие). Персональных межсетевых экранов создано еще больше (Norton Internet Security, BlackICE Defender, GuardianPro Firewall, Tiny Personal Firewall и прочие).

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

Программа первого типа должна  иметь  в своем составе модули, обеспечивающие:

• защиту от перехвата нажатий клавиш клавиатуры;

• защиту от перехвата текста из окон;

• защиту от снятия изображения рабочего стола;

• защиту от снятия изображения активных окон.

А также для собственной защиты от внешнего разрушительного воздействия программ-шпионов программа должна  иметь систему контроля целостности и другие защитные функции.

Методы противодействия аппаратным кейлоггерам.

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

Сегодня существует только два метода противодействия аппаратным кейлоггерам при работе на стандартном персональном компьютере:

  физический поиск и устранение аппаратного кейлоггера;

• использование виртуальных клавиатур для ввода особо важной информации (логины, пароли, коды доступа, PIN-коды кредитных карт).

Выводы

Клавиатурный шпион не является вирусом, но тем не менее представляет большую угрозу для пользователей, поскольку позволяет злоумышленнику следить за работой пользователя и может применяться для похищения конфиденциальной информации, в том числе паролей пользователя. Опасность клавиатурного шпиона может существенно возрасти при его сочетании с RootKit-технологией, которая позволяет замаскировать присутствие клавиатурного шпиона. Еще более опасной является троянская или backdoor-программа, содержащая клавиатурный шпион, — его наличие существенно расширяет функции троянской программы и ее опасность для пользователя.

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

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

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

Литература:

1.     OOO”Центр Информационной Безопасности” [Електронный ресурс] - режим доступу:  http://www.bezpeka.biz , вільний.

2.     Щеглов А.Ю. Защита компьютерной информации от несанкционированного доступа. – Санкт-Петербург : Наука и техника, 2004. – 384 с. 

3.     Статті [Електронний ресурс] - режим доступу:  http://articles.org.ru/  - , вільний.

4.     Д.Кнут Искусство программирования для ЭВМ. Сортировка и поиск. - М.: Мир, 1978. - 843 с.