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

info

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

 

Чиповое легаси

Один из видов информа­ции, содер­жащей­ся на чиповой кар­те, — это так называ­емый Track2 Equivalent. Он прак­тичес­ки один в один пов­торя­ет содер­жимое маг­нитной полосы и, ско­рее все­го, слу­жит в качес­тве парамет­ра иден­тифика­ции кар­ты в сис­темах HSM и дру­гих под­систе­мах кар­точно­го про­цес­синга. Один из видов атак, которые вре­мя от вре­мени про­водят­ся зло­умыш­ленни­ками, под­разуме­вает запись дан­ных Track2 Equivalent на маг­нитную полосу, пос­ле чего мошен­ничес­кие опе­рации про­водят­ся либо как обыч­ные тран­закции по маг­нитной полосе, либо в режиме technical fallback. Для хищения таких дан­ных из бан­коматов исполь­зуют­ся так называ­емые шим­меры.

Шиммер — устройство для незаметного снятия данных при использовании чиповых карт в банкоматах
Шим­мер — устрой­ство для незамет­ного сня­тия дан­ных при исполь­зовании чиповых карт в бан­коматах

В одной из ста­тей о шим­минге упо­мина­ется, что в 2006 году, в самом начале выпус­ка чиповых карт, в Великоб­ритании поле Track2 Equivalent содер­жало в себе ори­гиналь­ный CVV2/CVC2. Из‑за этой ошиб­ки было лег­ко соз­давать кло­ны маг­нитных полос карт, по которым опла­та про­исхо­дила с помощью чипа. Тог­да пла­теж­ные сис­темы решили исполь­зовать раз­ные seed при генера­ции полей CVV2/CVC2 на маг­нитной полосе и в поле Track2 Equivalent. Казалось бы, задача решена — зна­чение сек­ретно­го поля CVV2/CVC2 на маг­нитной полосе не сов­пада­ет с тем, что записа­но на чипе. Но шим­минг жив и по‑преж­нему проц­вета­ет. Почему?

Мно­гие бан­ки до сих пор одоб­ряют тран­закции со счи­тан­ными с чипа зна­чени­ями CVV2/CVC2! Об этом час­то упо­мина­ет Visa и поч­ти не пишет MasterCard. Одна из при­чин, по моему мне­нию, — прак­тичес­ки во всех кар­тах MasterCard CVC2 в Track2 Equivalent равен 000. Для рус­ских карт это так­же неак­туаль­но: сре­ди про­тес­тирован­ных мной за два года десят­ков бан­ков я не нашел ни одной кар­ты, где эта ата­ка была бы воз­можна. Тем не менее сто­ит отме­тить, что подоб­ные ата­ки по­пуляр­ны в Аме­рике.

info

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

Чем это чре­вато? Хакер мог бы под­менить поле Service Code, ука­зыва­ющее, что кар­та не содер­жит чипа, и свер­ка целос­тнос­ти это­го поля была бы невоз­можна, потому что любой CVC2 при­нимал­ся про­цес­сингом. Уяз­вимость, очень силь­но похожая на сле­дующую в спис­ке, была быс­тро устра­нена пос­ле пись­ма в банк.

По моей ста­тис­тике, 4 из 11 карт были под­верже­ны подоб­ным ата­кам.

 

Бразильский хак

Под этим тер­мином понима­ют нес­коль­ко видов атак, в том чис­ле ата­ку на офлайн‑тер­миналы, опи­сан­ную «Лабора­тори­ей Кас­пер­ско­го». О самой мас­совой ата­ке c таким наз­вани­ем рас­ска­зывал Брай­ан Кребс. В чем суть нашумев­шей ата­ки?

В начале 2010-х чиповые кар­ты наконец‑то получи­ли широкое рас­простра­нение в США. Нес­коль­ко бан­ков начали выпус­кать такие кар­ты. Сто­ит заметить, что до сих пор самая рас­простра­нен­ная чиповая схе­ма в США — это не Chip & PIN, а Chip & Signature. Вла­дель­цу подоб­ной кар­ты не надо вво­дить ПИН‑код, а нуж­но толь­ко вста­вить кар­ту в счи­тыва­тель и под­твер­дить тран­закцию под­писью на чеке. Почему эта схе­ма так при­жилась — рас­ска­жу даль­ше.

