Се­год­ня раз­берем устрой­ство бан­коматов и рас­ска­жем об основных видах атак на них. Затем в деталях рас­смот­рим те сце­нарии хищения денег, которые нам уда­лось обна­ружить, и дадим рекомен­дации, как их пре­дот­вра­тить.

Статья под­готов­лена ана­лити­ками из PT Cyber Analytics. Эта коман­да соп­ровож­дает про­екты Red Team: раз­бира­ет резуль­таты, опи­сыва­ет деятель­ность этич­ных хакеров и оце­нива­ет кри­тич­ность обна­ружен­ных угроз и уро­вень защищен­ности ком­паний, так­же дает рекомен­дации по устра­нению уяз­вимос­тей и монито­рин­гу инфраструк­туры. В осно­ве статьи — экспер­тиза, получен­ная в ходе иссле­дова­ний в области ана­лиза защищен­ности бан­коматов. В под­готов­ке матери­ала помога­ли и дру­гие сот­рудни­ки Positive Technologies — спе­циалис­ты по безопас­ности бан­ков­ских сис­тем и реверс‑инже­неры из отде­ла ана­лиза при­ложе­ний.

warning

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

 

Устройство банкомата

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

Схема работы банкомата
Схе­ма работы бан­комата

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

 

Уровень пользователя (устройства ввода и приложение-киоск)

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

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

С рас­простра­нени­ем бес­контак­тных карт на бан­коматах появи­лись счи­тыва­тели, работа­ющие по тех­нологии NFC (near-field communication). А некото­рые устрой­ства поз­воля­ют обой­тись без кар­ты. Вмес­то нее исполь­зует­ся одно­разо­вый QR-код, который либо генери­рует­ся на экра­не бан­комата и ска­ниру­ется в мобиль­ном при­ложе­нии бан­ка, либо соз­дает­ся в при­ложе­нии и счи­тыва­ется аппа­ратом.

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

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

 

Уровень ОС

Раз­берем­ся, какие про­цес­сы про­исхо­дят в компь­юте­ре, который находит­ся внут­ри устрой­ства. Эта часть бан­комата называ­ется сер­висной зоной. Она отде­лена от внеш­него мира неп­рочной двер­цей, зак­рытой на прос­той замок. Кро­ме того, в устрой­ствах одной серии час­то исполь­зует­ся еди­ный ключ, который мож­но сво­бод­но при­обрести на интернет‑пло­щад­ках.

Кро­ме сис­темно­го бло­ка, в сер­висной зоне находит­ся сетевое обо­рудо­вание и про­ходят под­клю­чения перифе­рий­ных устрой­ств: кар­три­дера, счи­тыва­телей, пин­пада и дис­пенсе­ра. Связь меж­ду этой аппа­рату­рой и сис­темным бло­ком осу­щест­вля­ется по интерфей­сам USB, Ethernet, PCI или COM.

Ча­ще все­го компь­ютер бан­комата работа­ет под управле­нием Windows. Рань­ше в основном при­меня­лась Windows Embedded, сей­час чаще Windows IoT (она осно­вана на Windows 10 и исполь­зует­ся во встра­иваемых сис­темах). Кро­ме того, в рам­ках импорто­заме­щения мно­гие бан­коматы перево­дят на Linux.

Банкомат под управлением Windows, изображение с Reddit
Бан­комат под управле­нием Windows, изоб­ражение с Reddit

По­мимо бан­ков­ско­го при­ложе­ния, запущен­ного в режиме киос­ка, в ОС фун­кци­они­рует управля­ющее ПО бан­комата, а так­же средс­тва защиты, нап­ример:

  • анти­виру­сы;
  • средс­тва кон­тро­ля запус­ка ПО, такие как Windows AppLocker (огра­ничи­вают выпол­нение пос­торон­них прог­рамм);
  • VPN-кли­ент (орга­низу­ет безопас­ное соеди­нение с уда­лен­ными узла­ми во внут­ренней сети бан­ка).

Клю­чевой ком­понент на уров­не ОС — управля­ющее прог­рам­мное обес­печение (УПО). Рань­ше его раз­рабаты­вали про­изво­дите­ли бан­коматов. Это порож­дало проб­лемы с сов­мести­мостью при исполь­зовании аппа­ратов раз­ных вен­доров в одном пар­ке устрой­ств. Одна­ко с рас­простра­нени­ем стан­дарта управле­ния обо­рудо­вани­ем CEN/XFS (даль­ше рас­ска­жем под­робнее) появи­лись уни­вер­саль­ные решения для кон­тро­ля устрой­ств раз­личных про­изво­дите­лей. Сей­час в боль­шей час­ти бан­коматов исполь­зует­ся муль­тивен­дорное УПО на осно­ве CEN/XFS. Это обес­печива­ет наилуч­шую сов­мести­мость и поз­воля­ет обслу­живать раз­нород­ный парк устрой­ств по еди­ному стан­дарту.

