На днях компания «Доктор Веб» сообщила об обнаружении новой троянской программы Trojan.Skimer.18, созданной специально для заражения банкоматов и кражи данных пластиковых карт. Портал Банки.ру разбирался, как обстоят дела с защитой банкоматов от вредоносных программ.
Коллекция вирусов
Для держателя карты банкомат — лицо банка. Если нужно срочно снять или внести наличность, а ближайший банкомат не работает, это расстраивает клиента. Такие инциденты особенно неприятны для отечественных держателей: таскать с собой наличные любят не все, а карты к оплате у нас принимают далеко не везде. На самом деле это не самое страшное. Увы, даже вполне «здоровый» на вид аппарат может оказаться не другом, а самым настоящим врагом.
Не секрет, что внутри банкомата установлен самый обычный персональный компьютер, на котором запущена программа, управляющая всеми функциями аппарата: считыванием и авторизацией пластиковых карт, отправкой данных в процессинговый центр, выдачей и приемом наличных. Считыватель карт и диспенсер банкнот подключены к этому компьютеру и контролируются с помощью специальных программ-драйверов. Система архитектурно не отличается от того компьютера, что стоит у вас на столе. И точно так же уязвима для троянских программ.
Компания «Доктор Веб» не первый раз сообщает об угрозе такого рода: в 2009 году широко обсуждался обнаруженный Trojan.Skimer, воровавший данные карт с банкоматов производства компании Diebold. С тех пор прошло пять лет относительного затишья, но это не значит, что злоумышленники оставили банкоматы в покое. Наоборот, кардеры охотно сотрудничают с вирусописателями, приобретая у них все более хитроумные вредоносные программы.
Сергей Голованов, ведущий антивирусный эксперт «Лаборатории Касперского», считает, что эта проблема крайне актуальна: «Мы пока не поставляем антивирусные продукты для банкоматов, тем не менее специалисты компании также получают обнаруженные образцы банкоматных троянцев и участвуют в их анализе. На данный момент в нашей коллекции насчитывается 68 уникальных образцов четырех различных семейств. Backdoor. Win32.Skimer атакует банкоматы Diebold, работает как с диспенсером, так и со считывателем карт, известно 28 модификаций с марта 2009 года по октябрь 2013-го. Backdoor. Win32.SkimmerNC нацелен на банкоматы NCR, работает только со считывателем карт, обнаружен в декабре 2013 года (две модификации). Trojan-Banker. MSIL.Atmer работает с банкоматами NCR, извлекает деньги через диспенсер, найден в октябре 2013 года, известно три модификации. Настоящий универсал Trojan-Spy. Win32.SPSniffer используется с любыми банкоматами, работающими под управлением Windows XP, считывает данные карт. Обнаружен в марте 2012 года, на данный момент отловлено 35 модификаций».
Марк Орлов, руководитель направления консультирования и интеграции компании NCR, прояснил ситуацию с заражениями банкоматов производства NCR: «Заражению троянской программой могут подвергнуться банкоматы, выпущенные до 2009 года, в которых не был сделан апгрейд старой клавиатуры на PCI-совместимые клавиатуры, работающие в режиме double length restricted, и на которых также отсутствует средство защиты, рекомендованное компанией NCR — Solidcore для APTRA. Система Solidcore для APTRA снижает риск несанкционированного запуска любого исполняемого кода, вне зависимости от способа, которым злоумышленнику удастся внедрить его в банкомат».
Карты, деньги, троянцы
Оказавшись в банкомате, специально написанный троянец может выполнять множество разнообразных действий. Но основные его функции — считывание данных магнитной ленты пластиковой карты (этакий скимминг без скиммера) и прямое «выдаивание» банкомата путем подачи на диспенсер фальшивой команды на выдачу банкнот. Некоторые троянцы умеют и то, и то, некоторые что-то одно. Для кардера разница между этими двумя способами заработка состоит в том, что кража денег из денежных кассет обнаружится при первый же после заражения инкассации, а считывать чужие карты троянец может очень долго — возможно, даже весь срок службы банкомата.
Заметим, что изнутри банкомата узнать вводимый ПИН-код карты невозможно. В режиме ввода ПИН-кода клавиатура шифрует вводимый номер и отдает системе банкомата лишь хэш-функцию с добавленным модификатором (так называемой «солью»). Эта функция характерна тем, что ее значение уникально для каждого ПИНа. Но, зная ее, узнать сам ПИН практически невозможно. Строго говоря, считав из банкомата хэш-функцию и узнав алгоритм ее вычисления, можно определить ПИН простым перебором, вычислив хэш-функцию для всех чисел от 0000 до 9999, но от этого спасает «соль», которая известна лишь клавиатуре и процессингу. Соответственно, авторизация карты сводится к сравнению хэш-функции ПИН + «соль», выданной клавиатурой банкомата, с хэш-функцией ПИН + «соль», которую вычисляет процессинг.
Все бы хорошо, но клавиатура банкомата хотя и называется «PIN-pad», но используется далеко не только для ввода ПИНа. Банки соревнуются друг с другом по набору предлагаемых клиентам функций, и многие из них требуют ввода других числовых данных: номеров карт и счетов, номера телефона в случае оплаты мобильного счета и т. д. Эти данные шифровать нельзя — никакой процессинг их не знает, хэш сверять не с чем. Именно поэтому у клавиатуры есть второй режим работы, в котором она просто сообщает компьютеру цифры, которые вводит пользователь.
Троянец, обосновавшийся в банкомате, поступает очень просто: подменяет собой программу, отвечающую за общение с пользователем. Он выводит точно такую же картинку, точно так же запрашивает у держателя карты ее ПИН, но работает с клавиатурой в незащищенном режиме. Таким образом он и получает всю необходимую информацию о карте: содержимое ее магнитной дорожки и ПИН-код.
Управление и контроль
Троянец, оказавшись в системе банкомата, имеет весьма ограниченный набор способов связи с внешним миром. Несмотря на то, что обмен данными с процессингом идет по открытым каналам (проводной сети или 3G-связи), никакой доступ в Интернет с банкомата невозможен. За это отвечает специальная аппаратура, поддерживающая зашифрованный канал связи с процессингом и больше ни с чем.
Из-за этого нюанса «общение» троянца с хозяином происходит только при очной встрече. Владелец (точнее дроп, преступник, находящийся на низшей ступени иерархии кардеров) вставляет в зараженный банкомат специальную смарт-карту, которая может быть замаскирована под обычную банковскую карту с EMV-чипом. На ней записан код, считав который троянец перейдет в режим получения команд и выведет на дисплей меню управления.
С помощью этого меню дроп может украсть деньги из диспенсера банкомата, обновить файлы троянца на новую версию (троянец загрузит обновление из памяти смарт-карты), получить данные считанных карт. В последнем случае троянец либо запишет файлы с дампами и ПИН-кодами на ту же смарт-карту, либо распечатает данные прямо на банкоматных чеках.
Векторы заражения
Банкомат — аппарат дисциплинированный, фишинговые ссылки не открывает, по подозрительным сайтам не ходит, и даже зараженную флешку в него не воткнешь. В какой-то мере это защищает его от опасности подцепить зловреда, но ведь и кардеры не лыком шиты. Правда, в данном случае их методы лишены изящества: банкомат заражает сотрудник банка, подкупленный или запуганный преступниками.
Самый незамысловатый способ заражения начинается с порчи банкомата (например, щель считывателя забивают бумагой). Приехавшего по вызову инженера поддержки подкупают прямо на месте (риска никакого, не согласился — едем к другому банкомату). У инженера есть ключ, позволяющий открыть верхнюю часть банкомата и получить доступ к его начинке. Инкассаторского ключа, открывающего сейф с денежными кассетами, у него нет, но он и не нужен — если надо, зараженный банкомат добровольно отдаст все деньги через диспенсер банкнот.
Второй способ еще проще: совращению повергается сотрудник процессингового центра, который может удаленно устанавливать на банкоматы обновления программного обеспечения. Правда, все действия такого рода система протоколирует, и избежать ответственности в таких случаях нелегко.
Самым техничным методом является вскрытие банкомата без ключа. Большинство банкоматов снабжены датчиками вскрытия, подающими сигнал службе безопасности. Но кардеры наловчились аккуратно высверливать отверстия в тонких местах корпуса и действовать через них. На данный момент зафиксированы лишь внутренние подключения скиммеров через такие отверстия, но так можно получить доступ и к USB-портам. Многие банкоматы работают под управлением Windows XP, в которой умолчанию включен автозапуск программ с внешних накопителей. Если производитель банкомата не позаботился о специальных мерах защиты, зараженная флешка может заразить систему.
Щит и меч
Защитить банкомат, безусловно, можно. Существуют базовые рекомендации по обеспечению безопасности банкоматов, которые, правда, необязательны к исполнению для банков. Производители предлагают банкам множество вариантов поставки — можно заказать банкомат в минимальной комплектации, что будет дешевле, можно выбрать полный набор защитных средств.
Дмитрий Погодин, менеджер по развитию бизнеса Diebold, рассказал, как его компания предлагает защищаться от банковских троянцев: «Наш метод заключается в создании многоуровневой, комплексной защиты банкомата. Мы считаем, что борьба с вредоносным ПО не должна сводиться исключительно к программным защитным средствам. Мы рекомендуем своим клиентам начать с физической безопасности, а также применения таких средств защиты, как усиленные замки, система контроля и разграничения прав доступа к головной части банкомата, системы видеонаблюдения и мониторинга. В части ПО мы настоятельно советуем начать защиту с установки на банкомат сертифицированных легальных приложений и ОС.
Наша компания, например, уже несколько лет устанавливает на банкоматы Diebold не только специализированную защищенную версию Windows, но и специально разработанную модель материнской платы с технологией Trusted Boot и кодированием всех коммуникаций. Кроме того, мы бесплатно устанавливаем на банкоматы систему Symantec Firewall & Endpoint Protection, которая позволяет контролировать целостность ПО, сетевой доступ, а также включает в себя антивирус и защиту от шпионских программ».
Помимо аппаратных средств защиты, для банкоматов выпускаются антивирусы, способные определить заражение, если оно все-таки произошло. Их эффективность ограничена из-за того, что автоматическое обновление их вирусных баз невозможно — это делают лишь сотрудники банков, которые могут и пренебречь этими рекомендациями.
Системы наподобие Solidcore для Aptra, поставляемые компанией NCR, действуют иначе (не исключая, но дополняя антивирусное ПО). Суть их работы заключается в контроле за действиями запущенных программ. Ни одно приложение, не содержащееся в заданном списке, на таком банкомате не запустится, а если запустится — не получит доступ ни к считывателю карт, ни к диспенсеру, ни к клавиатуре.
К сожалению, держатель карты никак не может ни защититься, ни определить наличие на банкомате вредоносной программы. При этом многие банки стремятся к максимальной экономии на своей банкоматной сети и пренебрегают средствами защиты от троянских программ. Впрочем, есть надежда на определенные подвижки в этом направлении: в свете грядущих изменений в законе о национальной платежной системе, предусматривающих возмещение денег клиентам, ставшим жертвами мошеннических операций, банкам такая беспечность может обойтись достаточно дорого.
Михаил ДЬЯКОВ,