Как мне кажет­ся, где‑то в этом про­цес­се про­изош­ла инсай­дер­ская утеч­ка информа­ции, и хакеры узна­ли, что чиповая тран­закция вро­де и про­ходит, но не про­веря­ется на сто­роне бан­ка‑эми­тен­та. Банк прос­то брал поле Track2 Equivalent и про­водил иден­тифика­цию, как если бы это была обыч­ная тран­закция по маг­нитной полосе. С нес­коль­кими нюан­сами: ответс­твен­ность за мошен­ничес­тво такого рода по новым пра­вилам EMV Liability Shift теперь лежала на бан­ке‑эми­тен­те. А бан­ки‑эми­тен­ты, не до кон­ца понимая, как работа­ли такие кар­ты, не вво­дили силь­ных огра­ниче­ний на «чиповые» тран­закции и не исполь­зовали сис­темы антифро­да.

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

 

Cryptogram Replay и Cryptogram Preplay

«В дикой при­роде» подоб­ная ата­ка наб­людалась лишь еди­нож­ды. Она была задоку­мен­тирова­на и опи­сана (PDF) в иссле­дова­нии извес­тных спе­циалис­тов из Кем­бридж­ско­го уни­вер­ситета.

Суть ата­ки зак­люча­ется в обхо­де механиз­мов, обес­печива­ющих уни­каль­ность каж­дой тран­закции и крип­тограм­мы. Ата­ка поз­воля­ет «кло­ниро­вать тран­закции» для даль­нейше­го исполь­зования уже без дос­тупа к ори­гиналь­ной кар­те. В пер­вой час­ти уже рас­ска­зыва­лось, что на вхо­де кар­та получа­ет опре­делен­ный набор дан­ных: сум­му, дату тран­закции, а так­же два поля, обес­печива­ющих энтро­пию, даже если сум­ма и дата оди­нако­вые. Со сто­роны тер­минала энтро­пию 232 обес­печива­ют 4 бай­та поля UN — слу­чай­ного чис­ла. Со сто­роны кар­ты — ATC-счет­чик опе­раций, уве­личи­вающий­ся каж­дый раз на еди­ницу. Псев­дофун­кция выг­лядит при­мер­но так:

Cryptogram=Signature(ATC,UN,Amount,Misc,SecretKey)

Ес­ли одно из полей меня­ется, изме­няет­ся и выход­ное зна­чение крип­тограм­мы. Одна­ко что про­изой­дет, если все поля оста­нут­ся преж­ними? Зна­чит, и преж­няя крип­тограм­ма оста­нет­ся валид­ной. Из это­го сле­дуют две воз­можнос­ти атак на чиповые тран­закции.

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

Схема атаки Cryptogram Replay
Схе­ма ата­ки Cryptogram Replay

Cryptogram Preplay. Эта схе­ма исполь­зует­ся, если уяз­вимый тер­минал воз­вра­щает не один и тот же UN, но выда­ет их пред­ска­зуемы­ми. Имен­но так работал уяз­вимый бан­комат в опи­сан­ной выше маль­тийской ата­ке. В таком слу­чае зло­умыш­ленник при физичес­ком дос­тупе к кар­те кло­ниру­ет нес­коль­ко тран­закций «на будущее». В отли­чие от пер­вой ата­ки, каж­дая тран­закция может исполь­зовать­ся толь­ко один раз.

Эта ата­ка инте­рес­на с исто­ричес­кой точ­ки зре­ния раз­вития про­токо­ла EMV. Ког­да про­токол соз­давал­ся, поле ATC было соз­дано спе­циаль­но для защиты от подоб­ных атак.

Банк‑эми­тент дол­жен был про­верять зна­чение поля ATC, и, если эти зна­чения при­ходи­ли не по поряд­ку, с замет­ными скач­ками, подоз­ритель­ные тран­закции откло­нялись.

Нап­ример, если на про­цес­синг пос­тупали тран­закции зна­чени­ем ATC 0001, 0002, *0008*, *0008*, *0008*, 0009, 0010, *0003*, *0004*, то опе­рации, номера которых выделе­ны в этой пос­ледова­тель­нос­ти, дол­жны были счи­тать­ся подоз­ритель­ными и откло­нять­ся про­цес­сингом. Но затем начали пос­тупать жалобы от кли­ентов, и в тех­нологию были вне­сены кор­ректи­вы.

Рас­смот­рим при­мер: кли­ент бан­ка садит­ся в самолет, рас­пла­чива­ется в самоле­те кар­той с исполь­зовани­ем офлайн‑тер­минала. Далее самолет при­зем­ляет­ся, и кли­ент рас­пла­чива­ется кар­той в оте­ле. И толь­ко пос­ле это­го исполь­зуемый в самоле­те тер­минал под­клю­чает­ся к сети и переда­ет дан­ные о тран­закци­ях. В таком слу­чае будет зафик­сирован ска­чок ATC, и, сле­дуя пра­вилам пла­теж­ных сис­тем, банк мог бы откло­нить абсо­лют­но легитим­ную тран­закцию. Пос­ле нес­коль­ких подоб­ных эпи­зодов пла­теж­ные сис­темы внес­ли кор­ректи­вы в их тре­бова­ния по «скач­кам ATC»:

  • скач­ки дол­жны счи­тать­ся, толь­ко если дель­та меж­ду зна­чени­ями счет­чика «выше Х», где зна­чение Х каж­дый банк дол­жен опре­делять инди­виду­аль­но;
  • скач­ки не обя­затель­но слу­жат приз­наком мошен­ничес­тва, одна­ко пос­тоян­ные скач­ки выше зна­чения Х — это повод свя­зать­ся с кли­ентом для выяс­нения обсто­ятель­ств.

При этом за бор­том изме­нений остался пер­вый сце­нарий — cryptogram replay. Если кар­точный про­цес­синг спро­екти­рован кор­рек­тно, нет ни одно­го разум­ного объ­ясне­ния ситу­ации, ког­да один и тот же набор дан­ных (Cryptogram, UN, ATC) пос­тупа­ет на вход мно­го раз и успешно одоб­ряет­ся бан­ком. За пос­ледний год я отпра­вил информа­цию об этой ата­ке более чем в 30 раз­ных бан­ков и получил дос­таточ­но широкий спектр отве­тов.

В некото­рых слу­чаях неп­равиль­ное про­екти­рова­ние сер­висов про­цес­синга при­водит к тому, что банк не может прос­то заб­локиро­вать опе­рации с оди­нако­выми зна­чени­ями. Так­же сто­ит отме­тить, что в «дикой при­роде» я не встре­чал тер­миналы, которые воз­вра­щали бы оди­нако­вое зна­чение поля UN. То есть зло­умыш­ленни­кам при­ходит­ся исполь­зовать их собс­твен­ные тер­миналы, что дела­ет отмы­вание денег более слож­ным.

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

Ста­тис­тика показы­вает, что 18 из 31 бан­ков­ской кар­ты под­верже­ны ата­кам replay/preplay в отно­шении кон­так­тно­го или бес­контак­тно­го чипа. При этом в Рос­сии я не смог най­ти ни одно­го уяз­вимого для это­го типа атак бан­ка, что край­не любопыт­но.

 

PIN OK

По­жалуй, это самая извес­тная ата­ка на чипы. Пер­вые теоре­тичес­кие пред­посыл­ки к этой ата­ке коман­да из Кем­брид­жа опи­сала в 2005 году в иссле­дова­нии Chip and Spin, за год до того, как стан­дарт EMV получил рас­простра­нение в Великоб­ритании. Но повышен­ное вни­мание к этой ата­ке воз­никло гораз­до поз­днее.

В 2010 году выходит пол­ноцен­ное иссле­дова­ние кем­бридж­ской чет­верки, пос­вящен­ное ата­ке PIN OK. Для этой ата­ки они исполь­зовали устрой­ство, реали­зующее тех­нику «человек посере­дине» меж­ду чипом кар­ты и ридером тер­минала.

Устройство для реализации техники «человек посередине»
Ус­трой­ство для реали­зации тех­ники «человек посере­дине»

В 2011 году на кон­ферен­циях Black Hat и DEFCON груп­па иссле­дова­телей из Inverse Path и Aperture Labs пред­ста­вила боль­ше информа­ции об этой ата­ке. Тог­да же, в 2011 году, орга­низо­ван­ная прес­тупная груп­пиров­ка исполь­зовала 40 укра­ден­ных бан­ков­ских карт для совер­шения 7000 мошен­ничес­ких тран­закций, в резуль­тате которых было укра­дено 680 тысяч евро. Вмес­то при­меняв­шегося иссле­дова­теля­ми гро­моз­дко­го устрой­ства прес­тупни­ки вос­поль­зовались малень­ким незамет­ным «вто­рым чипом», уста­нов­ленным поверх ори­гиналь­ного, что поз­воляло эму­лиро­вать ата­ку в реаль­ных усло­виях.

В декаб­ре 2014 года иссле­дова­тели из Inverse Path сно­ва под­няли тему атак на тран­закции EMV и пред­ста­вили нем­ного ста­тис­тики, соб­ранной ими за три года (PDF). В 2015 году было выпуще­но деталь­ное тех­ничес­кое иссле­дова­ние ата­ки (PDF), совер­шенной неиз­вес­тны­ми зло­умыш­ленни­ками в 2011 году.

Да­вай рас­смот­рим тех­ничес­кие детали этой ата­ки. Для ее реали­зации, напом­ним, нуж­но исполь­зовать тех­нику man in the middle. Кар­та переда­ет тер­миналу поле CVM List (Сard Verification Method) — при­ори­тет­ный спи­сок методов верифи­кации вла­дель­ца кар­ты, под­держи­ваемых кар­той. Если пер­вое пра­вило на кар­те «офлайн‑ПИН шиф­рован­ный/нешиф­рован­ный», на этом эта­пе ничего не про­исхо­дит. Если пер­вое пра­вило дру­гое, то во вре­мя ата­ки пер­вое пра­вило под­меня­ется на «офлайн‑ПИН».

За­тем тер­минал зап­рашива­ет у вла­дель­ца кар­ты ПИН‑код. Пра­вило «офлайн‑ПИН» озна­чает, что ПИН‑код будет передан кар­те для свер­ки в откры­том или шиф­рован­ном виде. В ответ кар­та либо отве­тит 63C2 «Невер­ный ПИН, оста­лось две попыт­ки», либо 9000 «ПИН ОК». Имен­но на этом эта­пе зло­умыш­ленник, внед­ривший­ся в про­цесс авто­риза­ции, заменит пер­вый ответ вто­рым.

На дан­ном эта­пе тер­минал счи­тает, что ПИН вве­ден кор­рек­тно, и зап­рашива­ет у кар­ты крип­тограм­му (зап­рос Generate AC), переда­вая ей все зап­рашива­емые поля. Кар­та зна­ет, что ПИН либо не вве­ден сов­сем, либо вве­ден некор­рек­тно. Но при этом кар­та не зна­ет, какое решение даль­ше при­нял тер­минал. Нап­ример, есть тер­миналы, которые при вво­де некор­рек­тно­го ПИН‑кода про­сят дер­жателя кар­ты пос­тавить под­пись на тачс­кри­не — дела­ется это для его же ком­форта. Поэто­му, ког­да тер­минал зап­рашива­ет крип­тограм­му, кар­та отда­ет ее. В отве­те содер­жится поле CVR — Card Verification Results, которое ука­зыва­ет, был ли про­верен ПИН‑код кар­той или нет. Более того, это поле явля­ется частью пла­теж­ной крип­тограм­мы, и под­менить его зна­чение зло­умыш­ленни­кам не удас­тся: попыт­ка при­ведет к ошиб­ке свер­ки крип­тограм­мы на HSM.

Тер­минал отсы­лает все дан­ные в пакете ISO 8583 Authorization Request бан­ку‑эквай­еру, затем они пос­тупа­ют бан­ку‑эми­тен­ту. Банк видит два поля: CVMResults, которое ука­зыва­ет, что в качес­тве метода верифи­кации был выб­ран офлайн‑ПИН и что тер­минал под­держи­вает этот метод верифи­кации. Но еще банк видит, что кар­та НЕ при­няла ПИН‑код либо что он был вве­ден некор­рек­тно. И нес­мотря ни на что, одоб­ряет тран­закцию.

Ес­ли кар­та исполь­зует схе­му аутен­тифика­ции CDA и зло­умыш­ленни­кам необ­ходимо под­менить пер­вое пра­вило CVM list, офлайн‑аутен­тифика­ция будет завер­шена с ошиб­кой. Одна­ко это всег­да обхо­дит­ся под­меной полей Issuer Action Code. Под­робнос­ти дан­ного слу­чая опи­саны в пос­ледней вер­сии пре­зен­тации от 2014 года экспер­тами из Inverse Path.

Так­же в пер­вом иссле­дова­нии от 2011 года спе­циалис­ты показа­ли, что стан­дарт EMV поз­воля­ет не откло­нять тран­закции на пла­теж­ном устрой­стве, даже если безопас­ные методы аутен­тифика­ции и верифи­кации не сра­бота­ли, а идти даль­ше, каж­дый раз выбирая менее безопас­ные методы (так называ­емый fallback). Это откры­вает перед зло­умыш­ленни­ками дру­гие воз­можнос­ти, вклю­чая ата­ки на похище­ние ПИН‑кода во вре­мя опе­раций на ском­про­мети­рован­ных POS-тер­миналах.

 

Заключение

Ин­терес­ная ста­тис­тика за пос­ледний год: нес­мотря на то что еще в 2010-м «нас­тоящие безопас­ники» из бан­ков уми­лялись тому, как кто‑то не сле­дит за оче­вид­ными проб­лемами кар­точно­го про­цес­синга, в 2020 году все при­мер­но так же пло­хо. Ста­тис­тика про­верок за прош­лый год показа­ла, что 31 из 33 карт бан­ков с раз­ных угол­ков Зем­ли, вклю­чая рос­сий­ские, уяз­вима к этой ата­ке.

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

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

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

    Подписаться

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