Ос­новные фун­кции УПО — управле­ние перифе­рий­ным обо­рудо­вани­ем и вза­имо­дей­ствие с про­цес­синго­вым цен­тром. Одна­ко в зависи­мос­ти от реали­зации у него могут быть допол­нитель­ные воз­можнос­ти. К при­меру, в его сос­тав может вхо­дить ПО для сер­вера монито­рин­га, отку­да уда­лен­но управля­ется сеть устрой­ств само­обслу­жива­ния. Для облегче­ния физичес­кого соп­ровож­дения бан­комата допол­нитель­ные воз­можнос­ти (нап­ример, быс­трый вызов диаг­ности­чес­ких ути­лит из отдель­ного меню) могут быть реали­зова­ны в режиме супер­визора. Он дос­тупен толь­ко тех­ничес­кому пер­соналу.

 

Сетевой уровень

На этом уров­не про­исхо­дит обмен дан­ными с про­цес­синго­вым цен­тром и сер­вером уда­лен­ного монито­рин­га.

Поль­зователь выб­рал опе­рацию — нуж­но про­верить воз­можность ее выпол­нения. За при­нятие решения отве­чает про­цес­синго­вый центр — сер­вер во внут­ренней сети бан­ка. Он про­веря­ет:

  • дан­ные кар­ты и кор­рек­тность вве­ден­ного PIN-кода, который зап­рашива­ется пов­торно перед выпол­нени­ем опе­рации;
  • отсутс­твие огра­ниче­ний по выб­ранной кар­те;
  • баланс средств поль­зовате­ля.

Что­бы пре­дот­вра­тить перех­ват и модифи­кацию отве­тов про­цес­синго­вого цен­тра, обмен дан­ными меж­ду ним и бан­коматом защища­ется шиф­ровани­ем, чаще все­го с исполь­зовани­ем VPN-соеди­нения. В роли про­токо­ла обме­на сооб­щени­ями час­то исполь­зуют­ся NDC или DDC. Они ста­ли нег­ласным стан­дартом для ком­муника­ции с про­цес­синго­вым цен­тром еще до появ­ления муль­тивен­дорно­го УПО. Кро­ме того, неред­ко при­меня­ется стан­дарт ISO 8583 и его модифи­кации. При этом вен­доры УПО могут раз­рабаты­вать собс­твен­ные про­токо­лы для свя­зи с про­цес­синго­вым цен­тром, сох­раняя под­дер­жку стан­дар­тных наборов пра­вил для обес­печения обратной сов­мести­мос­ти.

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

 

Уровень прошивки

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

Диспенсер (без кассет) в сейфе банкомата, изображение из LiveJournal sravniru
Дис­пенсер (без кас­сет) в сей­фе бан­комата, изоб­ражение из LiveJournal sravniru

Уп­равле­ние обо­рудо­вани­ем про­исхо­дит по стан­дарту CEN/XFS, который опи­сыва­ет кли­ент‑сер­верную архи­тек­туру. Она вклю­чает в себя менед­жер обо­рудо­вания (XFS Manager) — API для него обес­печива­ет УПО. В архи­тек­туру так­же вхо­дят сер­висные про­вай­деры (Service Provider) — драй­веры, содер­жащие набор стан­дар­тных фун­кций для управле­ния перифе­рий­ными устрой­ства­ми и получе­ния информа­ции о них. Такими устрой­ства­ми могут быть дис­пенсе­ры, кар­три­деры и модули при­ема налич­ных.

Архитектура стандарта CEN/XFS
Ар­хитек­тура стан­дарта CEN/XFS

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

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

 

Классификация атак на банкоматы

Те­перь рас­смот­рим угро­зы, акту­аль­ные для бан­коматов. Вари­антов не так мно­го. Этот перечень мож­но раз­делить на две боль­шие груп­пы в зависи­мос­ти от объ­екта и дей­ствий зло­умыш­ленни­ка: фи­зичес­кие и ло­гичес­кие.

Ата­ки из пер­вой груп­пы пред­полага­ют непос­редс­твен­ное физичес­кое воз­дей­ствие на бан­комат или его ком­понен­ты. Цель — получить день­ги или вме­шать­ся в нор­маль­ную работу устрой­ства без исполь­зования прог­рам­мных методов. Это тра­дици­онные ата­ки, которым бан­коматы под­верга­лись задол­го до появ­ления узко­нап­равлен­ного вре­донос­ного ПО. Здесь не тре­буют­ся осо­бые зна­ния, и часть уме­ний свя­зана не с самим бан­коматом, а с его поль­зовате­лями.

Разновидности физических атак на банкоматы
Раз­новид­ности физичес­ких атак на бан­коматы

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

За­дача спе­циалис­тов по ана­лизу защищен­ности — выяв­лять прог­рам­мные уяз­вимос­ти, которые поз­воля­ют про­вес­ти логичес­кую ата­ку. Даль­ше мы на них и оста­новим­ся. Они под­разде­ляют­ся на две катего­рии: сис­темные и се­тевые.

