В феврале 2005 года бизнесмен из Флориды Джо Лопес (Joe Lopez) подал иск против Bank of America: неизвестные хакеры украли у американского предпринимателя с его банковского счета в Bank of America 90 тыс. долларов, которые каким-то образом были переведены в Латвию.
В результате расследования выяснилось, что на компьютере Лопеса присутствовал вирус Backdoor.Win32.Apdoor (Backdoor.Сoreflood), который фиксирует все клавиатурные нажатия пользователя и через Интернет направляет их злоумышленникам. Именно таким образом к хакерам попали пароль и логин Джо Лопеса, который регулярно работал через Интернет со своим счетом в Bank of America.
Однако суд отказал истцу в возмещении ущерба, указав на то, что г-н Лопес пренебрег элементарными мерами предосторожности при работе со своим банковским счетом через Интернет: детектирование указанного вируса было добавлено в антивирусные базы почти всех производителей антивирусного ПО еще в 2003 году.
Исчезновению 90 тыс. долларов со счета Джо Лопеса помог обычный кейлоггер.
Что такое кейлоггер
В переводе с английского keylogger — это регистратор нажатий клавиш. В большинстве источников можно найти следующее определение кейлоггера: кейлоггер (клавиатурный шпион) — программное обеспечение, основным назначением которого является скрытый мониторинг нажатий клавиш и ведение журнала этих нажатий. Это определение не совсем верно, так как в качестве кейлоггеров может использоваться как программное обеспечение, так и аппаратные средства. Аппаратные кейлоггеры встречаются значительно реже, чем программные, однако при защите важной информации о них ни в коем случае нельзя забывать.
Перехват нажатий клавиш может использоваться обычными программами и часто применяется для вызова функций программы из другого приложения с помощью «горячих клавиш» (hotkeys) или, например, для переключения неправильной раскладки клавиатуры (как Keyboard Ninja). Существует масса легального ПО, которое используется администраторами для наблюдения за тем, что делает работник в течение дня, или для наблюдения пользователем за активностью посторонних людей на своем компьютере. Однако где проходит грань между «законным» использованием «легального» ПО и его использованием в криминальных целях? То же «легальное» ПО зачастую используется и в целях умышленного похищения секретных данных пользователя — например, паролей.
Большинство существующих на данный момент кейлоггеров считаются «легальными» и свободно продаются, так как разработчики декларируют множество причин для использования кейлоггеров, например:
- для родителей: отслеживание действий детей в Интернете и оповещение родителей в случае попыток зайти на сайты «для взрослых» (parental control);
- для ревнивых супругов: отслеживание действий своей половины в Сети в случае подозрения на «виртуальную измену»;
- для службы безопасности организации: отслеживание фактов нецелевого использования персональных компьютеров, их использования в нерабочее время;
- для службы безопасности организации: отслеживание фактов набора на клавиатуре критичных слов и словосочетаний, которые составляют коммерческую тайну организации, и разглашение которых может привести к материальному или иному ущербу для организации;
- для различных служб безопасности: проведение анализа и расследования инцидентов, связанных с использование персональных компьютеров;
- другие причины.
Однако это скорее привычное, чем объективное положение вещей, так как для решения всех указанных задач существуют и другие способы, а ЛЮБОЙ легальный кейлоггер может использоваться во вредоносных целях, и в последнее время именно кража информации пользователей различных систем онлайновых платежей стала, к сожалению, главным применением кейлоггеров (для этих же целей вирусописателями постоянно разрабатываются новые троянцы-кейлоггеры).
Кроме того, многие кейлоггеры прячут себя в системе (т.к. имеют функции руткита), что значительно облегчает их использование в преступных целях. Такое использование делает задачу обнаружения кейлоггеров одной из приоритетных для антивирусных компаний. В классификации вредоносных программ «Лаборатории Касперского» существует специальная категория Trojan-Spy (шпионские программы), в которую попадают программы, содержащие функции клавиатурных шпионов. Согласно определению Trojan-Spy, «эти троянцы осуществляют электронный шпионаж: вводимая с клавиатуры зараженного компьютера информация, снимки экрана, список активных приложений и действия пользователя с ними сохраняются в какой-либо файл на диске и периодически отправляются злоумышленнику».
Чем опасны кейлоггеры
В отличие от других типов вредоносного программного обеспечения, для системы кейлоггер абсолютно безопасен. Однако он может быть чрезвычайно опасным для пользователя: с помощью кейлоггера можно перехватить пароли и другую конфиденциальную информацию, вводимую пользователем с помощью клавиатуры. В результате злоумышленник узнает коды и номера счетов в электронных платежных системах, пароли к учетным записям в online-играх, адреса, логины, пароли к системам электронной почты и так далее.
После получения конфиденциальных данных пользователя злоумышленник может не только банально перевести деньги с его банковского счета или использовать учетную запись пользователя в online-игре. К сожалению, наличие таких данных в ряде случаев может приводить к последствиям более серьезным, чем потеря некоторой суммы денег конкретным человеком. Использование кейлоггеров позволяет осуществлять экономический и политический шпионаж, получать доступ к сведениям, составляющим не только коммерческую, но и государственную тайну, а также компрометировать системы безопасности, используемые коммерческими и государственными структурами (например, с помощью кражи закрытых ключей в криптографических системах).
Кейлоггеры, наряду с фишингом и методами социальной инженерии (см. статью «Кража собственности в компьютерных сетях»), являются сейчас одним из главных методов электронного мошенничества. Однако если в случае фишинга бдительный пользователь может сам себя защитить — игнорировать явно фишинговые письма, не вводить персональные данные на подозрительных веб-страницах, — то в случае с клавиатурными шпионами никаким другим способом, кроме использования специализированных средств защиты, обнаружить факт шпионажа практически невозможно.
По словам Кристины Хойперс (Cristine Hoepers), менеджера бразильской команды немедленного компьютерного реагирования (Brazil’s Computer Emergency Response Team), работающей под эгидой Комитета регулирования Интернета Бразилии (Internet Steering Committee), кейлоггеры оказались самым распространенным способом кражи конфиденциальной информации, передвинув фишинг на второе место, и действуют все более избирательно: отслеживая веб-страницы, к которым обращается пользователь, они записывают нажатия клавиш только при заходе на сайты, интересующие злоумышленников.
В последние годы отмечается значительный рост числа различных вредоносных программ, использующих функции кейлоггеров. От столкновения с киберпреступниками не застрахован ни один пользователь сети Интернет, в какой бы точке земного шара он ни проживал и в какой бы организации ни работал.
Примеры использования кейлоггеров злоумышленниками
Одним из самых известных недавних случаев использования кейлоггеров стала кража более 1 млн. долларов со счетов клиентов крупнейшего скандинавского банка Nordea. В августе 2006 года клиентам шведского банка Nordea стали приходить от имени этого банка электронные письма с предложением установить антиспам-продукт, якобы содержащийся в приложении. При попытке получателя письма скачать прикрепленный файл на свой компьютер устанавливался специальный вариант широко известной троянской программы Haxdoor, который активировался при регистрации жертвы в онлайн-сервисе Nordea и выводил на экран сообщение об ошибке с просьбой о повторной регистрации. После этого клавиатурный шпион, встроенный в троянскую программу, записывал вводимые пользователем данные и передавал их на сервер злоумышленников. Собранные таким образом персональные данные использовались мошенниками для снятия денег со счетов доверчивых клиентов банка. Создателя этого троянца помог вычислить один из экспертов по безопасности компании Symantec. По заявлению автора троянской программы, haxdoor использовался и в атаках против австралийских и многих других банков.
27 января 2004 года началась эпидемия одной из самых известных вредоносных программ — червя Mydoom. Mydoom побил рекорды червя Sobig и стал причиной самой масштабной эпидемии в истории Интернета на сегодняшний день. Червь распространялся по электронной почте. Автор червя использовал самые разнообразные заголовки писем, чтобы заинтересовать пользователей с очень разными интересами. Червь провел атаку на сайт www.sco.com, из-за этого вышедший из строя на несколько месяцев, и оставлял на зараженном компьютере троянскую программу, которая использовалась для заражения другими версиями вируса, последовавшими за главной эпидемией. Однако мало кто знает, что наряду с функциональностью сетевого червя, бэкдора и организацией DoS-атаки на сайт www.sco.com, Mydoom содержал функции кейлоггера для сбора номеров кредитных карт.
В начале 2005 года лондонская полиция предотвратила одну из самых крупных попыток кражи банковской информации в Англии. С помощью атаки на банковскую систему злоумышленники планировали украсть 423 млн. долларов из лондонских офисов банка Sumitomo Mitsui. Главным компонентом троянской программы, созданной 32-летним израильтянином Иероном Болонди (Yeron Bolondi), является кейлоггер, позволяющий отслеживать все нажатия клавиш при работе с клиентской программой указанного банка.
В мае 2005 года в Лондоне арестовали супружескую пару по обвинению в разработке вредоносных программ, при помощи которых израильские компании шпионили за конкурентами. Поражают масштабы данного промышленного шпионажа: среди компаний, которые упоминались израильскими властями в материалах расследования, есть такие крупные компании, как операторы мобильной связи Cellcom и Pelephone, а также провайдер спутникового телевидения компания YES. Согласно материалам следствия, троянская программа была использована для шпионажа в отношении PR-агентства Rani Rahav, среди клиентов которого — второй в Израиле мобильный оператор Partner Communications и группа кабельного телевидения HOT. Израильская компания Mayer, которая занимается импортом автомобилей марки Volvo и Honda, подозревается в шпионаже против компании Champion Motors, которая занимается импортом автомобилей марки Audi и Volkswagen. Рут Эфрати, продававшая созданную ее мужем Майклом Эфрати (Michael и Ruth Efrati) троянскую программу с функциями клавиатурного шпиона, проведет в тюрьме 4 года, а сам Майкл — два.
В феврале 2006 года бразильская полиция арестовала 55 человек, причастных к распространению вредоносных программ, использовавшихся для кражи регистрационной информации пользователей и их паролей к банковским системам.
Кейлоггеры активизировались в тот момент, когда пользователи заходили на web-страницы банковских систем, и скрытно отслеживали и позднее передавали злоумышленникам все вводимые на этих страницах данные. Общая сумма денег, которая была украдена подобным образом с 200 клиентских счетов в шести банках страны, составила 4,7 млн. долларов.
Почти в то же время была арестована аналогичная преступная группа, состоявшая из молодых (от 20 до 30 лет) россиян и украинцев. С конца 2004 года они рассылали клиентам банков Франции и ряда других стран почтовые сообщения, содержащие вложенную вредоносную программу — кейлоггер. Кроме того, эти же шпионские программы выкладывались на специально созданных web-сайтах, куда заманивались пользователи методами социальной инженерии. Далее события развивались как во всех описанных выше случаях: программа активировалась при заходе на сайты банковских систем, собирала все вводимые пользователем данные и пересылала их злоумышленникам. Таким образом за 11 месяцев было украдено более 1 млн. долларов.
Примеров использования кейлоггеров злоумышленниками много — большинство компьютерных преступлений, связанных с финансами, совершается с помощью кейлоггеров, так как только использование клавиатурных шпионов делает электронную слежку наиболее результативной.
Рост популярности кейлоггеров у злоумышленников
Популярность кейлоггеров у злоумышленников подтверждают различные компании, работающие в сфере компьютерной безопасности.
В отчете компании VeriSign отмечается, что в последние годы наблюдается бурный рост числа вредоносных программ, имеющих функциональность кейлоггера.
Источник: iDefense
В одном из отчетов компании Symantec сообщается о том, что около половины вредоносного ПО, найденного ее аналитиками за последний год, не представляет прямой угрозы для компьютеров, а используется киберпреступниками с целью сбора персональной информации владельцев ПК.
В соответствии с расчетом, проведенным аналитиком института SANS Джоном Бамбенеком (John Bambenek), только на территории США к концу 2004 года около 10 млн. компьютеров были заражены одной из вредоносных программ, содержащих функции кейлоггера. На основе этого расчета сумма, которую американские пользователи электронных платежных систем рискуют потерять, составляет ни много ни мало 24,3 миллиарда долларов.
«Лаборатория Касперского» постоянно фиксирует появление новых вредоносных программ с функциями клавиатурных шпионов. Одно из первых вирусных предупреждений о вредоносной программе с функцией кейлоггера — троянской программе TROJ_LATINUS.SVR — было опубликовано «Лабораторией Касперского» на специализированном ресурсе www.securelist.com 15 июня 2001 года. После этого стабильно появлялись новые версии кейлоггеров. В настоящий момент в антивирусных базах «Лаборатории Касперского» присутствует информация более чем о 300 семейств специализированных кейлоггеров. В эту цифру не входят кейлоггеры, включенные в сложные вредоносные программы, в которых функциональность клавиатурного шпиона не является главной.
Большинство современных вредоносных программ представляет собой гибридные угрозы, в которых используется множество технологий, поэтому почти в любой категории вредоносных программ могут быть программы, одной из функций которых является слежение за клавиатурным вводом.
Принципы построения кейлоггеров
Принципиальная идея кейлоггера состоит в том, чтобы внедриться между любыми двумя звеньями в цепи прохождения сигнала от нажатия пользователем клавиш на клавиатуре до появления символов на экране — это может быть видеонаблюдение, аппаратные «жучки» в самой клавиатуре, на проводе или в системном блоке компьютера, перехват запросов ввода-вывода, подмена системного драйвера клавиатуры, драйвер-фильтр в клавиатурном стеке, перехват функций ядра любым способом (подменой адресов в системных таблицах, сплайсингом кода функции и т.п.), перехват функций DLL в пользовательском режиме, наконец, опрос клавиатуры стандартным задокументированным способом.
Однако практика показывает, что чем сложнее подход, тем менее вероятно его применение в широкораспространяемых троянских программах и более вероятно его использование в целевых троянцах для кражи корпоративной финансовой информации.
Все кейлоггеры можно условно разделить на аппаратные и программные. Первые представляют собой небольшие устройства, которые могут быть закреплены на клавиатуре, проводе или в системном блоке компьютера. Вторые — это специально написанные программы, предназначенные для отслеживания нажатий клавиш на клавиатуре и ведения журнала нажатых клавиш.
Наиболее популярные технические подходы к построению программных кейлоггеров:
- системная ловушка на сообщения о нажатии клавиш клавиатуры (устанавливается с помощью функции WinAPI SetWindowsHook, для того чтобы перехватить сообщения, посылаемые оконной процедуре, — чаще всего пишется на C);
- циклический опрос клавиатуры (с помощью функции WinAPI Get(Async)KeyState, GetKeyboardState — чаще всего пишется на VisualBasic, реже на Borland Delphi);
- драйвер-фильтр стека клавиатурных драйверов ОС Windows (требует специальных знаний, пишется на C).
Мы очень детально рассмотрим различные методы построения кейлоггеров во второй части нашей статьи. Пока же приведем немного статистики.
Примерное распределение указанных типов кейлоггеров показано на следующей диаграмме:
В последнее время отмечается тенденция использования в кейлоггерах методов сокрытия (маскировки) своих файлов — так, чтобы их нельзя было найти вручную или с помощью антивирусного сканера. Такие методы принято называть rootkit-технологиями. Можно выделить два основных типа технологий сокрытия, используемых кейллоггерами:
- с использованием методов сокрытия пользовательского режима (UserMode);
- с использованием методов сокрытия режима ядра операционной системы (KernelMode).
Примерное распределение используемых кейлоггерами технологий сокрытия показано на следующей диаграмме:
Способы распространения кейлоггеров
Способы распространения кейлоггеров в целом не отличаются от способов распространения других вредоносных программ. Можно выделить следующие методы распространения кейлоггеров (без учета случаев покупки и установки кейлоггера заботливым супругом(-ой) и использования кейллоггеров службами безопасности организаций):
- при открытии файла, присоединенного к электронному письму;
- при запуске файла из каталога, находящегося в общем доступе в peer-to-peer сети;
- с помощью скрипта на веб-страницах, который использует особенности интернет-браузеров, позволяющие программам запускаться автоматически при заходе пользователя на данные страницы;
- с помощью ранее установленной вредоносной программы, которая умеет скачивать и устанавливать в систему другие вредоносные программы.
Методы защиты от кейлоггеров
Большинство антивирусных компаний добавляют известные кейлоггеры в свои базы, и метод защиты от них не отличается от метода защиты от любого другого вредоносного программного обеспечения: установите антивирусный продукт и поддерживайте его базы в актуальном состоянии. Однако так как большинство антивирусных продуктов относит кейлоггеры к классу потенциально опасного программного обеспечения, то следует удостовериться, что при настройках по умолчанию используемый антивирусный продукт детектирует наличие программ данного класса. Если это не так, то для детектирования кейлоггеров необходимо выставить подобную настройку вручную. Это позволит вам защититься от большинства широко распространяемых кейлоггеров.
Рассмотрим подробнее методы защиты от неизвестных кейлоггеров или кейлоггера, изготовленного специально для атаки конкретной системы.
Так как основной целью использования кейлоггеров является получение конфиденциальной информации (номера банковских карт, паролей и т.п.), то разумными методами защиты от неизвестных кейлоггеров являются следующие:
- использование одноразовых паролей / двухфакторная аутентификация,
- использование систем проактивной защиты, предназначенных для обнаружения программных кейлоггеров,
- использование виртуальных клавиатур.
Одноразовый пароль действует только один раз, при этом часто ограничивается и период времени, в течение которого им можно воспользоваться. Поэтому, даже если такой пароль будет перехвачен, злоумышленник уже не сможет воспользоваться им для получения доступа к конфиденциальной информации.
Для получения одноразовых паролей могут использоваться специальные аппаратные устройства:
- в виде брелка (например, Aladdin eToken NG OTP):
- в виде «калькулятора» (например, RSA SecurID 900 Signing Token):
Для получения одноразовых паролей могут также использоваться системы, основанные на посылке SMS с мобильного телефона, зарегистрированного в системе, и получения в ответ PIN-кода, который нужно вводить вместе с персональным кодом при аутентификации.
В случае использования устройства генерации пароля в виде брелка, алгоритм получения доступа к защищенной информационной системе таков:
- пользователь подключается к Интернету и открывает диалоговое окно для ввода персональных данных;
- далее пользователь нажимает на кнопку ключа для генерации одноразового пароля, после этого пароль на 15 секунд появляется на ЖК-дисплее брелка;
- пользователь вводит в диалоговом окне свой логин, персональный PIN-код и сгенерированное значение одноразового пароля (обычно PIN-код и ключ вводятся последовательно в одно поле passcode);
- введенные значения проверяются на стороне сервера, после чего принимается решение о том, имеет ли право их владелец на работу с закрытыми данными.
При использовании устройства в виде калькулятора для генерации пароля пользователь набирает свой PIN-код на «клавиатуре» устройства и нажимает кнопку «>».
Генераторы одноразовых паролей широко применяются в банковской системе Европы, Азии, США и Австралии. Например, Lloyds TCB, один из самых крупных банков Великобритании, еще в ноябре 2005 года перешел на использование генераторов одноразовых паролей.
Но в данном случае компании приходится нести значительные затраты, так как необходимо приобрести и распространить среди клиентов генераторы одноразовых паролей, а также разработать/приобрести соответствующее программное обеспечение.
Более дешевым решением является использование систем проактивной защиты на стороне клиентов банка (провайдера и т.д.), которые могут предупредить пользователя об установке или активизации программных кейлоггеров.
Пример срабатывания проактивной защиты
Kaspersky Internet Security.
Главный недостаток этого способа — необходимость активного участия пользователя для определения дальнейших действий с подозрительным кодом. Если пользователь недостаточно технически подготовлен, вследствие его некомпетентного решения кейлоггер может быть пропущен. Если же участие пользователя в принятии решения системой проактивной защиты минимизировать, то кейлоггер может быть пропущен вследствие недостаточно жесткой политики безопасности системы. В то же время, если политика безопасности слишком жесткая, повышается опасность блокирования полезных программ, использующих перехват ввода с клавиатуры для легальных целей.
Последний из рассматриваемых способов защиты как от программных, так и от аппаратных кейлоггеров — использование виртуальной клавиатуры. Виртуальная клавиатура представляет собой программу, показывающую на экране изображение обычной клавиатуры, в которой с помощью мыши можно «нажимать» определенные клавиши.
Идея экранной клавиатуры не нова: в ОС Windows содержится встроенная экранная клавиатура, вызываемая через меню Start > Programs > Accessories > Accessibility > On-Screen Keyboard.
Вид экранной клавиатуры, встроенной в ОС Windows.
Однако встроенная в Windows экранная клавиатура плохо применима для обмана кейлоггеров, так как она создавалась не как средство защиты, а для помощи людям с ограниченными возможностями, и передача данных после ввода с помощью данной клавиатуры может быть очень легко перехвачена вредоносной программой. Экранная клавиатура, которая может быть использована для того, чтобы обойти кейлоггеры, должна быть разработана специальным образом, исключающим перехват вводимых данных на любой стадии их ввода и передачи.
Выводы
В данной статье мы рассмотрели принципы построения и использования кейлоггеров — программных и аппаратных средств, используемых для мониторинга нажатия клавиш клавиатуры.
- Несмотря на то что производители кейлоггеров позиционируют их как легальное ПО, большинство кейлоггеров может быть использовано для кражи персональной информации пользователей и осуществления экономического и политического шпионажа.
- В настоящее время кейлоггеры, наряду с фишингом и методами социальной инженерии, являются одним из главных методов электронного мошенничества.
- Компании, работающие в сфере компьютерной безопасности, фиксируют стремительный рост числа вредоносных программ, имеющих функциональность кейлоггера.
- Отмечается тенденция добавления в программные кейлоггеры rootkit-технологий, назначение которых — скрыть файлы кейлоггера так, чтобы они не были видны ни пользователю, ни антивирусному сканеру.
- Обнаружить факт шпионажа с помощью кейлоггеров можно только с использованием специализированных средств защиты.
- Для защиты от кейлоггеров следует использовать многоуровневую защиту:
- традиционные антивирусные продукты, в которых необходимо включить функцию детектирования потенциально опасного программного обеспечения (во многих продуктах по умолчанию отключена);
- средства проактивной защиты — для защиты от новых модификаций кейлоггеров;
- виртуальную клавиатуру или системы генерации одноразовых паролей для защиты от программных и аппаратных кейлоггеров.
Продолжение: Клавиатурные шпионы. Варианты реализации кейлоггеров в ОС Windows. Часть II
Клавиатурные шпионы. Принципы работы и методы обнаружения. Часть I