Леонид «R0id» Стройков
Хакер, номер #100, стр. 078
Анализ защищенности банкоматов
В последнее время меня захлестнули письма читателей с вопросами типа: «Как можно взломать банкомат и возможно ли это вообще?» Чтобы развеять все твои сомнения, я решил написать эту статью. Вся информация предоставляется с целью ознакомления, так что будь внимателен .
Как это работает
Для начала уточню, что речь в своей статье я буду вести исключительно о банкоматах и на этот раз мы не будем писать скамы, рассматривать кредитки и т.д. Грубо говоря, наша цель - изучение систем защиты банкоматов и выявление в них уязвимых мест. Как обычно, работаем любыми доступными и недоступными методами =).
Начнем, пожалуй, с общего представления о функционировании банкоматов, их обслуживании, и связи с банками. Сам банкомат (или ATM – Automated Teller Machine) представляет собой компьютер, совмещенный с сейфом. Компьютер, как правило, оснащен устройством ввода, дисплеем, кардридером (для чтения данных с пластиковой карты), презентером (для выдачи кэша) и чековым/журнальным принтером. Едва ли не самым дорогим устройством в банкомате является диспенсер - девайс, предназначенный для взятия/подачи денежных купюр, их проверки на подлинность и сортировки. Банкомат подключается к процессингу (например, по протоколу X.25) для возможности обмена данными с банком. Криптографические алгоритмы, использующиеся для шифрования передаваемой информации, и ПО, установленное в банкоматах, мы пока трогать не будем (но только пока). Кстати, банкомат можем связываться с ATM-контроллером и посредством Wi-Fi адаптера, такая необходимость возникает в случае отсутствия стационарных каналов связи. Но об этом далее. Сейчас тебе нужно четко представлять схему работы банкомата и его связи с банком.
Следующий важный момент - обслуживание и заправка банкоматов. По способу обслуживания банкоматы делятся на два типа: с задней загрузкой, при которой, соответственно, все обслуживание банкомата производится сзади, и с передней загрузкой, при которой банкомат обслуживается спереди. Тебе, наверняка, доводилось видеть, как пара здоровенных мужиков в камуфляже и с карабинами в руках заправляли кассеты банкомата. Это зрелище несомненно завораживает красноречивым сочетанием денег и оружия . Грабить и убивать мы никого не собираемся, но одну интересную деталь я отмечу - время выезда инкассаторов всегда держится в секрете, а сами инкассаторы получают пакеты с маршрутами непосредственно перед выездом. Не вижу смысла рассматривать установочные системы банкоматов, однако скажу, что достаточно популярным является способ установки через стену с внутренними креплениями. Вырвать такой банкомат можно только с куском стены .
Атака извне
Вот мы и подошли к более интересной части. Сейчас мы ознакомимся с внешней защитой банкоматов. Под внешней защитой я подразумеваю:
камеры видеонаблюдения;
GPS-маячки;
сигнализацию;
корпус (и сейф банкомата).
Здесь нужно знать одну деталь - банкоматы в России представлены в большинстве своем всего тремя фирмами-производителями: Diebold, Siemens и NCR. Встречаются также и BenQ, но их несколько меньше. Эти виды банкоматов отличаются, прежде всего, с технической точки зрения, имея свои нюансы в устанавливаемом ПО. По ходу статьи я буду указывать на такие различия.
Список распространенных операционок для банкоматов выглядит следующим образом:
IBM OS/2;
MSWinNT;
MS Win2000/XP;
Linux.
Первым важным моментом в построении линии защиты являются системы видеонаблюдения. Они делятся на внешние и внутренние. Внешние устанавливаются независимо от банкомата и фиксируют в основном обстановку в непосредственной близости от объекта. Внутренние встраиваются в сам банкомат и зачастую не заметны для постороннего. Нас интересуют прежде всего внутренние системы видеонаблюдения. Одна из распространенных систем такого плана - WebATM. В общем виде она состоит из камеры и интерфейсного кабеля. Внешняя аппаратная часть представляет собой встраиваемый внутрь банкомата отдельный миниатюрный системный блок компьютера. Таким образом, WebATM включает в себя дополнительный системный блок, камеру, интерфейсный кабель и сетевую карту. Отличительной особенностью системы является ее автономность. При выходе из строя банкомата, система видеонаблюдения продолжает функционировать в автономном режиме. Это позволяет производить съемку даже при попытке злоумышленников нанести повреждения банкомату. WebATM работает под управлением IBM OS/2 и MS Win2000/XP на банкоматах Diebold, под MS Win2000/XP на банкоматах Siemens и под IBM OS/2 на банкоматах NCR. Версия для Diebold под Linux находится в разработке.
Кстати, любопытные параметры имеет конфигурационный файл WebATM. Для примера я приведу небольшой кусочек с комментариями, а полное описание ты сможешь найти на нашем диске.
archive_path – задает путь к архиву снимков. По этому пути будут сохраняться снимки, полученные в процессе работы системы.
log_path – полный путь и имя файла журнала.
agent – задает имя банкомата. Служит для идентификации банкомата. Имя может быть любым, количество символов в котором не превышает 10-ти. Систему нумерации каждый банк может выбирать сам. Имя указывается на каждом снимке в поле ID для однозначной идентификации банкомата, на котором сделан снимок.
shot_mask - маска для номера карточки. Если указана маска «####********####», то на фотографии будет напечатан номер карточки «1234********5678».
card_event - включить (при значении > 0) съемку при событии «Клиент вставил карточку»/«Клиент забрал карточку». 0 – выключить реакцию на событие. Значение задает количество кадров для съемки, то есть «events.card_event = 10» - камера сделает 10 кадров после данного события. По умолчанию – 0.
request_send – событие транзакции (запрос на съем денег или на получение остатка по счету); request_send_path, request_send_delay – смотри выше.
amount – сумма транзакции, если таковая была.
Как ты видишь, камера не просто делает снимки, но и помещает на снимок информацию о транзакции: дату, сумму, номер карточки и т.д. При каких-либо махинациях с банковскими карточками такой снимок послужит отличным доказательством в суде. Так что польза (а кому-то и угроза) таких систем налицо . Однако WebATM - игрушка дорогая, и далеко не все банки могут позволить себе ее установку.
Следующий важный нюанс на линии обороны предполагаемого противника aka банкомата - GPS-маячки. Коротко напомню суть самой системы GPS-навигации. Global Positioning System (GPS) – это спутниковая навигационная система, состоящая из более 20 спутников, работающих в единой сети и находящихся на шести орбитах на высоте около 17000 км над поверхностью Земли. Спутники постоянно движутся со скоростью около 3 км/сек, совершая 2 полных оборота вокруг планеты менее чем за 24 часа. Кстати, сама спутниковая система GPS известна также под другим названием – NAVSTAR. В последнее время широкое распространение получили GPS-маячки. Причем используются они для самых разнообразных целей: начиная охранными системами и заканчивая реализацией совсем не благих намерений. В нашем случае подобный маячок встраивается в банкомат с целью передачи координат своего местоположения службе безопасности банка.
Для того чтобы учесть все интересные моменты, разберемся в принципе работы GPS-маячка более детально. Сигнал GPS-спутника содержит псевдослучайный код (PRN - pseudo-random code), эфимерис (ephimeris) и альманах (almanach). Псевдослучайный код служит для идентификации передающего спутника. Все они пронумерованы: от 1 до 32. С целью облегчения обслуживания GPS-сети количество PRN-номеров больше, чем число спутников. Данные эфимериса, постоянно передаваемые каждым спутником, содержат такую важную информацию, как состояние спутника (рабочее или нерабочее), текущая дата и время. Это позволяет GPS-приемнику сверять время/дату. Кроме того, эта часть сигнала играет свою роль в определении местоположения. Данные альманаха сообщают о том, где в течение дня должны находиться спутники. Каждый из них передает альманах, содержащий параметры своей орбиты, а также орбиты всех других спутников системы. GPS-приемник получает это сообщение и запоминает эфимерис и альманах для дальнейшего использования. Эта же информация используется для установки или коррекции времени/даты. А для определения местоположения GPS-приемник сравнивает время отправки сигнала со спутника со временем его получения на Земле. Эта разница во времени говорит приемнику о расстоянии до конкретного спутника. Если добавить к этому информацию о расстоянии до нескольких других спутников, то можно определить свое местоположение. Кстати, постоянное отслеживание местоположения в течение некоторого времени может быть использовано для расчета скорости и направления движения объекта, оснащенного GPS-маячком.
Как видишь, технология достаточно сложная, но чрезвычайно полезная. Хотя в ней есть и свои недостатки. В первую очередь, это ограничения на места эксплуатации. Там где нет спутниковых сигналов (или они по каким-либо причинам не доходят) устанавливать GPS-маячок бессмысленно. Предположим, что после кражи банкомат помещен в глубокий подземный погреб. При таких обстоятельствах GPS-навигация бессильна =). Неприятная ситуация прорисовывается и со зданиями. Качество сигнала, который самым непосредственным образом влияет на полноценное функционирование маячка, зависит от планировки, толщины стен и прочих факторов. В принципе маячок можно попытаться самостоятельно извлечь из корпуса банкомата, но тут есть небольшая загвоздка. Дело в том, что старые модели банкоматов не предусматривали их оснащение GPS-оборудованием. Поэтому поиск и «обезвреживание» крепления может обернуться солидным геморроем.
Еще одна существенная помеха на пути атакующих «в лоб» - корпус банкомата, в частности сейф. Во-первых, банкомат весит более четырех тонн, а во-вторых, толстые стенки корпуса сделаны из сверхпрочного металла. Сотрудник одного из банков рассказал мне достаточно поучительную историю о краже банкомата. Банкомат обнаружили вместе со злоумышленниками через 16 часов после кражи. Так вот за эти самые 16 часов удалось прорезать болгаркой лишь 4 см толщины стенки сейфа, а ушло на это 15 дисков! Никто не утверждает, что вскрыть банкомат нереально, но на это нужно потратить кучу сил и времени.
Атака изнутри
Так, с угрозами извне разобрались и плавно переходим к угрозам изнутри =). Сразу оговорюсь, что рассматривать инсайдерский способ добычи информации мы сейчас не будем, так как речь идет именно о банкомате, а не о человеческом факторе. Суть идеи заключается в перехвате трафика между банкоматом и банком во время совершения транзакции. Это позволит получить доступ к банковским данным кардхолдеров со всеми вытекающими отсюда последствиями . В некотором виде, это напоминает атаку класса man-a-middle (человек посередине). С этой технологией, полагаю, ты знаком. Но в нашем случае есть несколько особенностей:
повсеместное видеонаблюдение;
сигнализация;
шифрованный трафик.
Также стоит учитывать, что сеть может оказаться беспроводной. Первый пункт мешает установить подключение непосредственно вблизи банкомата/банка. А отрыть кабель на глубине нескольких метров будет весьма проблематично, учитывая, что в подвальные помещения банка тебя просто так никто не пустит. Кроме того, сигнализация не сыграет на руку злоумышленникам, хотя при умелом подходе этот фактор можно почти полностью отбросить. Но зато появляется новый - проверка линии (проводная сеть) службой безопасности банка. О том, как вычислить постороннее подключение на линии, я рассказывал еще в мартовском номере журнала.
Допустим, что по халатности в течение некоторого времени твое подключение останется незамеченным. Но тут возникает следующая проблема - шифрование трафика. Все данные от банкоматов передаются в зашифрованном виде, сейчас для этого повсеместно применяется 1024-битное шифрование. Как ты понимаешь, не имея ключей шифрования, можно запросто остаться не у дел. Самой распространенной системой шифрования подобного рода является DESATM. Все данные шифруются непосредственно на банкомате и весь путь следования проходят зашифрованными. Расшифровываются они непосредственно на сервере, который находится в защищенной сети в непосредственной близости от контроллера банкомата. Однако если подобные системы не используются, то в открытом виде чаще всего не передается лишь PIN-код, а вся сопутствующая инфа (номер карточки, данные кардхолдера и т.д.) остаются незашифрованными. Кстати, в Великобритании был любопытный случай, когда местный умелец прослушивал линии, по которым передавалась информация в процессинговый центр, с помощью обыкновенного mp3’шника . Ошибка банка заключалась в том, что его СБ не использовала на своих банкоматах дополнительное криптографическое ПО. Так что шанс все же есть, хоть и небольшой. Вот, правда, умельца этого нашли и отправили в места не столь отдаленные.
Занавес
Ну что же, наиболее интересные моменты защиты банкоматов были разобраны. Конечно, рассмотреть все детали в рамках этой статьи было невозможно. Во-первых, такой материал занял бы по объему пару выпусков «Х», а во-вторых, почти вся документация такого плана имеет гриф ДСП (для служебного пользования) и распространяется строго между сотрудниками банков. Все же я надеюсь, что мысли о взломе банкомата теперь станут посещать тебя реже =). Если коротко, то хлопотное это дело и опасное. Не стоит вставать на кривую дорожку, живи и получай от жизни максимум удовольствия, а банкоматы оставь в покое.
Warning
Внимание! Информация предоставлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несут!
Info
Банкоматы, помимо видеосъемки, ведут еще и полное логирование всех операций. Кроме того, многие из них оборудованы GPS-маячками.
Во многих российских банках сотрудники СБ не отличаются особой вежливостью, так что в случае активных действий будь готов получить физический отпор.