Сис­темные ата­ки экс­плу­ати­руют фун­кции или изме­няют логику при­ложе­ний, фун­кци­они­рующих на уров­не ОС бан­комата. Цель — получить день­ги или обой­ти защит­ные механиз­мы. Отдель­ное мес­то занима­ют ата­ки с внеш­ним управле­нием дис­пенсе­ром (black box). Они под­разуме­вают под­клю­чение устрой­ства зло­умыш­ленни­ка нап­рямую к механиз­му выдачи купюр, в то вре­мя как боль­шая часть сис­темных атак тре­бует от хакера пред­варитель­ного получе­ния дос­тупа к ОС. Тех­ники black box могут при­менять­ся и в отно­шении дру­гих перифе­рий­ных устрой­ств бан­комата (нап­ример, валида­тора бан­кнот). Даль­ше мы рас­смот­рим вза­имо­дей­ствие имен­но с дис­пенсе­ром.

Разновидности системных атак на банкоматы
Раз­новид­ности сис­темных атак на бан­коматы

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

Разновидности сетевых атак на банкоматы
Раз­новид­ности сетевых атак на бан­коматы

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

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

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

Матрица переходов между атаками
Мат­рица перехо­дов меж­ду ата­ками

Вот как мож­но исполь­зовать мат­рицу для пос­тро­ения сце­нария выдачи денег:

  1. Вы­ход из режима киос­ка сам по себе не при­водит к выдаче купюр, но ста­новит­ся про­межу­точ­ным шагом. За ним может сле­довать экс­плу­ата­ция уяз­вимос­тей ОС и ПО, обход локаль­ных политик безопас­ности или экс­плу­ата­ция недос­татков сетевых нас­тро­ек. К при­меру, хакер может поп­робовать выг­рузить кон­фиг VPN-кли­ента пос­ле получе­ния дос­тупа к ОС.
  2. В свою оче­редь, экс­плу­ата­ция уяз­вимос­тей ОС и ПО спо­соб­на при­вес­ти к выдаче денег — к при­меру, если в УПО есть недос­татки. Эта ата­ка может стать и про­межу­точ­ным шагом: нап­ример, если есть уяз­вимость в исполь­зуемом VPN-кли­енте, у зло­умыш­ленни­ка появ­ляет­ся шанс получить дос­туп к защищен­ному сетево­му тра­фику и перех­ватывать переда­ваемые дан­ные.

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

Пример использования матрицы переходов
При­мер исполь­зования мат­рицы перехо­дов

Мат­рица дает общее пред­став­ление о воз­можных сце­нари­ях выдачи купюр, но самое инте­рес­ное кро­ется в деталях. Далее мы под­робно раз­берем наибо­лее рас­простра­нен­ные сце­нарии атак, которые выяви­ли наши иссле­дова­тели безопас­ности бан­ков­ских сис­тем.

 

Сценарии логических атак на банкоматы

Во вре­мя ана­лиза защищен­ности ИБ‑спе­циалис­ты по воз­можнос­ти находят все уяз­вимос­ти кон­крет­ного бан­комата, которые мож­но исполь­зовать в ата­ках. Затем ана­лити­ки сов­мес­тно с иссле­дова­теля­ми безопас­ности фор­миру­ют пол­ноцен­ные сце­нарии выдачи денег: от получе­ния дос­тупа к бан­комату до извле­чения нуж­ного чис­ла купюр. Ниже пред­став­лена ста­тис­тика по резуль­татам наших иссле­дова­ний, которая отра­жает наибо­лее популяр­ные уяз­вимос­ти, при­водя­щие к кра­же денег.

Рейтинг уязвимостей, приводящих к выдаче денежных средств
Рей­тинг уяз­вимос­тей, при­водя­щих к выдаче денеж­ных средств

Уяз­вимос­ти, которые будут упо­минать­ся далее, при­водят­ся с иден­тифика­тора­ми вида PT-ATM-XXX: они исполь­зуют­ся в откры­том сбор­нике логичес­ких атак на бан­коматы — его под­готови­ли наши спе­циалис­ты. Сбор­ник содер­жит опи­сания про­верок и под­робные рекомен­дации по устра­нению уяз­вимос­тей. Будет полезен как инже­нерам, обес­печива­ющим безопас­ность бан­коматов, так и спе­циалис­там по ана­лизу защищен­ности. Озна­комить­ся с матери­ала­ми мож­но на GitHub — они дос­тупны на четырех язы­ках.

 

Атаки с внешним управлением диспенсером (black box)

Во всех иссле­дован­ных кон­фигура­циях бан­коматов были обна­руже­ны уяз­вимос­ти про­шив­ки дис­пенсе­ра, поз­воля­ющие про­вес­ти ата­ку типа black box. Такие ата­ки получи­ли свое наз­вание из‑за того, что зло­умыш­ленник исполь­зует внеш­нее устрой­ство (сво­его рода чер­ный ящик) для управле­ния дис­пенсе­ром нап­рямую.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии