Как взломать банкомат через компьютер
Вы, наверное, обращали внимание, что нам очень нравятся банкоматы. Сами мы их, конечно, не взламываем, за исключением наших собственных тестовых семплов, но, если это делает кто-то другой, с радостью беремся это расследовать. На SAS 2017, главной конференции года по кибербезопасности, специалисты «Лаборатории Касперского» Сергей Голованов и Игорь Суменков рассказали о трех интересных способах взломать банкомат:
ATMitch, вредоносное ПО с удаленным управлением
Итак, банкомат был пуст. Осмотрев машину, служба безопасности банка не нашла ни вредоносных программ, ни странных отпечатков пальцев, ни следов физического взлома или подключения каких-либо сторонних устройств, способных взять банкомат под контроль. Денег никто тоже не нашел.
Однако кое-что сотрудники банка все-таки обнаружили — текстовый файл kl.txt. Они предположили, что «kl» может быть как-то связано с KL, то есть с «Лабораторией Касперского», и обратились к нам с этим вопросом. Вот так мы и начали расследовать этот случай.
Получив данные из того самого log.txt, наши исследователи смогли сформулировать правило для YARA, инструмента для исследования вредоносных программ. Попросту говоря, они задали поисковый запрос для базы вредоносных файлов и стали ждать. Спустя день поиски принесли плоды: был обнаружен файл tv.dll, который успел всплыть аж дважды — в России и Казахстане. Этой ниточки хватило, чтобы распутать весь узел.
Тщательно исследовав DLL-файл, наши специалисты смогли понять, как проводилась атака, и даже воспроизвели ее на специальном банкомате, установленном в нашей лаборатории. И все получилось: тестируемый банкомат послушно выдал им загруженные в него банкноты.
ATMitch в деле
Атака началась с того, что преступники проникли на сервер банка, использовав для этого давно известную, но незакрытую уязвимость (мы, помнится, уже говорили, что обновлять программное обеспечение нужно, важно и полезно, — вот вам яркий пример).
Мошенники использовали открытый код и общедоступные программы, чтобы инфицировать банковские компьютеры. Однако зловред у них получился очень хитрый: он хранил свои данные в оперативной памяти системы, а не на жестком диске, так что для защитных решений он оставался незаметным. Более того, после перезагрузки исчезали какие-либо следы заражения.
Взяв под контроль компьютеры в банке, зловред подключается к командному серверу и позволяет мошенникам удаленно загрузить вредоносное ПО прямо в систему банкоматов.
Так ATMitch добирается собственно до банкомата. Благодаря настроенному туннелю от командного сервера в банк это все выглядит как вполне легитимное обновление ПО, так что ни одно средство защиты не поднимает тревогу. Попав внутрь, ATMitch отправляется на поиски файла по имени command.txt. В нем содержатся односимвольные команды, которые используются для управления банкоматом. Например, «О» означает «Открыть лоток для выдачи наличных».
Обнаружив файл, ATMitch первым делом интересуется, сколько денег есть в банкомате, а затем просит машину выдать определенное количество купюр. К этому моменту возле банкомата как раз оказывается сообщник преступников, который забирает наличные и исчезает как ни в чем не бывало.
Преступники постарались замести все следы, поэтому специалисты банка не нашли никаких сторонних исполняемых файлов на жестком диске ограбленного банкомата. После извлечения денег ATMitch стер даже файл command.txt.
Bl@ckb0x_m@g1k: простой, но очень эффективный трюк
Эта история покороче. Все началось с еще одного звонка из банка. Классическая тупиковая ситуация: пустые логи, никаких подозрительных файлов на жестком диске, более того, мошенник даже заклеил объектив камеры наблюдения. Ну как отказаться от такого дела?
Мы попросили представителей банка доставить банкомат в наш офис. Разобрав его, мы обнаружили (что бы вы думали?) подключенный к USB-хабу банкомата Bluetooth-адаптер. А на жестком диске нашлись драйверы для Bluetooth-клавиатуры.
Этого хватило, чтобы реконструировать всю схему. Итак, сначала мошенник подключил Bluetooth-адаптер к банкомату, а потом подождал три месяца, чтобы логи очистились (они хранятся как раз столько времени). Затем преступник вернулся, заклеил камеру наблюдения, достал Bluetooth-клавиатуру, подключил ее и перезагрузил устройство в режим обслуживания. Так он смог запустить сервисную команду по опустошению кассет с деньгами. Вот, собственно, и вся история номер два.
Дрель. Самая настоящая электродрель
Удаленный взлом и подключение Bluetooth-клавиатуры — это даже в какой-то степени изящно, но бывают и куда более прямолинейные способы.
Эта история началась с еще одного обращения от банка: преступники взломали банкомат, оставив после себя идеально круглое отверстие диаметром около 4 сантиметров, прямо рядом с клавиатурой, с которой вводят PIN-код. Вы, скорее всего, думаете, что банкоматы сделаны из толстенной стали, но некоторые части пластиковые, и их довольно легко просверлить. Других улик специалисты банка не нашли.
Затем последовало несколько похожих происшествий в России и Европе, разве что отверстия были не такими круглыми. В конце концов полиция поймала подозреваемого, вооруженного ноутбуком и набором проводов.
Наши специалисты разобрали банкомат, установленный в тестовой лаборатории, чтобы понять, что же искали преступники рядом с клавиатурой. Там нашелся 10-контактный коннектор, подключенный к шине, которая связывала между собой практически все компоненты банкомата, от компьютера до кассет с купюрами.
Кроме того, в банкомате использовалось очень слабое шифрование, которое можно было без особого труда взломать. Итак, еще раз вкратце описываем ситуацию: шифрования практически нет, так что в командах разобраться не проблема; подключившись к любой части банкомата, можно управлять всеми его компонентами, между которыми нет никакой системы авторизации, так что любую часть можно заменить незаметно для всех остальных. Звучит ну очень безопасно, правда?
Потратив целых $15 и сколько-то времени, мы сделали простую микросхему, с помощью которой можно было управлять банкоматом. Подключив ее к последовательной шине, мы заставили тестируемый банкомат выдать нам фальшивые деньги, которые использовали в тестовых целях. Похоже, преступники проделали тот же трюк, только в их случае банкомат был заряжен настоящими деньгами, а вместо микросхемы они использовали ноутбук.
Мы сообщили об обнаруженной уязвимости в банк. К сожалению, как объяснил Игорь Суменков, банкоматы нельзя обновить удаленно — нужно менять «железо», то есть технический специалист должен добраться до каждого банкомата и сколько-то с ним повозиться. А банкоматов очень, очень много…
Банкоматы ломают. И что?
Сформулируем краткую мораль всех трех историй.
1. Идете снимать зарплату? Оставьте свою дрель и Bluetooth-клавиатуру дома, а то сотрудники банка могут неправильно вас понять. Эй, мы пошутили, но дрель все равно положите!
2. Если вы не сотрудник банка, ни одна из этих угроз не должна вас беспокоить. Это проблемы банка, а не его клиентов.
3. А вот если вы работаете в банке и можете как-то повлиять на уровень безопасности банкоматной сети, вам есть о чем подумать.
В последнее время меня захлестнули письма читателей с вопросами типа: «Как можно
взломать банкомат и возможно ли это вообще?» Чтобы развеять все твои сомнения, я решил написать эту статью. Вся информация предоставляется с целью ознакомления, так что будь внимателен :).
Как это работает
Для начала уточню, что речь в своей статье я буду вести исключительно о банкоматах, и на этот раз мы не будем писать скамы, рассматривать кредитки и т.д. Грубо говоря, наша цель -
изучение систем защиты банкоматов и выявление в них уязвимых мест. Как обычно, работаем любыми доступными и недоступными методами =).
Начнем, пожалуй, с общего представления о функционировании банкоматов, их обслуживании, и связи с банками. Сам
банкомат (или ATM – Automated Teller Machine) представляет собой компьютер, совмещенный с сейфом. Компьютер, как правило, оснащен устройством ввода, дисплеем, кардридером (для чтения данных с пластиковой карты), презентером (для выдачи кэша) и чековым/журнальным принтером. Едва ли не самым дорогим устройством в банкомате является диспенсер - девайс, предназначенный для взятия/подачи денежных купюр, их проверки на подлинность и сортировки. Банкомат подключается к процессингу (например, по протоколу X.25) для возможности обмена данными с банком. Криптографические алгоритмы, использующиеся для шифрования передаваемой информации, и ПО, установленное в банкоматах, мы пока трогать не будем (но только пока). Кстати, банкомат можем связываться с ATM-контроллером и посредством Wi-Fi-адаптера, такая необходимость возникает в случае отсутствия стационарных каналов связи. Но об этом далее. Сейчас тебе нужно четко представлять схему работы банкомата и его связи с банком.
Схема связи банкоматов с ATM-контроллером
Следующий важный момент - обслуживание и заправка банкоматов. По способу обслуживания
банкоматы делятся на два типа: с задней загрузкой, при которой, соответственно, все обслуживание банкомата производится сзади, и с передней загрузкой, при которой банкомат обслуживается спереди. Тебе, наверняка, доводилось видеть, как пара здоровенных мужиков в камуфляже и с карабинами в руках заправляли кассеты
банкомата. Это зрелище несомненно завораживает красноречивым сочетанием денег и оружия :). Грабить и убивать мы никого не собираемся, но одну интересную деталь я отмечу - время выезда инкассаторов всегда держится в секрете, а сами инкассаторы получают пакеты с маршрутами непосредственно перед выездом. Не вижу смысла рассматривать установочные системы банкоматов, однако скажу, что достаточно популярным является способ установки через стену с внутренними креплениями. Вырвать такой банкомат можно только с куском стены :).
Hub MOXA для интеграции в банкомат
Взлом банкомат извне
Вот мы и подошли к более интересной части. Сейчас мы ознакомимся с внешней
защитой банкоматов. Под внешней защитой я подразумеваю:
- камеры видеонаблюдения;
- GPS-маячки;
- сигнализацию;
- корпус (и сейф банкомата).
Здесь нужно знать одну деталь - банкоматы в России представлены в большинстве своем всего тремя фирмами-производителями: Diebold, Siemens и NCR. Встречаются также и BenQ, но их несколько меньше. Эти виды банкоматов отличаются, прежде всего, с технической точки зрения, имея свои нюансы в устанавливаемом ПО. По ходу статьи я буду указывать на такие различия.
Список распространенных операционок для банкоматов выглядит следующим образом:
Первым важным моментом в построении линии защиты являются системы видеонаблюдения. Они делятся на внешние и внутренние. Внешние устанавливаются независимо от банкомата и фиксируют в основном обстановку в непосредственной близости от объекта. Внутренние встраиваются в сам банкомат и зачастую не заметны для постороннего. Нас интересуют прежде всего внутренние системы видеонаблюдения. Одна из распространенных систем такого плана -
WebATM. В общем виде она состоит из камеры и интерфейсного кабеля. Внешняя аппаратная часть представляет собой встраиваемый внутрь банкомата отдельный миниатюрный системный блок компьютера. Таким образом,
WebATM включает в себя дополнительный системный блок, камеру, интерфейсный кабель и сетевую карту. Отличительной особенностью системы является ее автономность. При выходе из строя банкомата система видеонаблюдения продолжает функционировать в автономном режиме. Это позволяет производить съемку даже при попытке злоумышленников нанести повреждения банкомату.
WebATM работает под управлением IBM OS/2 и MS Win2000/XP на банкоматах Diebold, под MS Win2000/XP на банкоматах Siemens и под IBM OS/2 на банкоматах NCR. Версия для Diebold под Linux находится в разработке.
Кстати, любопытные параметры имеет конфигурационный файл
WebATM. Для примера я приведу небольшой кусочек с комментариями, а полное описание ты сможешь найти на
диске, прилагаемом к
журналу.
Как ты видишь, камера не просто делает снимки, но и помещает на снимок информацию о транзакции: дату, сумму, номер карточки и т.д. При каких-либо махинациях с банковскими карточками такой снимок послужит отличным доказательством в суде. Так что польза (а кому-то и угроза) таких систем налицо :). Однако
WebATM - игрушка дорогая, и далеко не все банки могут позволить себе ее установку.
Следующий важный нюанс на линии обороны предполагаемого противника aka банкомата - GPS-маячки. Коротко напомню суть самой системы GPS-навигации. Global Positioning System (GPS) – это спутниковая навигационная система, состоящая из более 20 спутников, работающих в единой сети и находящихся на шести орбитах на высоте около 17000 км над поверхностью Земли. Спутники постоянно движутся со скоростью около 3 км/сек, совершая 2 полных оборота вокруг планеты менее чем за 24 часа. Кстати, сама спутниковая система GPS известна также под другим названием – NAVSTAR. В последнее время широкое распространение получили GPS-маячки. Причем используются они для самых разнообразных целей: начиная охранными системами и заканчивая реализацией совсем не благих намерений. В нашем случае подобный маячок встраивается в банкомат с целью передачи координат своего местоположения службе безопасности банка.
GPS - технология достаточно сложная, но чрезвычайно полезная. Хотя в ней есть и свои недостатки. В первую очередь, это ограничения на места эксплуатации. Там, где нет спутниковых сигналов (или они по каким-либо причинам не доходят) устанавливать GPS-маячок бессмысленно. Предположим, что после кражи банкомат помещен в глубокий подземный погреб. При таких обстоятельствах GPS-навигация бессильна =). Неприятная ситуация прорисовывается и со зданиями. Качество сигнала, который самым непосредственным образом влияет на полноценное функционирование маячка, зависит от планировки, толщины стен и прочих факторов. В принципе маячок можно попытаться самостоятельно извлечь из корпуса банкомата, но тут есть небольшая загвоздка. Дело в том, что старые модели банкоматов не предусматривали их оснащение GPS-оборудованием. Поэтому поиск и «обезвреживание» крепления может обернуться солидным геморроем.
Еще одна существенная помеха на пути атакующих «в лоб» - корпус банкомата, в частности, сейф. Во-первых,
банкомат весит более четырех тонн, а во-вторых, толстые стенки корпуса сделаны из сверхпрочного металла. Сотрудник одного из банков рассказал мне достаточно поучительную историю о краже банкомата.
Банкомат обнаружили вместе со злоумышленниками через 16 часов после кражи. Так вот за эти самые 16 часов удалось прорезать болгаркой лишь 4 см толщины стенки сейфа, а ушло на это 15 дисков! Никто не утверждает, что вскрыть банкомат нереально, но на это нужно потратить кучу сил и времени.
Общая схема устройства банкомата
Модульная видеокамера для банкомата
Взлом банкомат изнутри
Так, с угрозами извне разобрались и плавно переходим к угрозам изнутри =). Сразу оговорюсь, что рассматривать инсайдерский способ добычи информации мы сейчас не будем, так как речь идет именно о банкомате, а не о человеческом факторе. Суть идеи заключается в перехвате трафика между банкоматом и банком во время совершения транзакции. Это позволит получить доступ к банковским данным кардхолдеров со всеми вытекающими отсюда последствиями :). В некотором виде, это напоминает атаку класса man-in-a-middle (человек посередине). С этой технологией, полагаю, ты знаком. Но в нашем случае есть несколько особенностей:
- повсеместное видеонаблюдение;
- сигнализация;
- шифрованный трафик.
Также стоит учитывать, что сеть может оказаться беспроводной. Первый пункт мешает установить подключение непосредственно вблизи банкомата/банка. А отрыть кабель на глубине нескольких метров будет весьма проблематично, учитывая, что в подвальные помещения банка тебя просто так никто не пустит. Кроме того, сигнализация не сыграет на руку злоумышленникам, хотя при умелом подходе этот фактор можно почти полностью отбросить. Но зато появляется новый - проверка линии (проводная сеть) службой безопасности банка. О том, как вычислить постороннее подключение на линии, я рассказывал еще в
мартовском номере журнала.
Допустим, что по халатности в течение некоторого времени твое подключение останется незамеченным. Но тут возникает следующая проблема - шифрование трафика. Все данные от
банкоматов передаются в зашифрованном виде, сейчас для этого повсеместно применяется 1024-битное шифрование. Как ты понимаешь, не имея ключей шифрования, можно запросто остаться не у дел. Самой распространенной системой шифрования подобного рода является DESATM. Все данные шифруются непосредственно на банкомате и весь путь следования проходят зашифрованными. Расшифровываются они непосредственно на сервере, который находится в защищенной сети в непосредственной близости от контроллера банкомата. Однако если подобные системы не используются, то в открытом виде чаще всего не передается лишь PIN-код, а вся сопутствующая инфа (номер карточки, данные кардхолдера и т.д.) остаются незашифрованными. Кстати, в Великобритании был любопытный случай, когда местный умелец прослушивал линии, по которым передавалась информация в процессинговый центр, с помощью обыкновенного mp3’шника :). Ошибка банка заключалась в том, что его СБ не использовала на своих банкоматах дополнительное криптографическое ПО. Так что
шанс все же есть, хоть и небольшой. Вот, правда, умельца этого нашли и отправили в места не столь отдаленные.
Занавес
Ну что же, наиболее интересные моменты защиты банкоматов были разобраны. Конечно, рассмотреть все детали в рамках этой статьи было невозможно. Во-первых, такой материал занял бы по объему пару выпусков «Х», а во-вторых, почти вся документация такого плана имеет гриф ДСП (для служебного пользования) и распространяется строго между сотрудниками банков. Все же я надеюсь, что мысли о
взломе банкомата теперь станут посещать тебя реже =). Если коротко, то хлопотное это дело и опасное. Не стоит вставать на кривую дорожку, живи и получай от жизни максимум удовольствия, а банкоматы оставь в покое.
Полную версию статьи
читай в апрельском номере
Хакера! На диске ты так же найдешь
дополнительные материалы к статье.
Как преступники могут взломать банкоматы и извлечь из них деньги? На этих видео вы увидите сразу четыре способа.
29 сентября 2016
Мы не раз рассказывали о том, как какие-нибудь киберпреступные группировки обчищают банкоматы. А теперь можем и показать — наши сотрудники сняли четыре видеоролика, в которых демонстрируются различные варианты атак на банкоматы. Уточним на всякий случай: при съемках роликов ни один банк не пострадал.
Способ первый: с помощью поддельного процессингового центра
Этот способ работает, если взломщик может получить доступ к сетевому кабелю, при помощи которого банкомат подключен к сети. Хакер отключает банкомат от банковской сети и подключает его к коробочке, имитирующей процессинговый центр.
С помощью этой коробочки он может управлять кассетами с деньгами и посылать банкомату команду выдать деньги из такой-то кассеты. Вуаля! При этом он может использовать любые карты и вводить любые PIN-коды, и все это будет выглядеть как вполне легитимные транзакции.
Способ второй: сетевая атака на несколько банкоматов
В этом случае взломщик покупает у недобросовестного работника банка через Интернет ключ, позволяющий открыть корпус банкомата. К кассетам с деньгами с помощью этого ключа не доберешься, а вот до сетевого кабеля — запросто. Взломщик отключает банкомат от банковской сети и подсоединяет к специальному устройству, которое посылает данные на сервер, принадлежащий злоумышленникам.
Сеть с банкоматами нередко не сегментирована, а сами банкоматы зачастую настроены неправильно, так что с помощью этого устройства хакер может получить контроль сразу над несколькими банкоматами в сети, даже если вредоносное устройство установлено только в одном из них.
Ну а дальше все почти как в предыдущем случае: на сервер устанавливается собственный центр обработки, который дает злоумышленнику полный контроль над банкоматами. Теперь с помощью любой карты хакер может снять все деньги из этих банкоматов, и конкретные модели здесь не важны: главное, чтобы протокол, с помощью которого они общаются с центром обработки, был общий.
Способ четвертый: атака с помощью вредоносных программ
В этом случае злоумышленнику нужно как-то заразить банкомат. Сделать это можно двумя способами: либо, предварительно купив ключ от банкомата, воткнуть в USB-порт флешку, либо же можно провернуть все и удаленно, через Интернет, если банковская сеть скомпрометирована.
Если в банкомате нет защиты от вредоносных программ и не настроен список разрешенных приложений, хакер может запустить свою программу, которая попросту будет отдавать банкомату команду выдавать наличные. Атаку можно повторять, пока в устройстве не кончатся деньги.
Устройство банкомата
За крепким стальным корпусом такого аппарата скрывается обычный компьютер , который связан с сетью своего банка посредством кабельного (ADSL, Ethernet) или беспроводного доступа (WiFi, 3G/4G). Кстати, для обмена данными как правило используются каналы связи всего по 64-128 КБит/сек.
Вся наличность находится в специальном бронированном модуле, который называют сейф. Доступ к нему имею инкассаторы, которые занимаются заменой денежных кассет.
Для вывода информации пользователю используется дисплей . На последних моделях он уже идёт сенсорный. В противном случае, рядом с экраном будут находится кнопки управления.
Так же, в целях безопасности, противодействия взлому банкомата и мошеннических действий с ним, внутри установлена система видео-наблюдения, имеющая минимум одну видеокамеру. в более продвинутых аппаратах видеокамер несколько. Они используются для видеофиксации приёма и выдачи денег прямо рядом с купюроприёмником и устройством выдачи купюр.
Ну и не стоит забывать про принтер , печатающий чеки. Он представляет собой наименьший интерес для взломщиков.
1. Физическое повреждение или поломка банкомата
Кстати, как показывает статистика, большинство взломов банковских терминалов заканчивается неудачей для преступников и значительным ущербом для банка из-за значительных повреждений устройства.
2. Использование аппаратных уязвимостей
Здесь вся суть кроется в поиске уязвимостей, которые производитель банкомата допустил в конструкции своих изделий, либо в комплектующих, использованных в производстве.
Самый популярный на сегодня вариант называется кеш-трэппинг . Суть его заключается в том, чтобы различными способами повредить механизм выдачи денег так, чтобы он не мог ни выдать купюры, ни вернуть их обратно в кассеты. Клиент пытается снять деньги, но у него это не получается. Он получает карточку и уходит. Наличные как бы возвращаются назад в терминал, но по факту остаются в шаттере и злоумышленникам остаётся только извлечь их оттуда.
Ещё один, относительно свежий способ открыли совсем недавно. Называется он Drilled Box . Тут используется чисто конструктивная особенность определённых моделей одной марки банкоматов. В корпусе просверливается отверстие для подключения специальной шины, через которую деньги благополучно покидают сейф.
3. Скимминг
Это сложный в техническом плане, да и в самой реализации способ, но он имеет место быть. Сложен он тем, что на банкомат Сбербанка или другого банка надо прикрепить каким-то образом устройство для считывания карты (скиммер), которое считает код карты, а так же цифровую клавиатуру (пинбокс) или видеокамеру чтобы увести пин-код. После этого изготавливается дубликат карты и со счёта клиента средства уходят далеко и надолго.
4. Программный взлом
На старых моделях, где ещё используются COM-порты, возможен ещё один вариант взлома, который подразумевает вскрытие корпуса и подключение мобильного компьютера для перехвата данных. Именно поэтому на новых девайсах уже используются только USB разъёмы.
Исследователь безопасности обнаружил ряд ошибок, позволяющих взламывать банкоматы и широкий спектр терминалов продаж по-новому — взмахом телефона над устройством для чтения бесконтактных банковских карт. К старту курса Этичный хакер делимся переводом статьи о возможностях, которые открываются при эксплуатации обнаруженных уязвимостей, о том, что делал автор, чтобы обнаружить их и о том, как отреагировали производители банкоматов.
Иосип Родригес, Исследователь и консультант по безопасности охранной фирмы IOActive провёл последний год в поисках уязвимости в так называемых чипах коммуникации ближнего поля (NFC), работающих в миллионах банкоматов и терминалов продаж по всему миру. С NFC для проведения платежа или вывода денег из банкомата не нужно вставлять карту — достаточно провести её над считывателем. Технология работает в бесчисленных розничных магазинах и ресторанах, торговых автоматах, паркоматах и такси по всему миру.
Родригес утверждает, что он даже может заставить банкоматы, по крайней мере одной марки, выдавать наличные, хотя такой «джекпоттинг» работает только в сочетании с другими ошибками, которые, по его словам, он нашёл в программном обеспечении банкоматов. Из-за соглашений о неразглашении с поставщиками банкоматов Родригес отказался уточнять или раскрывать эти ошибки.
«Можно модифицировать прошивку и изменить цену, например на один доллар, пока на экране отображается другая цена, вывести устройство из строя или установить своего рода программу-вымогатель — вариантов много», — рассказывает Родригес об обнаруженных им уязвимостях.
«Выстроив цепочку атак, а также отправив специальную полезную нагрузку на компьютер банкомата, вы сможете снять деньги с банкомата, как джекпот, просто проведя телефоном над NFC-считывателем».
Исследователь рассказывает, что с июня по декабрь 2020 года он предупреждал о своих находках пострадавших поставщиков, включая ID Tech, Ingenico, Verifone, Crane Payment Innovations, BBPOS, Nexgo, а также неназванного поставщика банкоматов.
Тем не менее исследователь также предупреждает о том, что затронуто огромное количество систем, а также о факте, что многие терминалы и банкоматы обновляют ПО нерегулярно, во многих случаях требуя физического доступа для обновления. Это означает, что многие устройства, вероятно, останутся уязвимыми. «Физическое исправление стольких сотен тысяч банкоматов потребует много времени», — говорит Родригес.
Он также не предоставил видеодемонстрацию атаки джекпоттинга, поскольку, по его словам, мог легально протестировать только устройства, полученные в рамках консультаций IOActive по вопросам безопасности для пострадавшего поставщика банкоматов, с которым IOActive подписала соглашение о неразглашении.
«Полученные результаты — отличное исследование уязвимости работающего на встраиваемых устройствах программного обеспечения», — говорит Карстен Нол, основатель фирмы по безопасности SRLabs и известный взломщик прошивок, который проанализировал работу Родригеса.
Однако Нол указывает на несколько недостатков, которые делают метод непрактичным в реальных кражах. Взломанный считыватель NFC может украсть только данные карты с магнитной полосой, но не PIN-код жертвы или данные с чипов EMV. И тот факт, что трюк с обналичиванием денег из банкомата потребует дополнительной уязвимости в коде конкретного банкомата, — немаловажная оговорка, утверждает Нол.
Вместе с тем исследователи в области безопасности, такие как покойный хакер IOActive Барнаби Джек и команда Red Balloon Security, уже много лет вскрывают уязвимости банкоматов и даже показали, что хакеры могут удалённо запускать джекпоттинг ATM. Генеральный директор и главный научный сотрудник Red Balloon Анг Куи рассказывает, что впечатлён выводами Родригеса и, несмотря на то что IOActive утаила некоторые детали своей атаки, не сомневается, что взлом считывателя NFC может привести к выдаче наличных во многих современных банкоматах.
«Я думаю, очень правдоподобно, что как только вы получите возможность выполнения кода на любом из этих устройств, то сможете добраться до главного контроллера: он полон уязвимостей, которые остаются в системе более десяти лет», — говорит Куи. «Оттуда, — добавляет он, — абсолютно точно возможно контролировать кассетный диспенсер, который хранит и выдаёт наличные деньги пользователям».
Родригес, который провёл годы, тестируя безопасность банкоматов в качестве консультанта, рассказывает, что год назад начал изучать вопрос о том, могут ли бесконтактные считыватели карт банкоматов, чаще всего продаваемые компанией ID Tech, специализирующейся на платёжных технологиях, — служить средством их взлома. Он начал покупать считыватели NFC и терминалы продаж на eBay и вскоре обнаружил, что многие из них страдают от одного и того же недостатка безопасности: они не проверяют размер пакета данных, отправляемого через NFC с банковской карты на считыватель, этот пакет называют пакетом данных протокола приложения или APDU.
Когда WIRED связались с пострадавшими компаниями, ID Tech, BBPOS и Nexgo не ответили на просьбы о комментариях, также отказалась от комментариев Ассоциация индустрии банкоматов. Компания Ingenico в своём заявлении сообщила, что благодаря принятым мерам безопасности способ переполнения буфера Родригеса мог только вывести из строя её устройства, но не позволял выполнить код на них. Однако, «учитывая неудобства и последствия для наших клиентов», компания всё равно выпустила исправление.
Родригес сомневается, что меры Ingenico действительно предотвратят выполнение кода, но он не написал доказательство концепции для демонстрации.
Компания Verifone, в свою очередь, заявила, что нашла и устранила уязвимости терминалов, на которые Родригес обратил внимание в 2018 году, задолго до того, как он сообщил о них. Но Родригес утверждает, что это лишь демонстрирует непоследовательность исправления в устройствах компании; он говорит, что протестировал свои методы взлома с помощью NFC на устройстве Verifone в ресторане в прошлом году и обнаружил, что оно по-прежнему уязвимо.
Многие находки исследователя оставались в тайне целый год, в ближайшие недели Родригес планирует поделиться техническими деталями уязвимостей на вебинаре, отчасти, чтобы подтолкнуть клиентов пострадавших производителей внедрить выпущенные исправления.
Кроме того, Родригес хочет привлечь внимание к плачевному состоянию безопасности встраиваемых устройств в целом. Он был потрясён, обнаружив, что такие простые уязвимости, как переполнение буфера, сохранились во многих широко используемых устройствах — тех, которые работают с наличными и конфиденциальной финансовой информацией.
«Многие годы эти уязвимости присутствуют в прошивке устройств, с которыми мы каждый день сталкиваемся при работе с банковским картами, с нашими деньгами, — говорит он. — Они должны быть защищены».
Из этого материала становится ясно, что даже системы, которые непосвящённому человеку кажутся самыми надёжными, могут подводить из-за недостатков, известных уже десятки лет. Если вам хочется самому находить такие уязвимости, то научиться всему можно на нашем курс для пентестеров со специальной скидкой по промокоду HABR.
Узнайте, как прокачаться и в других специальностях или освоить их с нуля:
Читайте также: